diff --git a/docs/kcl/loft.md b/docs/kcl/loft.md index 4102981129..bdc912630f 100644 --- a/docs/kcl/loft.md +++ b/docs/kcl/loft.md @@ -9,7 +9,7 @@ Create a 3D surface or solid by interpolating between two or more sketches. The sketches need to closed and on the same plane. ```js -loft(sketches: [Sketch], data?: LoftData) -> Solid +loft(sketches: [Sketch], v_degree: NonZeroU32, bez_approximate_rational: bool, base_curve_index?: u32, tolerance?: number) -> Solid ``` @@ -17,8 +17,11 @@ loft(sketches: [Sketch], data?: LoftData) -> Solid | Name | Type | Description | Required | |----------|------|-------------|----------| -| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | | Yes | -| `data` | [`LoftData`](/docs/kcl/types/LoftData) | Data for a loft. | No | +| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketches to loft. Must include at least 2 sketches. | Yes | +| `v_degree` | `NonZeroU32` | Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified. | Yes | +| `bez_approximate_rational` | `bool` | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes | +| `base_curve_index` | `u32` | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No | +| `tolerance` | `number` | Tolerance for the loft operation. | No | ### Returns @@ -94,21 +97,7 @@ loft([ squareSketch, circleSketch0, circleSketch1 -], { - // This can be set to override the automatically determined - // topological base curve, which is usually the first section encountered. - baseCurveIndex = 0, - // Attempt to approximate rational curves (such as arcs) using a bezier. - // This will remove banding around interpolations between arcs and non-arcs. - // It may produce errors in other scenarios Over time, this field won't be necessary. - bezApproximateRational = false, - // Tolerance for the loft operation. - tolerance = 0.000001, - // Degree of the interpolation. Must be greater than zero. - // For example, use 2 for quadratic, or 3 for cubic interpolation in - // the V direction. This defaults to 2, if not specified. - vDegree = 2 -}) +], baseCurveIndex = 0, bezApproximateRational = false, tolerance = 0.000001, vDegree = 2) ``` ![Rendered example of loft 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAISeUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVdd9b/eNddc82Ce6cyZMw/mma655poH8yK47777buUBzp49e+t99913K1ddddVVV1111VVX/W9H5aqrrrrqqquuuuqq/7GuueaaBwO82Iu92GufOXPmQQDXXHPNg6+55poHnzlz5sHXXHPNg3ku9913363XXHPNg/kPct99990KcPbs2Vvvu+++WwH+4R/+4XcA7rvvvlv/4R/+4be56qqrrrrqqquuuup/KvSgBz2Iq6666qqrrrrqqqv+e11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1+RdcvHgRgIsXLwJw8eJF7nfx4kX+NU6cOMH9Tpw4AcCJEyc4ceIE/5L77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/93Qgx70IK666qqrrrrqqquu+q91zTXXPPi1X/u13wvgnd7pnT6b5+PixYsAPO1pT+PixYsAPP3pTwfg4sWLXLx4kf9KJ06cAOChD30oAA95yEMAOHHiBA996EN5fu67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquuuuq/EnrQgx7EVVddddVVV1111VX/ua655poHv/Zrv/Z7XXPNNQ9+ndd5nffmuVy8eJGnP/3pXLx4kac97Wk8/elP5z+bbf4jnThxghMnTnDixAke8pCHcOLECR760IfyQPfdd9+t//AP//Db//AP//A7v/Vbv/XdXHXVVVddddVVV131nw096EEP4qqrrrrqqquuuuqq/xzv+I7v+Fkv/uIv/tov9mIv9to8wMWLF/nLv/xLnva0p/H0pz+d/6tOnDjB8ePHOXHiBC/7si/LQx/6UO5333333Xr27Nlbf+u3fut7fuu3fuu7ueqqq6666qqrrrrqPwN60IMexFVXXXXVVVddddVV/3GuueaaB7/Yi73Ya3/4h3/4d/FMFy9e5C//8i952tOextOf/nT+vzpx4gTHjx/n5V7u5XjZl31Z7nfffffd+lu/9Vvf/du//dvfc999993KVVddddVVV1111VX/UdCDHvQgrrrqqquuuuqqq67697vmmmse/GIv9mKv/eEf/uHfxTM97WlP4y//8i/5y7/8S656TidOnOAhD3kID33oQ3nZl31ZAO67775bf+u3fuu7f/RHf/RzuOqqq6666qqrrrrqPwJ60IMexFVXXXXVVVddddVV/z4v9mIv9tqf+7mf+1s802/8xm/wV3/1V1y8eJH/DWzz3+nEiRO87Mu+LK/3eq8HwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVVf9e1COHz/OVVddddVVV1111VX/di/2Yi/22p/7uZ/7WwAXL17kG77hG3j84x/ParXifwtJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhidVqxdOf/nT+6q/+iuuvv56bbrrp+Iu92Iu99ubm5vF/+Id/+B2uuuqqq6666qqrrvq3ohw/fpyrrrrqqquuuuqqq/5tXuzFXuy1P/dzP/e3AH7jN36DH/iBH2C1WnHVv81qteLpT386y+WSl3iJlzh+zTXXPPjWW2/9m7Nnz97KVVddddVVV1111VX/FpTjx49z1VVXXXXVVVddddW/zUd8xEd81zXXXPPg3/iN3+A3f/M3uerfb7Va8fSnPx2Aa6+9dndzc/P4n/7pn/4MV1111VVXXXXVVVf9W1C56qqrrrrqqquuuurf7MVe7MVeG+C3fuu3kMT/Zrb5n+Sv/uqveL3Xe70HA699zTXXPPi+++67lauuuuqqq6666qqr/rWoXHXVVVddddVVV131b/JiL/Zir33ffffdenh4+GD+D5DE/yS7u7tcvHiRa6655sFcddVVV1111VVXXfVvRXDVVVddddVVV1111b/J2bNnb93d3eUhD3kID3nIQ7jqP9bx48c5ceIEAPfdd9+tXHXVVVddddVVV131b0Fw1VVXXXXVVVddddW/yX333Xfrn/7pnz4Y4G3f9m05fvw4V/3HOH78OG/3dm8HwF/+5V9y1VVXXXXVVVddddW/GcFVV1111VVXXXXVVf8mXde991Of+lQuXrzIiRMneP/3f38e+tCHIglJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxP8Ux48f5/3e7/14yEMewsWLF/mBH/gBSinvzVVXXXXVVVddddVV/xaU48ePc9VVV1111VVXXXXVv96xY8e+yvaDH//4x/PiL/7inDhxgoc85CHM53N2d3dZrVb8byIJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkceLECV71VV+Vd3u3d2OxWHDrrbfyDd/wDWQmto+vVqvv4aqrrrrqqquuuuqqfy30oAc9iKuuuuqqq6666qqr/vVuuOEG931PrZXTp0/zci/3crzu674uALu7uzz96U/nr/7qr3j605/OVS/Y8ePHeZmXeRle93Vfl/v97u/+Lr/1W7/FNE2M48j+/v6t99xzz0O46qqrrrrqqquuuupfCz3oQQ/iqquuuuqqq6666qp/nVrre1933XXf1fc9pRRKKZRSOHnyJK/zOq/DS73US3G/3d1d/vIv/5Jbb72Vpz/96VwFx48f52Ve5mV42Zd9WY4fP879/v7v/57f+73f4+LFi7TWmKaJcRxZr9fcdtttr5OZv81VV1111VVXXXXVVf8a6EEPehBXXXXVVVddddVVV/3rbG9vf9eJEyfeu+s6SimUUiilEBFEBCdOnOClXuqleI3XeA0uXbrEsWPHANjd3eXpT386f/VXf8Wtt97K/wS2+c92/PhxTpw4wYMf/GBe9mVfluPHj3O/vb09/uEf/oG///u/Z3d3l8yktUZmMk0T0zSxXq+5cOHCb+/u7r4OV1111VVXXXXVVVf9a6AHPehBXHXVVVddddVVV131r3PDDTe473tqrZRSKKUQEUQEEUFEIIkTJ07woAc9iFtuuYUXf/EX54F2d3cBePrTn86tt97KxYsXufXWW/m/4Pjx47zMy7wMAA9+8IN5yEMewgPt7+/z+Mc/nr29Pf7hH/4B22QmmUlm0lojM5mmiWmaGMeR/f39W++5556HcNVVV1111VVXXXXVvwZ60IMexFVXXXXVVVddddVVL7pSyntff/3139V1HbVWSimUUogIIoKIQBIRgSQkERG8+Iu/OG/yJm/C3t4ee3t73HTTTTy33d1dAJ7+9KcDcOutt3Lx4kV2d3fZ3d3lf5Ljx49z/PhxTpw4wfHjxzl+/DjHjx/nIQ95CM/P/v4++/v73HDDDfzZn/0Zf/qnf0pmYpvMJDOxTWuNzKS1RmuN1hrjOLJarbj99ttfJzN/m6uuuuqqq6666qqrXlRUrrrqqquuuuqqq676V1ksFq8VEUQEkpCEJCQhCQBJ3E8SADfffDMAf/RHf8TjHvc4jh8/zs7ODseOHeOmm25iZ2eHG264AYCXeZmXAeBlXuZluN/u7i4AFy9eZHd3F4Dd3V12d3cBuHjxIvfb3d3lfru7u7wwx48f54GOHz8OwIkTJzh+/Dj3O378OMePH+fEiRMcP36cF+Tg4ACAu+++m/39fe6++27uvPNObPNyL/dy3HDDDdxPEraRhCRsIwlJSCIiyEwiglIKOzs7n7W7u/vbXHXVVVddddVVV131oqJy1VVXXXXVVVddddW/ys7OzntHBJKQhCQeSBIAkpDEC7K3t8f+/j533303T3ziE4kIjh07RkRwww03sL29zc7ODltbW2xtbXH8+HEAjh8/zv8Eh4eHANx3333s7+9zcHDA/v4+d999N7axjW1sc7+77roLgBtvvBFJ2EYStpGEJCQhCUkASEISpRTm8/mDueqqq6666qqrrrrqX4PKVVddddVVV1111VUvslLKe0tCEpKQhCQkIQlJAEjifpKQxC233ALA7bffzguyv79PRPDkJz+ZiCAiKKVQSuHYsWOUUtjZ2WF7e5tSCl3XceLECSKC+XxORBAR1FqRxIvKNraxzTiOZCbr9ZqjoyNaa7TWODw85L777qO1xv7+Pq01MpPMJDPJTGzz3Gxzv/39fQC2t7cBkIRtJGGbB5KEJCQREUQEs9nswZJe2/Zvc9VVV1111VVXXXXVi4LKVVddddVVV1111VUvssVi8VqlFCICSUhCEpKQBIAk7ieJ++3s7ACwt7eHJP61Dg8PqbUyjiN7e3v0fU/f9+zu7jKfz5nP5ywWC+bzOfP5nPl8zmw2o+97aq2UUogIbGOb1hrjODIMA6vVitVqxWq1YrlcslwuWa1WrNdrhmFgGAbGcWSaJqZp4oFs8+8hCdtIQhKSkIQkJCEJSUiilMKxY8c+a3d397e56qqrrrrqqquuuupFQXDVVVddddVVV1111YtsZ2fnvSMCSUhCEg8kCQBJSOLfwja2eUFs84LY5t/DNs/NNvezzQPZ5oFs80C2eaD9/X329/fZ3t5mZ2eH+0nifpKQhCQkIQlJRAQRwXw+fzBXXXXVVVddddVVV72oCK666qqrrrrqqquuepFExHtLQhKSkIQkJCEJSQBI4oEk8eIv/uIA3H777fxHsc39bPOiksQLY5vnZpsHss0D2eZFtb+/D8D29jaSuJ8kJPFAkpCEJCKCUgqz2ezBEfHaXHXVVVddddVVV131oiC46qqrrrrqqquuuupFsrGx8VqlFCICSUhCEpK4nyTuJwlJPNClS5d4YWzzgtjGNgC2eW62AbDNfxTb3M82/xH29/cB2NnZAUASkrifJCQhCUlIQhKSkEQphZ2dnc/iqquuuuqqq6666qoXBcFVV1111VVXXXXVVS+SnZ2d944IJCEJSdxPEpIAkIQkHujYsWMA7O3t8R/JNrb5j2abF8Q2/x57e3sAbG9vI4n7SUISAJKQhCQkIQlJRAQRwWw2ezBXXXXVVVddddVVV70oCK666qqrrrrqqquu+hdFxHtLQhKSkIQkJCEJSQBI4oEkIYmdnR0ALl26xIvKNv9atvnXss3zY5v/DHfddRcAN9xwAwCSeCBJPJAkJCEJSUQE8/n8wRHx2lx11VVXXXXVVVdd9S8huOqqq6666qqrrrrqX7SxsfFapRQiAklIQhKSuJ8k7icJSdzv5ptvBuD222/nv4JtbPOvYRvbPDfbPD+2eWFs88Jsb29zP0kASAJAEpKQhCQkIYmIICIopbC9vf1ZXHXVVVddddVVV131LyG46qqrrrrqqquuuupftLOz894RgSQkIYn7SUIS95PEc9vZ2eE/mm3uZ5v/KLb5z7S/v8/9JHE/SQBI4n6SAJCEJCQREUQE8/n8wVx11VVXXXXVVVdd9S8huOqqq6666qqrrrrqhYqI95aEJCQhCUlIQhKSuJ8k7icJSUjifnt7e/xb2OZ+tnl+bPPCSOJ/gv39ffb399ne3mZ7extJSAJAEgCSkASAJCQhCUlIIiKYz+cPjojX5qqrrrrqqquuuuqqF4bgqquuuuqqq6666qoXamNj47VKKUQEkpAEgCTuJwlJAEhCEve76aabALj99tv5t7DNc7MNgG1s84LY5t/DNv8Z9vb2ANje3uZ+kgCQBIAkJCEJSUhCEhFBRFBKYXt7+7O46qqrrrrqqquuuuqFIbjqqquuuuqqq6666oXa2dl574hAEpKQhCQAJPFAknhux44dA+DSpUv8V7DNv5dtHsg2ALb5j7C/vw/Azs4OkrifJAAk8dwkIQlJRAQRwXw+fzBXXXXVVVddddVVV70wBFddddVVV1111VVXvUAR8d6SkIQkJCEJSUgCQBIAknggSUji5ptvBuDSpUv8b2Kb/yx7e3sAbG1tASCJ+0kCQBKSkIQkJCEJSUgiIpjP5w+OiNfmqquuuuqqq6666qoXhOCqq6666qqrrrrqqhdoY2PjtUopRASSkMQDSQJAEveThCSe297eHpL4z2Sb50cSDySJ/0533XUXADfccAP3k8T9JHE/SUhCEpKQREQQEZRS2N7e/iyuuuqqq6666qqrrnpBCK666qqrrrrqqquueoG2t7ffOyKQhCQkIQlJSAJAEgCSkMRzu+mmmwC4/fbb+Z/KNv8S2/xH2d/fB2B7extJ3E8SkgCQhCQeSBKSkEREEBHM5/MHc9VVV1111VVXXXXVC0Jw1VVXXXXVVVddddXzFRHvHRFIQhKSkIQkJAEgCQBJPJAkJCGJnZ0dAC5dusRVz58kHkgSAJKQhCQkIQlJSEISEcF8Pn9wRLw2V1111VVXXXXVVVc9PwRXXXXVVVddddVVVz1fGxsbr1VKISKQhCQeSBIAkrifJCRxv52dHZ4fSfxHss2LQhL/E+zv77O3t8f29jY33HADAJKQxP0kcT9JSAJAEpKICCKCUgrb29ufxVVXXXXVVVddddVVzw/BVVddddVVV1111VXP1/b29ntHBJKQhCQkIQlJAEjifpJ4bjfddBMAf//3f89/BNv8e0nif4L9/X2eH0k8kCTuJwlJSEISEUFEsFgsHsxVV1111VVXXXXVVc8PwVVXXXXVVVddddVVz6PW+t4RgSQkIQlJSEISAJIAkIQknpskJPFfxTb/m9x5550A3HDDDUjigSQBIAkASUhCEpKQhCQkERHMZrMHR8Rrc9VVV1111VVXXXXVcyO46qqrrrrqqquuuup5zOfz1yqlEBFIQhIPJAkASTyQJCQhCYCbbroJgNtuuw1J/Esk8aKyzf9kknhh9vf3Abj++usBkIQk7icJAEncTxIAkpBERBARlFLY2dn5LK666qqrrrrqqquuem4EV1111VVXXXXVVVc9j+3t7feOCCQhCUlIQhKSAJDE/SQhied20003AXDp0iWeH0n8a0ji/4r9/X2eH0ncTxIAkpAEgCQkIQlJRAQRwXw+fzBXXXXVVVddddVVVz03gquuuuqqq6666qqrnkOt9b1LKUhCEpIAkMT9JHE/STw/krjf3t4e95PEVbC3twfA9vY2knggSUgCQBIAkpCEJCQhCUlIopTCbDZ7sKT35qqrrrrqqquuuuqqByK46qqrrrrqqquuuuo5bG1tvVdEEBFIQhKSAJCEJAAkIYkHkoQkJAGws7MDwKVLl/jvIIl/iSQk8V9tf3+fvb09tre32d7eRhKSeCBJAEjiuUlCEhGBJEopHDt27L246qqrrrrqqquuuuqBCK666qqrrrrqqquueg6LxeK1IwJJSEISkpCEJAAk8UCSkMQDPfaxjwXgtttuQxIvjCSemyQAJPGfQRL/2STxwuzv7wOwtbXF/SQhiftJAkASkpCEJCQhCUlEBKUU5vP5g7nqqquuuuqqq6666oEIrrrqqquuuuqqq656lq7r3ruUgiQkIQkASdxPEveThCRemEuXLvGvIYn/L/b29gC44YYbeG6SuJ8k7icJSQBIQhKSiAjm8/mDJX0WV1111VVXXXXVVVfdj+Cqq6666qqrrrrqqmfZ3Nx8r4ggIpCEJCQBIAlJ3E8Sz00SkpDETTfdBMDtt9/O/SRxP0m8IJJ4IEk8N0n8V5LEv4UkXpD9/X0Atre3kYQkHkgS95OEJO4nCUlIIiKQRERw/Pjx1+aqq6666qqrrrrqqvsRXHXVVVddddVVV131LIvF4rUjAklIQhKSkMQDSeJ+kpCEJB7opptu4qorJPH83HnnnQBsb29zP0lI4n6SkASAJCQhCUlIQhKSiAhKKezs7Lz2NE2vzVVXXXXVVVddddVVAARXXXXVVVddddVVV13Wdd17l1KQhCQk8UCSAJAEgCQk8S+5/fbb+Z9AEv9eknhhJPGCSOK57e3tAbC1tcVzk8QLIglJAEhCEpKICCQxn89fi6uuuuqqq6666qqrAAiuuuqqq6666qqrrrrs2LFjnxURRASSkIQkJCEJSUgCQBIvjCR2dnYAuHTpEgCS+M8kiX8tSfxbSeJ+knhRSOKB9vf32dvbY3t7m52dHZ6bJCQBIAkASdxPEpKQREQgiYjgxIkT781VV1111VVXXXXVVQAEV1111VVXXXXVVVeRmQ/uuu7BEYEkJCEJSUjigSTxQJKQhCQkIYnHPvaxAPzd3/0dz48k7ieJ/+kk8R9FEg+0v78PwNbWFpKQxHOTBIAkACQhCUlIQhKSiAhKKSwWiwe31l6bq6666qqrrrrqqqsIrrrqqquuuuqqq65ic3Pzs0opSEISknggSQBI4n6SkMR/FEn8W0niP5ok/rNI4n533HEHANdffz33k4QkHkgSAJK4nyQAJCEJSUQEEcHGxsZrcdVVV1111VVXXXUVwVVXXXXVVVddddVVbG5uvnZEEBFIQhKSkIQkACQBIAlJvDA33ngjALfffjsAkrjqOUnigW644QaemyQkcT9JAEhCEgCSkIQkIoKIoJTCzs7Oe3PVVVddddVVV111FcFVV1111VVXXXXV/3O237vv+wdHBJKQhCQkIQkASQBI4vmRhCQkIYmbbroJgNtuu43nJokXlSSemyT+vSTxwkgCQBIvjCQk8UCSeFFJ4s477+R+knh+JCEJAEkASEISkpCEJCQhiYhgsVg82PZrc9VVV1111VVXXfX/G8FVV1111VVXXXXV/3Obm5uvFRFIQhKSeCBJAEjigSQhCUk8t52dHe4niRdEEi8qSfxLJPGfTRKS+I+yv78PwNbWFgCSkIQknpskACTx3CQhCUlEBKUUNjc334urrrrqqquuuuqq/98Irrrqqquuuuqqq/6f29jYeO2IICKQhCQkIQlJAEjifpKQxAuys7PD/S5dusQDSeKFkcSLQhL/Ekn8a0ji+ZHEf6b9/X329vbY3t7m+uuv54EkIYkHkgSAJCQhCUlIQhIRQUQQEWxtbb02V1111VVXXXXVVf+/EVx11VVXXXXVVVf9PxYR7933/YMjAklIAkASkgCQxP0k8S+56aabAPi7v/s7JPGikMSLQhIPJIl/iSQkASCJf4kk/qvt7+/zwkhCEveTxP0kIQkASUhCEhHBfD5/MPDaXHXVVVddddVVV/3/RXDVVVddddVVV131/9hisXitUgqSkIQkJHE/SQBIQhIPJAlJSEISkpDEzs4OAJcuXeKBJPFAknh+JAEgCQBJSOIFkcQDSeLfShL/VpK4nyT+Ne644w4AbrjhBiTxgkjifpKQxP0kIQlJRAQRQSmFY8eOfRZXXXXVVVddddVV/39Rueqqq6666qqrrvp/bHt7+70jgohAEpKQhCQkASCJB5KEJF6QnZ0dAPb29vi3ksS/RBL/FpKwzQNJ4l8iif8sd955JwDXX389AJJ4INvcTxK2AZCEJCQhCUlIQhIRQUQwm80ezFVXXXXVVVddddX/XwRXXXXVVVddddVV/0+VUt47IpCEJCQBIIn7SeJ+kpDEv+TGG28E4LbbbuN+knggSfxnksS/lyTuJwkASbyoJPGi2t/fB2Bra4vnRxKSuJ8kHkgSkgCQhCQkERHM5/MHR8Rrc9VVV1111VVXXfX/E8FVV1111VVXXXXV/1Pb29vvVUohIpCEJCQBIAlJ3E8SL4wkJCGJnZ0dAC5dusR/FUlI4t9CEs9NEgCS+PeQxItib28PgO3tbba3t3lBJCEJAEkASOJ+kpCEJCKCiKCUwvb29mdx1VVXXXXVVVdd9f8TwVVXXXXVVVddddX/U4vF4rUjAklIQhKSkIQk7ieJB5KEJCQhCUnc7zGPeQwAt912G/eTxANJ4oEkASCJF4Uk/ieQxItCEpKQhCQkIYnndscddwCwvb3Nv0QSAJIAkIQkJCEJSUgiIogI5vP5g7nqqquuuuqqq676/4ngqquuuuqqq6666v+hruveOyKQhCQkASCJ+0lCEveThCReFJcuXQJAEv8ekrifJO4niReFJP69JPEvkQSAJF5UkpDE/e68804Arr/+eiQhCUlIQhKSeCBJAEgCQBKSAJCEJCRRSmE+nz84Ij6Lq6666qqrrrrqqv9/CK666qqrrrrqqqv+H9rc3HyviCAikIQkJAEgCUncTxKSeFHcdNNNANx22208P5L495DEA0lCEveTxItKEs9NEpJ4YSQhCQBJ/HtJQhJ33HEHANdffz0viCQkcT9JAEjifpKQhCQiAklEBGfOnHlvrrrqqquuuuqqq/7/Ibjqqquuuuqqq676fyYzH7xYLF47IpCEJCQhCUk8kCSemyQkIQlJSEISkrjxxhsBuO2225DEv0QSDySJ50cSz00S/5Ek8cJI4vmRxH8ESQBsbW3xL5GEJAAkASAJSUhCEpKQRERQSqHv+we31l6bq6666qqrrrrqqv9fCK666qqrrrrqqqv+n9nc3PysiCAikIQkHkgSAJK4nyQkIYkXZmdnB4C9vT2emyReEEk8N0kASOJfQxIvKkm8IJK4nyT+s+3v7wOwvb3Ni0oSAJJ4bpKQREQQEUQEi8Xitbjqqquuuuqqq676/4Xgqquuuuqqq6666v+ZjY2N144IJCEJSUhCEpIAkASAJCTxorjxxhsBuO2223huknhuknh+JCGJfw1JSOKBJPFvJQkASTyQJP4lkvi32Nvb44477gDghhtuQBKSkIQkJCEJSTyQJAAkIQlJSEISkpBERFBKYWdn57256qqrrrrqqquu+v+F4Kqrrrrqqquuuur/EUnv3ff9gyMCSUhCEpKQBIAkACTxr7GzswPApUuXeCBJPDdJ/FtJ4l8iiX8NSfxPsL+/D8D111/PCyMJSdxPEgCSkIQkJCEJSUgiIlgsFg+2/dpcddVVV1111VVX/f9BcNVVV1111VVXXfX/yMbGxmuVUogIJCGJB5IEgCQeSBKSkIQkJCEJSUhCEjfddBMAt912G/eTxH8USdxPEgCS+I8miQeSxPMjiQeSxP0k8W+xt7cHwPXXX8+LQhL3k8Rzk4QkIoKIoJTC5ubme3HVVVddddVVV131/wfBVVddddVVV1111f8jOzs77x0RSEISkpCEJCQBIIn7SUISL4obb7wRgNtuuw0ASTw/knggSQBI4rlJ4oEkcT9JAEjifpL495DEv0QS/1nuuOMOALa2tnhRSeJ+kpCEJCQhCUlIIiKICDY3N1+bq6666qqrrrrqqv8/CK666qqrrrrqqqv+nyilvLckIgJJSEISkpAEgCQAJCGJf42dnR0ALl26hCSeH0n8W0jiP4skACRxP0lIQhIAkpDE/STxL5HECyIJSUhCEpIA2N/fB0ASkpCEJCQhCUlIQhKSuJ8kJHE/SUhCEpKQhCRKKczn8wdHxGtz1VVXXXXVVVdd9f8DwVVXXXXVVVddddX/E1tbW+8VEUhCEpJ4IEkASOJf6zGPeQwAt912G5J4fiTx3CTxQJK4nyQAJPEvkYQkACTxQJL4jyKJB5IEgCSeH0lIQhKSkIQknh9J7O/vc8cdd7C1tcX111/Pv0QSknggSTyQJCQREUiilMLW1tZncdVVV1111VVXXfX/A8FVV1111VVXXXXV/xOLxeK1IwJJSEISkpCEJAAk8UCSkIQkJCEJSUhCEpKQhCQALl26xPMjif8okpAEgCT+s0nihZHE/STx77W/vw/A9ddfz4tKEgCSAJCEJCQhCUlIIiIopbBYLB48TdNrc9VVV1111VVXXfV/H8FVV1111VVXXXXV/wNd1713RBARSEISkpCEJAAkcT9JSOJFdeONNwJw22238dwk8fxI4n6SuJ8kJPHcJCGJ+0kCQBIviCT+tSTx32lvbw+A66+/nn8NSQBIAkASkpCEJCQREUQEs9nswbPZ7LW46qqrrrrqqquu+r+P4Kqrrrrqqquuuur/gZ2dnc8qpSAJSUjigSRxP0n8a914440A3HbbbTyQJP4rSQJAEpJ4IEm8IJIAkASAJCTx3+GOO+4AYGtrC0lIQhKSkIQkJCEJSUjifpIAkMQDSUISkogISimcOHHivbnqqquuuuqqq676v4/gqquuuuqqq6666v++1+77/sERgSQkIQlJSEISAJKQxANJQhKSkIQkJCGJB9rZ2QHg0qVLAEhCEi+IJF4UkgCQxAsjCUn8R5MEgCQkASAJAEk8P5L499jf3wdge3ubF5Uk7icJAElIQhKSkIQkJBERzOfzB2fma3PVVVddddVVV131fxvBVVddddVVV1111f9xGxsb7xURSCIikIQkJCEJAEk8kCQk8cJIQhKPfexjAbjtttsAkMQLI4kHkgSAJJ4fSTyQJCQBIInnJol/C0k8P5K4nyQAJPHcJPEfYW9vjzvuuAOA66+/nheVJCQBIAkASUhCEpKQREQQEZRS2NzcfC+uuuqqq6666qqr/m8juOqqq6666qqrrvo/brFYvHZEIAlJSOKBJHE/SUji3+LSpUtI4oWRxItKEg8kiQeSBIAk/iWSeFFJ4kUliedHEi8KSUhCEpKQhCTuuOMOAK6//nqeH0lI4vmRBIAkHkgSkpBERBARbG1tvTZXXXXVVVddddVV/7cRXHXVVVddddVVV/0fFhHv3ff9gyOCiEASkpCEJCQBIAlJ/FvceOONANx22228IJKQxHOTxANJAkASz48kXhhJ/GtI4oEkASAJSUjiRSGJfw1JSOIFufPOOwG4/vrrAZCEJCQhiftJQhKSkMT9JAEgCUlIQhKSkEREUEphNps9WNJrc9VVV1111VVXXfV/F8FVV1111VVXXXXV/2E7OzvvVUpBEpIAkIQk7ieJB5KEJCQhCUlIQhKSkMQD3XjjjQDcdtttPDdJSOJfIon7SeJfSxKSuJ8kXhhJ3E8S/xJJSAJAEg8kiedHEs+PJP4l+/v7AGxvbyOJF5Uk7ieJ+0kCQBKSkEREUEpha2vrs7jqqquuuuqqq676v4vgqquuuuqqq6666v+w2Wz22hFBRCAJSdxPEpK4nyQk8aKQhCQksbOzA8ClS5e4nyQk8cJI4l8iCQBJ3E8SkgCQhCQeSBL/WpJ4QSRxP0ncTxLPTRIPJAlJSEISknhR7O3tAbC1tcXW1hb/GpKQBIAkJAEgCUlIQhKSKKWwWCwenJkP5qqrrrrqqquuuur/JoKrrrrqqquuuuqq/6O6rnvvUgqSkIQkJCEJSUjifpL4t3jMYx4DwN/93d8BIAlJ/EeSxPMjiRdGEv8akgCQBIAkXhBJ/Ge74447ANje3ub5kYQkJCEJSTyQJAAkIQlJSEISkogIIoLZbPbgruvei6uuuuqqq6666qr/mwiuuuqqq6666qqr/o/a2dn5rIggIpAEgCQk8UCSeG6SkIQkXpgbb7wRgN3dXSTxopCEJO4nCQBJPJAkHkgSknh+JAEgiQeSxAsiiRdEEgCSAJDEf7U77rgDgOuvv577SUISknh+JCGJ+0nifpIAkIQkJBERlFI4fvz4e3PVVVddddVVV131fxPBVVddddVVV1111f9Bkl6767oHRwSSkIQk7icJAEncTxKSkMQDSUISkpCEJO534403ArC3t8eLQhIvjCQAJPGCSEISAJK4nyT+vSTx3CQBIInnJon7SQJAEv8WkpCEJCRx5513AnD99dcjCUm8qCRxP0lIAkASkpCEJCKCUgrz+fzBmfnaXHXVVVddddVVV/3fQ3DVVVddddVVV131f9BisXivUgoRgSQkIQlJSAJAEgCSkMS/hiQksbOzA8Btt93GCyMJSTw3STw3SdxPEgCSeG6SAJDECyOJfw1JAEjiuUlCEg8kCUn8W0lCEs9tf38fgO3tbf4tJPFAkpCEJCQREUgiIiilsLm5+V5cddVVV1111VVX/d9DcNVVV1111VVXXfV/0Pb29ntHBJKQhCQkIQkASQBI4t/qMY95DAC33XYbly5d4oEkIQlJSOJfIokXRBIAkpDEv0QSkvjXksT9JAEgiedHEpJ4QSTxL5GEJF6Qvb097rjjDra2trj++ut5fiQhCUlIQhKSuJ8kACQBIAkASUhCEpIopbC5ufnaXHXVVVddddVVV/3fQ3DVVVddddVVV131f0wp5b0jAklIQhIPJAkASTyQJCQhCUlIQhKSeGEuXboEgCQkIYkXhST+o0hCEpL4t5AEgCSemyQkIYl/DUm8IJJ4Udxxxx0AXH/99TyQJCTxgkhCEgCSAJAEgCQkIYmIICKICObz+YMlvTZXXXXVVVddddVV/7cQXHXVVVddddVVV/0fs7m5+V4RQUQgCUlIQhKSAJDE/SQhiRdGEpKQxP1uvPFGAG677TYk8e8liQeSxPMjCUkASEISz48kXhSSeH4k8a8liQeSxANJQhIvqjvvvBOA66+/HgBJSOJFJQkASQBIQhKSAJCEJCKCUgrb29ufxVVXXXXVVVddddX/LQRXXXXVVVddddVV/8csFovXjggkIQlJSEISAJIAkIQk/rUkIYkbb7wRgNtuu41/LUncTxL3kwSAJAAkASCJ5yaJ/wySkASAJB5IEpK4nyT+JZKQhCReVJKQxN7eHgBbW1tI4t9CEgCSeCBJSCIiiAgigu3t7ddurb02V1111VVXXXXVVf93EFx11VVXXXXVVVf9H7JYLL6rlEJEIAlJPJAkACTx/EjiRbWzswPApUuXeFFJQhIvjCQeSBIAkpDEA0kCQBKSkIQkJPEfRRKSkMT9JCEJAEkASOLfQxKSkMT99vf32dvbY3t7m+uvv57nRxKSkIQkJCEJSdxPEgCSkIQkJCEJSUiilEJEsFgs3ourrrrqqquuuuqq/zsIrrrqqquuuuqqq/4PWSwWrx0RSEISkpCEJCQBIIn7SUISkpAEgCQkIQlJPD+PecxjAPi7v/s7nh9JSEISkpCEJJ6bJAAk8aKShCTuJ4l/K0ncTxKSuJ8kXlSSuJ8k/rUk8YLs7e3x/EhCEi+MJO4nCQBJSEISkpBERCCJUgrb29uvzVVXXXXVVVddddX/HQRXXXXVVVddddVV/0dExHv3ff/giEASkpCEJCQBIAkASUjiRSEJSUjifjfeeCMAz3jGM5CEJCQhCUn8R5DE/STx3CTxL5HEv5YkJAEgiQeShCT+JZJ4UUnihbnjjjsAeNmXfVnuJ4kXlSQkASCJ5yYJSUQEEcF8Pn+w7dfmqquuuuqqq6666v8Ggquuuuqqq6666qr/IxaLxWuVUpBERCCJB5IEgCT+rSQhiRtvvBGA22+/nX8rSTyQJO4nCQBJSAJAEpIAkASAJAAkIYl/K0m8IJKQhCSemyT+PSTxL7nzzjsB2NraAkASL4wkJPHcJAEgCUlIQhKSkEREEBGUUtje3v4srrrqqquuuuqqq/5vILjqqquuuuqqq676P2Jra+u9I4KIQBKSkIQkJAEgiQeShCQkIQlJSOJfsrOzA8ClS5f4t5DE/SRxP0lI4oWRBIAkACRxP0lIAkAS/x6SeEEkIYnnJon7SeIFkYQkXhhJSGJ/fx+A7e1ttre3eUEkIYn7SUISkrifJAAkIQlJSEISkogISinM5/MHZ+aDueqqq6666qqrrvrfj+Cqq6666qqrrrrq/4Cu6947IpCEJCQhCUlIAkAS95OEJF4QSUhCEs/tMY95DAB/93d/x7+FJP6zSeJfSxKSkIQkACTxQJJ4bpIAkMRzk8Rzk8QLIwlJ3G9vb4877rgDgO3tbZ6bJCTxwkjifpJ4bpKQhCQigvl8/uBa63tx1VVXXXXVVVdd9b8fwVVXXXXVVVddddX/Advb258VEUQEkgCQhCQAJAEgCUn8a0hCEve78cYbAdjd3UUSkpCEJCQhiedHEpJ4IEkASOK5SeJ+kpCEJAAkASAJSUji30oSL4wkJCEJAEk8N0m8IJKQhCQk8cJI4vm54447ALj++ut5IEm8qCQhCQBJSEISkpCEJCKCiKCUwvHjx9+bq6666qqrrrrqqv/9CK666qqrrrrqqqv+l5P03n3fPzgikIQkJHE/SQBI4vmRxItCEpK48cYbAbj99tt5QSQhCUlIQhL/FpKQxANJAkASDyQJSfxHkYQkXhhJPDdJ/GtJQhIvyJ133gnAIx7xCO4niRdEEpKQhCQeSBIAkpCEJCQhCUlIIiKYz+cPtv3aXHXVVVddddVVV/3vRnDVVVddddVVV131v9xisXitiCAikIQkJCEJSQBI4n6SkIQkJAEgCUlIQhIvzM7ODgC33XYb/x6SeCBJSEISkvjXkMT9JPFvJQlJSOKFkYQk/iNI4l+yt7cHwPb2NgCSeH4kIYnnJglJ3E8S95MEgCQkERFEBKUUtra2Pourrrrqqquuuuqq/90Irrrqqquuuuqqq/6X29raeu+IQBKSkIQkJAEgCQBJSOJFIQlJPLfHPOYxAPzd3/0d/1Ek8S+RhCQkASAJAElI4oWRxL9EEi+IJCQhCUlI4oEkcT9JAEjiRSGJF0YSktjf3+eOO+4A4IYbbuC5SUIS/xJJ3E8SkgCQhCQkIYmIoJTCYrF4MFddddVVV1111VX/uxFcddVVV1111VVX/S/Wdd17l1KICCQhiQeSBIAk/i0kIYn73XjjjdxPEpKQxL+WJP4lkpCEJB5IEgCSeCBJSAJAEpKQxItKEg8kCUm8KCQhiQeSxAsjiRdEEpJ4oDvuuAOA66+/ngeSxL+GJB5IEpKQhCQkERFEBLPZ7MER8VlcddVVV1111VVX/e9FcNVVV1111VVXXfW/2Pb29mdFBJKQhCQkIQlJAEjigSQhCUlIQhKSeGEkIYkbb7wRgNtuu40HkoQkJCEJSTw/kpDE/SQBIIkHksTzI4kHkgSAJO4niecmiReVJCRxP0lIAkASAJIAkMS/hSReEEk8P3feeScA119/PfeTxAsiCUlIQhKSuJ8kJCEJAElIQhKSkEREUErh2LFj781VV1111VVXXXXV/14EV1111VVXXXXVVf9LSXrvruseHBFIQhKSkIQkACRxP0lI4gWRhCRemJ2dHQD+7u/+jn+JJCQhCUlI4oWRBIAknpskJAEgCUlIAkASAJL495LE/STxQJIAkASAJJ4fSdxPEpJ4IEm8IJJ4Qfb29gDY2trihZGEJJ4fSUjigSRxP0lIQhIRQSmF+Xz+YNuvzVVXXXXVVVddddX/TgRXXXXVVVddddVV/0stFovXKqUgiYhAEg8kCQBJSOJFJQlJPLfHPOYxAPzd3/0d/xEk8dwkcT9JAEjiRSWJfw1JvDCS+JdI4l8iCUlI4gWRxAsiif39fe644w62t7e5/vrrkcRzk8SLQhIAkgCQhCQkIYmIQBIRQSmFra2tz+Kqq6666qqrrrrqfyeCq6666qqrrrrqqv+ltra23jsiiAgkIQlJSEISAJJ4bpKQhCReGElI4n433ngj95OEJCTxbyGJ+0niBZHEA0kCQBIAkpCEJB5IEi8qSUhCEgCSkMT9JCEJAEkASOKBJAEgCQBJ/GtI4vmRhCTud8cddwBwww038Nwk8a8hCQBJAEhCEpKQREQQEZRSmM/nD+aqq6666qqrrrrqfyeCq6666qqrrrrqqv+Fuq5774hAEpKQhCQkIQkASdxPEpKQxANJQhKSeEEkIYkbb7wRgL/7u7/jgSQhCUn8W0nigSTxQJKQBIAkACTxQJIAkMS/lSTuJwlJ3E8SAJIAkIQk7ieJfwtJPD+SeG533nknAI94xCN4IEk8P5KQhCQkIQlJ3E8SAJK4nyQkIQlJRASz2ezBkj6Lq6666qqrrrrqqv99CK666qqrrrrqqqv+F9ra2vqsUgoRgSQAJCEJAEkASEISLwpJSOIF2dnZAeC2227jBZGEJCTx/EhCEveTxP0kIQlJAEgCQBIviCQAJAEgiftJ4oWRxAsiiftJQhL/WpL4l0ji+ZHE87O3twfA9vY295PEc5OEJF4QSUgCQBIAkpCEJCQhiYggIiilcPz48ffmqquuuuqqq6666n8fgquuuuqqq6666qr/ZSLivfu+f7AkJCEJSdxPEgCS+LeQxHN7zGMeA8Df/d3f8aKShCQkIQlJ/GtJAkASAJKQhCQkASCJ/0iSAJCEJO4nCUkASOJ+knggSdxPEi+IJJ4fSTw/ktjf3+eOO+4A4Prrr+f5kcSLShIAkgCQhCQAJCGJiKCUwnw+f7Dt1+aqq6666qqrrrrqfxeCq6666qqrrrrqqv9l5vP5a0UEEYEkJCEJSUgCQBL3k4QkJCEJSUhCEi+IJCRxvxtvvBGAS5cuIQlJSEIS/1aSAJDEc5PEc5PEc5PE/STx3CTxopLEi0IS95MEgCQAJPHcJPHcJPH8SOL5kcT97rjjDgAe+chHIokHksQLIglJSOKBJAEgiftJQhKSiAgiglIKm5ubn8VVV1111VVXXXXV/y4EV1111VVXXXXVVf/LbG5uvndEIAlJSEISkgCQBIAkJPHCSEISL4gkAG688UYA/u7v/o7nJglJ/GtI4oEk8dwkASCJ+0kCQBKSAJCEJO4nCUn8W0gCQBL3k4QkACRxP0k8kCTuJ4kHkoQkJCGJ50cSz00SknigO++8E4Drr7+eF4UkJPFAkpDE/SQBIAlJSEISkpBERFBKYbFYPLi19tpcddVVV1111VVX/e9BcNVVV1111VVXXfW/SN/3n1VKISKQhCQeSBIAkvjXkIQknh9J7OzsAHDp0iVeEElI4l8iiftJ4n6SkIQk7icJAElIAkASL4gk/i0kcT9JAEhCEveTBIAkJPEfSRLPTRLPz97eHgDb29tsb29zP0k8N0m8MJKQBIAkACQhCUlIQhIRQUQwm80e3Pf9a3HVVVddddVVV131vwfBVVddddVVV1111f8im5ub7x0RSEISkpCEJCQBIIkHkoQkJCEJSbwgknhuj3nMYwD4u7/7OyQhiRdGEpJ4fiTxopDECyMJAElIQhKS+M8gCUm8IJJ4IEkASOJFIYnnJokXZH9/nzvuuAOAra0tACTx3CTxopIEgCQeSBKSkEREUEphe3v7vbnqqquuuuqqq67634Pgqquuuuqqq6666n+JiHjvvu8fHBFEBJKQhCQkASCJ+0lCEs+PJCTx/EhCEve78cYbAbjtttu4nyQk8cJIQhKSkIQkHkgSAJJ4fiQhCUncTxKSAJDE8yMJAEm8KCQBIAlJAEhCEpK4nyQkcT9JSAJAEv8Wknhuknh+JCEJgDvuuAOAl3u5l+P5kcRzk4QkJCEJSTyQJAAkIQlJSEISkogISinM5/MHA6/NVVddddVVV1111f8OBFddddVVV1111VX/S2xubr5XRBARSEISkpAEgCQAJCGJF4UkJPH8SALgxhtvBOC2227juUlCEv9ekrifJJ6bJCRxP0kASOJ+kpAEgCTuJ4l/DUk8kCQkcT9JSOK5SUISDySJF0QSLypJPNDjH/94ALa2tpDEA0niuUni+ZGEJO4nCQBJSEISkpCEJCKCUgqbm5ufxVVXXXXVVVddddX/DgRXXXXVVVddddVV/zs8eLFYvHZEIAlJSOJ+kgCQxL+FJJ6fY8eOsbOzA8De3h4viCQk8aKSBIAk7icJSQBI4n6SuJ8kJAEgCQBJSOI/kiQAJPGCSAJAEs9NEveTxHOTxPMjiecmiee2t7fHHXfcwfb2Ntdffz0vjCT+JZKQBIAkHkgSEYEkIoJSCtvb26+dma/NVVddddVVV1111f98BFddddVVV1111VX/CywWi8+KCCICSUhCEpKQBIAk7icJSUhCEpKQhCQk8fxI4rndeOONAPzd3/0dAJKQxAsiiX+JJF4UkpAEgCQk8dwk8Z9FEg8kCUk8kCReFJKQhCQk8fxI4rlJ4rlJQhL3u/7667mfJB5IEv8akgCQhCQkIQlJRASSKKUQEcxms/fiqquuuuqqq6666n8+gquuuuqqq6666qr/Bba2tt47IpCEJCQhCUkASAJAEpL4l0hCEs9NEpK432Me8xgAbrvtNh5IEpJ4fiQhCUk8kCQkcT9JAEjigSTxgkhCEpKQBIAkJCEJSUjiX0sSkpCEJB5IEpK4nyQk8UCSkASAJAAk8aKSxHOTxHOTxP3+5E/+BIAbbrgBAEk8kCSemyQkIQlJSEISkrifJAAkIQlJAEgiIogISilsbm6+DlddddVVV1111VX/8xFcddVVV1111VVX/Q9Xa33viCAikIQkHkgSAJL415LE8yMJgBtvvBGA22+/nedHEi+MJCQhiRdGEpKQBIAk7icJAEn8a0nihZHE8yMJSUjifpKQxP0kASCJ+0niX0sSz00Sz00SD7S3twfA1tYWLwpJvDCSuJ8k7icJSUhCEpKICObz+YMkvTdXXXXVVVddddVV/7MRXHXVVVddddVVV/0Pt729/VkRgSQiAklIQhKSAJDE/SQhCUlIQhKSkMTzI4nn57GPfSwAf/d3f8elS5eQhCSemyQk8a8hCQBJvCCSkASAJAAkASAJSUhCEs9NEpL4jyAJSdxPEpIAkMTzIwkASbwwknhuknhuknhue3t73HHHHWxvb3PDDTfwQJJ4IEm8KCQhCQBJSAJAEpKQREQQEZRS2N7e/iyuuuqqq6666qqr/mcjuOqqq6666qqrrvofTNJ7d1334IggIpCEJCQhCQBJAEhCEi+MJCTx3CTx3G688UaeH0k8P5J4UUjigSTxQJJ4IEk8kCSemyQkIQlJ/FtJQhKSkIQk7icJSTw/knhBJPH8SOJFIYnnJglJ3HHHHQBcf/31/GtJQhKSkMQDSQJAEpKQhCQkIYmIoJTCYrF4sO3X5qqrrrrqqquuuup/LoKrrrrqqquuuuqq/8EWi8VrRQQRgSQAJCEJAEkASOJfQxLPTRKSuN+NN94IwN///d/z3CQhiecmCUm8IJK4nyTuJwlJSAJAEgCSAJCEJO4nCUlI4j+bJCRxP0kASAJAEgCSkIQknpskJAEgCUk8P5J4IEk8N0nc78477wTgkY98JPeTxANJ4oEkIYnnJglJ3E8S95MEgCQkERFEBKUUNjY2Pourrrrqqquuuuqq/7kIrrrqqquuuuqqq/4H29zcfO+IQBKSkMT9JAEgiftJQhKSkIQkJPH8SOL5kQTAzs4OALfddhuSeH4k8fxIQhKSkIQkJPGvIYnnJglJPJAkJCGJfwtJSEISz00S95OEJAAkASCJF0QSz00SL4gkHkgSz00SD7S3twfA9vY2119/Pc9NEg8kiX+JJO4nCUkASEISkpBERFBKYT6fP7i19tpcddVVV1111VVX/c9EcNVVV1111VVXXfU/1Hw+/66IICKQhCQkIQlJAEgCQBKSeEEkIYnnJonn57GPfSwAf/d3f8f9JCGJ5yaJfy1JAEjiuUnigSQhCUncTxKSkMQDSQJAEv8WkpCEJCQBIAlJPDdJ3E8SDyQJAEm8KCTxL5HEc9vf3+eOO+4A4IYbbkAS/xEkIQkASUhCEpKQhCQigohgNps9uO/79+Kqq6666qqrrrrqfyaCq6666qqrrrrqqv+hFovFa0cEkpCEJCQhCQBJAEjiRSWJ5yaJ53bjjTcCcPvtt/PcJPHcJPGiksQDSUISkpAEgCQkIYkHkoQkHkgSkrifJP6jSOJ+kgCQhCQAJCEJAEn8W0jiuUnigSTxQJKQBMCf/MmfAHD99dfzQJJ4IEk8N0lIQhKSkMQDSeJ+kpCEJCICSUQEpRS2trZem6uuuuqqq6666qr/mQiuuuqqq6666qqr/geqtb5313UPjggiAklIQhIAkpCEJB5IEpKQxAsiiecmiQd6zGMeA8Btt92GJJ6bJJ6bJCTxwkjifpJ4UUhCEpK4nyQAJHE/SfxHkYQkACQhCQBJvDCSkMQDSeIFkcRzk8QDSeKF2dvbA2B7e5sXRBLPTRLPjyQkcT9JSOJ+kpBERBARlFKYzWYPBt6bq6666qqrrrrqqv95CK666qqrrrrqqqv+B1osFu9VSiEikIQk7icJSdxPEpKQxANJQhKSeG6SeG6SkMRjHvMYAP7u7/6OS5cuASAJSTyQJJ4fSUjigSQhiftJAkASz00SkgCQxANJQhIAkgCQxP0kcT9J/GtIAkAS95PE/SQBIAlJSOJ+knhukrifJCTxQJJ4bpJ4IEk8N0k80N7eHnfccQfb29tcf/31AEjihZHEv0QS95OEJCQhCUlIQhIRQa2Vra2tz+Kqq6666qqrrrrqfx6Cq6666qqrrrrqqv9hJL32fD5/bUlIQhKSkIQkJHE/SbwoJPHcJPH83HTTTbwgknggSUji+ZGEJCTxwkgCQBKSuJ8kACQBIIn7SQJAEgCSkMS/lyTuJwkASUgCQBIPJAlJAEjifpJ4fiQhCUn8W0jigSQhiTvuuAOARz3qUTw3STyQJF5UkpDE/SQhCUlIIiKICEopLBaLB9t+ba666qqrrrrqqqv+ZyG46qqrrrrqqquu+h9ma2vrs0opRASSkIQkJCEJAElI4oEk8cJIQhIPJInnduONNwLwB3/wB0jiuUniuUniRSUJAEncTxL3k8RzkwSAJCQBIAkASTyQJCQBIIkXhSQeSBIviCQAJPHcJCGJ+0niRSWJB5LEA0nigSRxvzvvvBOA66+/nn8tSUhCEpKQhCQkcT9JSOKBJCGJiCAiqLUyn88/m6uuuuqqq6666qr/WQiuuuqqq6666qqr/oeZzWavHRFIQhKSkMT9JHE/SUhCEgCSkIQkJPH8SOKBJPFAOzs7AFy6dAkASUjigSTx3CTxL5HEA0nigSQBIAlJSEISAJK4nyQAJAEgCQBJ/HtJ4n6SkIQkJCEJAEkASAJAEi+IJP4lknggSTyQJB5IEg90xx13ALC9vc0NN9zACyKJB5LECyOJ+0lCEpKQhCQkIYmIoJTCYrF4cGvttbnqqquuuuqqq676n4Pgqquuuuqqq6666n+Q+Xz+XaUUJBERSOJ+kpAEgCQk8S+RhCSemyQeSBIAj3nMYwD4u7/7O56bJB5IEs9NEpJ4bpKQxP0kcT9JAEjiBZEEgCQkASAJAEkASOLfQxKSAJCEJJ4fSTyQJAAk8UCSeFFI4oWRxANJ4rlJ4o477gDghhtu4H6SuJ8kHkgSLwpJPJAkJCEJSUgiIogIZrPZg/q+fy+uuuqqq6666qqr/ucguOqqq6666qqrrvofZGtr670jgohAEpKQhCQkASCJfy1JPDdJPJAkHvOYxwBw++23IwlJPJAkHkgSz48kJCEJSTyQJJ6bJO4nCUlIQhL3k8T9JCEJSTw3STyQJF4YSTyQJO4nCUlIQhKSAJCEJJ6bJCQhiQeShCQeSBKSeG6S+NeQBMCf/MmfAHD99dfzL5HE8yMJSUhCEveThCQkASAJSUhCEpKICEopbG5uvjZXXXXVVVddddVV/3MQXHXVVVddddVVV/0PUWt974ggIpCEJCQhCUkASOJ+kpCEJCQhCUlI4vmRxL/kpptuAuDv/u7vuJ8kHkgSDySJfwtJPDdJPDdJSAJAEpJ4bpIAkASAJCTx7yGJ50cS95OEJCTx/EjigSQhCUk8P5J4IEk8kCQeSBL329vbA2B7exsASbyoJCGJ5yYJSdxPEpK4nyQigoggIiilMJ/PHyzpvbnqqquuuuqqq676n4Hgqquuuuqqq6666n+Ira2tz4oIJCEJSUhCEgCSAJCEJF4YSUjiuUnigSRxv8c85jEA/N3f/R2SeCBJPJAkHkgSkviXSAJAEgCSkIQkJAEgiftJ4n6SuJ8kJCEJSQBI4j+KJAAkIQlJSEISAJKQxANJ4oEkASCJF4UkHkgSDySJB5LEA+3v73PHHXewvb3NDTfcwANJ4n6SeCBJ/Esk8UCSkIQkJCEJSUQEpRQ2NjY+i6uuuuqqq6666qr/GQiuuuqqq6666qqr/geIiPfuuu7BEUFEIIkHkgSAJP41JPHcJPFAkgC46aabALj99tsBkMQDSeKBJPHcJPH8SEISLypJSAJAEpIAkIQknpsk/iNIQhIAknh+JHE/SQBIAkASAJL415DECyOJB5LEA0kC4PGPfzwAL/dyL8eLQhIvKkkASAJAEpIAkEREEBGUUlgsFg8GXpurrrrqqquuuuqq/34EV1111VVXXXXVVf8DbGxsvFcphYhAEpKQhCQkASCJ+0lCEpKQhCQk8fxI4rlJ4oEk8ZjHPAaA2267jftJ4oEk8UCSeG6SkIQkJCGJB5IEgCSemyQeSBL3k8T9JCEJSUgCQBKSkMS/liQkcT9JAEhCEpKQhCQAJCEJAEk8kCSemyReEEk8N0m8IJJ4IEnc74477gBge3ub+0nifpL4l0hCEpKQhCTuJwkASdxPEpKQREQQEdRamc1mn8VVV1111VVXXXXVfz+Cq6666qqrrrrqqv9mkl57Pp+/tiQkIQlJSEISAJIAkIQkXhBJSOK5SeKFecxjHgPAbbfdxt7eHg8kiQeSxANJ4kUliQeShCQkIQkASUhCEgCSkASAJCTx3CTxbyGJF0QSDySJ5yaJ+0niuUnifpKQxANJ4rlJ4oEk8YJI4oH29va444472N7e5oYbbuCFkcQDSUISz48kJAEgCQBJSEISkpCEJCKCUgpbW1uvbfu1ueqqq6666qqrrvrvRXDVVVddddVVV13132w+n79XKYWIQBKSkIQkACQBIIkXlSSemyQeSBL3u+mmmwC47bbbAJDEA0nigSTxQJL4l0jifpJ4fiTxQJK4nyTuJwlJSEIS/5EkcT9JSEISAJKQhCQkASAJSQBI4n6SAJDEA0lCEpL4l0jigSRxP0k8kCQkcccddwDwyEc+kheVJF4UkgCQBIAkJCEJSUgiIogISinMZrPP4qqrrrrqqquuuuq/F8FVV1111VVXXXXVf7ONjY33jggkIQlJSAJAEpKQxP0kIQlJSEISknhukpDEA0nigSQBcOONNwLwD//wD9xPEg8kiQeSxANJQhLPTRKSuJ8kACTxQJIAkIQkJAEgCUkASEISz48kJAEgCQBJ/GtIAkASz00SAJJ4YSQhiX8LSbwgknhBJHG/xz/+8QDccMMNPJAk7ieJF4UkJPFAkgCQBIAkJCGJiEASEUGtlfl8/uDW2mtz1VVXXXXVVVdd9d+H4Kqrrrrqqquuuuq/0Xw+/65SCpKICCRxP0lI4n6SkMQLIglJ/Esk8UCPfexj2dnZAeDSpUtI4n6SeCBJPJAknpskJCEJSTyQJB5IEpKQBIAkHkgS95MEgCQkIQlJSEIS95MEgCT+PSQhCUlIAkASAJKQhCQkIQlJPDdJAEjiXyKJB5LECyKJF2Rvb4877riD7e1tbrzxRv4lknhukpDE/SQhCUkASAJAEveThCQigoggIpjNZg/u+/69uOqqq6666qqrrvrvQ3DVVVddddVVV13132hzc/O9I4KIQBKSkIQkJAEgCUm8qCTxQJJ4YW666SYA/u7v/o77SeJ+knggSTyQJP61JPGCSEISkgCQhCQAJPGfRRIAkpDEc5MEgCReEEncTxIPJInnRxKSeCBJPJAk7ieJB5LE/SQhiTvuuAOA66+/nn8tSbwwkgCQhCQkIQlJSEISEUFEUEphsVi8DlddddVVV1111VX/fQiuuuqqq6666qqr/pvUWt87IogIJCEJSUhCEgCSeCBJSEISkpDE8yOJB5LEA0nifjfeeCMAf//3f88DSeJ+knggSTyQJF4YSUgCQBIAkpAEgCQk8dwkASAJSUhCEpKQhCQkIQlJSOLfQxL3k4QkJCEJAEkASEISkrifJAAkIYn7SeJ+kpCEJCQhiX+JJF4QSdxPEve78847AXjUox7Fc5PE/STxQJJ4UUjigSQhCUlIQhIRQSmF2Wz2IEmfxVVXXXXVVVddddV/D4Krrrrqqquuuuqq/yabm5ufVUpBEpKQhCQkASCJ+0lCEs+PJCTx3CTxQJJ4IEncdNNN7OzsAHD77bcjiRdEEi+MJCTx3CTxwkjifpKQBIAkACTxn0kSkviXSAJAEg8kCUk8P5L415LECyKJ+0niBdnb2wNge3ubG264AUn8SyTx3CQhCUlIQhL3kwSAJB5IEpKICCKCWiuLxeK9ueqqq6666qqrrvrvQXDVVVddddVVV13136CU8t593z9YEhGBJCRxP0kASEISLwpJPDdJPJAkHmhnZweAv//7v+d+krifJB5IEveThCSemyQkIQlJPJAkACTx3CRxP0kASAJAEpKQhCQkIQlJSEIS95OEJP6tJCEJSQBIQhIAkgCQBIAkHkgSkgCQxP0k8aKQxANJ4n6SeEEk8UD7+/s87nGPA+CGG27g30ISz48kJAEgCUlIQhKSkIQkJBERlFJYLBYPBt6bq6666qqrrrrqqv96BFddddVVV1111VX/Dba3tz8rIogIJCEJAElIAkAS95OEJCQhCUk8P5J4bpJ4QV7plV4JgL/7u79DEveTxP0k8UCS+LeQBIAkACQhCUlIAkAS95MEgCSemySemyQk8R9JEveThCQkASAJAElIQhL3k8T9JAEgiRdGEg8kiRdEEveTxANJAuDxj388AI961KO4nyTuJ4n7SeKBJPEvkcQDSUISkpCEJCKCUgqlFBaLxWdx1VVXXXXVVVdd9V+P4Kqrrrrqqquuuuq/WES8d631wRGBJCQhCUlIAkASAJKQxPMjCUk8N0m8MJK4387ODgC33347AJK4nyTuJ4kXRBKSeGEk8UCSeG6SAJCEJAAkIQlJSEISkgCQhCT+o0hCEs9NEpJ4IEkASOKBJPHCSEISDyQJSbwwkrifJO4niQeSxP329vYA2N7e5oYbbuBFJYkXlSQAJAEgCUlIIiKQRERQSmE+nz8YeG2uuuqqq6666qqr/msRXHXVVVddddVVV/0X29jYeK+IQBKSkIQkJAEgCQBJvCgkIYkHksQDSeKBJPHYxz4WgL//+79HEveTxP0kcT9J3E8Sz00SkpCEJCQhCUncTxL3k8T9JAEgiftJ4oEkcT9J3E8SkpDEA0ni30oSkpDE/SQhCUkASAJAEpKQBIAkJCEJSQBI4oEkIQlJPD+SuJ8kXhSSeKD9/X3uuOMOAG644QZeEEm8MJKQhCQkIQlJ3E8SkpDE/SQhiYhAEqUUaq3MZrPP4qqrrrrqqquuuuq/FsFVV1111VVXXXXVfyFJrz2bzV47IogIJCEJSQBIQhKSuJ8kJCEJSUji+ZHEA0nigSTxQK/0Sq8EwG233caLShL3k8S/hiQAJHE/SUgCQBIAkpAEgCQkIQkASUgCQBKSeG6S+PeQxHOTxANJQhKSeFFJ4kUhiRdEEveTxP0k8UCSAPiTP/kTAB71qEfxQJJ4fiTxQJJ4QSQhiftJQhKSkIQkJBERRASlFBaLxWvbfm2uuuqqq6666qqr/usQXHXVVVddddVVV/0X2tjY+KxSChGBJCQhCQBJSOJ+kpDE8yMJSTw3STyQJF6QnZ0dAP7+7/8eAEncTxL3k8QLIglJ/Esk8UCSeCBJAEjifpJ4IEncTxL3k4QkACQBIIl/L0lIQhIAkpCEJB5IEgCSkMRzk8SLShIPJIn7SeJFIYn77e3tAbC9vc0NN9zAv4YkXhSSeCBJSEISkpBERFBKodbKbDb7LK666qqrrrrqqqv+6xBcddVVV1111VVX/dd57fl8/toRgSQkIQkASUgCQBKSeFFI4rlJ4gWRBMBjH/tYAP7+7/8eSdxPEveTxP0kcT9JPDdJPD+SkMT9JHE/SUhCEg8kCUkASEISkgCQhCQAJPFAknhR2Oa5SQJAEgCSeCBJPJAkJCEJAEncTxKSkIQkACQBIAlJPDdJSOKBJPGCSOJ+krifJB5of3+fO+64A4Abb7yRF0YS/xJJSEISkrifJCQhCQBJAEhCEpKICEopLBaL17b92lx11VVXXXXVVVf91yC46qqrrrrqqquu+i+yWCzeKyKICCICSUhCEpIAkMQDSUISkpCEJJ6bJF4YSTyQJF7plV4JgNtuuw0ASdxPEveTxP0kcT9JPDdJSEISkpDEA0kCQBLPjyQkcT9JPJAkJCEJSQBIQhIvKtu8IJIAkASAJCQhCQBJSEISDySJ+0niRSEJSUhCEv8SSdxPEveTxP0k8UCSAPiTP/kTAB71qEfx3CTx/EjigSQhiecmCUncTxKSAJCEJCKCiCAiKKVQa6Xruvfiqquuuuqqq6666r8GwVVXXXXVVVddddV/jQcvFov3jggkIQlJSEISAJIAkIQkJPH8SEISDySJB5LEA0nigXZ2dgD4h3/4B+4niX+JJO4niReVJB5IEpIAkIQk7icJSQBIQhKSeG6SuJ8kACQhiftJ4t9CEg8kiQeShCQkASAJSQBI4oEkASCJF5Uk/j0kcb/9/X0Atre3ueGGG5DEv4Yk/iWSuJ8kJCEJSUhCEpKICEopzGaz18nM1+aqq6666qqrrrrqPx/BVVddddVVV1111X+B+Xz+WaUUIgJJSEISkgCQBIAkXlSSeCBJPJAknp/HPvaxAPz93/89AJJ4bpK4nyQeSBL3k4QkXhhJ3E8SDySJ+0nigSQhCQBJSEISkpAEgCQkASCJ/2iSkASAJCQhiQeSxP0kASAJSUjigSTxL5HEA0nifpK4nyTuJ4n7SeJ+ktjb2+OOO+4A4IYbbuD5kcT9JPFvIQlJ3E8SkgCQREQQEZRS6Pv+QV3XvRdXXXXVVVddddVV//kIrrrqqquuuuqqq/4LbGxsvHdEEBFIQhKSAJCEJCRxP0lIQhKSkIQknpskHkgSDySJ+0kC4JVe6ZUA+Pu//3uemyTuJ4n7SeKFkYQkJAEgCUlI4n6SAJDEc5MEgCQkIYn7SQJAEg8kiftJ4j+CJCQBIAkASUhCEgCSkIQkJAEgCUm8IJK4nySeH0lI4oEk8R/hT/7kTwB49KMfzb+GJJ6bJCQhCUlI4oEkIYn7SUISkogIIoJaK7PZ7LVtP5irrrrqqquuuuqq/1wEV1111VVXXXXVVf/JZrPZd5VSiAgkIQlJAEhCEveThCReEEk8N0k8kCRekGPHjrGzswPA7bffjiQAJHE/SdxPEveTxP0k8YJI4rlJAkASAJKQhCQkASCJ+0lCEpKQhCQAJCEJSQBIQhL3kwSAJF5UknhukgCQBIAkACQBIIn7SeKBJCEJSUhCEgCSuJ8kJAEgCUk8N0k8kCTuJ4n7SeJ+krifJO63v78PwPb2NjfccAMAknhukrifJB5IEpJ4fiQhiftJQhKSkIQkJCGJiKCUwmw2e3Ct9bO46qqrrrrqqquu+s9FcNVVV1111VVXXfWfbHNz870jAklIQhIAkpAEgCQk8aKQhCQeSBIviCTu90qv9EoA/P3f/z3PTRL3k8TzI4n7SUIS/xJJPJAknpskACQhCQBJPJAk7icJSTyQJAAkASCJfw9JAEgCQBKSkASAJCQBIAlJSOJfQxIvCkncTxL3k8T9JHE/SdxPEnt7ezzucY8D4IYbbuA/iyQkASAJSUhCEpKICCKCUgqlFGaz2Wtz1VVXXXXVVVdd9Z+L4Kqrrrrqqquuuuo/Ud/3nxURSEISkpCEJCQBIIkHkoQkJCEJSUjiuUnigSRxP0k8PzfddBMAf//3f48kACRxP0k8N0m8MJKQxHOThCTuJ4n7SUISkpAEgCTuJwkASUhCEgCSkMT9JAEgiX8vSTw3SQBI4oEkcT9JPJAknpskACTxopDEf7THP/7xADz60Y/mgSTxL5HEc5OEJCQhiQeSxP0kIQlJSCIiiAhKKfR9/+CI+C6uuuqqq6666qqr/vMQXHXVVVddddVVV/0n2tra+uyIICKICCQhCUkASAJAEpKQxAsiiecmiRdEEveTxE033cTOzg4At99+Ow8kiecmiftJ4n6SeH4kIQlJSOKBJAEgiedHEgCSkASAJB5IEpKQhCQkASCJfy9JAEhCEpK4nyQAJCEJSQBIQhIAkpCEJAAkIQlJSAJAEgCSkMTzIwlJPJAk7ieJ+0nifpK4nyTuJ4n77e/vs7e3x/b2NjfccAMvjCTuJ4nnJonnJglJ3E8SkrifJCQhCUmUUqi1MpvNXpurrrrqqquuuuqq/zwEV1111VVXXXXVVf9Juq77rIggIpCEJCQhCQBJAEjiRSWJF0YSL8hjH/tYAP7+7/+e+0niuUnifpK4nyTuJwlJvCgkASAJAElIAkASkgCQhCQkIQkASUhCEpJ4IElIAkASkpDEc5PEv4Uk7ieJB5KEJAAk8UCSeFFIQhIAkpDEc5PEv0QS95PE/SRxP0ns7e3xuMc9DoBHP/rRPDdJvCgk8cJI4n6SkIQkJCEJSUQEEUEpha7rHizpu7jqqquuuuqqq676z0Fw1VVXXXXVVVdd9Z9ke3v7syOCiEASkpAEgCQkIYn7SUISkpCEJCTx3CTxQJJ4IEncTxL3u+mmmwD4+7//eyRxP0kASOJ+krifJO4niQeSxAsiCUm8IJK4nySemyTuJwkASUhCEveTxH8WSdxPEpKQxP0kASAJSUgCQBL3k4QkACTx3CTx/EjigSRxP0m8qCRxvzvvvBOAG2+8kX8LSbwoJCEJAElIQhKSkIQkIoKIoOs65vP5a3PVVVddddVVV131n4Pgqquuuuqqq6666j9B13WfFRFEBJKQhCQAJCGJ+0lCEi+IJCTxQJJ4IEm8MI997GPZ2dkB4PbbbwdAEs9NEv8SSTyQJCQhCUlIQhIPJAkASUjifpKQBIAkJCEJSQBIQhIAknggSUjiuUlCEv9WkpCEJAAkIYn7SUISkpCEJB5IEgCSkMT9JAEgiX+JJB5IEveTxP0kcT9J3E8Sz8+dd97JHXfcwfb2NjfccAP/EkncTxLPTRKSkIQkJPFAkrifJCQhiYhAEhFBKYWu6x4s6bu46qqrrrrqqquu+o9HcNVVV1111VVXXfWfYHt7+7MjAklIQhIAkpAEgCQk8aKSxANJ4gWRxP0kcdNNNwHw93//90jifpIAkMT9JAEgiftJ4oEk8aKSBIAk7icJSdxPEs9NEpKQhCQAJCEJSdxPEpKQxIvKNi8KSdxPEpIAkMQDSUISkgCQxANJ4oEk8YJI4oEk8a8hiftJ4n6SALjjjjsAePSjH83zI4kXhSSeH0lI4n6SkMT9JCGJiCAiKKVQa2U+n78OV1111VVXXXXVVf/xCK666qqrrrrqqqv+g9VaP0sSEUFEIAlJSEISAJK4nyQkIQlJSEISknhuknggSdxPEi/IYx/7WAD+8A//EABJPDdJPDdJ3E8SDyQJSbwgkpAEgCQAJPHcJAEgCUlIQhKSeCBJSOJ+kpDEA0ni30oSknhukpCEJCQhCQBJSEISkrifJAAkIQlJ3E8S95OEJCQhCUlI4oWRxP0kcT9JPDdJ3E8S93vCE54AwI033ogkXhSSeCBJ/EskIQkASUhCEpKQhCQigoiglELXdQ8Cvourrrrqqquuuuqq/1gEV1111VVXXXXVVf/Bjh8//tmlFCQhCUlIQhIAkgCQhCReGElI4oEk8YJI4n6SAHjsYx8LwO23387e3h7PTRLPTRL3k8T9JPHcJCEJSUhCEpK4nyQeSBKSkIQkACTxQJIAkIQkJHE/SUjiX8s2LypJSEISz48k7icJAElIAkASz00SAJJ4UUnifpJ4fiRxP0n8S/b29rjjjjvY3t7mxhtv5AWRxPMjiedHEpJ4bpIAkIQkJCEJSUgiIiilUEphsVi8NlddddVVV1111VX/sQiuuuqqq6666qqr/gN1XfdZtpGEJCQhCUkASAJAEv8aknggSdxPEi/MTTfdBMDf//3fAyAJAEncTxIAkrifJJ4fSbyoJHE/SUjiuUkCQBKSkASAJO4nCUlIQhKSkIQkJCEJSTyQJP4lknhuknggSUhCEpKQBIAkJAEgiftJAkASAJKQxANJ4l8iiRdEEi+MJO4niftJAuDxj388AK/wCq/Av5ckJHE/SUhCEveTxP0kIQlJSEISEUEphVrrg4Hv4qqrrrrqqquuuuo/DsFVV1111VVXXXXVf6Ctra3PjggigohAEpKQhCQkIQkASUhCEpKQhCQkIYnnJokXRBL3k8T9JPHYxz4WgNtvv53nJonnJonnJokHkoQkXhhJ3E8S95OEJCQhCQBJPJAkACQhCQBJ/EskIYn/CJKQxPMjCUkASAJAEpJ4IEk8kCTuJ4nnRxKSeCBJ3E8S95PE/STx3CRxP0nc78477wRge3sbAEm8KCTxQJJ4YSQhCQBJSOJ+kogIIoKIoJRCKYX5fP7aXHXVVVddddVVV/3HIbjqqquuuuqqq676D9J13WdFBBGBJCQhCUkASAJAEpL4l0jiuUnifpL4lzz2sY8F4O///u/Z29tDEgCSeG6SeG6SuJ8knpskJCEJSUhCEpK4nyQAJPH8SAJAEpKQBIAkJCEJSQBIQhKSkIQkJCGJB5LEv4ck7icJSUhCEpK4nyQAJHE/SUhCEg8kCQBJ3E8SkpCEJCTx3CTxL5HE/STxwkhib2+PO+64g+3tbR796EdzP0k8N0k8P5J4UUkCQBKSkIQkJCGJiCAiqLXSdd2DJX0XV1111VVXXXXVVf8xCK666qqrrrrqqqv+g2xtbX12RBARSEISkgCQBIAkHkgSkpCEJJ6bJCTxgkjifpK4nyQAHvvYxwJw++2389wkASCJ+0kCQBL3k8T9JCGJF5UkACQBIAlJSEISkgCQhCQkIQlJSOJ+kpDECyOJ5yaJF4UkACQhiRdGEpKQhCQkASAJSTyQJCQhiQeSxItCEg8kiftJ4oWRxP0k8dz+5E/+BIBXfMVX5D+KJCQhCUk8kCQAJCEJSUhCEpKICEoplFKYzWavzVVXXXXVVVddddV/DIKrrrrqqquuuuqq/wBd131WRBARSEIS95OEJCQBIAlJSOK5SUISz00S95PEi+Kmm27ipptuAuAf/uEfkASAJJ6bJJ6bJO4niQeSxAsjCUk8kCSeH0k8N0kASEIS95OEJCQhCUlI4j+DJCQhCUlIQhIAknggSUgCQBKSeH4kcT9JvDCSeCBJ3E8S95PE/STx3CRxP0ncb39/H4Dt7W1uvPFGHkgSz00S95PEA0lCEs9NEpK4nyTuJwlJSEISEUFEUEqh67oHR8R3cdVVV1111VVXXfXvR3DVVVddddVVV131H2Bra+uzIwJJSEISkpCEJO4niReFJF4YSdxPEveTxP1e7MVeDIC///u/536SAJAEgCSemyTuJ4n7SeKBJCEJSUhCEpKQxP0kIYn7SUISkpCEJAAkIQlJSAJAEpKQhCQkIYnnRxIAkvi3ksT9JPH8SEISAJKQhCTuJ4n7SUISkpCEJAAkcT9JSOKBJCGJB5LEv0QS95PEc5PE/SSxt7fH4x73OAAe/ehH859JEpIAkIQk7ieJiCAiiAhKKUQEfd+/dmY+mKuuuuqqq6666qp/H4Krrrrqqquuuuqqf6fZbPZdEUFEEBFIQhKSkASAJCRxP0lIQhKSkMRzk8QDSeJf46abbgLgH/7hH5DECyIJAEncTxLPjyReVJK4nySeH0lIQhIPJInnJgkASUhCEpK4nyQAJPGvIYkXRBKSkIQk7icJSQBIQhKSkIQkJPH8SAJAEg8kCUlI4l8iiftJ4rlJ4n6SeG6SuN+f/umfAnDjjTfy/EjiXyKJF5UkACQhCUlIQhKSiAgiglorXdc9uNb6WVx11VVXXXXVVVf9+xBcddVVV1111VVX/TttbGy8d0QgCUlIQhKSAJAEgCQkIYnnRxKSeCBJPJAk7ieJ+0nifpJ47GMfy87ODpcuXeL2228HQBIAkgCQxHOTxHOTxANJQhIvjCTuJwkASUhCEpKQxANJQhKSAJCEJCQhCQBJSOKBJPEfSRIAknhukpDE/SQBIInnJglJAEhCEg8kiX+JJCRxP0ncTxL3k8QLI4nnZ29vjzvuuIPt7W1uvPFGXhSSuJ8knpskJCEJSUhCEveTBIAkJCEJSUhCEhFBRBARzGaz17H9YK666qqrrrrqqqv+7Qiuuuqqq6666qqr/h1ms9l3RQQRQUQgCUlIAkASAJJ4UUnigSTxQJK4nySen5tvvhmAP/zDP0QSL4gkACTx3CRxP0k8N0lIQhKSkIQkJHE/SQBI4vmRhCQkcT9JSEIS95OEJO4nCUncTxL/ESQBIIn7SUISkgCQhCQkIQlJAEhCEpKQxP0k8UCSuJ8kXhBJ/GtJ4n6SeG6SuJ8kAB7/+McD8Iqv+Iq8IJJ4UUjiBZGEJAAkASAJSUhCEpKICEoplFKotT6o1vpZXHXVVVddddVVV/3bEVx11VVXXXXVVVf92z14sVi8d0QgCUlIQhKSkIQkJHE/SUhCEpKQhCSemyQeSBL/Eknc77GPfSwAd9xxBwCSAJAEgCSemyQAJHE/SdxPEpJ4UUkCQBIAkpCEJCQhCQBJAEhCEgCSAJCEJAAkIQlJ3E8SkvjPIon7SUISAJJ4IEk8N0lI4n6SkASAJO4nCUlIQhKSkMRzk8T9JHE/STw3SdxPEs9NEve78847Adje3ubfQxIvCkkASOKBJBERSCIiKKUQEfR9/9q2X5urrrrqqquuuuqqfxuCq6666qqrrrrqqn+jxWLxXaUUIgJJSEISkgCQBIAkJCGJF0QSknggSTyQJO4niftJ4oEe+9jHAvD3f//37O3t8YJIAkASz00S95PEA0nihZGEJAAkASCJ50cSAJKQhCQkASAJSUhCEgCSAJCEJB5IEpIAkMS/lyQAJCGJ+0kCQBKSkASAJCQhCUncTxKSuJ8kACTxopLEv0QSz00S95PEc5PE3t4ed9xxBzs7O7ziK74iLypJ3E8Sz48kJCEJSdxPEgCSkIQkJCGJiEASEUFEUGt9cK31vbjqqquuuuqqq676tyG46qqrrrrqqquu+jeQ9Nrz+fy1IwJJRASSkASAJAAk8a8hiQeSxL+GJF7lVV4FgDvuuAMASQBIAkASz00SAJK4nyTuJ4kHkoQkJCEJSUhCEveTxANJQhKSkIQkACTx3CQhiQeSBIAk7icJAEncTxIAkvi3kMT9JHE/SUgCQBKSAJCEJB5IEpKQxANJ4oEk8cJIQhIPJIn7SeK5SeK5SeJ+knhuf/InfwLAox/9aF4YSbwoJCGJ5yYJSQBIAkASkpCEJCQREUQEpRQigsVi8d62X5urrrrqqquuuuqqfz2Cq6666qqrrrrqqn+DxWLxWRGBJCQhCUkASEISkgCQhCQkIQlJSEISkpDEA0nigSRxP0ncTxL3kwTATTfdxM7ODgD/8A//wAsiCQBJPDdJ3E8S95PEi0oS95OEJJ4fSQBIQhKSkIQkACQhCUkASAJAEpIAkMR/BEncTxKSAJCEJO4niftJAkASkpCEJB5IEpKQxP0kcT9JSOK5SeK5SeJ+krifJJ6bJJ6bJO4nifvt7+8DsLOzw4033si/hiQeSBL/EkkASAJAEpKQhCQkERGUUogIJNH3/Wdx1VVXXXXVVVdd9a9HcNVVV1111VVXXfWvJOm1Z7PZa0cEEYEkJAEgCUkASEISLwpJPJAk/i1e7MVeDIB/+Id/AEASAJIAkMQLIonnRxL3k4QkXhBJSOJ+krifJCQhCUlIAkASkgCQhCQAJCEJSUhCEgCSuJ8k7ieJfytJAEjiBZGEJAAkIQlJSAJAEveThCQk8dwkASCJB5KEJCQhiecmiedHEveTxHOTxHOTxP0ksbe3xx//8R8D8JjHPIZ/iSSeH0m8qCQBIIkHkkREIImIoJRCRND3/Wvbfm2uuuqqq6666qqr/nUIrrrqqquuuuqqq/6VFovFZ0UEkpCEJAAkIQkASTyQJCQhCUlI4rlJ4oEkcT9J3E8S95PEAz32sY8F4A//8A+RBIAkACQBIAkASQBI4rlJ4oEk8UCSkIQkJCEJSTyQJAAkIYnnRxL3k8T9JPHcJCEJAElIAkASkgCQxH8kSQBIAkASkpDEA0kCQBKSAJAEgCQkIQlJAEgCQBIvCkk8kCReGEk8N0k8N0nc7wlPeAIAN910EwCS+I8gCUlIQhKSuJ8kACQhCUlIQhIRgSQigoggIpjNZt/FVVddddVVV1111b8OwVVXXXXVVVddddW/QinlvWez2WtHBBGBJCQhCUkASAJAEpKQxPMjCUk8kCQeSBL3k8QL82Iv9mIA3H777ezt7fGvIQkASdxPEg8kiReFJCQBIIn7SUISkpCEJAAkIQlJSEISAJKQhCQkASAJSUgCQBL/Wrb5l0hCEgCSAJAEgCQAJCEJSQBIQhKSkASAJJ6bJB5IEpJ4fiQhiQeSxP0kcT9JPDdJPDdJPDdJ7O3tcccdd7C9vc1jHvMY/rUk8UCSkMTzIwlJAEgCQBKSkIQkJBERRAQRQUTQdd2Dgffmqquuuuqqq6666kVHcNVVV1111VVXXfWvsFgsPisikIQkJCEJSUhCEpKQxItKEg8kiX+JJO4nCYAXe7EXA+Af/uEfkASAJAAkASAJAEkASOK5SeJ+knggSUji+ZGEJO4nCQBJSOK5SUISknggSUhCEpIAkIQkACQBIIl/Ldv8SyRxP0kASAJAEgCSkIQkJCGJ5yYJAElIQhKSuJ8kHkgSkpCEJCTx3CTx/EjifpJ4bpJ4bpJ4bo9//OMBeMxjHsP9JPGCSOLfQxIAkgCQhCQkIQlJRASlFCKCiGA2m302V1111VVXXXXVVS86gquuuuqqq6666qoXUa31s7que3BEEBFIQhKSkASAJO4nCUlIQhKSkIQknpskHkgS95PE/STx/Nx0003cdNNNAPzDP/wDLwpJAEgCQBL3k8T9JPHcJCEJSUhCEg8kCQBJ3E8SkpCEJAAkASAJSUgCQBL3k8T9JAEgiftJQhKSAJDEfyRJAEgCQBLPTRKSkIQkJAEgiedHEgCSeFFJ4oEk8cJI4rlJ4rlJ4n533nknADfeeCM33ngjDySJF5Uknh9JSEIS95MEgCQeSBIRQUQQEUQEEUGt9UGSPourrrrqqquuuuqqFw3BVVddddVVV1111Ytoc3PzsyMCSUhCEpKQhCQkASAJSbwwkpDEA0niX0MS93vxF39xAP7hH/4BSQBIAkASAJIAkMQLIon7SeJ+kpDEv0QSkgCQBIAkJPHcJAEgCUlIQhKSAJCEJCQhCUkASAJAEpJ4fiTx7yWJ+0kCQBIAkpCEJCQBIIkHkgSAJCQhCUlIAkASAJKQxAsiCUk8kCTuJ4n7SeK5SeK5SeK5SWJvb4/HPe5xADzmMY/hP4okJPFAkpAEgCQAJCEJSUhCEpKICCKCiKCUQt/37237wVx11VVXXXXVVVf9ywiuuuqqq6666qqrXgSz2ey7IoKIICKQhCQkIQkASUjiuUlCEs+PJB5IEveTxP0kcT9JPLfHPvaxAPzDP/wDLwpJAEgCQBL3k8T9JPFAkpCEJO4nCUlI4n6SAJDE/SQhCUlIAkASz00SkpDEA0lCEgCSeH4k8e8hCQBJAEhCEgCSAJCEJO4nCUkASEISkgCQxPMjCQBJ3E8SkpAEgCQk8dwkcT9J3E8S95MEgCTuJwkASdxPEgCSuN+f/umfAnDjjTfy/EjiuUnifpJ4IEm8MJIAkASAJCQhCUlIQhIRQUQQEdRaH1xK+Syuuuqqq6666qqr/mUEV1111VVXXXXVVf8CSa89n8/fOyKQhCQkIQlJAEjifpKQhCQkcT9JSEISDySJB5LE/STxwkjixV7sxQC4/fbbueOOOwCQBIAkACQBIIkXRBL3k8T9JPH8SEISz00SAJIAkIQkHkgSkgCQhCQkIQkASQBIQhKSuJ8k7icJSUji30sSL4gkACRxP0lI4n6SkASAJCQBIAlJAEhCEg8kiecmiedHEv8SSTw3STw3STw3Sezt7XHHHXews7PDYx7zGP49JPGikASAJAAkIQlJSEISEUFEIIlSCn3fv7bt1+aqq6666qqrrrrqhSO46qqrrrrqqquu+hfM5/PPKqUQEUQEkpCEJAAkASAJSbwoJPFAkviXSOJ+krjfYx/7WAAe97jHASAJAEkASAJAEgCSAJAEgCTuJ4n7SeJ+kpDECyMJSQBIAkAS95OEJCQBIAlJSEISAJKQBIAkJCEJSUhCEgCSkMQDSeI/giTuJ4n7SQJAEpKQhCQkIQlJAEjifpK4nyTuJwlJ3E8S/xJJPJAk7ieJ5yaJ5yaJ5yaJ5/b4xz8egMc85jG8IJJ4bpL4l0hCEpKQxP0kIQlJAEgCQBIRQUQQEUQEEUGt9cFd130WV1111VVXXXXVVS8cwVVXXXXVVVddddULcM011zz49V7v9X5rNpu9dkQgCUlIQhKSkIQkJHE/SUhCEpKQhCSemyQeSBL3k8T9JPGC3HTTTdx8880A/MM//AP/VpK4nyTuJ4kHkoQkJCEJSUhCEveTBIAkACQhiftJQhIAkrifJAAkIQlJPDdJSOI/myQkASAJSQBIQhLPTRIAkpCEJCQBIAlJ3E8S95PE/SQhiecmCUk8kCTuJ4n7SeK5SeK5SeK5SeJ+d955JwA33XQTN954I/8WknggSUjiuUlCEveThCQAJCEJSUgiIpCEJCKCvu9f+8M//MOffs011zyYq6666qqrrrrqqueP4Kqrrrrqqquuuuq5XHPNNQ9+x3d8x8/6pm/6pqc/7WlPe+2IQBIRgSQkIQkASdxPEpJ4QSQhiQeSxL+GJB7oxV7sxQD4h3/4BwAkASAJAEkASAJAEgCSAJDE/SRxP0ncTxKSeFFIAkASAJK4nyQkcT9JAEhCEpKQBIAkACQhCUlI4n6SkIQkJCGJ/2ySkASAJCQhCUkASOKBJCGJ+0lCEveTBIAkHkgSkpCEJJ6bJP4lknhuknhuknhuktjb2+Nxj3scAI997GP595LEv0QS95OEJCQhCUlIQhIRQUQQEUQEP/3TP/3gz/3cz/3td3zHd/wsrrrqqquuuuqqq54XwVVXXXXVVVddddUDvOM7vuNnfdM3fdPTX+/1Xu+zv/Vbv5WLFy8SEUQEkpCEJAAkASAJSbyoJPFAkrifJO4niftJ4rlJ4sVe7MUA+KM/+iMk8W8hiedHEg8kCUk8N0lIQhIAkgCQBIAkJCEJSUhCEgCSkMT9JCEJAElIQhKSkIQkJPGCSEISAJL495KEJCRxP0lIQhKSkIQkACQhCUncTxKSkASAJCQBIAkASUjiXyKJB5LE/STx3CTx3CQBIIn7SQJAEvf70z/9UwBuvPFGXhhJPDdJvCgk8UCSkASAJCQhCUlIIiKICCQhiYjgwoUL/OiP/uiD3umd3umzv+mbvunp7/iO7/hZXHXVVVddddVVVz0b5fjx41x11VVXXXXVVVe92Iu92Gt/7ud+7m+90iu90lv/zM/8DF/3dV/HHXfcQSmFiCAiiAgigohAEhGBJCQREUhCEpKQhCQkIQlJAEhCEpIAkIQkJAEgCUkASEISAJIAkIQkAF78xV+chz/84fzDP/wDj3vc45AEgCQAJAEgCQBJAEgCQBIAkpAEgCQAJCEJSQBIQhKSkIQkJCEJSUhCEhGBJCQhiYhAEpKQhCQkERFEBBGBJCKCiCAiKKUQEZRSiAgigoggIogIIoJSCqUUSimUUogISilEBBGBJCICSUhCEpJ4fmxjG9vYxja2sU1mkplkJraxTWaSmWQmmUlmYhvb2MY2trGNbQBsYxsA29gGwDYAtnkg2zyQJJ6bJO4niftJ4rlJ4gWRxHOTxHq95sYbb+TMmTPs7+9z9uxZ/i0k8dwk8fzY5n62sc39bHM/2zzQM57xDH7nd36HWuvxt3/7t3/t13md13nvra2tE//wD//w21x11VVXXXXVVf/fUY4fP85VV1111VVXXfX/14u92Iu99ud+7uf+1pu/+Zt/9HK5PP71X//1/MEf/AGZSa2VUgqlFCKCiCAikEREIImIQBKSkIQkJCEJSUhCEpKQBIAkJCEJAElIAkASkgCQhCQAJCEJAEkAvNVbvRWz2Yy/+qu/4ty5cwBIAkAS95MEgCQAJCEJAEkASAJAEpIAkIQkJCEJAElIQhKSkIQkIgJJSCIikEREIImIICKICCKCiEASEYEkIoKIICKICCKCUgoRQSmFUgqlFEoplFIopRARRAQRQURQSiEiiAgiAklEBJKQhCQk8fzYxja2AbCNbTKTzCQzyUwyk8zENraxjW1sk5nYJjOxjW1sA2Cb+9nmfrYBsA2AbV5UkrifJO4niftJ4rlJAkASz00Sz21vb4/HPvaxnDlzhr/+67/mhZHEi0ISL4xtHsg2trmfbQBsY5v77e/v86QnPYk/+IM/4DGPeczx13qt13rt13md13nvo6OjS7feeutfc9VVV1111VVX/X9FOX78OFddddVVV1111f8/L/ZiL/ban/u5n/tbb/7mb/7Ry+Xy+A//8A/znd/5nZw7d47WGqUUSilEBBFBRBARRASSiAgkIQlJRASSkIQkJCEJAElIQhKSkASAJCQBIAlJAEhCEgCSAJCEJAAk8eIv/uK82Iu9GAA/93M/x/0kASAJAEkASAJAEgCSAJCEJAAkASAJSUgCQBKSkIQkJCEJSUhCEpKQREQgCUlIIiKQhCQkIQlJRASSiAgiAklEBKUUIoKIoJRCKYWIICKICCKCiKCUQkQQEUQEEUFEEBFEBBGBJCICSUhCEs+PbQBsYxvb2CYzsY1tbGMb22QmmUlmkpnYxjaZiW1sYxvb2AbANrYBsI1tAGxjm/vZ5oWRxItCEveTBIAknpsknpskACQB8NCHPpSdnR3uvPNO9vb2+NeQxANJ4kVlm+fHNra5n23ul5ksl0v+4A/+gHPnzvGYxzzm+Gu/9mu/9eu8zuu899HR0aVbb731r7nqqquuuuqqq/6/oRw/fpyrrrrqqquuuur/j3d8x3f8rA//8A//7jd/8zf/6NVqdfzXf/3X+YZv+AZuu+02bGMbgFIKEUEphYggIogIJBERSEISEYEkJCEJSUhCEpKQhCQAJCEJSUgCQBKSAJCEJAAkASAJSQBIAkASL/uyL8s111zDH/3RH3HHHXcAIAkASQBIAkASAJIAkASAJAAkASAJSQBIQhKSAJCEJCQhCUlIQhKSkEREIImIQBIRgSQigoggIogIIgJJRASSiAgigoggIiilEBGUUogISimUUiilUEqhlEJEUEqhlEIphYggIogIIoKIQBKSkIQkJPH82AbANraxjW1sk5lkJplJZpKZ2MY2trFNZpKZ2MY2mYltbANgm+fHNrYBsM0D2ea5SeK5SeJ+knhuknhuknhukgCQxAOt12tmsxk33XQTOzs7PO5xj+PfShLPTRIPZJsHss1zsw2AbWxzP9u01ogIAG6//Xb+6q/+iqOjIx70oAcdf+3Xfu23ft3Xfd332djYOPYP//APv8NVV1111VVXXfX/BeX48eNcddVVV1111VX/t11zzTUPfrM3e7OP+tzP/dzffvEXf/HXXq1Wx3/913+db/iGb+CJT3witrGNbVpr1FoppVBKISKICCICSUQEkogIJCEJSUhCEpKQhCQkIQlJSEISAJKQBIAkJAEgCUkASEISAJIAkIQkAN7qrd4KgF/91V9lvV4jiftJAkASAJIAkASAJAAkIQkASQBIQhKSAJCEJCQhCQBJSEISEYEkJCGJiEASEYEkIoKIQBKSiAgigoggIogIIoKIICKICCKCUgoRQSmFUgqlFCKCiCAiiAgigoggIogISilEBJKICCQhCUlIQhLPj23uZxvb2MY2mYltbGMb29jGNraxjW1sY5vMxDa2sY1tAGxjG9vYxja2AbANgG3+NSRxP0ncTxLPTRLPTRIAknhukrjf/v4+L/3SLw3A2bNn2dvb44WRxItCEi+Ibe5nG9vczzb3sw2Abe43TRMRAcByueSJT3wif/VXf8VyuWRzc/P4a73Wa73267zO67z35ubm8bNnzz7j8PBwl6uuuuqqq6666v8yKlddddVVV1111f9Z11xzzYPf8R3f8bNe53Ve570Bzp8/zx/8wR/wcz/3c9gGwDa2sc00TdRaiQgkIQlJSEISkpCEJAAkIQlJSEISkpCEJCTx3CRxP0ncTxL3k8Rzk8T93viN3xiAxz3ucezt7fFAkgCQBIAkACQBIAkASdxPEgCSeCBJPDdJSEISknggSQBIAkAS95OEJO4nCQBJSOJ+kpAEgCQkcT9JSEISkpCEJAAk8Z9BEi8KSQBIQhKSkIQkACQhCUlIQhKSsI0kbCMJANu8MJIAsA2AJGwDIAnbAEjCNg8kCds8P5KwzQNJYm9vjzvuuIObbrqJxz72sdxxxx38e0nCNi+IJABsIwlJ2AZAEpKQRERgm4jANqUUWmuM40jXddgG4Ny5c/z0T/80p0+f5jGPeQxv+ZZv+eB3eqd3+uzXeZ3Xee9/+Id/+J1/+Id/+O3f+q3f+m6uuuqqq6666qr/i6hcddVVV1111VX/p1xzzTUPfu3Xfu33eqd3eqfP5pnOnz/Pz/3cz/GHf/iH2OZ+trGNbTITSUQEkogIJCEJSQBIAkASknhRSEISDySJ+0nifpJ4bpJ4bjfffDMA//AP/wCAJAAkASCJF4UknpskHkgSknhhJCEJAEkASAJAEpKQhCQkIQkASdxPEpIAkIQkJAEgCUlIQhKSeCBJPJAk/jUkYZv7SUISDyQJSUhCEpKQhCQkASAJSTyQJCQhiedHEraRhG0AJAFgmweSBIBt7icJ27wwkrDNA0nCNpKwzQNJwjaSsA3An/zJn3DTTTdx00038W8hCdv8a0nCNpKQhCQkIQlJSEISkogIbFNrZRxHMhOAiABAEufOneP3f//3+YM/+ANe7dVejVd7tVd78Ou8zus8+HVe53Xe6x3f8R0/67d+67e++x/+4R9+5x/+4R9+m6uuuuqqq6666v8KKlddddVVV1111f9611xzzYNf+7Vf+71e53Ve572vueaaBwOcP3+eP/zDP+QP//APOX/+PAC2AbCNbWxjG9u01uj7noggIpCEJCQhCUlIQhL3k4QkJCEJSUhCEs9NEv8aknhuknixF3sxdnZ2uOOOO7jjjjuQxAsiCQBJAEgCQBL3kwSAJO4nCUk8kCQkIQlJSEISkrifJAAkASCJ50cSkpCEJCQhCUlIAkASAJKQxHOThCT+M0kCQBIviCQkIQlJAEhCEpIAkASAJCQhCUlIwjaSsI0kbHM/STyQbR5IEra5nyRsAyAJ2zyQJGzz/EjCNs+PJO68807uuOMObrrpJh772MfyD//wD/xLJGGb5yYJ2zyQJB7INveThG0kIQlJSCIisI1tbCMJSUQEtVaGYaDrOgAiAgBJ2AbgD/7gD/iDP/gDTp8+zau92qvxlm/5lg9+p3d6p88GOHv27DN+8zd/87v+4R/+4Xf+4R/+4be56qqrrrrqqqv+N6Ny1VVXXXXVVVf9r3TNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3T+/Hn+8A//kJ//+Z/HNvezDYBtbANgG9tM00StlYhAEpKQhCQkASCJ+0lCEi+MJCTxQJK4nyTuJ4n7SeK5SeJ+L/ZiLwbAP/zDP/BAkgCQBIAkACTxQJIAkMRzk8QDSUIS/xJJSAJAEgCSAJCEJCQhCUkASAJAEpK4nyQkASCJ+0lCEpKQxP0k8R9JEg8kiftJQhKSkIQk7icJAElIQhKSkASAJJ4fSdhGEraRBIBtXhhJ2OZ+krANgCRsAyAJ2zyQJGwjCds8kCRsIwnbPNDjH/94brrpJl75lV+Zf/iHf+A/iiRs80CSALANgCRsIwlJSEISkpCEJCQREdjGNhHBOI70fY9t7icJANtI4ty5c/zsz/4sf/AHf8CjHvUoXu3VXo1HPepRD3qnd3qnzwa47777bv2Hf/iH3/6t3/qt7/mHf/iH3+aqq6666qqrrvrfhspVV1111VVXXfW/wjXXXPPg137t136vF3/xF3/tF3uxF3ttHuBJT3oST3rSk/jDP/xDzp8/z3OzDYBt7mcb22QmkogIJBERSEISkpCEJAAkIYkHkoQkXhBJPJAk7ieJF0YSD3TzzTdz8803A/C4xz0OSQBI4l8iiecmCQBJ3E8SknggSUhCEpKQhCQkIYn7SQJAEgCSkMQDSUISAJK4nyQkASAJSUhCEpKQxANJ4oEkIYn/LJJ4bpKQhCQAJCGJ5yYJAElIQhKSkIRtJGEbSdgGQBIAtnkgSQDY5n6SsA2AJGwDIAnbAEjCNpKwzQNJwjaSsM0DScI2krjzzjvZ29tjZ2eHm266iTvuuIN/LUnY5n6SsM0LIgkA20jCNgCSkIQkJCEJSUgiIrBNrZVxHBnHka7riAgeSBK2kYRtzp8/zx/+4R/yh3/4h5w+fZpXfdVX5VGPehSPetSjHnzNNde89+u8zuu893333XfrP/zDP/z2P/zDP/zOfffdd+s//MM//DZXXXXVVVddddX/dFSuuuqqq6666qr/ca655poHA7z2a7/2e734i7/4a7/Yi73Ya/Nczp8/zx/90R/xR3/0R5w/fx4A29zPNgC2AbANgG1sk5lkJplJ13VEBBGBJCQhCUkASEISAJKQhCQkcT9JSEISknggSfxLJPEvebEXezEA/uiP/ghJPDdJAEgCQBIAkgCQBIAk7icJAEk8kCReVJKQBIAkACRxP0lIQhIAkpAEgCQkIQlJSAJAEgCSuJ8kJCEJAEkASOJ+kviPIAlJAEjifpKQhCTuJwlJSAJAEpKQhCQAJCGJ5yYJ20jCNpKwzf0k8UC2eSBJ2OaFkYRtHkgStnl+JGGb57a3t8fjH/94XumVXolXeZVX4cd+7Md4UUjCNs9NErZ5UUjCNpKQhG0AJBER2MY2kpCEJEop2GYYBjITgIjggSRhG0nYRhIA586d4+d+7uf4uZ/7OU6dOsWrvdqr8chHPpJHPepRD77mmmve+3Ve53XeG+Ds2bPP+Pu///vf+od/+Iffue+++279h3/4h9/mqquuuuqqq676n4bKVVddddVVV1313+qaa6558JkzZx78Yi/2Yq91zTXXPPiaa6558Iu92Iu9Ns/l/Pnz/NEf/REAP//zP89zs839bANgGwDbANjGNraxTWZSayUiiAgkIQlJSAJAEgCSkMSLShIPJIn7SeJ+knhuknhuknixF3sxAB7/+MdzP0kASAJAEi+MJAAkcT9JAEhCEveThCQk8fxIQhL3kwSAJAAkIQlJSEISkgCQhCQkIQlJSEISkgCQBIAkJCGJ+0kCQBL/mSQBIAlJ3E8SkpAEgCQAJCEJSUhCEpKQBIAkJCEJSdjmuUkCwDYvjCRscz9J2AZAErZ5IEnY5oEkYRtJ2OaBJGEbSdgG4PGPfzyv9EqvxM7ODjfddBO33347/1Ek8fzYBkAStpGEJCQhCUlIQhKSkEREYJuIoNbKNE3UWpHEc5OEbSRhG0k80Pnz5/nZn/1ZJHHq1Cke9ahH8chHPpLTp0/zyEc+8kGv8zqv896v8zqv894809mzZ5/x93//97/1D//wD78DcN999936D//wD7/NVVddddVVV13134XKVVddddVVV1313+JzP/dzf+vFXuzFXpsX4Pz58/zRH/0RAL/wC7/AC2Ob+9nmgWwDYBvb2MY2mUlEEBFEBJKQhCQkIQlJSEIS95OEJCQhCUlIQhLPTRIPJIn7SeK5SeK5SQLgjd/4jQF43OMex97eHgCSAJDEc5MEgCQAJPHcJHE/SdxPEs9NEpKQhCQkcT9JSAJAEgCSkMRzk4QkACTx/EhCEpKQhCTuJ4n7SeLfyjYviCQeSBL3k4Qk7icJSQBI4vmRBIAkJPFAkpCEbSQBYBsASQDY5n6SuJ9t7icJ2wBIwjYAkrDNA0nCNpKwzQNJwjaSsM0DSWJvb4/HP/7xPOYxj+HFXuzFuP322/mPIAnbPD+SALCNJGwjCUlIQhKSkIQkJCGJiMA2pRQyk8xEEhEBgCRsAyAJ20jCNpKwjSTuZ5vz58/zh3/4h/zhH/4hAKdPn+aRj3wkj3rUozh16hSPfOQjOXPmzINe53Ve571f8iVf8r1PnToFwNmzZ59h25/1WZ/1Ovfdd9+tXHXVVVddddVV/5WoXHXVVVddddVV/+U+93M/97de7MVe7LUBnvSkJwHw5Cc/GYAnPelJPPnJT8Y2z49tHsg297PN/WxzP9vYxja2yUwASilEBJKQhCQkIQkASQBIQhKSeGEkIYkHksS/RBLPTRIP9GIv9mIAPO5xjwNAEs9NEgCSAJAEgCQAJAEgiftJ4n6SuJ8kJPHCSEIS95MEgCTuJwlJSEISAJKQBIAkJCEJSUgCQBIAkgCQhCQAJPFAkpDEA0niP5ok7icJSQBIQhKSkIQkJCEJSQBI4n6SkIQkbAMgCdsASMI295PE/WzzQJIAsA2AJGwDIAnbAEjCNs+PJGzz/EjCNpKwDcCf/Mmf8JjHPIabbrqJfw1J2AZAErb515CEbSRhG0lIQhKSiAhsIwlJSCIisE2tlWmayEwAIgLbSALANpJ4braRxAty7tw5zp8/zx/90R8BcOrUKQAe+chH8qhHPYpTp05x6tQpzpw586D77rvv1s/5nM/5rQ/5kA95CFddddVVV1111X8lKlddddVVV1111X+p13md13nvF3uxF3vtJz3pSXz1V381/xq2eVHYBsA2D2Qb29imlEJEIAlJSEISkpCEJCQhiftJQhKSkIQkJPHcJCGJ+0nifpK4nySemySe24u92IsBcMcdd3DHHXfwQJIAkMS/hiTuJ4n7SeKBJCEJSUhCEpKQxP0kIQkASQBIQhKSuJ8kJAEgCUlIQhKSkIQkJAEgCQBJSAJAEgCSAJDE/SQBIInnxzaSeFFJQhIAkgCQhCQAJCEJAEkASEISkpCEJCQBIAlJSAJAEpKQhG0kYRsASQDY5gWRhG3uJwnbPDdJ2AZAEraRhG0eSBK2kYRtnh9J7O3tcccdd3DTTTfxYi/2YvzDP/wD/x6SsM2LQhK2kYRt7icJSUhCEhGBbSQREdimlEJrDUnYxjb3k4RtACRhG0kA2EYSALaRxAty/vx5AP7oj/6IP/qjP0ISAKdOneK93uu9HvzIRz6SF3uxF3vtf/iHf/htrrrqqquuuuqq/yoEV1111VVXXXXVf6kXe7EXey2AP/7jP+YFsc2Lwjb3sw2AbQBsA2Ab29jGNraJCCICSUgiIogIJCEJAEkASEISknhBJCGJ5yaJ+0nifpJ4bpJ4bpIAeLVXezUA/viP/xgASQBI4rlJAkASAJIAkASAJO4niftJ4n6SkMS/RBKSuJ8kACQhiftJQhIAkpAEgCQk8dwkIQkASdxPEgCSAJDEfxZJ3E8SAJIAkIQk7icJAEk8P5KQhCTuJ4n7SUISAJKQxP0kIQlJSEISkpDEA0nigSTx3CTx3CQBIInnJgkASTy3P/mTPwHgVV7lVfiPJglJSEISkpDE/SQBIAlJSEISkpCEJCQREUQEkogIIoKIIDPJTDIT29jGNvezDYBt7meb+9nmgWzzLzl//jx/9Ed/BMA7vdM7fRZXXXXVVVddddV/JYKrrrrqqquuuuq/1Ou8zuu8N8CTn/xknh/bPD+2eSDb3M82D2QbANvYxja2sQ1ARCCJiCAikASAJCQhCUlI4rlJ4gWRhCQeSBIvjCSemyTu92Iv9mLs7Oywt7fHHXfcgSSemyQAJPH8SAJAEgCSuJ8k7ieJB5KEJCQhCUlIQhKSuJ8kJAEgCUkASEISkpCEJAAkIQlJAEhCEpKQBIAkJCEJSUgCQBIAkrifJO4niX8rSUji+ZEEgCTuJwlJAEhCEpKQhCQkIQkASQBIQhKSkIQk7ieJ+0niRSWJB5LE/STx3CTxgkgCQBLPTRIAkrjzzjt53OMex87ODjfddBP/VpJ4IEm8IJKQBIAkACQhCUlIQhKSkIQkJBERSCIiiAgAbGMb29jGNraxDYBtAGzz/NjmgWzz/Njmfk960pMAOHPmzIO56qqrrrrqqqv+KxFcddVVV1111VX/ZV7ndV7nvQH++I//mPPnz/MfzTb3s839bGMbgIhAEhGBJCQhCUlIAkAS95OEJCQhCQBJSEISknhuknh+JHE/STw3STy3F3/xFwfgj//4j5HE/SQBIInnJgkASTw3SQBI4n6SuJ8kJPGikIQkACQhCUkASEISDyQJSQBIAkASkpCEJCQhCQBJAEgCQBIAkgCQhCQAJPHcJPEfSRIAkpAEgCQkIQkASUhCEpKQhCQAJCGJ5yYJSQBI4n6SkMQLIglJPJAk7ieJ+0niuUkCQBIviCRekDvvvBOAV3mVV+FfQxLPjyReFJIAkASAJCQhCUlIAkASkpBERCCJiCAiALCNbWxzP9vY5vmxzQtjmxfm/PnzPOlJT+Kaa6558Ou8zuu8N1ddddVVV1111X8Vgquuuuqqq6666r/M67zO67wXwJOe9CSeH9s8P7Z5INvczzYAtgGwzf1sY5v7RQQRQUQgCUlIQhKSkIQkJCEJSbwoJCGJB5LE/SRxP0k8N0k8PzfffDM333wzAI973OO4nySemyQAJAEgCQBJAEjiuUnifpJ4IElIQhKSkASAJCQhiftJAkASAJK4nyQkIQkASUgCQBKSeG6SkASAJAAkASAJAEn8Z5HE/SQhiftJ4n6SAJAEgCSeH0lI4n6SkIQkJHE/SQBIQhL3k4QkJCEJSUjiuUnifpK4nyTuJwkASTw3SQBI4rlJAkASAJK48847Abj55pu5+eab+c8iiecmCQBJ3E8SkpCEJCQhCUlIIiKQREQgCdvYxja2sc39bGMbANvczzb3s82Lwjb3+6M/+iMAXud1Xue9uOqqq6666qqr/qsQXHXVVVddddVV/2Ve7MVe7LUB/viP/5gXlW0eyDb3sw2AbQBsA2Ab29jGNrYBkIQkJCEJSUgCQBIAkrifJCQhCUlIQhKSkMRzk8QDSeKFkcQLIolXfdVXBeCP//iPkQSAJO4nCQBJvDCSAJAEgCTuJ4n7SUISL4gkHkgSkgCQBIAkACQhCUlIQhKSAJCEJCQBIAlJSEISAJKQBIAkACQBIInnRxL/kSRxP0ncTxKSAJAEgCQAJCEJSUhCEgCSkIQkJPFAkpAEgCTuJ4kXhSQkcT9J3E8S95PEc5PECyIJAEk8P3t7e/zar/0aAK/yKq/CfzRJSAJAEpKQxP0kASAJSQBIQhKSkIQkJCEJSUQEEYEkAGxjG9vYxja2uZ9tAGxzP9vczzYPZJsX5klPehIAZ86cefCLv/iLvzZXXXXVVVddddV/BYKrrrrqqquuuuq/xOu8zuu8N8Af//Ef8/zY5l/DNs+PbZ6fiEASkpCEJCQhCUlIQhKSkIQk/iWSkMQDSeL5kcT9JPHcJAEgCYCdnR1uvvlmAB7/+Mfz3CQBIIn7SQJAEgCSeG6SAJDE/SQhiftJQhKSkMQDSUISkrifJAAkASAJSTw3SUgCQBIAkpCEJCQhCUkASEISkpAEgCTuJwlJSOLfSxIPJInnJon7SUISAJKQhCQkIQlJSEISkgCQxP0kIQlJ3E8SAJK4nyQkIYnnJglJPJAk/iWSeG6SAJDECyIJAEnc78477wTg5ptv5uabb+bfShIPJIkXRBKSAJAEgCQkIQlJSAJAEpKQhCQkIYmIICIAsI1tbGMb29jGNgC2AbDNi8I2z802AOfPn+dJT3oS11xzzYMf+9jHvhZXXXXVVVddddV/BYKrrrrqqquuuuq/xDu+4zt+FsCTnvQkXlS2eSDbPDfbANjmfraxjW0AJCGJiCAiiAgkIQlJSEISknggSUhCEpKQhCSemyQkcT9J3E8S95PEc5PE8/Oqr/qqADzucY9jb28PAEkASOK5SQJAEgCSAJAEgCTuJwkASUjifpJ4fiQhCUk8kCQkASAJAEncTxKSkIQkACQhCQBJSEISkgCQhCQkASAJAElIAkASknggSfxnkIQk7icJSQBIQhKSAJCEJJ6bJCQBIAlJSEISkpCEJAAkASAJSTyQJCQhCUk8N0k8kCTuJwkASdxPEgCSeG6SAJDECyKJvb09Hv/4xwPwYi/2YvxrSOL5kcSLQhIAkgCQhCQkIQlJSEISkpCEJCQhCUlIAsA2tnlutnl+bHM/27wobAPw8z//8wC87uu+7vtw1VVXXXXVVVf9VyC46qqrrrrqqqv+011zzTUPvuaaax4M8Md//Mc8N9s8N9s8kG3uZxsA2wDYBsA2trHNA0lCEpKQhCQkIQkASQBIQhKSkMQLIglJPDdJ3E8S95PEc5PECyKJF3/xFwfgT/7kTwCQxHOTBIAkXhhJAEjifpK4nyTuJwlJSOL5kYQkJAEgCUkASEISkpCEJCQhCUlIAkASkpDEA0nifpKQBIAk7ieJ/w6SkMT9JAEgCQBJ3E8SkpCEJAAkIQlJPD+SkASAJO4nCUm8MJKQxANJ4n6SeG6SeG6SAJDEc5MEgCQAJHG/P/mTPwHg5ptvZmdnh/8sknhukgCQBIAkJAEgCQBJSEISEUFEEBFEBJKQxP1sYxvb2AbANrYBsM39bHM/2zyQbV6Q8+fPA3DmzJkHvdiLvdhrc9VVV1111VVX/WcjuOqqq6666qqr/tO94zu+42cB/PEf/zH/WWzzQLYBkEREIAlJSEISkpCEJCQhiQeShCQkIQlJPDdJSOKBJHE/STw3SbwgkgB44zd+YwAe97jHsbe3hyTuJwkASTw3SQBIAkASz00S95PE/SQhiQeShCQkIQlJPJAk7ieJ+0lCEs9NEpIAkASAJCQhCUlIQhIAkpAEgCQkcT9JSEISDyQJSbwwtnlRSOK5SUISAJIAkASAJCQhCUlIQhKSAJAEgCQkIQlJSOJ+kgCQhCTuJwlJSEISkpCEJB5IEpK4nyTuJ4nnJokXRBIAknhBJLG3t8cdd9zBzs4Or/qqr8p/NElIAkASkpDE/SQBIIn7SUISkpCEJCQhCUlIQhKSuJ9tbGMb29jGNvezDYBtnh/b/Etsc/78ef7oj/4IgBd7sRd7La666qqrrrrqqv9sBFddddVVV1111X+6F3uxF3ttgD/6oz/iudnmudnmgWxzP9sA2AbANvezjW3uJwlJSEISkpAEgCQAJAEgCUlIQhLPjyQkIYkHksS/RBLPTRIAknigF3/xFwfg8Y9/PA8kiecmCQBJAEgCQBIAkgCQxP0kcT9JPJAkJCGJ50cSkpAEgCQkIQlJSOJ+kpCEJCQBIAlJSEISkpCEJCQhCUlIAkASkgCQhCQk8UCSAJDEv8Q2/1qSkMQDSQJAEgCSkIQknpskJAEgCUk8N0lIAkAS95PEi0oSDySJ+0nifpJ4bpIAkMQLIgkASQBI4n6//uu/DsAtt9zCv4ckHkgSL4gkJAEgCQBJSEISAJIAkIQkJCEJSUhCEhHBv8Q2ALYBsA2AbV4Q27wgf/RHfwTA67zO67w3V1111VVXXXXVfzaCq6666qqrrrrqP9XrvM7rvPc111zzYIAnP/nJ/GvZ5n62eSDbANjmuUlCEpKQREQgCUlIQhKSkIQk/rUk8UCSuJ8k7ieJ5yaJF+TFX/zFAbjjjju44447kASAJO4nCQBJAEji+ZEEgCQAJHE/SdxPEpJ4bpKQhCQkIYn7SUISAJIAkASAJCQhCUlIQhKSAJAEgCQk8fxIQhL3k8R/BUlI4n6SuJ8kJHE/SQBIQhL3k4QkJCEJAElIQhIAkpCEJCRxP0kASOJ+kpCEJJ4fSUjigSRxP0ncTxL3kwSAJJ6bJAAk8S+RxN7eHnfccQc7Ozu86qu+Kv8aknh+JPGikASAJAAkIQlJSEISkpCEJCQhCUlEBJKQhCQAbGMb29jGNgC2eX5scz/bPJBtnpttnvSkJ/GkJz2Ja6655sEv9mIv9tpcddVVV1111VX/mQiuuuqqq6666qr/VC/2Yi/2WgB//Md/zHOzzXOzzb/ENs/NNg8kCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpJ4IEk8kCTuJ4nnJokXRBIAr/qqrwrAn/zJnyAJAEncTxIAknhukgCQxHOTBIAk7icJSdxPEpKQxAsiCUncTxIAkgCQhCSemyQkIQkASUgCQBKSkIQkJHE/SUgCQBKSkIQkJCEJAEn8R5LECyIJSQBIQhIAkpCEJCQhCUlIAkASAJKQhCQkIQlJSAJAEgCSkMQDSUISkpCEJJ6bJO4niftJ4n6SeG6SAJDEc5MEgCQAJPHc/uRP/gSAF3uxF+O/miQAJAEgCUkASEISkpCEJCQREUhCEpJ4YWxzP9sA2Obf40lPehIAr/M6r/NeXHXVVVddddVV/5kIrrrqqquuuuqq/1Qv9mIv9toAv/ALv8C/lm3uZxsA2wDYBsA297MNgCQkIQlJSAJAEpKQBIAkJPGvIQlJ3E8SDySJ5yaJF0QS93vxF39xjh07xh133MGdd97Jc5PEc5MEgCQAJAEgCQBJ3E8SAJKQxP0k8dwkIQlJSEISkrifJCQBIAkASUgCQBKSkIQk7icJSUgCQBKSkIQkJCEJSUgCQBKS+NeQxH8kSUhCEveThCQAJCEJSTw3SUgCQBKSeH4kIQkASdxPEpL4l0hCEveTxPMjiftJ4gWRBIAkXhBJAEjizjvv5I477uDYsWO8+Iu/OP/RJCEJSUhCEpK4nyQAJHE/SUgCQBIAkpCEJCQhiYhAEvezjW1sY5v72eb5sc39bPNAtnlutvmjP/ojAF7sxV7stbnqqquuuuqqq/4zEVx11VVXXXXVVf9pXud1Xue9r7nmmgc/6UlP4vz58zyQbZ6bbZ4f27wwtrmfJAAkIQlJSEISkgCQhCQAJCEJSUhCEpKQhCQkIYnnJon7SeL5kcRzkwSAJJ7bq77qqwLwJ3/yJ9xPEgCSuJ8kACQBIIkHkgSAJAAkcT9J3E8S95OEJCTxgkhCEpIAkIQkACQhCQBJSEISkpCEJCQBIAkASUhCEs9NEpKQxP0kIQlJSOJ+kvjPIAkASTyQJCRxP0lI4n6SkIQkJAEgCUlIAkASkpCEJCQBIAlJAEhCEveThCQkIQlJSEISknggSTyQJJ6bJO4nCQBJvCCSAJDEC/Inf/InALzqq74q/x6SeCBJvCCSkASAJAAkIQlJAEhCEpKQhCQkIQlJSEISknh+bGOb+9kGwDb3s839bPNAtnlu586d40lPehLXXHPNg1/sxV7stbnqqquuuuqqq/6zEFx11VVXXXXVVf9pXuzFXuy1AP74j/+Yf4ltHsg2z802ALYBsM0DSQJAEgCSkIQkJCEJSQBIQhIvKklI4oEkcT9J3E8Sz00SL8yLv/iLc+zYMfb29rjzzjsBkMRzk8QLIonnJgkASdxPEveThCQeSBKSkIQkJCGJ+0lCEgCSkIQkACQhiecmCUlIQhKSkMT9JCEJSUjifpKQhCSemyT+I0niuUniBZGEJO4nCUlIQhKSkIQkACQBIAlJSOJ+kpDE/SRxP0lI4kUliQeSxP0k8dwk8dwkASCJF0QSAJIAkMT+/j533HEHx44d48Vf/MX5ryQJAEkASAJAEpIAkIQkJAEgCUlIQhKSkIQkAGxjm/vZxjYAtgGwzb/VH/3RHwHwTu/0Tp/FVVddddVVV131n4Xgqquuuuqqq676T/M6r/M67w3w5Cc/mQeyzQtjm/vZ5oWxzQNJQhKSkIQkJCEJAElIAkASkpCEJCQhCUlIQhLPTRIPJIn7SeK5SeIFkQSAJF71VV8VgD/5kz8BQBL3kwSAJO4nCQBJAEgCQBIAknhukrifJB5IEpKQxAsiCUncTxIAkgCQhCQAJCEJSUgCQBKSAJCEJCQhCUlIQhKSkIQk/iWSuJ8k/rNIQhKSkIQkJAEgCUlIQhLPTRKSAJCEJO4nCUncTxKSAJCEJO4nCUk8P5KQhCTuJwlJ3E8S95PEc5MEgCSemyQAJAEgiednb2+Pxz/+8QC86qu+Kv8RJPGikgSAJAAkIQkASUgCQBKSkIQkJCEJSUji+bHN/Wzz/NjmfrZ5INs8tyc+8YkAnDlz5sFcddVVV1111VX/WQiuuuqqq6666qr/FK/zOq/z3gB//Md/zPnz53lhbPMvsQ2AbQBs89wkIQlJSEISkgCQhCQkIQlJvCgkIYkHksQDSeK5SeK5SQJAEg/04i/+4hw7doy9vT0e//jHI4n7SeK5SQJAEgCSAJAEgCQAJAEgCUkASOJ+kpDEc5OEJCQhCUlI4n6SkASAJAAkcT9JSEISkpCEJAAkIQlJAEhCEpJ4bpKQhCQkIQlJSEISDyQJAEn8R5PECyIJSTyQJCQhCUkASEISkgCQhCQkIQlJSAJAEpK4nyQeSBKSkIQkJPHcJPFAkrifJO4nCQBJPDdJAEjiBZEEgCQAJHHnnXdyxx13cOzYMW6++WZeVJJ4UUlCEpKQhCTuJwkASdxPEpIAkIQkJCEJSUhCEpKQhCQeyDb3s839bANgm/vZ5n62eWHOnz/Pk570JK655poHv87rvM57c9VVV1111VVX/WcguOqqq6666qqr/lO8zuu8znsBPOlJT+KBbPPC2OZ+tnlRSUISkpCEJCQhCUlIQhL3k4QkJCEJSUhCEpJ4bpKQxP0k8fxI4rlJ4oV58Rd/cQD+5E/+BEncTxL3kwSAJAAk8cJIAkAS95MEgCQkcT9JSEISL4gkJCEJAElIAkASkpCEJCQhCQBJSEISkgCQBIAkJHE/SUhCEpL4l0gCQBL/0STx/EhCEpKQxP0kIQlJSEISkpCEJAAkASAJSTw3SUgCQBKSkASAJCQhiRdGEpJ4IEncTxL3k8RzkwSAJJ6bJAAk8cLs7e3x+Mc/HoA3fdM35T+aJJ4fSdxPEgCSkIQkACQhCUlIQhKSkIQkJCEJAEk8N9vczzYAtgGwzb/ENs/tD//wDwF4ndd5nffiqquuuuqqq676z0Bw1VVXXXXVVVf9p3ixF3ux1wb44z/+Y14Y2/xLbANgGwDb3E8SkpDE/SQhCQBJSAJAEpKQxL9EEpKQxANJ4n6SuJ8knpskXhBJALzES7wEN998MwCPf/zjuZ8k7icJAEk8N0kASAJAEs9NEveTxP0kIYkHkoQkJCEJSUjifpKQBIAkJCEJAElI4n6SeCBJSEISkpAEgCQkIQlJSEISkpCEJCQhCUlI4n6S+I8mCQBJ3E8SknhukpCEJCTx3CQhCUlIQhKSAJCEJCQhiftJAkASAJJ4IElIQhKSkIQkJPHcJHE/SdxPEveTBIAknpskACTx3CQBIAkASdzvzjvvZG9vj2PHjnHLLbfwbyWJB5LECyMJSQBI4oEkIQlJAEgCQBKSkIQkACQBIIn72eZ+tnlhbHM/27wwT3rSkwA4c+bMg1/8xV/8tbnqqquuuuqqq/6jEVx11VVXXXXVVf/hXud1Xue9Af74j/+YB7LNC2Ob+9nmX0sSkpCEJCQhCUlI4n6SkIQkJCEJSUhCEs9NEg8kiftJ4n6SAJDEc5MEgCQe6MVf/MUB+LVf+zUkASCJ+0niuUkCQBIAkgCQBIAkACRxP0ncTxKSuJ8kJCGJ50cSkpDE/SQBIAkASdxPEpKQhCQkIQkASQBIAkASkpCEJF5UknhBJPEfRRLPTRKSkIQkHkgSkpCEJO4nCQBJAEhCEpKQhCQkIQkASQBIAkASknhRSUIS95PE/SRxP0k8N0m8IJIAkMQLIom9vT3+5E/+BIBXfdVX5b+aJAAkIQlJSOJ+kpCEJCQBIAlJSEISknh+bHM/2wDYBsA2/xLbPND58+d50pOexDXXXPPgxz72sa/FVVddddVVV131H43gqquuuuqqq676D/eO7/iOnwXwpCc9iRfGNv8S2wDY5gWRhCQkIQkASUgCQBKSkIQk/iWSkMQDSeKBJHE/SbwgknhBbr75Zm6++WYAnvCEJ/DcJHE/SQBIAkASAJIAkASAJAAkASAJSQBIQhL3k4QkHkgSkpCEJCRxP0lIQhIAkgCQBIAkJCEJSUhCEpKQhCQkIQlJSEISkrifJCQhCUlIQhKSkIQk7ieJ/wqSAJCEJJ6bJCQhCUlIQhKSkIQkJCEJAElI4vmRhCQAJAEgiftJQhKSkMT9JCEJSUjigSRxP0ncTxL3k8RzkwSAJF4QSQBIAkAS97vzzjvZ29vjlltu4ZZbbsE2/x6SeH4kIQlJPJAkJPFAkpCEJAAkIQlJSEISkpCEJCTxgtjmhbHN/WzzQLZ5oJ/7uZ8D4HVf93Xfh6uuuuqqq6666j8awVVXXXXVVVdd9R/qxV7sxV77mmuueTDAH//xH3M/27wwtrmfbV4UkpCEJCQhCUlIAkASkrifJCQhCUlIQhKSkMRzk4Qk7ieJf4kkACTxL3n1V391AH7913+d+0kCQBL3kwSAJF4UkgCQxP0kcT9JPJAkJCGJ5yYJSUjifpKQBIAkJCEJSUji+ZGEJAAkASAJSQBIQhKSkIQkJCEJSTyQJJ6bJP4jSOJFIQlJSEISz48kJCEJAElIQhIAkpCEJCQhiftJAkASAJKQxHOThCSeH0lI4n6SuJ8k7ieJ+0kCQBLPTRIAkgCQxAsiib29Pf7kT/4EgFd7tVfjP5okJPFAkpDEA0lCEpKQhCQAJCEJAElIAkASkpCEJCQhiRfENgC2AbDNv9b58+cBOHPmzINe7MVe7LW56qqrrrrqqqv+IxFcddVVV1111VX/oV7ndV7nvQD++I//mBfGNv8S27wgkgCQxP0kIQlJSAJAEpKQxL9EEpKQxANJ4n6SuJ8k7ieJF0QSAJIAkMTNN9/MzTffDMDjH/94ACTx3CTx3CQBIAkASQBI4n6SAJDE/SRxP0lI4rlJQhKSkMQDSUISAJKQhCQAJCEJAElIQhKSkASAJCQhCUlIAkASkpDECyIJSdxPEveTBIAk/rNIAkASknhukpCEJCQhiftJQhIAkgCQhCQkIQlJSEISkgCQBIAk7icJSUjiBZGEJB5IEveTxP0kcT9JPDdJAEjiBZEEgCQAJHG/O++8E4BbbrmFW265BQDb/GeTxAsjCUlIQhKSkIQkJCEJSQBIAkAS97MNgG1eGNvczzYPZJv7nT9/nj/6oz8C4MVe7MVei6uuuuqqq6666j8SwVVXXXXVVVdd9R/qxV7sxV4b4I/+6I94UdnmfrZ5brZ5IEk8kCQkcT9JSEIS95OEJCQhCUlIQhKSeG6SeCBJ3E8S95PECyKJF+TVXu3VAPjTP/1TACRxP0kASOJ+kgCQBIAkACQBIAkASdxPEgCSuJ8kJHE/SUhCEpKQhCQkIQlJSEISAJKQBIAkACQhCQBJSEISkpCEJCQBIAkASQBIQhL3k4QkJCEJSUjifpKQxP0k8Z9FEpK4nyQeSBKSkIQkJCEJSUhCEpIAkIQkJCEJSbwgkpAEgCQAJCGJB5KEJCQhCUlI4rlJ4n6SeH4kcT9JAEjiuUkCQBIAknhBJLG3t8ev/dqvAfDqr/7qPJBtHsg2LypJ/EskIQlJSEISkpCEJO4nCUkASEISkgCQBIAkXhjbANgGwDb3s839bPOC/OEf/iEAr/M6r/PeXHXVVVddddVV/5EIrrrqqquuuuqq/zCv8zqv897XXHPNgwGe/OQncz/bPJBt/iW2+ZdIQhKSkIQkJAEgCUlIQhL/EklI4oEkIYn7SeJ+knhukgCQxAtz8803c8sttwDwJ3/yJ0jifpIAkMT9JAEgCQBJAEgCQBIAkgCQxP0kASAJSdxPEpJ4UUlCEgCSkASAJCQBIAlJSEISAJKQhCQkIQlJAEhCEgCSkIQkJPHcJCGJB5LEc5PEfwRJ3E8SDyQJSbwwkpCEJCQBIAkASQBIQhKSkIQkJAEgCUkASEISAJKQhCReGElIQhL3k8QDSeK5SeK5SQJAEi+IJAAkASCJ+915550A3HLLLdxyyy08N9v8d5CEJCQBIAlJSAJAEpKQBIAk/qPZ5n5PetKTeOITn8g111zz4Bd7sRd7ba666qqrrrrqqv8oBFddddVVV1111X+YF3uxF3stgD/+4z/mRWWb+9nmRSUJSUhCEpKQhCQkcT9JSEISkpCEJCQhiecmCUk8kCTuJ4nnJokXRBIAkgCQxKu92qsB8Cd/8idI4n6SeG6SAJDEi0ISAJK4nyTuJwlJ3E8SkpCEJCQhCUlIQhKSAJCEJAAkIQlJAEhCEg8kiftJQhIAkpCEJAAkIQlJ3E8SkpCEJO4nCQBJ/FeSBIAk7icJSUhCEpKQhCTuJwlJSEISkpCEJCQhCUlIQhKSkASAJCQhCQBJPJAkJCEJSUhCEpJ4bpJ4IEncTxIAkrifJAAk8dwkASCJf4kk9vb2+LVf+zUAXv3VX53/LJKQhCQkIQlJSEISkpCEJCQhCUkASEISkgCQhCQkIQlJAEjiudkGwDYAtgGwzf1scz/bvCBPetKTAHid13md9+Kqq6666qqrrvqPQnDVVVddddVVV/2HebEXe7HXBviFX/gF7mebB7LNv5ckJPHcJCEJSUhCEv8SSUhCEg8kiX+JJJ6bJAAk8fzcfPPN3HLLLQD82Z/9GfeTxP0kASCJ5yYJAEkASAJAEveTBIAk7icJSdxPEpL4l0hCEpIAkIQkACQBIAlJAEhCEpKQhCQkASAJSUhCEpKQhCQkASAJSUhCEveTxP0k8UCS+I8kiedHEveTxHOThCQkIQlJ3E8SAJIAkIQknh9JSAJAEgCSAJCEJCTxopCEJO4nCUncTxLPTRLPTRIAknhukgCQBIAkACRxvzvvvBOAW265hVtuuYV/LUncTxLPTRL/VpKQhCQAJCEJSUgCQBKSAJCEJP6j2OZ+f/RHfwTAi73Yi702V1111VVXXXXVfxSCq6666qqrrrrqP8TrvM7rvPc111zz4Cc96UmcP3+efy3b3M82z48kJHE/SUhCEpJ4IElIQhKSkIQkJCEJSTw3STyQJO4niftJ4n6SAJDEi+LVXu3VAPjTP/1T7ieJ+0kCQBL3kwSAJAAkASAJAEkASOJ+kgCQhCTuJwlJ3E8SkpCEJCQhCUlI4n6SkASAJCQBIAlJAEhCEpKQhCQkIQlJAEgCQBIAkpAEgCQk8UCSkASAJB5IEpIAkMR/FUncTxKSkMQDSUISkpCEJCQBIAlJAEhCEpKQhCQAJCEJAEkASOKBJCEJSUhCEpKQhCQk8UCSeCBJ3E8SAJK4nyQAJPHcJAEgiX+JJPb29vi1X/s1AF7jNV6D/0iSeEEkIQlJSEISkpCEJCQhiftJQhKSuJ8k7ieJF8Y2ALYBsM39bHM/2zw/58+f50lPehLXXHPNg1/sxV7stbnqqquuuuqqq/4jEFx11VVXXXXVVf8hXuzFXuy1AP74j/+Y+9nmhbHNi0ISkrifJCQhCUlIQhKSkIQkXhSSkMQDSUIS95PE/SRxP0n8SyQBIAmAW265hVtuuQWAP/3TPwVAEveTBIAk7icJAEkASAJAEgCSAJAEgCTuJ4n7SUIS95OEJCTxgkhCEpK4nyQAJCEJSQBIQhKSkMT9JCEJSUhCEpIAkIQkACQhCQBJSEIS95MEgCQAJPEvkcS/lyQkcT9JAEhCEveThCQkIYn7SUISAJKQhCQAJCEJSUhCEpKQxP0kASAJAElIQhIvKklI4n6SkMT9JPHcJPHcJAEgiecmCQBJAEjiud15553s7e1xyy23cMstt/CfSRKSeFFJQhKSkASAJCQhCUlIAkASz802/x62ud8f/uEfAvBO7/ROn8VVV1111VVXXfUfgeCqq6666qqrrvoP8Tqv8zrvDfDkJz+ZF8Q2/16SkMTzIwlJSEISkpCEJCQhCUlI4oEkIYkHksT9JHE/SbwgkgCQxPPzaq/2agD8+q//OgCSuJ8knpskACTxwkgCQBIAkpAEgCQkcT9JPDdJSEISkpCEJO4nCUlIAkASAJIAkIQkJHE/SUjifpKQBIAkJCEJAElIAkASkrifJCQBIAkASTw/krifJP4ltnlhJHE/SdxPEveThCQeSBKSkASAJCQBIAkASUji+ZGEJCQBIAkASUjifpKQhCSemyQkIYkHksQDSeJ+kgCQxP0kASCJ5yYJAEm8IJIAkMTe3h5/8id/AsCbv/mbIwkASfxbSeKBJCGJB5KEJCQhCUlIQhKSkIQkJHE/SUhCEpKQhCQkASCJf4ltAGxzP9vczzbPz5Oe9CQAzpw582Cuuuqqq6666qr/CARXXXXVVVddddW/2+u8zuu8N8Af//Efc/78eV4UtrmfbV4UkrifJCQhCUlI4l9DEpJ4IEk8kCTuJ4nnJgkASfxLXuIlXoJbbrkFgCc84QlI4n6SuJ8kACQBIIn7SQJAEgCSuJ8kACRxP0ncTxL3k4QkJCEJSTyQJCQhCUncTxKSkIQkJCEJSUgCQBKSkIQkJCEJAElIAkASAJKQBIAkJAEgCUncTxIAkvjvIokHksT9JCEJSdxPEpIAkIQkJCEJSQBIQhKSkIQk7icJSUhCEpIAkIQkHkgSkpCEJJ6bJCRxP0lI4n6SeG6SeG6SAJDEc5MEgCQAJPHc7rzzTvb29jh27Bi33HILDyQJAEm8KCTxQJJ4IElI4l9DEpKQhCSeH0kASOJ+krifbf4tbANw/vx5nvSkJ3HNNdc8+HVe53Xem6uuuuqqq6666t+L4Kqrrrrqqquu+nd7ndd5nfcCeNKTnsT9bPNAtnlR2Ob5kQSAJCQhCUlIQhKSkIQkJCEJSUhCEpKQxHOThCTuJwlJ3E8Sz00SL4gkACQBIAmAF3/xFwfg13/915HE/SRxP0kASOK5SQJAEgCSAJDE/SQBIIn7SUISAJKQhCSemyQkIYkHkoQkJAEgCQBJAEjifpKQhCQkIQlJSEISAJKQhCQkIQkASUgCQBKSAJCEJAAkcT9JSEISz00S/xaSuJ8knh9JAEgCQBKSuJ8kJCEJAElIAkASAJIAkIQkJCEJSUhCEpIAkASAJAAkcT9JSEISz48kJCGJB5LEA0nifpIAkMT9JAEgiecmCQBJvCCSAJDE3t4ef/InfwLAm7/5m/PCSAJAEveTxPMjiftJQhLPTRKSkIQkJCEJSUhCEpKQxP0kIQlJSEISAJIAkIQk/iW2uZ9t7meb5+cP//APAXid13md9+Kqq6666qqrrvr3Irjqqquuuuqqq/7dXuzFXuy1Af74j/+YF4Vt/jUkASAJSfx7SEISknggSfxLJPHcJAEgiRfkJV7iJbjlllvY29vjiU98IveTxP0kASCJ+0kCQBIAkgCQBIAkACRxP0kASEIS95PEA0lCEpKQhCQkIQlJSEIS95OEJAAkASAJSUhCEpKQxANJQhKSkASAJAAkASAJSQBIQhIAkrifJO4niQeSxL+XJF5UkgCQBIAkJCEJAElIQhIAkpCEJCQhCUlIQhLPTRKSkASAJAAkASAJSTyQJCQhCUlI4rlJQhL3k4Qk7ieJ5yaJ5yYJAEk8N0kASAJAEs/tzjvvZG9vj2PHjvGSL/mSAEjiXyKJ+0nifpK4nyQeSBKSkMS/hiQkIQlJSEISkpAEgCT+Jbb517ANwJOe9CQAXuzFXuy1X/zFX/y1ueqqq6666qqr/j0Irrrqqquuuuqqf5fXeZ3XeW+AP/7jP+Z+tnlR2eaBJHE/SUgCQBL3k4QkJCEJSUhCEpKQhCQkIQlJSOK5SUIS95PE/SRxP0ncTxIAknhRvdqrvRoAf/Znf8b9JHE/SQBI4n6SAJAEgCQAJAEgCQBJAEjifpK4nyQkASAJSUjiXyIJSUhCEgCSkIQkJCEJAElI4n6SkIQk7icJSUhCEpKQhCQkASAJSQBIAkASDySJ50cS/xkkIQlJSOJ+kgCQxP0kIYn7SUISAJIAkASAJCQBIAlJSEIS95OEJAAkASAJSQBIQhKSeGEkIYkHksQDSeJ+kgCQxP0kASCJ5yYJAEm8IJIAkMTe3h5/8id/AsBrvMZr8ECSAJAEgCSemyTuJ4n7SeKBJPHcJCEJSUhCEpKQhCQkIQlJSEISz00SkgCQxIvKNi+q8+fP86QnPQmAxz72sa/FVVddddVVV13170Fw1VVXXXXVVVf9u7zjO77jZwE86UlP4gWxzb+GJCRxP0kASEISkpCEJCQhCUlIQhKSeH4kIQlJPJAk7ieJ+0nifpL4l0gCQBIAkniJl3gJjh07xv7+Pk94whMAkMT9JPHcJAEgCQBJPJAkACQBIAkASUgCQBKSuJ8kJHE/SUhCEpKQhCQkIYn7SUISkgCQBIAkACQhCQBJSEISkpCEJCQBIAlJAEgCQBIAkpAEgCQAJAEgCQBJ/Esk8e8hiRdGEveTxP0kASAJSUgCQBKSkIQkACQhCQBJSEISkpCEJCQBIAlJAEhCEgCSkMT9JCEJSUhCEpKQxANJQhL3k4Qk7ieJ5yaJ5yYJAEk8N0kASAJAEs/tzjvv5I477uDYsWO85Eu+JP8SSTw3SdxPEveThCQeSBKSeH4kIQlJSOK5SUISkpDE/SQBIIl/LdvczzbPz8/93M8B8Lqv+7rvw1VXXXXVVVdd9e9BcNVVV1111VVX/Zu92Iu92Gtfc801Dwb44z/+Y14UtvnXkASAJP41JCEJSUjiuUnigSRxP0ncTxLPTRIAkgCQxAvyaq/2agD8xm/8BgCSuJ8k7icJAEkASOK5SeK5SQJAEveTxP0k8UCSkIQknh9JSEISkrifJCQhCUlIQhKSAJCEJCQhCUlIQhKSkASAJCQhCUlIQhKSAJAEgCQAJAEgiftJQhKS+M8kiedHEpIAkIQkACRxP0lIAkASAJKQhCQAJCEJSUjifpKQhCQAJCEJSQBI4n6SkIQkXhhJSOKBJPFAkrifJAAkcT9JAEjiuUkCQBIviCQAJLG3t8fjH/94AF7jNV4DAEn8SyTx3CRxP0k8kCQk8UCSkIQkJPHcJCEJSUhCEpKQhCQkIQkASQBI4gWxzb+GbQDOnz8PwJkzZx70Yi/2Yq/NVVddddVVV131b0Vw1VVXXXXVVVf9m73O67zOewH88R//MfezzQPZ5t9KEgCSAJCEJCQhCUlIQhKSkIQkJPHcJCEJSdxPEpK4nyTuJ4nnJol/jZd4iZfg2LFj3Hnnndx5551I4n6SuJ8kACQBIIn7SQJAEgCSAJDE/SQBIAlJAEhCEgCSkIQkHkgSkpCEJCTxQJKQhCQAJAEgCQBJAEhCEpKQxANJQhKSkASAJAAkASAJAEkASAJAEgCSAJCEJB5IEv/RJPH8SOIFkQSAJCQBIAlJSEISAJIAkIQkJHE/SUjifpKQBIAkACQBIAlJPJAkJCEJSUhCEpJ4IElI4n6SkMT9JAEgiftJ4rlJAkASz00SAJIAkMRze/zjH88dd9zBsWPHeMmXfEnuJwkASQBI4rlJ4l8iiQeShCSemyQkIQlJSEISkpDECyKJB5KEJCTxgtjmfra5n22e2/nz5/mjP/ojAF7sxV7stbjqqquuuuqqq/6tCK666qqrrrrqqn+zF3uxF3ttgD/6oz/iP5okACQBIAlJSOJFIQlJSOK5SeKBJHE/STw3SbwgkgCQBIAkACTxaq/2agD82Z/9GZK4nyTuJwkASTw3SQBIAkASAJIAkIQkACRxP0ncTxKSuJ8kJCEJSUhCEpKQhCQkIYn7SUISkpAEgCQkIQlJSOJ+kpCEJAAkIQlJSEISkgCQBIAkACQBIAkASQBI4gWRBIAknpsk/r0kIQkASUgCQBIAkpCEJAAkIQkASQBIQhKSkIQkJAEgCUlIQhKSkASAJCQBIAkASUgCQBKSkMS/RBKSeCBJ3E8SknhukrifJAAk8dwkASCJF0QSAJIA+JM/+RMAXuM1XoN/iSQAJHE/SdxPEveTxP0kIYkHkoQkJPEvkYQkJCEJSUgCQBKS+I9mG4A//MM/BOB1Xud13purrrrqqquuuurfiuCqq6666qqrrvo3eZ3XeZ33vuaaax4M8OQnP5n/SJJ4IEk8kCQkIQlJSEISkpCEJB5IEpJ4IEk8kCSemySemyQAJPHCvNqrvRrHjh3jzjvv5K677uJ+krifJAAkcT9JAEgCQBIAkgCQBIAk7icJAElIAkASkrifJCQhiX+JJCQhCUkASAJAEpKQBIAkJAEgCUlIQhKSkMT9JCEJAElIQhKSkIQkJCEJSUgCQBIPJIl/Ldv8R5IEgCQeSBIAkpAEgCQAJAEgCUkASEISkpCEJCQhCUkASEISAJKQBIAkJHE/SUhCEpKQhCQkIYkHkoQk7ieJ+0lCEgCSuJ8knpskACTx3CQBIAkASTyQJO68807uuOMOjh07xpu/+ZsjCQBJAEjiBZHE/SRxP0ncTxIPJAlJPDdJSEISkpCEJCQhCUlIQhKSkIQk7ieJfy/bPLcnPelJPPGJT+Saa6558Iu92Iu9NlddddVVV1111b8FwVVXXXXVVVdd9W/yYi/2Yq8F8Md//MfczzYPZJsHss2/RBL3k8T9JCEJSUhCEpJ4QSQhiQeShCTuJ4nnRxL3kwSAJP41Xv3VXx2AP/uzP+N+krifJAAkcT9JAEgCQBIAkgCQBIAkACRxP0ncTxL3k4QkHkgSkpCEJCQhCUlI4n6SkIQkJCEJAEkASEISAJKQhCQkIQlJSEISkgCQhCQAJAEgCQBJAEjifpK4nyQkASAJSfxnkQSAJF4QSQBIAkASAJIAkIQkJCEJSUhCEgCSkIQknpskJCEJAElIQhIAkrifJCQhiX+JJCTxQJK4nyTuJ4n7SeJ+kgCQxHOTBIAkXhBJ3E8Sf/InfwLAgx70II4dO8bzIwkASTw3SdxPEveTxANJ4oEkIQlJ/FtJQhIAknhR2OZ+tnlBbAPwpCc9CYDXeZ3XeS+uuuqqq6666qp/C4Krrrrqqquuuurf5MVe7MVeG+AXfuEX+PeQhCQkIYn7SQJAEpKQxPMjCUlIQhKSeCBJSOKBJHE/SdxPEveTxAsiCQBJAEgCQBIAb/ZmbwbAE57wBO666y4AJHE/SQBI4n6SAJAEgCQAJAEgCQBJAEgCQBKSAJCEJAAkIYn7SUISkpCEJB5IEpKQhCQkASAJSQBIQhKSkIQkACQhCUlIQhKSkIQkJCEJSQBIQhKSkASAJAAkASAJSQBIQhIvjCT+s0lCEpK4nyQAJCEJSQBIAkASAJIAkASAJCQhCQBJSEISkrifJCQBIAkASQBIQhIPJAlJSEISkpCEJCTxQJKQxP0kcT9J3E8S95MEgCTuJwkASTw3SQBIAkASAJK431133cUdd9zBsWPHeI3XeA1eFJJ4bpK4nyTuJwlJ3E8SknhukpCEJCQhCUlIQhKSkIQkJCGJ+0kCQBKS+I/0R3/0RwC82Iu92Gtz1VVXXXXVVVf9WxBcddVVV1111VX/aq/zOq/z3tdcc82Dn/SkJ3H+/HkAbPMfRRIAkpDE/SQhCUlIQhKSeG6SkMQDSUIS95PE/SRxP0k8N0kASOJfcuzYMV7iJV4CgCc84QkASOJ+kgCQxP0kASAJAEk8P5IAkASAJO4niftJ4n6SkIQknpskJCGJB5KEJCQBIAlJAEgCQBKSkIQkJCGJ50cSkpCEJCQhCQBJSAJAEgCSuJ8kXhhJ/HtJ4l8iiQeShCQAJHE/SUhCEpIAkASAJCQhCUncTxKSkIQkJCEJSQBIQhIAkgCQhCQAJCEJSfxLJCEJSTyQJO4niftJ4n6SeG6SeG6SAJAEgCSeH0nc7zd+4zcAeNCDHsSDHvQgACQBIAkASTw3STw3SdxPEg8kiQeShCQk8S+RhCQkIQlJSEISAJK4nyReVLa5n22e2/nz53nSk57ENddc8+AXe7EXe22uuuqqq6666qp/LYKrrrrqqquuuupf7cVe7MVeC+CP//iP+Y8mCQBJ3E8SkpDE8yMJSUjigSQhiQeSxP0kcT9J3E8SAJL413qzN3szAJ7whCdw1113IYn7SQJAEveTBIAkACRxP0kASOJ+kgCQBIAkJAEgCUkASEISkrifJCQhCUlIQhKSkIQkJHE/SUgCQBKSkIQkJAEgCUncTxKSkIQkJHE/SUgCQBKSAJCEJCQhCQBJSOJ+kpCEJCQhif9skgCQxAsiCQBJSAJAEgCSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSQBIQhL3k4QkJCEJSUhCEpJ4bpKQxP0kcT9J3E8S95MEgCTuJwkASbwgkgCQxP0kAbC3t8fjH/94jh07xku+5EvywkgCQBL3kwSAJO4niQeSxP0kIYkHkoQkJCEJSUhCEpJ4QSQhCQBJ3E8SkpDEv5VtAP7wD/8QgHd6p3f6LK666qqrrrrqqn8tgquuuuqqq6666l/tdV7ndd4b4MlPfjIviG3+tSQBIAkASUjigSQhCUlIQhIPJAlJSOJ+kpDE/SRxP0ncTxIviCQAJAEgCQBJAEjilltu4ZZbbgHgz/7sz5DE/SQBIIn7SQJAEs9NEgCSAJDE/SQBIIn7SeJ+kpDE/SQhCUlI4vmRhCQkIQlJAEhCEgCSAJAEgCQkASAJSUhCEpKQhCQkIQkASUgCQBKSAJAEgCQkcT9JSOKFkcR/FUlI4oEkcT9JAEgCQBIAkgCQhCQAJCEJSTw/kpCEJAAkASAJAElIAkASkpDEv0QSkpDE/SQhiftJ4n6SuJ8knpskACRxP0kASAJAEg8kiftJAuBP/uRPAHjJl3xJHvSgB/GiksRzk8T9JCGJ+0nigSQhiedHEpKQhCQkIQlJSEIS95MEgCT+JbZ5QWzz3J70pCcBcObMmQdz1VVXXXXVVVf9axFcddVVV1111VX/Kq/zOq/z3gB//Md/zPnz5/mPIokHksT9JCEJSUjiuUlCEs9NEg8kiftJ4n6SeG6SAJDEi+rVX/3VAfizP/szDg4OuJ8kACRxP0kASOJ+kgCQBIAkACQBIAlJAEgCQBKSAJCEJO4nCUk8N0lIQhKSkMQDSUISkgCQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJAAkIQkASUgCQBL3k4QkXhhJ/FeSxP0kIQlJAEhCEgCSAJAEgCQkIQlJAEhCEveThCQkIQlJ3E8SkgCQBIAk7icJSdxPEpKQhCQkIQlJSOK5SeKBJHE/SdxPEveTBIAknpskACTx3CRxP0ncTxL7+/v8yZ/8CQCv8RqvAYAkACQBIAkASTw3SfxLJHE/SUjigSQhCUlI4l8iCUlIAkASAJL417DNC3P+/Hme9KQncc011zz4dV7ndd6bq6666qqrrrrqX4Pgqquuuuqqq676V3md13md9wJ40pOexP1s8+8hiftJ4n6SkMRzk4QkJPFAkpCEJO4nCUncTxL3k8Rzk8S/RBIAkrjfLbfcwi233ALAn//5n3M/SQBI4n6SAJDE/SQBIAkASQBIAkAS95MEgCTuJ4n7SUIS95OEJCQhCUlIQhKSkIQkJCEJAElIQhKSkASAJAAkIQlJSEISkpDEc5OEJCQhCQBJSAJAEpIAkIQk7icJSUhCEpKQxH8VSQBI4gWRxP0kASAJSUhCEgCSAJCEJAAkIQlJSEISkpCEJCQBIAlJSEISkpCEJO4nCUlI4l8iCUlI4n6SkMT9JHE/SdxPEgCSuJ8kACTx3CQBIAkASdxPEveTxBOe8AQAHvSgB/GgBz2If4kknpsk7ieJ+0nifpJ4IElI4rlJQhKSkIQkJCEJSdxPEpJ4IEn8R7ANwB/+4R8C8Dqv8zrvxVVXXXXVVVdd9a9BcNVVV1111VVX/au82Iu92GsD/PEf/zH/XpKQxP0kASAJSdxPEpKQhCQeSBKSkMQDSeKBJHE/SdxPEgCSeG6SAJAEgCSeH0m8+qu/OgC/+Zu/CYAkJAEgiftJAkAS95MEgCQAJAEgCQBJAEhCEgCSAJCEJAAkIYn7SUISkpDEv0QSkpAEgCQkASAJSUhCEpIAkIQkJHE/SUhCEpIAkIQkJCEJAElIAkASkrifJCTxL5HEA0lCEv+ZJCEJSdxPEpIAkIQkACQBIAlJSEISAJKQhCQkIQlJSEISkpCEJCQhCQBJAEgCQBKSeCBJSEISkpCEJCQhiQeShCTuJwlJ3E8S95MEgCTuJ4nnJgkASTw/krifJO63v7/Pr//6rwPwFm/xFjyQJF4QSQBI4n6SuJ8k7ieJB5LEA0lCEpJ4QSQhCUlI4n6SkMT9JPFvYZvn9qQnPQmAF3uxF3vtF3/xF39trrrqqquuuuqqFxXBVVddddVVV131Inud13md9wb44z/+Y14Y2zw/kpCEJCTxQJIAkMT9JCEJSTyQJCQhiQeShCTuJwlJ3E8S95PEc5MEgCT+NV7iJV6CW265hf39fZ74xCciiftJ4n6SAJDE/SQBIAkASQBIAkASAJK4nyQAJHE/SUgCQBKSkMQDSUISkpCEJCQhCUkASEISkgCQhCQAJAEgCQBJSEISAJKQhCQkIQlJSOJ+kpCEJAAkIQkASUhCEg8kCUk8kCSemyT+s0nigSQhiftJQhIAkgCQhCQAJCEJSUhCEpJ4QSQhCQBJSAJAEgCSkASAJCQhCUm8MJKQhCQeSBL3k4Qk7ieJ5yaJ+0kCQBLPTRIAkrifJO4nifvdeeed3HnnnRw7doyXfMmXRBIPJAkASQBI4rlJ4n6SuJ8k7icJSdxPEpJ4bpKQhCQkIYnnJglJ3E8S95OEJB5IEv8atjl//jxPetKTAHjsYx/7Wlx11VVXXXXVVS8qgquuuuqqq6666kX2ju/4jp8F8Ed/9Efczzb/XpIAkASAJCTxQJKQhCQeSBKSeCBJPJAk7ieJ5yaJ5yYJAEkASAJAEgCSAJDEq7/6qwPwm7/5m0jifpK4nyQAJHE/SQBIAkASAJIAkASAJAAkIQkASQBIQhL3k4Qk7icJSUhCEpKQhCQkIQlJSEIS95OEJAAkIQlJSEISkpCEJAAkIQlJSEISkpCEJCQhCQBJSEISAJKQxANJQhKSuJ8kJHE/SdxPEi+MJF4UkpCEJO4nCQBJvCCSkMT9JAEgCUkASEISAJKQxP0kIQlJSEISkgCQhCQAJCEJSUhCEgCSkMQDSUISkpCEJCQhiecmCUncTxL3k4QkACQhCQBJ3E8SAJK4nyQAJPFAkrifJO4nCYD9/X0e//jHA/Car/mavKgk8dwkcT9J3E8SDySJB5KEJCTx3CQhCUlIQhL3k4QkACTxQJKQhCT+rX7u534OgNd93dd9H6666qqrrrrqqhcVwVVXXXXVVVdd9SJ5sRd7sde+5pprHgzw5Cc/mf8okgCQBIAk7icJSUjigSQhCUncTxKSuJ8kJHE/SdxPEgCSuJ8kACTxr/Hqr/7qHDt2jLvuuou7776b+0nifpIAkMT9JAEgCQBJAEgCQBIAkgCQxP0kASAJSQBIQhL3k4QkJCGJf4kkJCEJSQBIQhKSkASAJAAkIQkASUhCEpKQhCQkIQlJSEISkrifJCRxP0lIQhIvjCT+JZL4zyQJSUhCEveThCQAJCEJAElIAkASkgCQhCQkIQlJSEISkpAEgCQkASAJAEkASEISAJKQhCQkIYnnRxKSkIQk7icJSdxPEveTxP0kcT9JPDdJAEjifpK4nyTuJ4n7SQLgCU94AnfeeSfHjh3jLd7iLZAEgCQAJPGCSAJAEveTxP0kcT9JSOJ+kpDEA0lCEpKQxHOThCQkcT9JAEjiRWWbf8n58+cBOHPmzINe7MVe7LW56qqrrrrqqqteFARXXXXVVVddddWL5HVe53XeC+CP//iP+Y8iiQeSBIAkJPFAkpCEJB5IEg8kiQeSxP0k8dwk8W917NgxXv3VXx2AP//zP+d+krifJAAkcT9JAEgCQBIAkgCQBIAkACQBIAlJAEjifpKQBIAkJCGJB5KEJCQhCUlIQhKSuJ8kJCEJSUgCQBKSkIQkJCEJSUhCEpJ4QSQhCUlIQhIAkpCEJO4nCUlIQhKSkMQLIon/DJK4nyTuJ4nnJglJ3E8SkgCQhCQAJCEJAElIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUkASEISz00SkpCEJCTx3CQhiQeSxP0kcT9J3E8S95MEgCSemyQAJHE/SdxPEveTBMCv//qvA/CgBz2IY8eO8fxIAkASAJJ4bpK4nyTuJ4kHksQDSUISz00SkpCEJB5IEpIAkASAJP4tbPNAtjl//jw/93M/B8CLvdiLvRZXXXXVVVddddWLguCqq6666qqrrnqRvNiLvdhrA/zRH/0R/xEkcT9J3E8S95OEJCTxQJKQxP0kIYn7SUIS95PEc5PEc5MEgCQAJAEgCQBJAEgC4DVe4zUAeOITn8hdd90FgCTuJwkASdxPEgCSAJAEgCQAJAEgCQBJAEjifpIAkIQk7icJSdxPEpKQhCQkIQlJSEISkpCEJCQBIAlJAEhCEpKQBIAkJAEgCUlIAkASkpCEJCQhiftJQhKSkMT9JCEJSbwgkrifJP4rSOKBJPHCSEIS95OEJAAkIQkASUhCEpJ4fiQhCUlIAkASAJKQhCQAJCEJAElIQhKSkIQk7icJSUhCEpJ4IElI4n6SuJ8k7ieJ+0kCQBL3kwSAJB5IEveTxP0kcT9J7O/v8/jHP55jx47xmq/5mvxrSOK5SeJ+krifJCRxP0lI4oEkIQlJPJAkJCEJSdxPEgCSAJDEf5Q/+qM/AuB1Xud13purrrrqqquuuupFQXDVVVddddVVV/2LXud1Xue9r7nmmgefP3+eJz/5yfx7SeJ+kgCQhCQAJCGJB5KEJB5IEpK4nyQeSBLPTRL3kwSAJP61brnlFl7iJV4CgD//8z8HQBIAkpAEgCTuJwkASQBIAkASAJIAkASAJAAkASAJSQBIQhIAkpDE/SQhCUlI4l8iCUlIQhIAkpAEgCQAJCEJSQBIQhKSAJCEJCQhCUlIQhKSkMT9JCEJSUjigSQhCUlI4oEk8UCS+I8iiReVJCQhCUlIQhL3k4QkJAEgCUkASEISkrifJCQhCUlI4n6SkIQkACQBIAkASUgCQBKSkMRzk4Qknh9JSEIS95OEJO4niftJ4n6SAJDE/SQBIIn7SeJ+krifJO4niftJ4k//9E8BeMmXfEke/OAHAyAJAEkASAJAEs9NEs9NEveTxANJ4n6SkIQkHkgSkpDEA0lCEpIAkMQDSeI/wvnz53niE5/INddc8+AXe7EXe22uuuqqq6666qp/CcFVV1111VVXXfUverEXe7HXAviFX/gFHsg2z48knh9JSOJ+kgCQxP0kcT9JSEIS95OEJB5IEveThCTuJwkASdxPEi+IJAAkASAJAEk80Gu8xmsA8Od//ufs7+8jCQBJ3E8S95MEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJHE/SUgCQBKSkIQk7icJSUhCEpKQhCQkcT9JSEISAJKQhCQkASAJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIYn7SUISkpCEJJ6bJCRxP0n8V5IEgCT+JZKQhCTuJwlJAEhCEpIAkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpKQBIAkJHE/SUhCEpKQhCQkIQlJSEISDyQJSdxPEpK4nyTuJwkASdxPEs9NEgCSuJ8k7ieJ+0nifgcHB/zpn/4pAK/xGq/Bi0ISAJK4nyQAJHE/SdxPEpK4nyQeSBKSkMQDSUISkrifJCRxP0ncTxL/EZ70pCcB8Dqv8zrvxVVXXXXVVVdd9S8huOqqq6666qqr/kUv9mIv9toAT37yk/m3ksQDSQJAEgCSuJ8kJPFAkpDE/SQhiftJ4oEk8dwk8dwkASCJF4UkXuIlXoJbbrkFgL/4i79AEgCSuJ8kACQhCQBJAEgCQBIAkgCQBIAkACQBIIn7SQJAEpK4nyQk8UCSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpIAkIQkJAEgCUkASEISkpDECyIJSUhCEpJ4fiQhiecmiQeSxH8HSTyQJCQhiQeShCTuJwlJSAJAEpKQhCQkIQlJSEISkpAEgCQkASAJAEkASEISAJKQhCReVJKQhCQeSBL3k4Qk7icJAEncTxL3kwSAJAAkASCJ+0nifpK4nyTu94QnPIG9vT0e9KAH8ZIv+ZIASAJAEv8SSTw3SdxPEg8kiftJQhIPJAlJSOKBJCGJ+0lCEgCSuJ8kJPHcJPHcbPNAtgH4oz/6IwBe7MVe7LW56qqrrrrqqqv+JQRXXXXVVVddddUL9Tqv8zrvfc011zz4j//4jzl//jwvKklIQhKSeCBJAEgCQBIAkpDE/SQhiQeSxANJ4n6SkMRzk8T9JAEgiX+r13iN1wDgt3/7t7mfJO4nCQBJ3E8SAJIAkASAJAAkASAJAEkASAJAEpIAkIQkACQhCUkASEISkpCEJF4YSUhCEpIAkIQkACQhCUlIQhKSkASAJCQhiftJQhKSkIQkJPFAkpCEJCQhCUlI4n6SkIQk7icJAEn8e0niRSUJAEncTxKSeCBJSEISkgCQhCQkcT9JSEISknh+JCEJSUgCQBKSkIQkACQhCQBJSOJ+kpCEJCQhCUlIQhKSkMRzk4Qk7ieJ+0lCEgCSuJ8k7icJAEk8kCQAJHE/SdxPEveTBMD+/j5/9md/BsBrvdZr8fxIAkASAJJ4bpJ4bpK4nyQkcT9JPJAkJPFAkpCEJO4nCUncTxIAknggSUhCEpL41zh//jxPetKTuOaaax78Yi/2Yq/NVVddddVVV131whBcddVVV1111VUv1Iu92Iu9FsCTnvQk/iNI4vmRxP0kIYn7SUIS95OEJO4niQeSBIAk7ieJ5yYJAEkASAJAEgCSAJAEgCRe/dVfnWPHjnHXXXfxxCc+EQBJ3E8SAJK4nyQAJAEgCQBJAEgCQBIAkgCQBIAkJAEgCUkASEIS95OEJCTxQJKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpL415LECyOJ/0qSeFFIQhKSAJCEJCQhiftJQhKSkIQk7icJSUgCQBIAkpCEJAAkIQkASUhCEi8KSUhCEpK4nyQkcT9J3E8S95PE/SQBIIn7SeJ+kgCQxP0kcT9J3E8SAHfeeSd33nknx44d4zVf8zV5UUkCQBL3kwSAJO4niQeSxP0kIYn7SUISknggSUjifpKQBIAkACTxH+UP//APAXind3qnz+Kqq6666qqrrnphCK666qqrrrrqqhfqdV7ndd4b4I//+I/595LE/SQBIAlJAEhCEveThCTuJwlJ3E8S95OEJJ6bJO4nCQBJ/FscO3aM13iN1wDgL/7iLwCQxP0kASCJ+0kCQBIAkgCQBIAkACQBIAkASQBI4n6SuJ8kJAEgCUlI4n6SkIQkJCEJSUhCEpKQhCTuJwlJSEISkgCQhCQkIQlJAEhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4n6SAJDEA0kCQBL/mSQBIIn7SUISkpCEJCQhCUlI4n6SkIQkJAEgCUlIQhKSkIQkJCEJAElIQhKSkASAJAAkIQkASUjifpKQhCQkIQlJSEISknhukpDE/SQhiftJ4n6SuJ8knpskACRxP0kASOJ+krifJO4nif39ff7sz/4MgJd6qZfi+PHjSAJAEgCSAJDECyKJ5yaJ+0lCEveTxP0kIYkHkoQkJHE/SUjifpIAkASAJP4jPOlJTwLgzJkzD+aqq6666qqrrnphCK666qqrrrrqqhfodV7ndd4b4I//+I/595LE/SQBIIn7SeJ+kpDE/SQhiftJ4n6SkMT9JAEgiftJ4gWRBIAkACQBIInn9uZv/uYAPPGJT+Suu+5CEgCSkASAJO4nCQBJAEgCQBIAkgCQBIAkACQBIAkASUgCQBKSuJ8kJHE/SUhCEpKQhCQeSBKSkIQkJCEJAElIAkASkgCQBIAkJCEJSUgCQBKSkIQkJPEvkYQkJCEJSTw/knhBJPFAkviPIokXRhIvCklIQhIPJAlJSEISkpCEJCQhCUlIAkASkgCQhCQkIQlJAEhCEgCSkIQkJPHCSEISkpDE/SQhiQeSxP0kcT9J3E8SAJIAkASAJO4nCQBJ3E8S95PE/SRx55138oQnPIFjx47xGq/xGvxLJAEgiecmiecmiftJQhL3k8QDSUISDyQJSdxPEpIAkASAJAAk8W9lG4Dz58/zpCc9iWuuuebBr/M6r/PeXHXVVVddddVVLwjBVVddddVVV131Ar3O67zOewE86UlP4t9DEveTBIAkACRxP0lI4n6SkMT9JHE/STyQJJ6bJJ6bJAAk8aKQBMCDHvQgbrnlFgD+8i//EkkASOJ+kgCQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJSAJAEpKQBIAkJCEJSTw3SUhCEg8kCUlIQhIAkpAEgCQkIQlJSAJAEpIAkIQkJCGJ+0lCEpKQhCQkIQlJPD+SkIQkJHE/SQBI4n6S+M8iCQBJPJAkACRxP0lIQhKSkIQkJCEJSdxPEpKQhCQkIQlJPJAkJCEJSUgCQBKSAJAEgCQAJCEJAElIQhL3k4QkJCEJSUhCEs9NEpJ4IElIAkASkgCQhCQAJCEJAEk8kCQAJHE/SQBI4n6SuJ8k7ieJP/3TPwXgpV7qpXjQgx7E/SQBIIkXRBIAkrifJAAkcT9JPJAk7icJSTyQJCRxP0lI4n6SeH4k8e/1cz/3cwC8zuu8zntx1VVXXXXVVVe9IARXXXXVVVddddUL9GIv9mKvDfDHf/zH/FtJ4n6SeCBJAEhCEveTxANJ4n6SuJ8kJHE/SQBI4n6SAJDECyIJAEm8IK/xGq8BwF/8xV+wv78PgCTuJwkASdxPEgCSAJAEgCQAJAEgCQBJAEgCQBKSAJCEJAAkIYn7SUISkrifJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJ3E8SkpCEJCQhCUlIQhKSkIQkJCEJSTw3STw/kviXSOLfQhIPJIkXRBIvCklIQhKSkIQkHkgSkpDE/SQhCUlIAkASkpCEJCQhCUkASEIS95OEJCQhCUlIQhKSkIQkJCEJSTyQJCRxP0ncTxL3k8T9JHE/SdxPEgCSuJ8kACRxP0ncTxL3Ozg44Dd/8zcBeIu3eAsk8fxIAkASAJJ4bpJ4bpK4nyQkcT9JPJAkJHE/SUjifpKQBIAkJAEgiftJ4t/j/PnzALzYi73Ya7/4i7/4a3PVVVddddVVVz0/BFddddVVV1111fP1Oq/zOu8F8Md//Me8IJJ4YSRxP0ncTxL3k8T9JHE/SUjifpK4nyQkcT9JPDdJPDdJAEgCQBLPjyQAJAHwki/5ktxyyy3s7+/zF3/xFwBI4n6SAJDE/SQBIAkASQBIAkASAJIAkASAJAAkIQkASUgCQBKSAJCEJCRxP0lIQhKSkIQkJCEJSUhCEpKQBIAkJCEJAElIAkASAJIAkIQkACQhCQBJSEISkpCEJCTxopKEJCRxP0kASOK/iyTuJwkASTyQJCQhCUlIQhKSkIQkJPFAkpCEJCQhCUlIQhIAkpCEJCQhCUkASAJAEgCSkASAJCQhiX8NSUhCEpK4nyQkcT9J3E8S95PE/SQBIIn7SQJAEveTBIAk7ieJ+0nifnfeeSf7+/scP36cl3zJl+RfQxIAkrifJAAkcT9JPJAk7icJSdxPEpK4nyQkcT9J3E8SAJK4nyQk8fxI4oU5f/48f/RHfwTAYx/72Nfiqquuuuqqq656fgiuuuqqq6666qrn6x3f8R0/G+CP//iP+deShCSeH0kASEISAJKQBIAkJHE/SdxPEpK4nyTuJwkASdxPEgCS+Pd48zd/cwB++7d/GwBJAEhCEgCSAJCEJAAkASAJAEkASAJAEgCSAJAEgCQkASCJ+0nifpKQxP0kIQlJSEISL4wkJCEJSQBIQhKSAJCEJCQhCUlIQhIAkpAEgCQkIQlJSOKBJCEJSUhCEpKQhCQkIYkHksTzI4n/aJL4l0ji+ZGEJF5UkpCEJCQhCUlIQhKSkIQkJAEgCUlIAkASkpCEJCQhCUkASEISkgCQhCQkIQlJSEISkpCEJCTx3CQhiftJQhL3k8T9JHE/SQBIAkAS95MEgCTuJwkASdxPEveThCT29/f5sz/7MwBe8zVfE0kASAJAEgCSAJDECyKJ5yaJ+0lCEveTxP0kIYn7SUIS95OEJO4nCQBJAEjigSQhiftJ4kXxh3/4hwC87uu+7vtw1VVXXXXVVVc9PwRXXXXVVVddddXzeLEXe7HXvuaaax4M8OQnP5kXRhKSkIQkJPHcJAEgCQBJ3E8S95PE/SRxP0lI4n6SuJ8knpsknpskACQBIAkASQBIAkASD/Tmb/7mANx1113cc889SAJAEveTBIAk7icJAEkASAJAEgCSAJAEgCQAJCEJAEkASEISAJKQhCQAJCEJSUjigSQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQhCUlIQhKSkIQkJCEJSUjifpKQhCQkIQlJSEISkpDEA0lCEveTBIAkACTxL5HEfzZJAEjigSQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQkASAJAEkASAJAEpK4nyQkIQlJ/EskIQlJSOJ+kpDE/SQhCQBJSOJ+kgCQBIAkACRxP0kASOJ+kgCQhCQAJCGJ+0niCU94AnfeeSfHjx/nLd7iLXhRSAJAEgCSuJ8knpsk7icJSdxPEveThCTuJwlJ3E8SkgCQBIAkACTx3CQhiRfVk570JJ70pCdx5syZB73Yi73Ya3PVVVddddVVVz03gquuuuqqq6666nm8zuu8znsB/PEf/zG2+feQBIAkACQBIIn7SeJ+krifJCRxP0ncTxL3kwSAJO4nCQBJ/FtI4pZbbuElX/IlAfjLv/xL7ieJ+0kCQBL3kwSAJAAkASAJAEkASAJAEgCSuJ8kACQhCQBJSEISAJKQhCTuJwlJSEISkpCEJCQhCUlI4n6SkIQkACQhCQBJAEgCQBIAkpAEgCQkIQkASUhCEpKQhCReEElIQhL3k8T9JPGCSOK/kiSeH0lI4vmRhCQk8a8hCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSTyQJCQhCUlIQhKSkMQDSUISkrifJCRxP0ncTxKSAJAEgCQAJAEgiftJAkAS95PE/SRxP0ncTxK/+Zu/CcCDHvQgHvSgBwEgCQBJAEgCQBIviCTuJwkASdxPEveThCTuJ4kHksQDSeJ+knh+JPGvZZsHeuITnwjAi73Yi70WV1111VVXXXXVcyO46qqrrrrqqquex4u92Iu9NsAv/uIv8u8hiedHEgCSuJ8kJAEgCUncTxL3k8T9JPHcJPGCSAJAEgCSAJDE8/Mar/EaADzpSU/i7rvvBkASAJKQBIAkACQhCQBJAEgCQBIAkgCQBIAkACQBIAlJAEhCEgCSkMT9JCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpDEA0lCEpKQhCQk8UCSkASAJB5IEveThCQAJCGJ/wiS+JdIAkASAJK4nyQkIQlJSOKBJCEJSUhCEpKQhCQkIQlJ3E8SkpAEgCQkASAJAEkASEISAJKQBIAkJCEJSUhCEpKQhCQkIQlJSEISDyQJSdxPEpK4nyTuJwkASQBIAkASAJK4nyQAJHE/SdxPEveTxP0ODg74sz/7M44fP85bvdVb8aKQBIAknpsknpsk7ieJ+0lCEveThCTuJwlJAEhCEgCSkASAJO4niX+PP/qjPwLgdV7ndd6bq6666qqrrrrquRFcddVVV1111VXP4XVe53Xe+5prrnnwk5/8ZM6fP8+/lSTuJwkASdxPEgCSkMT9JHE/SdxPEveTxP0kASCJ+0kCQBIAknhRSAJAEi/5ki/Jgx70IAB+53d+B0lIAkAS95MEgCTuJwkASQBIAkASAJIAkASAJAAkIQkASUgCQBKSAJCEJCRxP0lIQhKS+JdIQhKSkIQkJCEJSQBIQhKSkASAJCQhCUkASEISAJKQhCQkASAJSUhCEpKQxANJQhKSuJ8kACQBIIn7SeK/kiReEEncTxLPTRKSkIQkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQAJCEJSUhCEpKQBIAkJAEgCUlI4l9LEpKQxP0kIYn7SUIS95MEgCQAJAEgCQBJAEjifpIAkMT9JHE/SdxPEvd74hOfyP7+PseOHeOlXuql+NeSBIAk7icJAEncTxL3k8T9JCGJ+0lCEveTxP0kcT9JAEjifpJ4UUnigc6fP88Tn/hErrnmmge/2Iu92Gtz1VVXXXXVVVc9EMFVV1111VVXXfUcXuzFXuy1AP74j/8YAEn8a0nifpIAkASAJO4niftJ4n6SuJ8k7ieJ+0niuUniXyIJAEm8MG/+5m8OwM///M8jiftJ4n6SAJAEgCQkASAJAEkASAJAEgCSAJAEgCQkASAJSQBIQhIAkpCEJAAkIQlJSOJ+kpCEJCQhCUlIQhL3k4QkJAEgCUlIQhKSAJCEJCQBIAkASUgCQBKSkIQkACQhCUlI4oEkIQlJPJAk7ieJ5yaJ/0qSAJCEJO4niQeSxP0kIQlJvKgkIQlJSEISkpCEJAAkIQlJSEISAJIAkASAJCQBIAlJSAJAEpKQhCQkIQlJSEISkpCEJB5IEpJ4IEncTxKSAJAEgCQAJAEgCQBJAEjifpIAkMT9JHE/SdxPEgD7+/v82Z/9GQCv+ZqvCYAkACQBIAkASQBIAkASz00Sz00S95PE/SRxP0lI4n6SkMT9JHE/SQBIAkAS95PEv9Uf/dEfAfA6r/M678VVV1111VVXXfVABFddddVVV1111XN4sRd7sdcGePKTn8y/liQkcT9JAEgCQBIAkrifJO4niftJ4n6SuJ8k7icJAEk8N0kASAJAEs+PJAAkcb83f/M3B+Duu+/mnnvu4X6SAJCEJAAkASCJ+0kCQBIAkgCQBIAkACQhCUlIAkASkgCQhCQAJCGJ+0lCEpK4nyQkIQlJSEISkpCEJCQhCUkASEISkgCQhCQAJCEJSUhCEpKQhCQkIQlJSEIS95OEJCRxP0lIQhKSuJ8kJHE/STyQJF4UkviPJInnJon7SQJAEgCSkMT9JCEJSUhCEpKQhCQkIQlJPDdJSEISkpAEgCQkASAJSUhCEpKQhCQAJCGJ+0lCEpKQxL9EEpKQhCTuJwlJSOJ+krifJAAkASAJAEkASAJAEgCSuJ8kACRxP0ncTxL3kwTAE5/4RO68806OHz/OW77lW/KvJQkASdxPEgCSuJ8k7ieJ+0nigSRxP0lIAkASkgCQBIAkACRxP0lI4l/rSU96EgAv9mIv9tpcddVVV1111VUPRHDVVVddddVVVz3L67zO67z3Nddc8+A//uM/5vz58/xrSOKBJPFAkgCQBIAkJAEgCUkASOJ+krifJO4niecmCQBJ/Hs86EEP4iVf8iUB+Mu//EsAJCEJAEncTxIAkgCQhCQAJAEgCQBJAEgCQBKSAJAEgCQkASAJSQBIQhIAkpCEJO4nCUlIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSQBIQhKSkASAJAAkASAJSQBIQhIAkpCEJCQBIAlJSEIS95OEJCQBIAlJAEgCQBL3k8S/hST+K0lCEs9NEpKQhCQkIQlJSEISkpDE/SQhCUlIQhKSkIQkJAEgCQBJSEISkgCQhCQk8UCSkIQkJCEJSUhCEg8kCUlI4oEkIYn7SQJAEgCSAJAEgCQAJAEgCQBJ3E8SAJKQBIAk7ieJ+0lCEr/1W78FwIMe9CAe9KAHIQkASQBIAkASAJIAkMRzk8Rzk8T9JHE/SdxPEpK4nyTuJ4n7SQJAEg8kiQeSxL/G+fPnedKTnsQ111zz4Bd7sRd7ba666qqrrrrqqvsRXHXVVVddddVVz/JiL/ZirwXw5Cc/mX8NSTyQJO4niecmiftJ4n6SAJCEJAAkcT9J3E8SAJJ4bpIAkASAJAAkASAJAEk8t9d4jdcA4C//8i+5++67kcT9JAEgCUkASAJAEgCSkASAJAAkASAJAElIAkASAJKQBIAkJAEgCUkASEISkgCQhCQkIQlJSOIFkYQkJCEJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQxP0kIQlJ3E8SkpDE/SRxP0kASOJ+kvivJIkXRBL3kwSAJAAk8UCSkIQknh9JSEISkpCEJCQhCQBJSEISAJKQBIAkJCEJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQxANJQhKSuJ8kJAEgCQBJAEgCQBIAkgCQBIAkACRxP0ncTxIAkpAEgCQkcb+DgwP+7M/+jOPHj/OWb/mW/GtJAkAS95MEgCTuJ4n7SeJ+krifJCQBIAlJ3E8SAJK4nyTuJ4kHkoQk7icJSbwgP//zPw/AO73TO30WV1111VVXXXXV/Qiuuuqqq6666qpneZ3XeZ33BvjjP/5jHkgSz48kJPFAkrifJAAkASCJ+0nifpK4nyTuJwkASdxPEs9NEgCS+LeQBMBLvdRL8aAHPYj9/X3+8i//EkncTxIAkrifJAAkASAJAElIAkASAJIAkIQkACQBIAlJAEjifpKQBIAkJCEJAElIQhKSeCBJSEISkpCEJO4nCUlIQhKSAJCEJAAkIQlJSEISkpCEJCQBIAlJAEhCEgCSkIQkJAEgCUlI4n6SkASAJJ4fSTyQJCQhiRdEEi8KSfxbSOJ+kgCQxP0kIYn7SUISkpCEJCTxQJKQhCQkIQlJAEhCEpIAkIQkJCEJAEkASEISAJKQBIAkJCEJSbyoJCEJSUjigSQhiftJAkASAJIAkMQDSQJAEgCSAJDE/SRxP0ncTxL3k8T9nvSkJ7G/v8/x48d5qZd6Ke4nCQBJAEgCQBIviCSemyTuJ4n7SeJ+krifJO4nCUkASOJ+kgCQxP0k8dwkIYl/yfnz5wE4c+bMg7nqqquuuuqqq+5HcNVVV1111VVXXfY6r/M67w3wx3/8xzw/kpCEJCQhiecmiftJAkASAJIAkIQkACRxP0ncTxL3kwSAJO4nCQBJPDdJAEgCQBIAkgCQBIAkntubv/mbA/C7v/u7SAJAEpIAkASAJCQBIAkASQBIAkASkpCEJCQhCUkASAJAEpIAkASAJCQhCQBJSOJ+kpCEJO4nCUlIQhKSkIQkJCEJSUgCQBKSkIQkJCEJSUhCEpIAkASAJAAkIQlJSAJAEpKQhCQkIYn7SUIS95OEJO4nCQBJAEgCQBIPJIkHksQDSeK/iiTuJ4n7SeJ+kpDEA0lCEpKQhCQk8UCSkIQkJAEgCUlIQhKSAJCEJCQhCUkASEISAJKQhCTuJwlJSEISkpCEJCQhCUk8N0lIQhL3k4QkACQBIAkASdxPEveTBIAkACQBIAlJAEjifpK4nyTuJwmA/f19/vzP/xyA13zN1+TEiRO8KCQBIAkASdxPEgCSuJ8k7icJAElI4n6SuJ8k7ieJ+0kCQBIAkrifJP4tzp8/z5Oe9CSuueaaB7/O67zOe3PVVVddddVVVwEQXHXVVVddddVVl73O67zOewH88R//Mf8WkrifJAAkASAJAEncTxIAkrifJO4niftJAkAS95MEgCQAJPFvIQmAd3/3dwfg7rvv5p577gFAEveTBIAk7icJAEkASAJAEgCSAJAEgCQAJAEgCUkASAJAEpKQBIAkJAEgCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSdxPEpKQBIAkJAEgCUlIQhKSkIQkACQhCUlIQhIAkpAEgCQkIQkASUjifpK4nyQAJAEgiftJQhLPjyT+s0lCEpJ4IEk8kCQAJCGJ+0lCEpJ4IElIQhKSkIQkACQhCUlIAkASkgCQhCQkIQkASUhCEpIAkIQkJAEgCUlIQhKSeH4kIQlJSEISkrifJCQhCQBJSAJAEgCSAJCEJAAkcT9JAEgCQBL3kwSAJO4niftJ4n6SAHjiE5/IXXfdxfHjx3nN13xNnpskACTxL5EEgCTuJ4n7SeK5SUISAJKQxP0kcT9JAEgCQBIAkrifJP4tfv7nfx6A13md13kvrrrqqquuuuoqAIKrrrrqqquuuuqyF3uxF3ttgCc/+cn8a0nifpJ4fiQBIIn7SQJAEveTxP0k8dwk8YJIAkASAJIAkASAJAAk8UAPetCDeNCDHgTA7/7u7wIgCQBJSAJAEgCSkASAJAAkASAJAEkASAJAEgCSAJCEJAAkASAJSdxPEpIAkIQkJHE/SUhCEpKQhCQkIQkASUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJAElIAkASkpAEgCQkASAJSQBIQhIAkgCQxP0k8V9BEgCSeCBJPJAkHkgSAJIAkMT9JCGJ+0lCEpKQxP0kIQlJSEISAJKQhCQkASAJSUhCEgCSkIQkACQBIAlJSAJAEpKQxANJQhKSkIQknh9JSEISDySJ+0kCQBIAkgCQhCQAJHE/SQBIAkAS95MEgCTuJ4n7SeJ+kgD4rd/6LQBe6qVeigc/+MEASOL5kQSAJAAkASCJ5yaJ+0kCQBKSAJDE/SRxP0lIAkASkgCQxPMjiftJ4l/r/PnznD9/nhd7sRd77Rd/8Rd/ba666qqrrrrqKoKrrrrqqquuuorXeZ3XeS+AP/7jP+ZfSxLPjyQAJHE/SQBI4n6SAJDE/SRxP0kASOJ+kgCQBIAk/i0kAfAWb/EWAPzlX/4lh4eHSAJAEveTBIAkACQhCQBJAEgCQBIAkgCQBIAkACQhCQBJSEISkgCQhCQkASAJSUgCQBKSkIQkJPH8SOKBJCEJSUhCEpKQhCQkASAJSUhCEgCSkIQkACQhCUlIAkASkgCQhCTuJwlJAEhCEgCSuJ8kACRxP0m8KCTxn0ESz48kHkgSAJK4nyTuJwlJ3E8SkpCEJO4nCUlIQhIAkpCEJCQhCUkASEISkpCEJCQhCUlIQhIAkpCEJAAkIQlJSEISkpCEJCQhCUlIQhIPJAlJSAJAEpIAkASAJAAkcT9JAEhCEgCSAJAEgCTuJwkASUgCQBL3k8T9JHFwcMBv/dZvAfCWb/mW/HtIAkAS95PEc5PE/SRxP0ncTxL3k8T9JAEgiftJ4n6S+Nc4f/48f/RHfwTAYx/72Nfiqquuuuqqq64iuOqqq6666qqreMd3fMfPBvjFX/xF/jUk8UCSAJAEgCQAJHE/SQBI4n6SAJDE/SRxP0kASOIFkQSAJAAkASAJAEk8P6/xGq/BsWPHuPvuu/nrv/5r7icJAElIAkASAJK4nyQAJAEgCQBJAEgCQBKSkIQkACQhCQBJSEISkpAEgCQkIQkASUhCEpK4nyQkIQlJSEISkpCEJO4nCUlIQhIAkpCEJCQhCQBJSEISkpCEJCQBIAlJSEISAJKQBIAkJCEJAEncTxIAknh+JPE/mSReEEkASEISAJKQhCTuJwlJSEIS95OEJCQBIAlJSAJAEpKQhCQAJAEgCQBJSAJAEpKQBIAkJCEJSUjihZGEJCQhCUncTxKSAJCEJAAkASAJAElIAkAS95MEgCQAJAEgiftJ4n6SAJCEJAAkIYn73X333dx1110cP36c13qt1wJAEgCSAJAEgCQAJAEgCQBJPDdJ3E8SAJK4nyTuJ4n7SeJ+krifJAAkASCJ50cS/xp/9Ed/BMDrvu7rvg9XXXXVVVdddRXBVVddddVVV/0/92Iv9mKvfc011zz4yU9+MufPn+dFJYkHkgSAJAAkASAJAEncTxIAkrifJAAkcT9JPDdJAEgCQBL/GpK437Fjx3jN13xNAP7qr/4KAElIAkAS95MEgCQAJCEJSUgCQBIAkgCQBIAkJAEgCQBJSAJAEpIAkIQkACQhCUkASEISkrifJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCQBJSEISkgCQBIAkJCEJSQBIAkASkgCQhCTuJwkASUgCQBIAkgCQBIAknpskJCEJSfxPIIn7SQJAEgCSuJ8k7icJSUjifpKQhCQkASAJSUgCQBKSkIQkJAEgCUlIQhKSkIQkACQhCUkASEISknggSUhCEpKQhCQk8dwkIQlJAEhCEgCSkASAJAAkASAJSQBI4n6SAJAEgCQAJCEJAEncTxL3k8T9JAGwv7/PX/zFXwDwUi/1UjzoQQ/i30oSAJK4nyQAJHE/SdxPEveTxP0kASAJSQBIAkASAJIAkMQDSUISL4rz58/zpCc9iTNnzjzoxV7sxV6bq6666qqrrvr/jeCqq6666qqr/p97ndd5nfcC+OM//mNeVJJ4IEm8MJIAkMT9JAEgiftJAkAS95MEgCReEEkASAJAEgCSeEEk8RZv8RYAPPnJT+aee+5BEveTBIAkJAEgCQBJAEgCQBKSAJCEJCQhCUlIAkASAJKQBIAkJAEgCUkASEIS95OEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJAElIQhKSkASAJAAkIQlJSEISkpAEgCQkASAJSQBIAkASAJIAkMQDSUISz00S/xJJ/FtJ4kUhiftJAkASAJKQBIAkJHE/SUhCEgCSkIQkJAEgCUlIAkASkgCQhCQkIQkASQBIQhKSkIQkACQhCUkASEISkpCEJCQhCUlIQhKSkIQkJHE/SUgCQBKSAJCEJAAkASAJAElIAkASkgCQBIAkACRxP0kASOJ+krifJO4nCYC77rqLJz7xiRw/fpzXeq3XAkASAJIAkASAJAAkASAJAEk8N0k8N0ncTxIAkpAEgCQkASCJ+0kCQBIPJAkASTw3SUjiuUnigZ70pCcB8GIv9mKvxVVXXXXVVVf9/0Zw1VVXXXXVVf/PvdiLvdhrAzz5yU/mXyIJSTyQJO4nCQBJAEjifpIAkMRzk8T9JAEgiecmCQBJAEjiRSEJAEnc7yVf8iV50IMeBMDv/d7vIQkASUgCQBIAkpAEgCQAJAEgCQBJSEISAJIAkASAJAAkIQkASUgCQBKSAJCEJAAkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQBIAlJAEhCEpKQhCQkIQlJSEISkgCQhCQAJAEgCUkASEISAJIAkASAJAAk8UCSeGEk8dwk8Z9BEpKQhCQeSBL3kwSAJO4niftJQhIAkpCEJO4nCUlIAkASkpAEgCQkIQlJAEhCEpKQhCQAJCEJAElIQhIAkpCEJCTxL5GEJCQhCUkASEIS95PE/SQBIAkASQBIQhKSAJAEgCQAJAEgiftJAkASkgCQxP0kcT9JAPzFX/wF+/v7PPjBD+alXuql+LeSBIAk7icJAEncTxIAkrifJO4niftJAkAS95PEc5PE8yMJSUhCEs/tj/7ojwB4ndd5nffmqquuuuqqq/5/I7jqqquuuuqq/8de53Ve572vueaaB//Jn/wJFy5c4IWRxHOTxP0kASAJAEkASOK5SQJAEveTxHOTBIAkXhBJAEgCQBIAknhBJPEWb/EWAPzSL/0SkgCQxP0kASCJ+0kCQBIAkgCQBIAkACQBIAkASUhCEpIAkIQkACQhCQBJSAJAEpKQxP0kIQlJSEISLypJSEISkpAEgCQkIQlJSEISkpAEgCQAJAEgCQBJSEISkgCQhCQkIQkASUgCQBIAkgCQBIAk7icJSfxrSOLfQhL/Ekk8N0lI4n6SuJ8kACQhCQBJSAJAEpK4nyQkIQkASUhCEgCSkIQkJCEJAElIQhKSkIQkJCEJSQBIQhKSAJCEJCRxP0lIQhKSkIQkJCGJB5KEJCRxP0lIAkASkgCQBIAkACQBIAkASQBIAkASAJIAkMT9JHE/SQBIQhIAkpAEgCQODg74i7/4CwBe67Vei+PHj3M/SQBIAkASAJIAkASAJJ6bJAAkcT9JPDdJ3E8S95MEgCTuJwkASQBI4n6S+Nc6f/48T3rSk7jmmmse/GIv9mKvzVVXXXXVVVf9/0Vw1VVXXXXVVf+PvdiLvdhrATz5yU8GQBLPTRKSeG6SuJ8kACTxQJIAkASAJO4nCQBJ3E8SAJK4nyQAJAEgCQBJvCgkASCJ+737u787APfccw/33HMPAJIAkIQkACQBIAlJSEISAJIAkASAJAAkASAJAElIAkASAJKQBIAkJAEgCUkASEISkgCQhCQkIQlJ3E8SkpCEJCQhCUlIQhKSAJCEJCQhCUlIQhKSAJCEJAAkIQlJSEISkpCEJCQBIAkASUgCQBIAkpAEgCQAJAEgCQBJ3E8S/5tI4n6SuJ8k7icJAElIAkASkpAEgCQkIQkASUhCEgCSkASAJCQhCUkASAJAEgCSkIQkJCEJAElIQhIAkpCEJCQhCUlIQhKSkIQkJCGJ+0lCEpIAkIQkACQhCQBJAEgCQBIAkgCQBIAkACQBIAkASUgCQBL3k8T9JHE/SdzvSU96EnfddRfHjx/ntV7rtZDEv4UkACTx3CRxP0kASOJ+krifJAAkcT9JAEgCQBIAkrifJP61/uiP/giA13md13kvrrrqqquuuur/L4Krrrrqqquu+n/sxV7sxV4b4MlPfjL3k4QkJCGJ50cS95PEc5PE/SQBIAkASdxPEgCSuJ8kACTxgkgCQBIAkgCQxL/kwQ9+MA960IMA+L3f+z0kIQkASdxPEgCSAJDE/SQBIAkASQBIAkASkpCEJAAkASAJSQBIQhIAkpAEgCQkIQkASUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQkASQBIAkASkpCEJAAkASAJSQBIAkASAJIAkMT9JPFAkpCEJCQhCUk8kCT+o0gCQBL3k8S/RBL3k8QDSQJAEgCSkASAJCQhCQBJSEISAJKQhCQkIQlJSEISAJKQhCQkIQlJSAJAEpIAkIQkJAEgCUlIQhKSeGEkIQlJSAJAEpKQBIAkJAEgCUkASAJAEgCSAJAEgCQAJAEgCQBJ3E8SAJK4nyTuJ4n7SeJ+v/M7vwPAS73US/GgBz2I+0kCQBIAkgCQBIAkACTx3CQBIIn7SQJAEveTBIAkJAEgiftJAkASAJIAkASAJO4niX+NJz3pSQC82Iu92Gtz1VVXXXXVVf9/EVx11VVXXXXV/1Ov8zqv897XXHPNg//4j/+Y8+fP86KSxP0kcT9JAEgCQBLPTRIAkrifJAAk8dwkASAJAEm8KCQBIAkASdzvLd7iLQD4vd/7PQ4PD7mfJAAkIQkASQBIAkASkpCEJCQhCUlIQhKSkASAJAAkIQlJSAJAEpIAkIQkJCEJSUgCQBKSkIQk7icJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEpIAkIQkACQBIAlJSEISkpCEJAAkASAJSUhCEgCSAJAEgCQAJHE/STyQJF4QSfxPI4n7SQJAEgCSAJDE/SRxP0lIAkASkpAEgCQkASAJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJAEgCUlIQhL3k4QkJCEJSUhCEveThCQkcT9JSAJAEpIAkIQkACQBIAkASQBIAkASAJIAkASAJO4nCQBJSAJAEveTxP0kAbC/v89v//ZvA/BWb/VWSOLfQhIAkgCQxP0kASCJ+0kCQBL3k8T9JAEgiRdGEveThCReFOfPn+dJT3oS11xzzYNf7MVe7LW56qqrrrrqqv+fCK666qqrrrrq/6kXe7EXey2ApzzlKbyoJPH8SAJAEgCSAJAEgCTuJwkASTw3SQBI4gWRBIAkACQBIIl/yVu+5Vty7Ngx7rnnHp761KcCIAlJAEgCQBKSAJAEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJCEJSUgCQBKSkASAJCQBIAlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkACQhCUlIAkASAJIAkASAJAAkcT9J3E8SkvifShKSkIQkHkgSkgCQBIAkACQBIAlJAEhCEgCSkASAJCQhCUlIQhIAkpCEJCQBIAkASQBIAkASkpCEJCQBIAlJSOJ+kpCEJCQhCUlIQhKSkIQk7icJSUgCQBKSAJCEJAAkIQkASQBIAkASAJIAkASAJAAkASAJSQBI4n6SAJCEJAAkcT9JSOLuu+/mrrvu4vjx47zVW70Vz00SAJIAkASAJAAk8YJI4rlJAkAS95PE/SQBIIn7SQJAEgCSuJ8kHkgSL4qf//mfB+Cd3umdPourrrrqqquu+v+J4Kqrrrrqqqv+n3qd13md9wb44z/+Y14UknggSQBI4vmRBIAkACTx3CQBIIn7SQJAEgCSAJDEi0ISAJJ4oAc96EG85Eu+JAB//dd/DYAkACQhCQBJAEhCEgCSAJAEgCQAJAEgCQBJAEhCEpKQBIAkJAEgCUlIQhKSAJCEJAAkIQlJSAJAEpKQhCQkIQlJSOIFkYQkJCEJSUgCQBKSkASAJCQBIAlJSEISAJIAkIQkJCEJSQBIAkASAJIAkASAJAAkASAJSQBIQhIvKkm8MJL495LEA0niuUlCEg8kCQBJAEgCQBIAkpAEgCQkASAJSQBIQhIAkpCEJCQhCQBJSEISkpCEJCQhCUkASEISAJKQhCQAJCEJSUhCEpJ4bpKQhCQkIQkASUhCEgCSkMT9JAEgCUkASAJAEgCSAJAEgCQAJAEgiftJAkAS95PE/SQBIAlJ3O/g4IDf+Z3fAeClXuqlePCDHwyAJP41JAEgCQBJ3E8SAJJ4bpK4nyQAJHE/SQBIAkASAJK4nyQeSBL/kvPnzwNw5syZB3PVVVddddVV/z8RXHXVVVddddX/Q6/zOq/z3gB//Md/zItCEg8kiecmCQBJPDdJAEgCQBL3kwSAJF4QSQBIAkASAJL4l0gC4DVf8zUB+Ou//mvuueceJAEgiftJAkASAJKQBIAkACQBIAkASQBIQhKSkASAJAAkIQkASUgCQBKSAJCEJAAkIQlJSAJAEpKQhCQkIYkHkoQkJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQBIAkACQBIAkASUhCEpKQBIAkACQBIIn7SeK5SUISkpDECyMJAEn8Z5HECyOJB5IEgCQAJAEgCQBJSAJAEpIAkIQkACQhCQBJSAJAEpKQhCQAJAEgCUlIQhKSkASAJCQhCQBJSEISknggSUhCEpK4nyQkIQlJ3E8SkrifJCQBIAkASUgCQBIAkgCQBIAkACQBIAkASUgCQBIAkrifJO4niftJ4n4HBwf8xV/8BQBv9VZvxXOTBIAkACQBIAkASbwgkgCQxP0kASCJ+0kCQBL3kwSAJAAkASAJAEncTxIPJAlJvCAXLlzgj/7oj7jmmmse/Dqv8zrvzVVXXXXVVVf9/0Nw1VVXXXXVVf8Pvc7rvM57AfzJn/wJ/xJJPJAk7icJAEkASAJAEgCSeG6SAJDEc5MEgCQAJPGikASAJAAk8UCv+ZqvyYMe9CDuuece/uZv/gZJAEgCQBKSAJAEgCQAJCEJSUhCEpKQhCQkIQlJAEgCQBKSkIQkACQhCQBJSAJAEpIAkIQkJCEJAElIQhKSkMT9JCEJSUhCEpKQhCQkIYn7SUISkpAEgCQkIQkASUgCQBKSkIQkACQhCUlIQhKSkIQkJAEgCQBJSAJAEgCSuJ8kHkgSknhukpDEfwZJ/EeQhCTuJwkASQBIAkASAJKQBIAkJAEgCUkASEISAJKQhCQkASAJSUhCEpIAkASAJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCRxP0lIQhKSAJCEJCQBIAlJAEgCQBKSAJAEgCQAJAEgCQBJAEjifpIAkASAJCQBIIn7SeJ+krjfk5/8ZO6++26OHz/OW7/1WwMgiX8NSQBIAkASz00SAJK4nyQAJHE/SQBI4oWRxP0k8dwkIYkHkgTAH//xHwPwOq/zOu/FVVddddVVV/3/Q3DVVVddddVV/w+92Iu92GsDPPnJT+YFkYQkHkgS95MEgCQAJAEgCQBJAEgCQBL3kwSAJAAk8dwkASAJAEkASAJAEv8SSTzoQQ/iNV/zNQH4m7/5GwAkIQkASQBIQhIAkgCQBIAkACQBIAkASQBIAkASAJKQBIAkACQhCQBJSAJAEpKQhCQkIQlJAEhCEpKQxP0kIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQhCQBJSEISkpCEJCQhCQBJSEISkgCQBIAkACQBIAkASQBIQhIAkgCQhCTuJwlJ/EskcT9J/FeQxL+GJO4nCQBJAEgCQBIAkpAEgCQkASAJSQBIQhKSkASAJCQhCUlIQhKSkIQkJCEJAElIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlI4n6SkIQkACQhCUkASEISAJIAkIQkACQBIAkASQBIAkASAJK4nyQAJHE/SQBIQhIAkpAEgCQksb+/z+/8zu8A8KAHPYgHP/jBPJAkACQBIAkASQBIAkASz00SAJJ4bpIAkMT9JAEgiftJAkASAJK4nyTuJ4nnRxKSkMT9zp8/z5Oe9CRe7MVe7LVf/MVf/LW56qqrrrrqqv9fCK666qqrrrrq/5nXeZ3XeS+AP/7jP+YFkcRzk8T9JPGikASAJAAk8dwkASAJAEn8a0gCQBIAknig13zN1wTgr//6r7nnnnuQBIAkJAEgCQBJSAJAEgCSAJAEgCQAJAEgCQBJSEISkgCQhCQkIQkASUgCQBKSkASAJCQhCQBJSEISkgCQhCQkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUkASEISAJKQBIAkJCEJSQBIQhKSkIQkJCEJSQBIAkASAJKQBIAk7icJSfxPIQkASbwgkpCEJCQhCUk8kCTuJwkASQBIAkASAJKQBIAkJAEgCUlIQhIAkpCEJCQBIAkASQBIQhKSkIQkJCEJSUhCEveThCQkIQlJSEISkpCEJCQhCUlIQhIAkpCEJO4nCUkASEISAJIAkIQkACQBIAkASQBIAkASAJKQBIAkACQhCQBJ3E8S95PE/SSxv7/PX/zFX3D8+HHe6q3eCgBJ/FtIAkASAJK4nyQAJAEgiftJAkAS95MEgCQAJAEgiedHEi+K8+fP86QnPQmAxz72sa/FVVddddVVV/3/QnDVVVddddVV/8+84zu+42cD/OIv/iLPTRKSeG6SuJ8k7icJAEkASAJAEs9NEgCSAJDEc5MEgCQAJAEgCQBJAEjiXyKJ13zN1+RBD3oQBwcH/M3f/A2SAJDE/SQBIAkASUhCEpIAkASAJAAkIQlJSEISkgCQBIAkJAEgCUlIQhKSkIQkJAEgCUlIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJAElIQhKSAJCEJAAkASAJAEkASEISAJIAkMT9JHE/STw/kpCEJCTx3CTxX0USDySJF0QSkrifJO4nCQBJAEgCQBIAkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJAElIQhKSkIQkJCGJF4UkJCEJSdxPEpKQBIAkJAEgCUkASAJAEpIAkASAJAAkASAJAElIAkASAJK4nyQAJHE/SdxPEveTxJOf/GTuvvtujh8/zmu91mvx/EgCQBIAkgCQBIAkACTx3CQBIInnJgkASdxPEgCSAJAEgCQAJAEgiQeSxIvij//4jwF43dd93ffhqquuuuqqq/5/Ibjqqquuuuqq/0de7MVe7LWvueaaB1+4cIELFy5wP0lI4vmRxP0kcT9JAEgCQBIAkgCQBIAknpskACQBIIl/C0kASAJAEvd70IMexGu+5msC8Ad/8AdIAkASAJKQBIAkACQBIAkASUhCEpKQhCQkASAJAEkASEISkpAEgCQkASAJSQBIQhIAkpCEJAAkIQlJSAJAEpKQhCQkIQlJvCCSkIQkJCEJSUhCEgCSkIQkACQhCUlIQhIAkpAEgCQkIQlJAEgCQBIAkpAEgCQAJCEJAElI4oEkIQlJPDdJ/GtI4j+DJF4UkrifJCQBIAkASQBIAkASAJKQhCQkASAJSQBIAkASkpCEJCQhCUlIQhKSkASAJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCRxP0lIQhKSAJCEJCQBIAlJAEhCEgCSAJCEJAAkASAJAEkASOJ+kgCQBIAk7icJAElIAkAS95PE/Q4ODvjLv/xLAF76pV+aBz/4wUgCQBL/FpIAkASAJO4nCQBJAEjifpIAkASAJJ4fSQBI4oEk8S85f/48T3rSkzhz5syDXuzFXuy1ueqqq6666qr/Pwiuuuqqq6666v+R13md13kvgF/8xV9EEpKQxAsiiedHEgCSeCBJAEgCQBIAkgCQxHOTBIAkACQBIAkASQBIAkAS/xJJvOZrviYAT33qU7n33nuRhCQAJAEgCUkASAJAEgCSAJAEgCQAJAEgCQBJSEISkgCQhCQkIQkASUgCQBKSAJCEJCQBIAlJSEISAJKQhCQkIQlJ3E8SkpCEJCQhiftJQhKSkIQkJCEJSUhCEpIAkIQkACQhCQBJSEISkgCQhCQkIQkASQBIQhIAkrifJB5IEpL4l0ji+ZEEgCT+J5GEJO4nCQBJAEgCQBIAkgCQBIAkJAEgCUlIQhKSkASAJAAkASAJAElIQhKSAJCEJAAkIQlJ3E8SkpCEJCQhCUlIQhKSkIQk7icJSUgCQBKSkASAJCQBIAlJAEgCQBKSkIQkACQBIAkASUgCQBIAkgCQhCQAJHE/SQBIQhIAkpAEwN13381f/uVfcvz4cd7qrd6K50cSAJIAkASAJAAkASCJF0QSAJJ4bpIAkMRzkwSAJJ6bJB5IEv+SJz3pSQC82Iu92Gtx1VVXXXXVVf9/EFx11VVXXXXV/yMv9mIv9toAT37yk/mXSOKBJAEgiecmiX+JJAAkASCJfw9JAEjiub3ma74mD3rQgzg4OOAP/uAPkASAJCQBIAkASUhCEpIAkASAJAAkASAJAElIQhKSAJAEgCQkASAJSUhCEgCSkIQkJCEJSQBIQhKSkASAJCQhCUlIQhIAkpCEJCQhCUlIQhKSkMT9JCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkASAJSQBIAkASkgCQBIAkJAEgCUncTxKS+NeQxP0k8a8hCUlI4vmRxAsjiecmCUlIQhKSeG6SuJ8kACQBIAkASUhCEgCSAJCEJCQhCQBJAEhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQk7icJSQBIQhIAkpAEgCQAJAEgCUkASAJAEpIAkASAJAAkcT9JAEjifpK4nyTuJwmAJz3pSezv73P8+HFe67VeC0kASOLfQhIAkgCQxHOTBIAkACRxP0kASAJAEgCSAJDE/STxQJJ4Yf74j/8YgNd5ndd5b6666qqrrrrq/w+Cq6666qqrrvp/4nVe53Xe+5prrnnwn/zJn3DhwgVeGEk8kCSemyQAJAEgCQBJAEgCQBLPTRIAkgCQBIAkACQBIAkASQBI4gWRBMCDH/xgXvM1XxOAP/zDP0QSAJIAkIQkACQBIAkASUhCEpKQhCQkIQlJSEISAJIAkIQkJCEJAElIAkASkpCEJCQBIAlJSEISkpCEJAAkIQlJSEIS95OEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkACQhCUkASEISAJKQBIAkJAEgCUlIQhIAkpAEgCTuJ4n7SUISz00SkpCEJCQhif8MknhRSOL5kYQknh9JSEIS95OEJAAkASAJSUhCEgCSkIQkJAEgCQBJSEISkpCEJCQhCQBJSEISkpCEJAAkIQkASUhCEgCSkIQkJCEJSUhCEveThCQkIQlJSEIS95OEJCQBIAlJAEhCEgCSkASAJAAkASAJSUhCEpIAkASAJAAkASAJSQBIAkASkgCQxP0kcT9JHBwc8Lu/+7sAvPRLvzQPfvCDeW6SAJAEgCQAJAEgCQBJAEjiuUkCQBIAknhukgCQBIAkACQBIAkASdxPEg8kCUk8P+fPn+dJT3oS11xzzYNf7MVe7LW56qqrrrrqqv8fCK666qqrrrrq/4kXe7EXey2AJz/5ybwwknggSdxPEgCSAJAEgCQAJAEgCQBJAEgCQBL/ESQBIInn9pqv+ZoAPPWpT+Xee+9FEpIAkASAJCQBIAkASQBIAkASAJIAkASAJAAkIQlJSAJAEpKQhCQAJCEJAElIAkASkpAEgCQkIQkASUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpDE/SQhCUlIAkASkpAEgCQkASAJSQBIQhIAkgCQhCQAJCEJAElIAkASknggSUhCEi+IJB5IEv/ZJPEfQRIPJAkASUgCQBIAkgCQBIAkJCEJSQBIAkASAJIAkIQkJAEgCQBJSEISkpCEJCQhCQBJSEISkpCEJB5IEpJ4bpKQhCQkIQkASUhCEgCSkASAJCQBIAlJAEgCQBIAkgCQBIAkACQBIAkASdxPEgCSuJ8kACQhCQBJSAJAEvfccw9/+Zd/yfHjx3mrt3orJAEgiX8PSQBIAkASz00SAJIAkMQLIwkASdxPEs9NEs/PH//xHwPwOq/zOu/FVVddddVVV/3/QHDVVVddddVV/0+82Iu92GsDPOUpT+EFkcQDSeJ+kgCQxL+GJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgiecmCYDXeq3X4kEPehAHBwf84R/+IZK4nyQAJAEgCUlIQhIAkgCQBIAkACQBIAlJSEISAJIAkIQkACQBIAlJAEhCEpKQhCQkASAJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpAEgCQkASAJSUhCEgCSkASAJCQBIAlJ3E8SkpDEi0oSLypJPDdJ/HtI4n6S+NeQhCTuJ4n7SQJAEgCSAJAEgCQAJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQhiftJQhKSkIQkJCEJSUjifpKQhCQkASAJSUgCQBKSAJCEJAAkIQlJSAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSkASAJO4niftJ4n5PfvKTufvuuzl+/Div/dqvzXOTBIAkACQBIAkASQBIAkASAJJ4bpIAkASAJAAkcT9JAEgCQBLPTRL3k8Rzk4QkJHG/Jz3pSQC82Iu92Gtz1VVXXXXVVf8/EFx11VVXXXXV/wOv8zqv897XXHPNg//kT/6E8+fP8/xI4oEkcT9JPDdJAEgCQBIAkgCQxL9EEgCSAJDEi0oSD/SgBz2I13zN1wTgD//wD5EEgCQkASAJAEkASAJAEpKQhCQkIQlJSEISkpAEgCQAJCEJSUgCQBKSkIQkJCEJSUgCQBKSAJCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQBIAkJCEJAElIQhKSkIQkJCEJAElIAkASkrifJO4nCUk8P5KQhCT+NSQBIIl/LUn8R5CEJCQhCUlIQhIPJAlJAEhCEgCSAJAEgCQkIQlJSAJAEgCSAJAEgCQAJAEgCUlIQhIAkpCEJCQhCQBJSEISkgCQhCQkIQlJSEISkpCEJCQhCUkASEISkpAEgCQkIQkASUgCQBKSAJAEgCQkASAJAEkASAJAEgCSAJCEJAAkASCJ+0kCQBKSAJDE/SQBcHBwwO/+7u8C8FIv9VI85CEPAUAS/xEkASAJAEkASOK5SQJAEgCSAJAEgCTuJ4n7SeIFkYQkLly4wJOe9CSuueaaB7/Yi73Ya3PVVVddddVV//cRXHXVVVddddX/Ay/2Yi/2WgBPfvKTeW6SkMQDSeJ+krifJAAkASAJAEkASAJAEgCSAJAEgCQAJPHCSAJAEgCSAJDEc5MEwGu91msB8Ld/+7fcd999AEgCQBKSkIQkACQBIAkASQBIAkASAJIAkASAJCQhCUkASEISkpAEgCQkASAJSQBIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSeGEkIQlJSEISkpCEJAAkIQlJAEhCEpIAkIQkACQhCQBJSAJAEpK4nyQkASAJSTyQJCQhCUk8kCQkIYkHksT9JPGiksSLShIvjCQeSBIvjCQk8UCSuJ8kACQBIAlJAEgCQBKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlI4n6SkIQkACQhCUkASEISAJKQBIAkACQhCQBJAEgCQBIAkgCQxP0kASAJAElIAkAS95MEgCQkASAJSRwcHPCXf/mXHD9+nLd6q7fiuUkCQBIAkgCQBIAkACQBIAkASQBI4gWRBIAkACQBIAkASQBIAkAS95PE/STxL/mFX/gFAN7pnd7ps7jqqquuuuqq//sIrrrqqquuuur/gdd5ndd5b4A/+ZM/4YEk8dwkcT9J3E8SAJL415AEgCQAJAEgCQBJAEgCQBL/Ekk80Gu+5mvyoAc9iIODA/72b/8WSUgCQBIAkgCQhCQkIQkASQBIAkASAJKQhCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIQkASUhCEgCSkIQkJAEgCUlIQhKSkIQk7icJSUhCEpKQhCTuJwlJSEISkpCEJCQhCUlIAkASkpAEgCQkASAJSQBIQhL3k4QkACQhiQeShCReVJJ4IEn8V5PE8yOJF5UkJHE/SUgCQBIAkpAEgCQAJAEgCQBJAEgCQBKSkIQkJCEJSUgCQBKSAJCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJAEgCUlIAkASkgCQhCQAJAEgCUlIQhIAkgCQBIAkACQhCQBJAEjifpIAkMT9JHE/SdxPEk9+8pO5++67OX78OG/91m8NgCT+JZIAkASAJF4QSQBIAkASAJIAkMSLQhLPjyRemAsXLgBw5syZB3PVVVddddVV//cRXHXVVVddddX/ca/zOq/z3gB/8id/wv0kIYnnJonnRxLPTRIAkgCQBIAkACTx7yEJAEkASOK5SeJBD3oQr/VarwXAH/3RHyEJAElIAkASAJIAkASAJCQhCUlIQhKSkIQkACQBIAlJSEISAJIAkIQkACQhCQBJSAJAEpKQhCQkIQkASUhCEpIAkIQkJCEJSUjifpKQhCQkIQlJSEISkpCEJO4nCUlIQhKSAJCEJCQhCQBJSEISAJKQBIAkJAEgCUlIAkASkrifJCQhiX8LSfxnkcQLIokHksT9JPHcJCEJSUhCEs9NEpK4nyQAJCEJAEkASEISkpCEJCQhCUlIQhIAkgCQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCTxL5GEJCQhCUlIAkASkpDE/SQhCQBJSAJAEpIAkASAJAAkIQlJSAJAEgCSkASAJAAkASAJSQBIAkASkgCQhCQAJHG/w8NDfu/3fg+Al37pl+bBD34wDyQJAEkASOKFkQSAJAAkASAJAEkASOK5SQJAEgCSAJDE/SQBIIkHksQLcv78eZ70pCdxzTXXPPh1Xud13purrrrqqquu+r+N4Kqrrrrqqqv+j3ud13md9wL4kz/5EyQhiedHEg8kiecmCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkMQLIokHesu3fEsA/vZv/5b77rsPAEkASEISkpAEgCQAJAEgCQBJAEgCQBIAkpCEJCQBIAkASUhCEpIAkIQkACQhCQBJSEISAJKQhCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkASAJCQhCUkASEISkgCQhCQAJCGJ+0lCEveThCQeSBKSkIQkJCEJSUhCEpJ4bpJ4bpJ4bpL47yCJ50cSkpDEA0lCEgCSkASAJAAkIQkASQBIAkASAJKQhCQkIQlJAEhCEpKQBIAkJCEJSUhCEgCSkIQkJCEJAElIQhKSkIQkJCGJ+0lCEpKQhCTuJwlJSAJAEpIAkIQkACQhCUlIAkASAJIAkIQkJCEJSQBIAkASAJK4nyQAJHE/SdxPEgCSkATAwcEBf/VXfwXAW7/1WwMgiRdEEgCSAJAEgCQAJAEgiX+JJAAkASAJAEkASAJAEs9NEg8kCUk8P7/wC78AwOu8zuu8F1ddddVVV131fxvBVVddddVVV/0f92Iv9mKvDfCUpzyFF0QSDySJ+0kCQBIAkvivIgkASTw3Sbzne74nx48f59577+Xv/u7vkIQkACQBIAkASUhCEpKQhCQkIQlJSEISkpCEJCQBIAkASUhCEpIAkIQkJCEJSUhCEpKQhCQkASAJSUgCQBKSkIQkACQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpK4nyQkIQlJAEhCEpKQBIAkJCEJAElIAkASkpDE/SQhiftJQhKSeFFJ4gWRxANJ4gWRxH80STyQJF4UkpCEJO4niftJAkASkgCQBIAkJCEJSUhCEgCSAJCEJCQhCQBJSEISkpAEgCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhiftJQhKSkIQkACQhCUkASEISAJKQBIAkACQhCQBJAEgCQBIAkgCQBIAkACQBIAlJAEgCQBKSAJDE/SRxP0kAPPnJT+buu+/m+PHjvPVbvzUPJAkASfxbSAJAEgCSAJAEgCQAJPH8SAJAEgCSuJ8knpskntuFCxc4f/48L/ZiL/baL/7iL/7aXHXVVVddddX/XQRXXXXVVVdd9X/Y67zO67wXwJ/8yZ/wgkjigSRxP0kASOK5SQJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQxAsiifs96EEP4kEPehAAf/d3f4ckACQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEpKQhCQAJCEJSUgCQBKSAJCEJAAkIQlJSEISkpCEJCQhCUkASEISkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQk7icJSUgCQBKSkASAJCRxP0lIQhL3k4Qknh9J/Esk8V9BEg8kiReVJF4QSbwgkpAEgCQkASAJSQBIQhKSkASAJAAkIQlJSEISkgCQhCQkIQlJSEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUncTxKSkIQkACQhCUkASEISAJKQBIAkACQhCQBJAEgCQBIAkgCQBIAkACRxP0kASOJ+kgCQhCQAJCEJAEkcHh7ye7/3ewC89Eu/NA9+8IORxAsiCQBJAEgCQBIAkgCQBIAkACTxL5EEgCSemyQAJHE/STw3STzQ+fPn+eM//mMAHvvYx74WV1111VVXXfV/F8FVV1111VVX/R/2ju/4jp8N8Cd/8ic8P5J4IEncTxLPTRIAkgCQBIAkACQBIAkASQBIAkASAJIAkMQLIgkASTw3Sbzne74nAH/3d3/HfffdB4AkACQBIAlJSEISAJIAkASAJAAkASAJSUhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJAEgCUlIAkASkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUgCQBKSkASAJCQhCQBJSEIS95OEJCTxQJKQhCQkASAJSUhCEpJ4bpK4nyT+u0jiuUniuUlCEpIAkIQkJCEJSTyQJO4nCUkASEISAJIAkIQkJCEJAEkASEISkpAEgCQkASAJSQBIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQBIAkJCEJAElIAkASkgCQBIAkJCEJSQBIAkASAJIAkASAJAAkIQkASQBIQhIAkrifJO4nifsdHh7ye7/3ewC89Vu/NcePH+d+kgCQxH8ESQBIAkASAJIAkASAJAAk8dwkcT9JPDdJSOJ+T3rSkwB43dd93ffhqquuuuqqq/7vIrjqqquuuuqq/6Ne7MVe7LWvueaaBwM85SlP4blJ4oEkcT9J3E8SAJIAkMR/NEkASOIFkcT93vM93xOAe++9l7/7u79DEpIAkASAJAAkASAJSUhCEpKQhCQkIQlJSAJAEgCSkIQkJAEgCUlIQhIAkpAEgCQkASAJSUhCEpKQBIAkJCEJAElIQhKSkASAJCQhCUlIQhKSkIQk/iWSkIQkJCEJSUgCQBKSkIQkJAEgCUlI4n6SkMT9JCEJSdxPEpKQhCReVJKQxANJ4kUhiQeSxL+XJB5IEs+PJCTxopCEJO4nCUncTxKSAJAEgCQkASAJAElIQhKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEpKQBIAkJAEgCUlIQhIAkgCQhCQAJAEgCQBJAEgCQBKSAJAEgCQkASAJAElIAkAS95PE/Z7ylKdw9913c/z4cd76rd8aSTw3SQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJ3E8S95PE8yMJSTz5yU/mSU96EmfOnHnQi73Yi702V1111VVXXfV/E8FVV1111VVX/R/1Oq/zOu8F8Eu/9Es8N0k8kCTuJ4n7SQJAEs9NEgCSAJAEgCQAJAEgCQBJAEgCQBIAknhukgCQxHN76Zd+aR70oAcB8Md//MdIAkASkpCEJAAkASAJAEkASAJAEgCSAJCEJCQhCUlIAkASAJKQBIAkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkgCQhCQkIQlJSEISDyQJSUhCEpKQhCQkcT9JSEISkpCEJO4nCUlIQhIAkpCEJCQBIAlJSOJ+kpCEJJ4fSUhCEpKQxAsiiedHEgCS+O8kiftJ4t9CEpKQBIAkJHE/SQBIQhIAkpCEJCQBIAlJSEISkpCEJAAkIQkASUhCEpKQhCQkASAJSUhCEpKQxL9EEpKQhCQkIYn7SUISkgCQhCQkIQlJSEISkgCQhCQAJAEgCUlIQhKSkIQkJCEJSUgCQBIAkrifJAAkcT9JAEhCEgCSkATA7//+7wPw4Ac/mNd+7dfmfpL4l0gCQBIAkgCQBIAk/j0kASCJ+0nifpJ4QSTx5Cc/GYAXe7EXey2uuuqqq6666v8mgquuuuqqq676P+rFXuzFXhvgT/7kT3ggSTyQJJ4fSTw3SQBIAkASAJIAkASAJAAk8aKSBIAknpskAI4fP85bvuVbAvAbv/EbHB0dASAJAEkASEISkpCEJCQhCUlIQhKSkIQkJCEJAEkASAJAEpKQhCQkIQlJAEhCEgCSkASAJCQhCUlIQhIAkpCEJAAkIQlJSAJAEpKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJO4nCUlIQhKSkASAJCQhCUncTxKSkMT9JCEJSTyQJCQhCUlI4vmRhCQk8dwkcT9JPD+S+I8gif8okpCEJCQhCUlIQhKSkMQDSUISAJKQBIAkJAEgCUkASEISkpAEgCQkASAJSUhCEpKQhCQkASAJSUgCQBKSkIQkJCEJAElIQhKSkIQkJCGJ+0lCEpKQhCQkASAJSUgCQBKSAJCEJAAkIQkASUgCQBIAkgCQBIAkACQBIAkASQBIAkASkgCQBIAkJAEgiftJ4n6SODg44Pd+7/cAeOmXfmlOnDjBc5MEgCQAJPGvIQkASQBIAkASAJIAkASAJJ6bJO4niftJ4gX5kz/5EwBe53Ve57256qqrrrrqqv+bCK666qqrrrrq/6DXeZ3Xee9rrrnmwU9+8pO5cOECAJKQxANJ4oEk8dwkASCJfytJAEgCQBIAknhBJPHc3uqt3gqA++67j/vuuw9JSEISkgCQBIAkACQBIAkASQBIAkASAJIAkIQkJCEJSUgCQBKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlI4n6SkIQkJCGJ+0lCEpKQBIAkJCEJSTyQJCQhiX8LSUjiP4Ik/j0k8dwk8dwk8UCSeFFJQhKSuJ8kJAEgCUkASEISAJKQBIAkJCEJSQBIQhIAkpAEgCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkMT9JCEJSUhCEgCSkIQkACQhCQBJSAJAEpIAkIQkJCEJAEkASAJAEgCSAJAEgCQAJHE/SQBI4n6SAJCEJAAkIQkASTz1qU/lKU95CsePH+e93/u9kQSAJF4QSQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCTuJ4n7SeJ+knh+zp8/z5Oe9CSuueaaB7/Yi73Ya3PVVVddddVV//cQXHXVVVddddX/QS/2Yi/2WgB/+qd/CoAknpskHkgS95MEgCQAJHE/SQBIAkASAJIAkASAJAAkASCJF0QSAJJ4bpIAeK3Xei0e9KAHcXh4yG/8xm8gCQBJAEhCEpKQhCQkASAJAEkASEISkpCEJCQhCUkASAJAEpKQhCQkIQlJAEhCEgCSkASAJCQhCUlIQhIAkpCEJAAkIQlJSAJAEpKQhCQkcT9JSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEveThCQkIQlJ3E8SkpDEA0lCEpKQxANJQhKSkIQkJCEJSUhCEs+PJO4niReFJP6zSOKBJPH8SOIFkYQkJPH8SEIS95OEJAAkIQkASUgCQBKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIAkASkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIAkASkpAEgCQkASAJSQBIQhIAkgCQhCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUkASOJ+krifJO7313/91xwcHHD8+HFe+7Vfm+cmCQBJ/FeRBIAk/iWSkMRz+5M/+RMAXud1Xue9uOqqq6666qr/ewiuuuqqq6666v+gF3uxF3ttgKc85SlI4rlJ4oEkcT9JAEjiuUkCQBIAkgCQxItKEgCSAJDEc5PEAz3oQQ/itV7rtQD4kz/5EyQhCUkASAJAEgCSAJCEJCQhCUlIQhIAkgCQBIAkJCEJSUhCEgCSkASAJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEgCSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRxP0lIQhKSkMT9JCEJSUjigSQhCUlI4kUlCUm8KCQBIIn/DJL415DE/STx3CQhCUk8kCQkIQlJPJAkJHE/SUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJCQhCUlIAkASkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJHE/SUhCEpIAkIQkJAEgCUkASEISAJKQBIAkACQhCUlIAkASAJIAkASAJCQhCUkASAJAEveTBIAkJAEgiftJAuDg4IBf/uVfBuClX/qlechDHgKAJF4QSQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSeG6SAJDE/STx3CTxQE960pMAeLEXe7HX5qqrrrrqqqv+7yG46qqrrrrqqv9jXud1Xue9r7nmmgf/6Z/+KRcuXOC5SeKBJHE/STw3SQBI4l8iCQBJAEgCQBIAknhBJPHcJAHwVm/1VgD8/d//Pffddx+SAJCEJCQhCQBJAEgCQBIAkgCQhCQkIQlJSEISkgCQhCQkIQlJSEISkpAEgCQkASAJSQBIQhKSkIQkJAEgCUlIAkASkpCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSeGEkIQlJSEISkpCEJCQhiftJQhKSkIQk7icJSUhCEpJ4fiQhCUlIQhIviCQeSBL3k8TzI4n/iSQhiReVJCQhiftJQhKSAJCEJAAkIQkASUgCQBKSAJCEJCQhCUlIAkASkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSQBIQhKSAJCEJAAkIQkASUhCEpIAkASAJCQhCUlIQhKSkIQkACQBIAkASQBIQhIAkrifJAAkIQkASUji4OCAv/7rv+b48eO89Vu/Nc9NEgCSeEEkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJ3E8SAJK4nySemyTud+HCBZ785CdzzTXXPPjFXuzFXpurrrrqqquu+r+F4Kqrrrrqqqv+j3mxF3ux1wJ48pOfzHOTxANJ4n6SuJ8kACTx3CQBIAkASQBIAkASAJJ4QSQBIInnJgkASQC853u+J8ePH+e+++7jH/7hH5AEgCQAJAEgCUlIQhKSkIQkJCEJSUgCQBIAkgCQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhKSkMT9JCEJSUhCEpKQxPMjCUlIQhKSkIQk7icJSUhCEpJ4bpKQhCQkIQlJPD+SkIQkJPFAknggSfxbSOI/giSemySemyTuJ4nnRxKSkIQkJCGJ5yYJSUjifpKQBIAkJAEgCUlIQhKSkIQkJCEJAElIQhKSkIQkACQhCUlIAkASkpCEJCQhCUlI4gWRhCQkIQlJSEISAJKQhCQkASAJSUgCQBKSAJCEJAAkASAJSQBIAkASAJIAkASAJAAkASAJAEkASEISAJIAkIQkACRxP0ncTxJPecpTuOeeezh+/Dhv8zZvA4AknpskACQBIIn/KJIAkASAJJ6bJO4niecmifv98R//MQDv9E7v9FlcddVVV1111f8tBFddddVVV131f8zrvM7rvDfAn/7pn/JAknggSdxPEveTxHOTBIAkACQBIIl/iSQAJAEgiecmCQBJPNCDHvQgHvzgBwPwD//wDwBIQhKSkASAJAAkASAJAEkASAJAEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUhCEpKQBIAkJAEgCUlIQhKSkASAJCQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCGJ+0lCEpKQhCQkIQlJSEISkpCEJCTxQJKQhCQkIQlJPJAkJCEJSUhCEv8eknggSbwwknhukvjPJokHksSLQhKSeEEkIQlJSOKBJCGJ+0lCEgCSkIQkACQhCQBJSAJAEpKQBIAkJCEJSUhCEpIAkIQkJCEJSUhCEveThCQkIQlJSOJ+kpCEJCQhCUkASEISkpAEgCQkIQkASUgCQBKSkIQkACQhCUlIAkASAJIAkASAJAAkASAJAElIAkASAJK4nyQAJCEJAElIAuDw8JA/+IM/AOClX/qleemXfmkAJAEgiRdEEgCSAJAEgCQAJAEgCQBJAEgCQBIviCQAJHE/SdxPEs9NEpJ48pOfDMCZM2cezFVXXXXVVVf930Jw1VVXXXXVVf+HvM7rvM57A/zpn/4pDySJB5LE8yOJ+0kCQBIAknhBJAEgCQBJAEjiBZHECyKJ48eP817v9V4A/NZv/Rb33XcfkgCQBIAkJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJCEJCQhCQBJSEISkgCQhCQAJCEJSUhCEpKQhCQAJCEJSUhCEpIAkIQkJCEJSUhCEpKQBIAkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJB5IEpKQhCQkIYnnJglJSEISkpCEJCQhCUlIQhKSkMRzk8QDSeJ+kgCQxANJ4j+DJP41JHE/SdxPEpL415KEJCRxP0lIQhIAkpCEJAAkIQkASUhCEpKQhCQAJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCTuJwlJSEISkgCQhCQkIQkASUhCEpKQhCQAJAEgCUkASAJAEpKQhCQAJAEgCQBJAEgCQBKSAJAEgCQAJCEJAElIAkAS95MEwMHBAX/wB38AwOu8zutw/Phxnh9JAEjiXyIJAEkASAJAEgCSAJAEgCQAJPHcJHE/SdxPEs/PhQsXePKTn8w111zz4Nd5ndd5b6666qqrrrrq/w6Cq6666qqrrvo/5HVe53XeC+DJT34y95PECyOJ5yaJF0QSAJIAkASAJF4QSQBI4rlJAkASD/SWb/mWANx3332cPXsWSUhCEgCSAJAEgCQAJAEgCQBJAEhCEpKQhCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSEISkpAEgCQkIQlJAEhCEpKQhCTuJwlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQeSBKSkIQkJCEJSfxbSUISDySJ/wiS+O8giftJ4vmRhCQkIQlJSEISkpDEA0lCEpK4nyQkIQkASUgCQBKSkASAJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkJCGJ+0lCEpIAkIQkACQhCUlIQhIAkpAEgCQAJAEgCUlIQhKSkASAJCQhCUkASAJAEgCSkASAJO4nCQBJSAJAEpJ4ylOewlOe8hSOHz/O+7zP+wAgCQBJPDdJAEgCQBIAknhRSQJAEgCSAJAEgCTuJ4n7SeJ+knh+fvEXfxGA13md13kvrrrqqquuuur/DoKrrrrqqquu+j/kxV7sxV4b4E//9E8BkMRzk8T9JHE/SQBI4n6SAJAEgCQAJPGCSAJAEgCSeG6SAJDEc5PEa73Wa/HgBz+Yw8NDfvu3fxsASQBIQhKSkIQkJCEJSUhCEpKQhCQkIQkASQBIAkASkpCEJAAkIQlJSEISkpAEgCQkASAJSQBIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCTuJwlJSEISkpCEJCQhCUlI4vmRhCQkIQlJSEISkpCEJCQhCUk8P5KQxP0kcT9J/E8giecmCQBJvCgkIYkXhSQkIQlJ3E8SkpDE/SQhCQBJSEISAJKQhCQAJCEJSQBIQhKSAJCEJCQhCUncTxKSkIQkJCEJSUhCEpKQhCQkIQlJ3E8SkpCEJCQhCUlIQhIAkpAEgCQkASAJSQBIQhKSkASAJAAkASAJAElIQhIAkgCQBIAkACQhCQBJAEhCEgCSuJ8k7ieJv/mbv+Hg4IDjx4/z2q/92jyQJAAk8YJIAkASAJIAkASAJAAk8S+RBIAk7ieJ+0nifpJ4bufPnwfgxV7sxV77xV/8xV+bq6666qqrrvq/geCqq6666qqr/o94ndd5nfcC+NM//VMAJPHcJHE/SdxPEs9NEgCSeEEkASAJAEm8IJIAkMRzk8T9HvSgB/Far/VaAPzpn/4pkpCEJCQBIAkASQBIAkASAJIAkASAJAAkIQlJSEISkgCQhCQkIQkASUgCQBKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEgCSkIQkACQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCGJF0YSknhBJCEJSUhCEpKQhCQkIYl/C0lIQhLPTRL3k8RzkwSAJJ6bJP6jSeL5kcTzI4n7SeJ+kpDE8yMJSUhCEpKQxHOThCQkcT9JSEISAJKQhCQAJCEJSQBIQhKSAJCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIAkASkgCQhCQAJAEgCUlIQhIAkgCQBIAkACQBIAkASQBIQhIAkgCQxP0kASAJSQBI4n6Hh4f8yq/8CgCv8zqvw4Mf/GAk8YJIAkAS/xJJAEgCQBIAkgCQBIAknpsknh9J3E8SD3ThwgX++I//GIDHPvaxr8VVV1111VVX/d9AcNVVV1111VX/R7zjO77jZwP8yZ/8CZJ4bpK4nyTuJ4n7SQJAEs9NEgCSAJAEgCSemyQAJAEgiecmiecmifd6r/cC4B/+4R84d+4cAJIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkACQhCQBJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQk7icJSUhCEpKQhCQkIQlJSEISkpCEJJ4fSUhCEpKQhCQkIQlJSEISkpCEJCQhCUk8N0lI4l8iiedHEs+PJF4YSUhCEpL4jyaJF0YSkpDECyIJSUhCEpK4nyQkIQlJAEhCEpIAkIQkJAEgCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhIAkpCEJCQhCUlIAkASkgCQhCQkIQkASQBIQhIAkgCQBIAkACQBIAkASUgCQBIAkgCQhCQAJHE/SQBIQhIAh4eH/M3f/A0Ab/M2b8Px48e5nyQAJPHcJAEgCQBJAEjiXyIJAEkASAJAEveTBIAkXhBJSOJ+f/InfwLA677u674PV1111VVXXfV/A8FVV1111VVX/R/wYi/2Yq99zTXXPBjgqU99Ks9NEveTxP0kcT9JPDdJAEgCQBIviCQAJPGCSOK5SeJ+7/me7wnA2bNnedzjHockJAEgCQBJAEgCQBIAkgCQBIAkACQhCUlIQhKSAJCEJCQhCQBJSEISkgCQhCQAJCEJSUhCEpKQhCQAJCEJSUhCEpIAkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkcT9JSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCT+I0hCEs9NEveTxP0k8R9NEv9WkvjXksQDSeLfShKSkMQDSUISkgCQhCQkASAJSUgCQBKSkIQkACQhCUlIAkASkpCEJCQhCUlIQhKSeH4kIQlJSEISkpCEJAAkIQlJSAJAEpKQBIAkJCEJAElIAkASAJKQBIAkACQhCUlIQhKSkIQkACQhCUlIAkASAJIAkIQkACQBIAlJAEhCEgCSAHjqU5/KPffcw/Hjx3mbt3kbJPHcJAEgiRdEEgCSAJAEgCQAJPGCSAJAEs9NEveTxHOTBMCTn/xknvzkJ3PmzJkHvdiLvdhrc9VVV1111VX/+xFcddVVV1111f8Br/M6r/NeAH/6p3/Kc5PE/STx/EjifpIAkASAJJ6bJAAkASCJ5yYJAEk8N0k8t9d+7dfmwQ9+MAB/9md/hiQAJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAkASUhCEpIAkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkgCQhCQkIQkASUhCEpKQxP0kIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSeH4kIYkHksT9JPHcJAEgiecmiReFJJ4fSfxbSQJAEs9NEveThCSemyQkIQlJSEISkpCEJCQhiQeShCQkIYn7SUISkgCQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJPFAkpCEJCQhiQeShCQkIQlJSAJAEpKQhCQAJCEJSQBIQhKSkIQkJCEJSQBIQhKSkASAJAAkASAJAElIQhIAkgCQBIAkACQhCQBJAEjifpK4nyQAJHF4eMgf/uEfcnBwwIMf/GBe+7Vfm/tJ4rlJAkASAJL4l0gCQBIAkgCQxHOTBIAk7ieJ+0niuUkC4MlPfjIAL/ZiL/ZaXHXVVVddddX/fgRXXXXVVVdd9X/Ai73Yi702wC//8i/zQJJ4QSQBIIn7SQJAEs9NEgCSeEEkASCJ5yaJ5yYJgAc/+MG81mu9FgC/8zu/w9HREQCSAJAEgCQAJAEgCQBJAEgCQBIAkpCEJCQhCUkASEISkpAEgCQkIQlJSEISkgCQhCQAJCEJAElIAkASkpCEJCQhCQBJSEISAJKQhCQAJCEJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCGJ/06SkIQknpskHkgSz00Sz48k/iNJ4vmRxPMjiedHEi8KSUjiX0MSkpCEJCRxP0lIQhL3k4QkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpCEJO4nCUlIQhKSkIQkJCEJSUjifpKQhCQkIQkASUhCEpIAkIQkJAEgCUkASEISAJKQBIAkACQhCUlIAkASAJIAkASAJAAkASAJAElIAkASAJIAkIQkACRxP0nc7/DwkD/4gz8A4GVe5mV4yEMewnOTxAsiCQBJAEgCQBIviCQAJAEgiftJAkAS95PE/STx3CTxx3/8xwC8zuu8zntz1VVXXXXVVf/7EVx11VVXXXXV/3Kv8zqv897XXHPNgy9cuMCFCxe4nyQeSBL3k8Rzk8RzkwSAJJ6bJAAkASCJ5yYJAEncTxIAkrjfW73VWwHwuMc9jrNnzyIJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCQBJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSQBIQhKSkIQkJCEJSdxPEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYnnJglJPJAknh9J/FtI4vmRxH8lSdxPEveThCSemyQkIQlJSEISkpCEJCTx3CQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkIQlJSEISkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIAkASkpCEJAAkIQlJAEhCEgCSkASAJCQhCUkASAJAEpKQhCQAJAEgCQBJAEgCQBKSAJAEgCQAJCEJAEkASEISAJKQBMB9993H3/zN33D8+HHe5m3eBkkASOK5SQJAEi+IJAAkASAJAEk8N0kASOK5SeJ+krifJJ7bxYsXefKTn8w111zz4Bd7sRd7ba666qqrrrrqfzeCq6666qqrrvpf7sVe7MVeC+CXf/mXuZ8kHkgS95PE/STx3CQBIInnJgkASQBI4rlJAkASz00Sz+293uu9OH78OGfPnuXxj388kgCQBIAkACQBIAkASQBIAkASAJKQhCQkIQlJAEhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkASAJCQhCUlIQhKSkIQkACQhCUlIQhKSeCBJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8aKQhCQk8UCSkMT9JHE/STw3SfxXkMS/RBLPTRIAknhukrifJJ6bJCTxopKEJCQhCUk8kCQkIYn7SUISkpAEgCQkIQlJSAJAEpKQhCQkcT9JSEISkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkACQhCUlIAkASkpCEJCQhCQBJSAJAEgCSkASAJAAkASAJSUhCEpKQhCQkIQlJSAJAEgCSAJCEJAAkASAJSQBI4n6SAHja057Gvffey/Hjx3mbt3kb7icJAEk8N0kASAJAEi+IJAAkASCJ5yYJAEncTxL3k8T9JPHcnvzkJwPwOq/zOu/FVVddddVVV/3vRnDVVVddddVV/8u92Iu92GsDPOUpTwFAEg8kiftJ4n6SuJ8kACTx3CQBIIkXRBIAknhuknhukgB4rdd6LR784AcD8Od//ucASEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpAEgCQkASAJSQBIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJPHvIQlJSEISkpCEJCTx3CQhiQeSxP0k8dwk8UCSeG6S+JdI4t9DEs+PJJ4fSTw3STyQJCTx/EhCEpKQhCQkIQlJPDdJSEISkpAEgCQkIQlJ3E8SkpCEJO4nCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYn7SUISkpAEgCQkIQlJAEhCEgCSkIQkJCEJSUhCEgCSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJAEgCQBL3kwSAJCQBIInDw0P+8A//EICXfumX5nVf93V5bpIAkMRzkwSAJAAkASCJ5yYJAEkASOK5SeJ+krifJO4niQf6kz/5EwBe7MVe7LW56qqrrrrqqv/dCK666qqrrrrqf7HXeZ3Xee9rrrnmwX/6p3/KxYsXkcQDSeJ+krifJO4niecmCQBJPDdJAEjiBZHEc5PEAz34wQ/mtV/7tQH43d/9XZbLJZIAkASAJAAkASAJAEkASAJAEpKQhCQkIQkASUhCEpKQhCQAJCEJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJAEhCEpIAkIQkJAEgCUlIQhIAkpCEJCQhiftJQhKSkIQkJCGJ50cSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEi+IJCTx3CTxQJJ4bpJ4YSTx/Eji30sS/1Ek8fxI4rlJQhKS+JdIQhKSkIQkJPFAkpCEJCQBIAlJSEISkgCQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkASAJCQhCUlIQhKSAJCEJAAkIQkASUgCQBIAkpCEJCQBIAkASQBIAkASAJIAkASAJCQBIAkASQBIQhIAkrifJO53eHjIH/7hHwLw0i/90jz4wQ8GQBLPTRIAknhBJAEgCQBJPDdJAEgCQBL3k8TzI4n7SeJ+Fy5c4MlPfjLXXHPNg1/sxV7stbnqqquuuuqq/70Irrrqqquuuup/sRd7sRd7LYCnPvWpPDdJ3E8S95PE/SRxP0kASOK5SQJAEs9NEgCSeG6SeG6SAHirt3orAB73uMdx7tw5ACQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkACQhCUlIAkASkpCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQBIAkJCEJSUhCEpKQBIAkJCEJSUgCQBKSkIQkJCGJB5KEJCQhCUlIQhKSkIQkJCEJSbwoJCEJSUhCEg8kCUk8kCSeH0n8R5PEfzRJvCCSeG6SuJ8kHkgSknh+JCEJSUhCEpKQxPMjCUlIQhKSuJ8kJCEJSdxPEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhCQBJSEISkgCQhCQkASAJSUgCQBKSAJCEJAAkIQlJSAJAEgCSkIQkJCEJSQBIAkASAJKQhCQkASAJAEkASEISAJIAkIQkACQhCYCnPe1p/O3f/i3Hjx/nbd/2bXluknhBJAEgiecmCQBJAEjiuUkCQBL3kwSAJF4QSdzvT/7kTwB4p3d6p8/iqquuuuqqq/73Irjqqquuuuqq/8Ve53Ve570BnvKUp/BAkviXSOJ+kgCQxP0kASCJ5yYJAEk8N0kASOJ+knig93qv9+L48eOcPXuWJzzhCQBIAkASAJIAkASAJAAkASAJSUhCEpKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkACQhCQBJSAJAEpIAkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJSUhCEpKQBIAkJCEJSUjifpKQhCQkIQlJSEISkpDECyIJSUhCEpKQhCQkIYnnRxKSeCBJSOJ+krifJO4nCQBJAEgCQBLPTRL/VSTxwkjigSTx3CTxQJJ4bpKQhCReGElIQhKSkIQkJPFAkpCEJCQhCQBJSEISkpCEJO4nCUlIQhKSkIQkJPGCSOK5SUISkpCEJCQhCUkASEISkpAEgCQkIQkASUhCEpKQhCQAJCEJSUgCQBKSAJAEgCQAJAEgCUlIQhKSkIQkACQBIAkASQBIQhIAkgCQhCQAJHE/SQA89alP5d577+X48eO8zdu8DQCSeG6SAJDEc5MEgCReEEkASOK5SeK5SeJ+knggSUjiyU9+MgBnzpx5MFddddVVV131vxfBVVddddVVV/0v9Tqv8zrvDfCnf/qnXLhwgftJ4oEkcT9JPDdJPDdJAEjifpIAkMRzkwSAJJ6bJO4nidd6rdfiwQ9+MAB/8Rd/gSQkIQlJSEISkpCEJCQhCUlIQhKSAJAEgCQkIQlJSEISAJKQhCQkASAJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQkIQlJSEISkpAEgCQkIQkASUhCEpIAkIQkJCEJAElIQhKSkASAJCQhCUlIQhKSkMRzk4QkJCEJSUhCEpKQxAsiCUlIQhIPJAlJPJAk7ieJ+0niRSGJ50cSz00S/xaSeFFJ4oWRxPMjiQeShCSeH0lIQhKSkIQkJPH8SEISkpCEJCRxP0lIQhKSkMT9JCEJSUhCEpKQhCTuJwlJSEISkpCEJCQhCUlI4n6SkIQkJCEJSUgCQBKSkIQkACQhCUkASEISAJKQhCQkIQkASUgCQBKSkIQkJCEJAEkASAJAEgCSAJAEgCQAJAEgCUkASAJAEpIAkASAJCQBIImjoyP+8A//EICXeZmX4XVe53UAkASAJJ6bJAAk8dwkASAJAEk8N0kASOJ+kgCQxP0kcT9JPLeLFy/y5Cc/mWuuuebBr/M6r/PeXHXVVVddddX/TgRXXXXVVVdd9b/U67zO67wXwFOf+lTuJ4kHksT9JHE/STw3SQBI4rlJ4rlJAkASz00Sz00SD37wg3nt135tAH7v936P5XIJgCQAJAEgCQBJAEgCQBKSkIQkJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlI4n6SkIQkJCEJSTyQJCQhCUlIQhKSeEEkIQlJSEISknhukpDEA0nigSRxP0m8IJL4v0IS95PE/SQhiecmCUlI4oWRhCQkIQlJSEISknggSUhCEpKQxP0kIQlJSEISkpCEJO4nCUlIQhKSkIQkJCEJSUhCEpKQhCTuJwlJSEISkpAEgCQkIQlJAEhCEpIAkIQkACQhCQBJSAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQBIAlJSEISAJIAkMT9JAEgCUkASOJ+R0dH/OEf/iEAL/MyL8ODH/xgHkgSAJJ4bpIAkMRzkwSAJAAkcT9JAEjiuUnifpK4nySe2y/90i8B8Dqv8zrvxVVXXXXVVVf970Rw1VVXXXXVVf9LvdiLvdhrA/zpn/4pAJJ4IEncTxL3k8T9JAEgiecmCQBJ3E8SAJJ4bpJ4bpJ4oLd6q7cC4PGPfzznzp1DEpKQhCQkIQlJSEISkpCEJCQBIAkASUhCEpKQhCQAJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEgCSkASAJCQhCUlIQhKSkIQkACQhCQBJSEISAJKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSuJ8kJCEJSUhCEpJ4IElIQhKSkIQkJPH8SEISknggSUjifpJ4IEk8N0kASOKBJPHcJPGfSRIvjCSemyQAJAEgiecmiftJ4oEkIQlJPD+SkIQkJCEJSUhCEs+PJCQhCUlIQhL3k4QkJCEJSUhCEpK4nyQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSkIQkJCEJSQBIQhIAkpAEgCQAJCEJAEkASAJAEpKQhCQkIQlJSEISkpAEgCQAJAEgCQBJSAJAEveTBIAkJAHw9Kc/nb/927/l+PHjvO3bvi3Hjx9HEs9NEgCSeG6SAJDEc5MEgCSemyQAJHE/SdxPEveTxANduHABgBd7sRd77Rd/8Rd/ba666qqrrrrqfx+Cq6666qqrrvpf6HVe53XeC+BP//RPAZDEA0nifpK4nyTuJ4nnJgkASTw3STw3STw3STw3SbzXe70Xx48f59y5czzxiU9EEpKQBIAkACQBIAkASUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEpIAkIQkJCEJSUhCEpKQhCQkASAJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSUhCEpK4nyQkIQlJSEISDyQJSUhCEpKQxHOThCQkIYnnJglJPJAk7ieJ50cSLwpJPD+SeG6S+I8miedHEi+MJJ6bJB5IEs9NEpKQhCT+JZKQhCQkIQlJSEISkrifJCQhCUlIQhKSeCBJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpIAkIQkJAEgCUlIAkASkpCEJCQhCUlIQhKSkASAJCQhCUkASAJAEgCSAJAEgCQAJAEgCQBJAEhCEpKQBIAkACQhCQBJ3E8SAE972tO49957OX78OG/7tm/LA0niuUkCQBLPTRIAknhukgCQxHOTxP0kcT9J3E8S97tw4QJPfvKTAXjsYx/7Wlx11VVXXXXV/z4EV1111VVXXfW/0Du+4zt+NsBTn/pUJPFAkrifJJ4fSdxPEgCSeG6SeG6SAJDE/SQBIIn7SeJ+r/Var8WDH/xgAP7yL/8SAEkASEISkpCEJCQhCUlIAkASAJKQhCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQAJCEJSQBIQhKSAJCEJCQBIAlJSEISAJKQhCQkcT9JSEISkpDEA0lCEpKQhCSemyQkIQlJSOKBJCEJSTyQJB5IEveTxP0k8dwkASCJ/2sk8fxI4oEkIYnnRxKSkIQkJCEJSUhCEpJ4QSQhCUlIQhKSkMT9JCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCGJ+0lCEpKQhCQAJCEJSQBIQhKSAJCEJAAkIQkASUgCQBKSAJAEgCQkIQlJSEISAJIAkASAJAAkASAJAElIAkASAJIAkIQkACQBIAlJAEji6OiIP/qjP+Lw8JAHP/jBvM7rvA6SeG6SeG6SAJDEc5MEgCSemyQAJHE/SdxPEveTxP0kcb9f+qVfAuB1X/d134errrrqqquu+t+H4Kqrrrrqqqv+l3mxF3ux177mmmseDPBnf/ZnPJAkXhBJAEjifpJ4bpIAkMT9JAEgiecmiecmifs95CEP4bVf+7UB+P3f/32WyyWSkIQkJCEJAElIQhKSkIQkJCEJSUgCQBKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQBIAlJSEISAJKQhCQkASAJSUhCEpK4nyQkIQlJSOKBJCEJSUhCEs9NEpKQxANJQhL3k4Qk7ieJ+0nifpIAkMTzI4nnJokXRhL/ESTxwkjiuUkCQBIAkgCQxP0kcT9JPJAkHkgSkpCEJF5UkpCEJCQhCUlIQhKSkMQDSUISkpCEJCQhCUlIQhKSkMS/RBKSkIQkJCEJSUhCEpIAkIQkJCEJSQBIQhKSAJCEJCQhCUlIAkASkgCQhCQAJCEJSUgCQBIAkgCQhCQkIQlJSEISkpCEJCQhCUkASAJAEgCSkASAJAAkIQkASdzv6OiIP/qjPwLgZV7mZXjwgx+MJAAkcT9JAEjiuUkCQBLPTRIAkrifJAAkcT9J/EskAXDhwgUAzpw586AXe7EXe22uuuqqq6666n8Xgquuuuqqq676X+Z1Xud13gvgz/7sz3ggSTyQJO4niecmiftJAkASz00Sz00Sz00Sz+3EiRO813u9FwBPeMITOH/+PACSAJAEgCQkIQkASQBIAkASkpCEJCQhCQBJSEISkpCEJCQhCUlIQhKSkIQkACQhCUlIQhKSkIQkJCEJAElIAkASkpCEJCQBIAlJAEhCEgCSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJHE/SUhCEpK4nyQkIQlJSOJ+kpCEJCQhiQeShCQkIYkHkoQkHkgSDySJ+0nifpL415DE8yOJ/0qSeH4k8aKQxP0kcT9JSOKBJPH8SEISkpCEJCQhCUlIQhKSkIQkJCGJ5yYJSUhCEpKQhCQkIQlJSOK5SUISkpCEJCQhCUncTxKSkIQkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQBIAkJCEJSQBIQhKSkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJAEkASEISAJIAkIQkAO677z7+9m//luPHj/O2b/u2HD9+nPtJ4rlJAkASz00SAJJ4bpJ4bpJ4bpK4nyQeSBIXLlzgT/7kTwB4sRd7sdfiqquuuuqqq/53Ibjqqquuuuqq/2Ve7MVe7LUB/vRP/5T7SeKBJHE/SdxPEgCSuJ8knpskACRxP0kASOJ+knhukrjfW73VWwFw7tw5nvjEJyIJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJSUhCEgCSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEgCSkIQkACQhCUkASEISkgCQhCQkASAJSUhCEveThCQkIYkHkoQkJCGJB5KEJCQhiQeShCQeSBKSuJ8kJHE/SdxPEs9NEgCSAJDE/wWSeEEkcT9JPJAkJPFAkpCEJP49JCEJSUhCEpKQhCQkIQlJPDdJSEISkpCEJCQhCUlIQhKSkIQk7icJSUhCEpKQhCQkASAJSUhCEgCSkIQkACQhCUkASEISAJKQhCQkIQkASUgCQBIAkpCEJCQBIAkASQBIAkASAJIAkASAJCQhCUkASAJAEveTBIAkJAEgCYCnP/3p3HvvvRw/fpz3fd/3RRLPTRLPTRIAknhukgCQxHOTxP0kASCJ+0nifpJ4IEn8yZ/8CQCv8zqv895cddVVV1111f8uBFddddVVV131v8jrvM7rvPc111zzYICnPvWpAEjigSRxP0ncTxLPTRL3kwSAJJ6bJJ6bJO4nief21m/91jz4wQ/m6OiIP/iDP0ASAJIAkASAJAAkASAJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJAEgCUlIQhKSkIQkJCEJAElIQhIAkpCEJAAkIQlJAEhCEpKQBIAkJCEJSdxPEpKQhCQeSBKSkIQkHkgSkpDE/SQhCUncTxIPJIn7SeK5SeKFkcRzk8QLI4n/SJJ4YSTx3CTxQJIAkMRzk8QDSeKBJCGJ5yYJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSeG6SkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRxP0lIQhKSkIQkJAEgCUlIQhIAkpCEJAAkIQlJAEhCEgCSkASAJCQBIAlJSEISAJIAkIQkJCEJSUhCEpIAkASAJCQhCUkASAJAEgCSAJCEJAAkcT9JAEji6OiIP/7jP+bw8JDjx4/zNm/zNtxPEs9NEs9NEgCSeG6SAJDE/STx3CRxP0ncTxIP9NSnPpUnP/nJXHPNNQ9+sRd7sdfmqquuuuqqq/73ILjqqquuuuqq/0Ve7MVe7LUA/uzP/gwASTyQJO4niftJ4n6SeG6SeG6SeG6SeG6SuJ8kAB784Afz0i/90gD81V/9FZKQhCQkIQlJSEISkpCEJCQBIAkASUhCEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUgCQBKSAJCEJCQhCUlIQhKSAJCEJAAkIQlJSEISkgCQhCQkASAJSUgCQBKSkMT9JCEJSUgCQBKSkIQk7icJSUhCEg8kCUlI4oEkIYkHksT9JCGJ+0nifpIAkMS/hiSeH0n8W0lCEv8Wknh+JPGikMTzI4n7SUISDyQJSUjiP4MkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJHE/SUhCEpKQhCQAJCEJSUgCQBKSkASAJCQhCUlIQhIAkpAEgCQkIQlJAEhCEpKQBIAkACQBIAkASUhCEpKQBIAkACQBIAkASUhCEpIAkASAJCQBIIn7HR0d8eu//usAvMzLvAyv+7qvy/0kASCJ+0kCQBLPTRIAkrifJAAkcT9JAEjifpK4nyTuJ4kHespTngLA67zO67wXV1111VVXXfW/B8FVV1111VVX/S/yYi/2Yq8N8Cu/8itI4oEk8fxI4n6SuJ8kACRxP0kASOJ+kgCQxP0k8dwkAXD8+HHe+73fG4A/+IM/4Pz580gCQBIAkgCQBIAkJCEJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQBIAlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkACQhCUkASEISkgCQhCQkIYn7SUISkrifJCQhCUncTxKSkMQDSUISDyQJSdxPEg8kiftJ4rlJAkASAJIAkASAJP4zSEIS95PEv0QS/1aSAJDEc5PE/SRxP0k8kCQk8dwkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpIAkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSkIQkACQhCQBJAEhCEpKQBIAkACQBIAkASQBIAkASAJIAkIQkACQBIAkASUgCQBIAkpAEwNHREX/8x38MwMu8zMvwkIc8hOcmiecmCQBJPDdJPDdJPDdJ3E8S95PE/SRxvz/90z8F4MVe7MVem6uuuuqqq67634Pgqquuuuqqq/6XeJ3XeZ33vuaaax78lKc8hYsXL/JAknggSTw3SdxPEs9NEs9NEs9NEveTxHN767d+awDOnTvHhQsXkIQkJCEJSUhCEpKQhCQAJAEgCUlIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpAEgCQkASAJSQBIQhIAkpAEgCQkIQlJSEISAJKQBIAkJCEJAElIQhIAkpCEJO4nCUlI4n6SkIQkHkgSkpDE/SQhCUncTxKSeCBJ3E8SkrifJJ6bJP6tJPHCSOKFkcTzI4l/D0k8N0k8P5IAkMT9JHE/STyQJB5IEpKQxAsiCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJ/HtIQhKSkIQkJCEJSUhCEgCSkIQkJCEJSQBIQhKSkIQkJCEJAElIQhIAkpAEgCQkASAJSQBIQhKSkASAJAAkIQlJSEISkpCEJAAkASAJAElIQhKSAJAEgCQAJCEJAEkASEISAJIAePrTn87f/d3fcfz4cd72bd+W+0niuUniuUkCQBL3kwSAJJ6bJO4niftJ4n6SuJ8kAC5cuMBTnvIUrrnmmge/2Iu92Gtz1VVXXXXVVf87EFx11VVXXXXV/xIv9mIv9loAf/7nf84DSeKBJHE/STw3SdxPEgCSuJ8knpsknpsk7icJgPd+7/fmwQ9+MOfOneOP/uiPAJAEgCQAJAEgCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJAEgCUkASEISkgCQhCQkASAJSUgCQBKSkIQkACQhCUncTxKSkIQk7icJSUjifpKQxP0kIYn7SUIS95PE/SQBIInnJgkASQBI4rlJ4vmRxL+GJF4YSfxrSOL5kcS/hiTuJ4n7SUIS95OEJJ6bJCQhCUlI4j+KJCQhCUlIQhKSkIQkJCEJSUhCEpJ4IElIQhKSkIQkJCGJ+0lCEpKQhCQAJCEJSQBIQhKSAJCEJCQhCUlIAkASkgCQhCQkIQkASUhCEpIAkASAJAAkASAJSUhCEpKQhCQAJAEgCQBJAEhCEgCSAJCEJAAkASAJSTz96U/nvvvu4/jx47zt274tz00S95MEgCSemySemyQAJHE/SdxPEs+PJO4nCYA/+ZM/AeCd3umdPourrrrqqquu+t+B4Kqrrrrqqqv+l3id13md9wZ46lOfyv0k8UCSuJ8k7ieJ5yaJ5yaJ+0kCQBL3k8RzkwTAa7/2a/PgBz8YgL/5m79BEpKQhCQkIQlJSEISAJIAkIQkJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSEISkpAEgCQkIQlJSEISkgCQhCQkIQlJSEISkpCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUhCEpKQhCQAJCEJSQBIQhKSAJCEJCRxP0lIQhIAkpCEJB5IEpJ4IElI4n6SkMT9JPFAkrifJJ6bJAAk8cJI4l9LEi+IJF4UknhBJPFvJQkASQBI4rlJ4n6SeCBJPJAkJCGJ5yYJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrifJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkACQhCUkASEISAJKQhCQkIQlJSEISAJKQBIAkACQhCUlIAkASAJIAkASAJAAkASAJAEkASEISkpAEgCQAJCEJAEkASEISAEdHR/zxH/8xh4eHvMzLvAyv8zqvA4Ak7ieJ5yYJAEncTxIAknhukrifJJ6bJF4QSTzlKU8B4MyZMw/mqquuuuqqq/53ILjqqquuuuqq/wVe53Ve570B/uzP/owLFy7w/EjifpK4nyTuJwkASdxPEs9NEs9NEveTxAM9+MEP5rVf+7UB+MM//EOWyyUAkgCQhCQkIQlJSEISkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkACQhCUlIQhKSkASAJCQhCUlIQhKSAJCEJCQhCUlIQhIAkpAEgCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhIAkpCEJAAkIQlJAEhCEpIAkIQkJHE/SUjifpKQhCTuJwlJSOJ+kpDE/SRxP0lI4n6SeG6S+LeQxP0k8T+ZJJ6bJF4YSTw3STyQJB5IEs9NEpKQxL9EEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJ3E8SkpCEJCQhCUkASEISkpAEgCQkIQlJAEhCEpIAkIQkACQhCQBJSAJAEpIAkIQkJCEJAEkASEISkpCEJCQBIAkASQBIAkASkpCEJAAkASAJAElIAkASAJK4nyQAjo6O+JM/+RMAXvZlX5aHPOQhAEjiuUniuUniuUkCQBL3k8T9JAEgiftJ4n6SeKCLFy/ylKc8hWuuuebBr/M6r/PeXHXVVVddddX/fARXXXXVVVdd9b/A67zO67wXwFOf+lTuJ4n7SeJ+krifJO4niecmiftJAkAS95PEc5PE/SRx/Phx3vu93xuAJz3pSVy4cAFJSEISkpAEgCQAJCEJSUhCEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJCQBIAlJSAJAEpK4nyQkIQkASUhCEgCSkIQk7icJSTyQJCRxP0ncTxKSuJ8k7icJAEncTxIAkgCQBIAkACTxopLEi0oS/xqSeFFJ4vmRxL+GJJ4fSdxPEpK4nyQkIYkHkoQkJCEJSUhCEpL4jyQJSUhCEpKQhCQkIQlJSEISkpDE/SQhCUlIQhKSAJCEJCQhCQBJSEISkpCEJCQhCUlIQhKSkIQkACQhCUlIQhKSkASAJCQhCUkASAJAEgCSkIQkJCEJSUhCEpIAkASAJAAkASAJSQBIAkASAJKQBIAkJHHffffx93//9xw/fpy3fdu35fjx4zyQJO4nCQBJ3E8SAJJ4bpK4nySemyTuJ4n7SeKB/vRP/xSA13md13kvrrrqqquuuup/PoKrrrrqqquu+l/gxV7sxV4b4M/+7M8AkMT9JPH8SOJ+krifJJ6bJJ6bJO4niecmCYC3fuu3BuD8+fM86UlPQhKSkIQkJCEJSUhCEpIAkASAJCQhCUlIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQBIAlJAEhCEpKQhCQkASAJSdxPEpIAkIQkJHE/SUjifpKQxP0kIYn7SUISDySJ+0lCEveTxP0k8dwk8a8hiX8tSfxXkMS/lSQAJAEgiecmiftJ4n6SeCBJPJAkJCGJ50cSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYnnRxKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEgCSkIQkJAEgCUlIAkASkpAEgCQkASAJSUhCEpIAkIQkACQhCUlIAkASkpCEJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJAEkASAJAEpIAkMT9JPH3f//3PP3pT+f48eO83/u9HwCSuJ8knpsknpskACRxP0k8N0ncTxL3k8T9JHG/pzzlKQC82Iu92Gu/+Iu/+Gtz1VVXXXXVVf+zEVx11VVXXXXV/3Cv8zqv814Af/ZnfwaAJF4QSTw3SdxPEveTBIAk7ieJ5yaJ+0nigd77vd+bBz/4wRwdHfHHf/zHSEISAJIAkASAJCQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkACQhCUlIQhKSkASAJCQhCUkASEISAJKQhCQkIQlJSAJAEpIAkIQkACQhCUlIQhKSkIQkACQhCQBJSAJAEpKQBIAkJCEJAElI4n6SkMT9JCEJSQBIQhKSAJCEJO4nCUncTxL3k8T9JAEgiecmCQBJAEgCQBLPTRL3k8T9JPGiksS/hST+LSTx3CTxwkgCQBL3k8T9JHE/SUjifpKQxHOThCQkIYkXRhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJJ6bJCQhCUlIQhKSkMT9JCEJSUhCEgCSkIQkJAEgCUlIAkASkpAEgCQkASAJSQBIQhIAkpAEgCQAJCEJAEkASEISkpCEJCQBIAkASQBIAkASkpCEJCQhCQBJAEgCQBKSAJAEgCQkASCJv//7v+fw8JDjx4/ztm/7tgBI4rlJ4rlJ4rlJ4n6SAJDE/SRxP0ncTxL3kwTAhQsXeMpTngLAYx/72Nfiqquuuuqqq/5nI7jqqquuuuqq/+He8R3f8bMBnvrUpyKJB5LE/SRxP0k8N0ncTxLPTRL3k8Rzk8T9JPHar/3aPPjBDwbgb//2b5GEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJAAkIQkASUhCEpKQhCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhKSAJCEJO4nCUkASEISkgCQhCQkcT9JSOJ+krifJCRxP0ncTxL3k8RzkwSAJF4UkvjXksR/J0k8P5J4QSTxgkjifpK4nyQeSBIPJAlJSOK5SUISkpCEJCQhiRdEEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSuJ8kJCEJSUhCEpKQBIAkJCEJSUgCQBKSkIQkACQhCUkASEISkpCEJCQhCUlIAkASkpCEJCQhCUkASEISkpAEgCQAJAEgCUlIQhKSkIQkJCEJAEkASAJAEgCSkIQkJAEgCQBJSAJAEgBHR0f81m/9FgAv8zIvw+u8zuvwQJK4nyQAJHE/SQBI4n6SeG6SuJ8k7ieJ+0nifpIA+OVf/mUAXvd1X/d9uOqqq6666qr/2Qiuuuqqq6666n+wF3uxF3vta6655sEAf/7nf84DSeJ+krifJO4niecmiftJ4rlJ4n6SeH4e/OAH89qv/doA/PEf/zEXLlwAQBIAkgCQhCQkIQlJSAJAEpKQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkIQkASUhCEpIAkIQkJCEJSUhCEgCSkASAJCQhCUkASEISAJKQBIAkJAEgCUkASEISkgCQhCQAJCEJSQBIQhL3k4Qk7icJSdxPEveThCTuJ4n7SeJ+krifJAAk8dwkASAJAEm8KCTxbyGJfw9JPD+S+NeSBIAkHkgSAJJ4bpK4nyTuJwlJ3E8SknggSUhCEpJ4bpKQhCQkIQlJSEISkviXSEISkpCEJCQhCUlIQhKSkMT9JCEJSUhCEpKQBIAkJCEJSUgCQBKSkIQkJCEJSUhCEpKQBIAkJAEgCUlIQhKSAJCEJAAkIQlJSAJAEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJAEgCQBKSAJAEgCQkcXh4yJ/+6Z8C8LIv+7I85CEPQRL3k8Rzk8Rzk8Rzk8T9JHE/STw/krifJC5cuADAmTNnHvRiL/Zir81VV1111VVX/c9FcNVVV1111VX/g73O67zOewH82Z/9GQ8kiftJ4n6SuJ8k7ieJ5yaJ+0niuUnifpK434kTJ3jv935vAJ785Cdz4cIFJCEJSUhCEpKQBIAkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEpKQhCQkIQlJAEhCEpKQhCQkIQkASUhCEpKQhCQkASAJSQBIQhIAkpCEJAAkIQkASUjifpKQBIAkJHE/SUjifpKQBIAkJHE/SdxPEveTxP0k8dwkASCJF0YSz00Sz48k/qeTxL+VJAAkcT9J3E8SDySJB5KEJB5IEpKQhCQk8fxIQhKSkIQkJCEJSUhCEpKQxPMjCUlIQhKSkIQkJCGJ+0lCEpKQhCQkASAJSUhCEpKQhCQkIQkASUhCEgCSkIQkACQhCQBJSAJAEpIAkIQkJCEJAElIQhKSAJCEJCQhCUlIAkASAJIAkASAJCQhCUlIQhIAkgCQBIAkJAEgCQBJSAJAEk9/+tP5+7//e44fP87bvu3bcvz4cSTx3CRxP0kASOJ+kgCQxP0k8cJI4gW5ePEif/qnfwrA67zO67wXV1111VVXXfU/F8FVV1111VVX/Q/2Yi/2Yq8N8Od//ufcTxL3k8T9JHE/SdxPEveTxHOTxP0k8dwkcT9JvPVbvzUA58+f58lPfjKSAJCEJCQhCUlIQhKSAJCEJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJAEhCEpKQBIAkJAEgCUlIQhKSkIQkJCEJSUgCQBKSAJCEJAAkIYn7SUISAJKQxP0kIYn7SeJ+kpAEgCQkASCJ+0nifpIAkMQLIokXRBL/WpJ4fiTxH0ESLwpJPD+SeG6SAJAEgCQAJPHcJHE/SdxPEpK4nyQk8UCSkMRzk4QkJCEJSUji+ZGEJCQhCUlIQhKSkIQkJCGJ+0lCEpKQhCQkIQlJSAJAEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhIAkpCEJCQhCUkASEISkpCEJCQhCQBJSAJAEgCSkIQkJAEgCQBJSEISkpCEJCQhCUkASAJAEgCSAJAEgCQkASAJAElIAkASAJJ43OMex9Of/nSOHz/O+73f+/FAkrifJJ6bJJ6bJO4nCQBJ3E8S95PE/STxQH/2Z38GwIu92Iu9NlddddVVV131PxfBVVddddVVV/0P9Tqv8zrvfc011zwY4KlPfSoAkvjXkMT9JHE/STw3SdxPEs/Pe7/3e/PgBz+Y5XLJn/7pnyIJSUhCEgCSAJCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCQBJAEhCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEveThCQAJCGJ+0lCEgCSkMT9JHE/SQBI4n6SeG6SAJAEgCQeSBIAknhukrifJP4nksS/liReFJJ4bpK4nyQeSBL3k4QkJPFAkpCEJJ6bJCQhCUlIQhKSeG6SkIQkJCEJSUhCEpKQxANJQhKSkIQkJCGJ+0lCEpKQhCQAJCEJSUgCQBKSkIQkACQhCUkASEISAJKQhCQkIQkASUgCQBKSAJCEJCQhCQBJAEhCEpKQBIAkACQBIAkASQBIAkASAJIAkIQkJCEJAEkASEISAJIAkIQkAB73uMdx3333cfz4cd72bd8WSdxPEs9NEveTBIAk7ieJ5yaJ+0nifpK4nyTu95SnPIWnPOUpXHPNNQ9+sRd7sdfmqquuuuqqq/5nIrjqqquuuuqq/6Fe7MVe7LUA/vzP/xwASTyQJO4niftJ4rlJ4n6SuJ8knpsk7ieJ+73O67wOD37wgwH427/9WwAkIQlJSEISkpCEJAAkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJSEISkgCQhCQAJCEJAElIAkASkgCQhCQAJCEJAElIAkASkrifJCQBIAlJ3E8S95PE/SRxP0kASOJ+kgCQxL+FJP4lknhRSOK/myT+vSQBIIn7SeJ+kpDE/STxQJKQhCQeSBKSkIQknpskJCEJSUhCEpJ4fiQhCUlIQhKSkIQk7icJSUhCEpKQhCQAJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJAEkASEISkpCEJCQBIAkASQBIQhKSkIQkJAEgCQBJAEhCEgCSAJDE/SRxeHjIn/3Zn3F4eMjLvMzL8Dqv8zpI4rlJ4n6SeG6SeG6SuJ8k7ieJ+0nifpK431Oe8hQAXud1Xue9uOqqq6666qr/mQiuuuqqq6666n+o13md13lvgF/91V9FEg8kiftJ4n6SuJ8knpsk7ieJ+0niuUnifg95yEN47dd+bQD+5E/+hIsXLyIJSQBIAkASkpCEJCQhCQBJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJAEkASEISAJKQBIAkJAEgCUkASEISAJK4nyQkASAJSQBIQhL3k8T9JHE/SdxPEveTxP0kASCJ5yYJAEkASAJAEgCS+I8gif8KknhRSOL5kcRzkwSAJAAkASAJAEk8N0ncTxIPJIn7SUISDyQJSUjigSQhCUlIQhIPJAlJSEISkpCEJCQhiQeShCQkIQlJSEIS95OEJCQhCUlI4n6SkIQkJAEgCUlIQhIAkpCEJAAkIQlJAEhCEpKQhCQkASAJSUhCEpKQhCQAJCEJAEkASEISkpAEgCQAJAEgCUlIQhKSkIQkACQBIAkASQBIAkASkgCQBIAkACQhCQBJHB4e8qd/+qcAvO7rvi6v8zqvw/0kcT9JPDdJ3E8SAJK4nyTuJ4n7SeJ+krifJAD+7M/+DIAXe7EXe22uuuqqq6666n8mgquuuuqqq676H+h1Xud13hvgqU99KhcvXuSBJHE/SdxPEveTxP0k8dwkcT9J3E8Sz+3BD34w7/3e7w3A3/3d33Hx4kUkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASkgCQhCQAJCEJAElIAkASAJKQxP0kcT9JSAJAEpIAkIQkACQhCQBJSAJAEveTxHOTBIAk/jUk8dwkcT9J/E8miX8tSfxrSOK5SeJ+kpDE/STxQJKQxANJQhKSeCBJSEISkpDEc5OEJCQhCUlIQhKSeCBJSEISkpCEJO4nCUlIQhKSkASAJCQhCUkASEISkpAEgCQkIQkASUhCEgCSkASAJCQhCUlIAkASkgCQhCQAJCEJSUgCQBIAkpCEJCQBIAkASQBIAkASAJIAkASAJAAkIQlJSAJAEgCSAJCEJAAkASCJc+fO8ad/+qccHh7ysi/7sjz0oQ/lfpJ4bpK4nySemyTuJ4nnRxL3k8T9JHHhwgWe8pSncM011zz4xV7sxV6bq6666qqrrvqfh+Cqq6666qqr/gd6sRd7sdcC+PM//3MeSBL3k8T9JHE/SdxPEveTxHOTxP0kcT9JABw/fpy3eZu3AeDChQvceeedSAJAEgCSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSkASAJCQBIIn7SQJAEpIAkIQkACQhiftJ4n6SuJ8k7ieJ+0kCQBL3kwSAJJ6bJAAkASAJAEkASOK5SeJfIokXhST+M0jiX0sS95PECyIJAEkASOK5SeK5SeKBJHE/SUjifpKQhCQeSBKSkMRzk4QkJCEJSTyQJCQhCUlIQhKSkMT9JCEJSUhCEpK4nyQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkASAJCQhCUlIQhIAkpAEgCQkASAJSQBIQhKSkASAJCQhCUkASAJAEpKQhCQkIQlJSAJAEgCSAJCEJCQhCQBJAEgCQBKSkIQkACQBIAlJADzjGc/g1ltv5fjx47zt274tJ06c4LlJ4n6SeG6SuJ8knpskXhBJ3E8Sf/ZnfwbAO73TO30WV1111VVXXfU/D8FVV1111VVX/Q/0Oq/zOu8N8NSnPpX7SeJ+krifJO4niftJ4n6SuJ8knpsk7ieJ+73N27wNx48f58KFC/zZn/0ZkpCEJCQhCUkASEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIAkASkpCEJAAkASAJSQBIAkASkgCQBIAkJAEgCUkASAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkACRxP0ncTxL3kwSAJO4nCQBJAEjiX0MSz00S95PECyOJ/4kk8aKSxAsjCQBJ3E8SAJK4nyQkASAJSdxPEpJ4IElIQhIPJAlJSEIS95OEJCQhCUlI4oEkIQlJSEISkpDE/SQhCUlIQhKSAJCEJCQhCUkASEISkpAEgCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJAAkIQkASUhCEpIAkIQkJCEJAElIQhKSAJAEgCQAJAEgCUlIQhKSkIQkACQBIAkASQBIQhIAkgCQBIAkJAEgCYBnPOMZnD17luPHj/N+7/d+3E8S95PEc5PE/SRxP0kASOJ+krifJF6Qpz71qQCcOXPmwVx11VVXXXXV/zwEV1111VVXXfU/zOu8zuu8N8Cf//mfc/HiRQAk8W8liftJ4n6SeGHe533ehwc/+MEsl0v+7M/+DABJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEpKQBIAkJCEJSQBIQhKSkIQkJAEgCQBJSEISkgCQhCQkIQkASUhCEpIAkIQkACQBIAlJAEhCEgCSkASAJO4niftJ4n6SAJCEJAAkIQkASdxPEgCSeG6SAJAEgCQAJAEgiRdEEv8SSbwoJPFfTRL/WpL4t5DEc5PE/STxQJJ4IElI4oEkIQlJPJAkJCGJ5yYJSUhCEpJ4IElIQhKSkIQk7icJSUhCEpIAkIQkJCEJSQBIQhKSkASAJCQhCQBJSEISAJKQhCQAJCEJAElIQhKSkIQkJCEJAElIQhKSAJCEJAAkASAJSUhCEpKQBIAkACQBIAkASQBIAkASAJKQhCQkASAJAEkASEISAJIAkMTR0RF/9md/xuHhIcePH+ft3u7tuJ8k7icJAEncTxL3k8Rzk8T9JHE/SdxPEve7cOECT3nKU7jmmmse/Dqv8zrvzVVXXXXVVVf9z0Jw1VVXXXXVVf/DvM7rvM57ATz1qU8FQBIPJIn7SeJ+krifJJ6bJO4niftJ4n6SAHjt135tHvzgBwPw93//90hCEpIAkASAJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJSUgCQBKSkIQkACQBIAkASUhCEpIAkIQkJCEJAEkASEISAJIAkIQkACQBIAlJAEhCEgCSuJ8kACQhCQBJSAJAEveTxP0kcT9JAEjiuUkCQBL/GpIAkMS/hyT+O0jiX0sS95PEc5MEgCQAJAEgCQBJAEjifpIAkMT9JHE/SUjifpKQxP0kIQlJ3E8SkpCEJO4nCUlIQhKSuJ8kJCEJSUhCEveThCQkIQlJSAJAEpKQhCQkcT9JSEISkgCQhCQkIQkASUhCEgCSkIQkACQhCUlIQhKSAJCEJAAkIQkASUhCEpIAkIQkACQhCUlIAkASAJIAkIQkJCEJSUhCEpIAkIQkJCEJSUgCQBIAkgCQBIAkJAEgCQBJSALg6OiI3/md3wHgZV7mZXjd131dXhhJ3E8Sz00S95PE/SRxP0ncTxL3+7M/+zMAXud1Xue9uOqqq6666qr/WQiuuuqqq6666n+YF3uxF3ttgD//8z9HEg8kiftJ4n6SuJ8k7ieJF0YS95MEwIMf/GBe53VeB4A/+7M/4+LFi0hCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpIAkIQkJCEJSUhCEpIAkIQkJCEJAEkASEISkpAEgCQAJCEJAEkASEISAJK4nyQAJCEJAElIAkAS95MEgCQkASCJ+0niuUkCQBLPTRIAkgCQBIAkACTxopDE/STxv5kk/iWS+LeQxHOTxP0kcT9JSOJ+kpDEA0lCEg8kCUlI4oEkIQlJSOKBJCEJSUhCEg8kCUlIQhL3k4QkJCEJSQBIQhKSkASAJCQhCUkASEISkgCQhCQkASAJSQBIQhKSkIQkJAEgCUlIQhIAkpAEgCQkIQlJAEhCEpKQhCQkASAJAEkASAJAEpKQBIAkACQBIAkASQBIQhKSkASAJAAkIQkASQAcHR3xZ3/2ZwC87Mu+LC/zMi8DgCTuJ4n7SeK5SeJ+krifJO4niftJ4n6SAHjqU58KwIu92Iu99ou/+Iu/NlddddVVV131PwfBVVddddVVV/0P8jqv8zrvBfDnf/7nPDdJ3E8S95PE/SRxP0ncTxL3k8QLcvz4cd7nfd4HgKc+9alcvHgRSQBIAkASkpCEJCQhCQBJSEISkgCQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSQBIQhKSkIQkJAEgCQBJSEISkgCQBIAkACQhCUlIAkASAJKQhCQkASAJAElIQhKSAJAEgCQkASAJAElIAkASkgCQxP0kASAJSQBI4n6SAJDE/SQBIIn7SQJAEgCS+NeQxHOTxL9EEi8KSfxrSeI/giT+I0gCQBIAkgCQxHOTxHOTxP0k8UCSeCBJSOJ+kpCEJO4nCUlIQhL3k4QkJCEJSdxPEpKQhCQkIYn7SUISkpDE/SQhCUlIAkASkpCEJAAkIQlJSAJAEpKQBIAkJCEJSUhCEgCSkASAJCQhCUlIAkASkgCQhCQkIQkASUhCEpIAkASAJCQhCUkASAJAEgCSAJAEgCQAJAEgCUlIQhIAkgCQBIAkJAEgCQBJSOIZz3gGj3vc4zh+/Div93qvx0Me8hAAJHE/STw3SdxPEveTxP0k8fxI4n6SuHDhAk95ylMAeOxjH/taXHXVVVddddX/HARXXXXVVVdd9T/IO77jO342wFOf+lQkcT9J3E8S95PE/SRxP0ncTxL3k8T9JHE/SRw/fpz3eZ/3AeDChQs87WlPQxKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQhCUkASEISkpAEgCQAJCEJSUhCEpIAkASAJCQhCUlIQhIAkgCQhCQkIQkASQBIAkASkgCQBIAkJCEJSQBIAkASkgCQxP0kASAJSQBI4n6SAJDE/SQBIIn7SQJAEs9NEgCSAJAEgCQAJAEgiecmiecmiReVJP69JCEJAElI4kUliX8tSdxPEs9NEi8KSQBI4n6SAJDE/SRxP0lI4n6SkMT9JCGJB5KEJB5IEpKQxANJQhKSkMQDSUISkpCEJAAkIQlJSEISAJKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkASAJCQhCQBJSAJAEpIAkIQkACQhCUlIAkASkgCQBIAkJCEJSQBIAkASkpCEJCQhCUlIQhKSkIQkJCEJSQBIAkASAJIAkIQkACQBIIn7SeJxj3scj3vc4zh+/Dhv93Zvx/HjxwGQxHOTxP0kcT9JvDCSeCBJ3E8Sv/IrvwLA677u674PV1111VVXXfU/B8FVV1111VVX/Q/xYi/2Yq99zTXXPBjgL/7iL7ifJP6tJHE/SdxPEveTBMDbvM3bcPz4cS5cuMBf/MVfACAJAElIQhKSkIQkACQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSUgCQBKSkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSkIQkACQBIAkASUhCEpIAkASAJAAkIQlJSAJAEgCSkASAJAAkASAJSQBIAkASkgCQxP0kASCJ+0kCQBKSAJAEgCTuJwkASQBI4t9CEs9NEs+PJP61JPGiksTzI4n/SJL4l0jiBZEEgCReEEk8N0ncTxL3k4Qk7icJSdxPEpKQxP0kIQlJ3E8SkpCEJO4nCUlIQhKSuJ8kJCEJSdxPEpKQhCQAJCEJSUjifpKQhCQAJCEJSUgCQBKSAJCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQBIAlJSEISAJIAkIQkJCEJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEhCEpKQBIAkACQBIAlJAEji1ltv5ezZsxw/fpz3e7/347lJ4n6SuJ8knpsk7ieJ+0niBdnd3QXgzJkzD3qxF3ux1+aqq6666qqr/mcguOqqq6666qr/IV7ndV7nvQD+/M//nPtJ4oEkcT9J3E8S95PEi0oSAO/zPu/Dgx/8YJbLJX/xF3+BJCQhCUlIAkASkpCEJCQhCQBJSEISkgCQhCQkIQkASUhCEpKQhCQkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJAEhCEpKQhCQkASAJAEkASEISkpCEJCQhCUkASAJAEgCSkIQkJAEgCQBJAEhCEgCSAJAEgCQkASAJAElIAkASAJKQBIAkACQhCQBJ3E8SAJIAkMRzkwSAJAAkASAJAEkASOIFkcS/hiT+I0nihZHEv5Uk/iNI4vmRBIAkACRxP0kASOJ+krifJO4nCUncTxKSuJ8kJCGJ+0lCEpK4nyQkIQlJ3E8SkpCEJCRxP0lIQhKSAJCEJCQhiftJQhKSkASAJCQhCQBJSEISkpCEJCQBIAlJSAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkJCEJAElIQhKSAJAEgCQkIQlJSEISAJIAkASAJAAkASAJAEkASEISAJIAkASAJCQhCUkASAJguVzy53/+5xweHnLixAne9m3fFgBJ3E8S95PEc5PE/SRxP0ncTxL3k8T9Lly4wJ/92Z8B8Dqv8zrvxVVXXXXVVVf9z0Bw1VVXXXXVVf9DvNiLvdhrA/z5n/85AJJ4IEncTxL3k8T9JHE/SdxPEveTxAO99mu/Ng9+8IMB+Id/+AckASAJSUhCEpKQBIAkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpIAkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSAJAEgCQkIQlJSEISkpAEgCQAJAEgCQBJSEISkpCEJAAkASAJAElIQhKSAJAEgCQAJCEJAEkASEISAJIAkMT9JAEgiftJAkASz00SAJIAkMS/hSQAJPHcJHE/SdxPEi+MJP6tJPEfRRL/WpK4nySemyT+LSTx3CRxP0ncTxIPJIn7SUISDyQJSTyQJCTxQJKQhCQeSBKSkIQkACQhCUlI4n6SkIQkJAEgCUlIQhIAkpCEJAAkIQlJAEhCEpIAkIQkJCEJSUgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJAElIQhKSAJAEgCQAJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQAJAEgCUkASAJAEgCSkMTR0RG/+7u/C8DLvuzL8rqv+7oASOJ+knhukrifJO4niftJ4n6SuJ8k7vdnf/ZnALzYi73Ya3PVVVddddVV/zMQXHXVVVddddX/AK/zOq/z3tdcc82DAZ72tKfx3CRxP0ncTxL3k8T9JHE/SdxPEveTxIMf/GBe53VeB4C/+Iu/YHd3F0lIQhIAkpCEJCQhCUkASEISkpCEJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkASAJCQhCUlIQhIAkpCEJCQhCUlIQhIAkgCQBIAkACQhCUlIQhKSkIQkACQBIAkASQBIQhKSkASAJAAkASAJAElIAkASAJK4nyQAJAEgCUkASAJAEveTBIAkACTx3CQBIAkASQBIAkASAJIAkMQLIon/DJL4jySJ/yiS+JdI4rlJAkASAJIAkASAJJ6bJAAkcT9J3E8S95OEJO4niQeShCTuJwlJSOJ+kpCEJO4nCUlIQhL3k4QkJHE/SUhCEpIAkIQkJCEJAElIQhKSAJCEJCQBIAlJSAJAEpKQBIAkJAEgCUlIQhKSkIQkJCEJSUhCEpKQBIAkJAEgCQBJSAJAEgCSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASUhCEpIAkASAJAAkIQkASRwdHfHnf/7nALzu674ur/u6r8sLIon7SeJ+krifJO4niftJ4n6SAHjqU5/KU57yFK655poHv9iLvdhrc9VVV1111VX//Qiuuuqqq6666n+AF3uxF3stgD//8z8HQBL3k8T9JHE/SdxPEveTxP0kcT9J3E8SD37wg3mf93kfAB73uMdx8eJFJCEJSUhCEpIAkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhKSkASAJCQhCUlIQhIAkgCQhCQkIQlJSEISkpCEJCQhCQBJAEgCQBIAkgCQhCQkIQlJSAJAEgCSAJAEgCQAJCEJAEkASAJAEpIAkASAJO4nCQBJAEjifpIAkASAJAAk8e8hCQBJ/FtJ4j+KJP4rSOLfQxL/GpIAkMRzk8T9JHE/SdxPEpK4nyQkcT9JSOJ+kpCEJO4nCUlI4n6SkIQkJAEgCUlIQhL3k4QkJHE/SUhCEgCSkIQkJAEgCUlIAkASkpAEgCQkIQlJSEISAJKQBIAkJAEgCUkASEISAJKQBIAkJCEJSQBIQhKSkASAJAAkIQlJSEISkgCQBIAkACQBIAkASQBIAkASkgCQBIAkACQBIAlJAEgCQBK33XYbj3vc4wB4mZd5GR7ykIcgiftJ4n6SuJ8k7ieJ+0ni+ZHE/SQB8NSnPhWA13md13kvrrrqqquuuuq/H8FVV1111VVX/Q/wOq/zOu8N8Gu/9mtI4n6SuJ8k/qMcP36c93mf9wHgrrvu4u6770YSkgCQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkASAJCQhCUlIQhKSkASAJAAkASAJAEkASAJAEpKQhCQkIQlJSEISkgCQBIAkACQBIAkASQBIQhKSkASAJAAkASAJSQBIAkASAJK4nyQAJAEgiftJAkASAJIAkASAJAAkASAJAEkASAJAEi8KSdxPEveTxAsjif8qkviXSOJfSxL3k8SLQhIAkgCQBIAknpskACRxP0ncTxL3k8T9JCGJ+0lCEveThCTuJwlJSOJ+kpCEJO4nCUlI4n6SkIQkJAEgCUlIQhIAkpCEJO4nCUlIAkASkpAEgCQkIQkASUgCQBKSkASAJCQBIAlJAEhCEgCSkASAJCQhCUkASEISkpAEgCQkIQlJAEgCQBIAkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBIAkgCQhCQkIQkASQBIQhIAT3jCE3jc4x7HiRMneNu3fVuOHz+OJO4niftJ4n6SeGEk8YJI4s/+7M8AeLEXe7HX5qqrrrrqqqv++xFcddVVV1111X+z13md13lvgKc+9ans7u5yP0m8IJK4nyTuJ4n7SeJ+krifJN7mbd4GgIsXL/L4xz8eSUhCEpKQBIAkJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpAEgCQkIQlJSEISAJIAkASAJAAkIQlJSEISkpCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJAEncTxIAkgCQBIAk7icJAEkASOJfIgkASQBI4l8iiecmif8MkviXSOJ/Okk8N0m8KCQBIInnJon7SeJ+krifJO4nCUncTxKSuJ8kJHE/SUhCEveThCQkcT9JSEIS95OEJCRxP0lIQhIAkpCEJCQBIAlJSAJAEpKQBIAkJCEJAElIAkASkpCEJCQhCUlIQhIAkpCEJCQhCUlIAkASkgCQBIAkJCEJSQBIQhKSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASUgCQBIAkgCQhCQAJAFw2223cfbsWU6cOMH7vd/7ASCJ+0nihZHE/SRxP0ncTxIPtLu7y1Of+lSuueaaB7/Yi73Ya3PVVVddddVV/70Irrrqqquuuuq/2Yu92Iu9FsBf/MVfcD9JPJAk7ieJ+0nifpK4nyTuJ4n7SeJ93ud9ePCDH8xqteIv//IvkQSAJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQAJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkJCEJSUhCEpKQBIAkACQBIAkASQBIQhIAkgCQBIAkACRxP0kASAJAEgCSAJAEgCReGEkASAJAEs9NEs9NEveTxAsiif9ukviPIIl/DUn8SyTxgkgCQBL3k8T9JAEgCUncTxL3k4Qk7icJSdxPEpK4nyQkIYn7SUISkrifJCQhCQBJSEISkgCQhCQkASAJSUhCEgCSkIQkACQhCUkASEISkpCEJCQBIAlJAEhCEgCSkIQkJCEJAElIAkASkgCQhCQkIQkASQBIQhKSkASAJAAkIQlJSEISkgCQBIAkACQBIAkASQBIQhKSkASAJAAkASAJSQBIAkASy+WSv/iLv+Ds2bOcOHGCj//4j+cFkcT9JHE/SdxPEveTxP0k8UB/9md/BsA7vdM7fRZXXXXVVVdd9d+L4Kqrrrrqqqv+m73O67zOewM87WlP4/mRxP0kcT9J3E8S95PE/SRxP0m8z/u8Dw9+8INZrVb85V/+JZKQhCQkASAJSUhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhKSkIQkJCEJSQBIQhKSkASAJCQhCUkASEISkpCEJCQBIAlJSEISkpAEgCQAJAEgCQBJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkgCQBIAkACQBIAkASQBIAkASAJK4nyQAJAEgCQBJAEjiuUkCQBIAkgCQBIAkACQBIAkASbwgknhukviXSOKFkcS/hST+q0nihZHE/STxopAEgCQeSBIAkgCQxHOTxP0kASCJ+0lCEveTxP0kIYn7SUIS95OEJO4nCUlI4n6SkIQkACQhCUncTxKSkMT9JCGJ+0lCEpIAkIQkJAEgCUlIAkASkgCQhCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhKSkASAJCQhCUkASAJAEpKQhCQAJAEgCQBJSEISkpCEJCQhCUlIQhKSkASAJAAkASAJAElIAkASAJK433K55C/+4i84Ojri+PHjvO3bvi2SuJ8k7ieJ+0nifpK4nyTuJ4n7SeJ+T33qUwE4c+bMg7nqqquuuuqq/14EV1111VVXXfXf6HVe53XeG+Av/uIvuHjxIgCSuJ8k7ieJ+0nifpJ4Ubz2a782D37wgwF43OMex2q1QhIAkpCEJCQBIAkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEjifpIAkASAJAAkASAJAEn8R5AEgCSemyT+s0niv5sk/qNI4rlJ4t9CEgCSuJ8kACRxP0ncTxKSuJ8k7icJSdxPEpK4nyQkcT9JSEISAJKQhCTuJwlJSAJAEpKQhCQAJCEJSQBIQhKSAJCEJCQBIAlJSAJAEpIAkIQkJCEJSUgCQBKSAJCEJAAkIQlJSEISkpAEgCQkASAJAElIQhKSAJAEgCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASkpCEJAAkASAJSUhCEgDL5ZLf/d3fBeBlX/Zled3XfV0kcT9J3E8S95PE/SRxP0ncTxL3kwTAxYsXeepTn8o111zz4Nd5ndd5b6666qqrrrrqvw/BVVddddVVV/03ep3XeZ33AnjqU58KgCTuJ4n7SeJFIYn7SeJ+D3nIQ3id13kdAP7yL/+SS5cuIQlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUkASEISkpAEgCQkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJAEgCQBIAkgCQBIAkJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkAS95MEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASbwgknhukrifJO4niftJ4oEk8T+FJP4jSOJfQxLPTRIAkgCQBIAkACQBIInnJonnJon7SeJ+kpAEgCQkcT9JSOJ+kpDE/SQhiftJQhL3k4QkJHE/SUjifpKQhCQAJCEJSQBIQhKSAJCEJCQBIAlJSEISkpAEgCQkASAJSUhCEpKQhCQkIQlJSAJAEpIAkIQkACQhCUlIAkASAJKQhCQkASAJAElIQhKSkIQkJCEJAEkASAJAEgCSAJCEJCQhCQBJAEgCQBKSAJAEgCQAlsslf/EXfwHA677u6/K6r/u6SOJ+krifJP41JHE/SQD82Z/9GQCv8zqv815cddVVV1111X8fgquuuuqqq676b/RiL/Zirw3wF3/xF0jifpJ4QSRxP0ncTxL3k8T9HvKQh/A+7/M+ADz+8Y/n0qVLAEhCEpKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpAEgCQAJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQAJAEgCUlIQhKSkIQkJCEJSQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCSemyQAJAEgCQBJAEgCQBIAkgCQBIAkXhBJAEjiuUniP5Ik/i0k8b+BJO4niecmiX8LSQBI4n6SAJDE/SRxP0ncTxL3k4Qk7icJSdxPEpIAkIQkJAEgCUlI4n6SkIQkACQhCUkASEISkgCQhCQkASAJSUgCQBKSkASAJCQBIAlJSAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkACQhCUlIAkASkpCEJAAkASAJSUhCEgCSAJAEgCQAJCEJSUhCEpKQhCQkIQlJAEgCQBIAkgCQhCQAJAEgCQBJSOK2227j8Y9/PAAv8zIvw0Me8hD+JZK4nyTuJ4kXRBJPfepTAXixF3ux137xF3/x1+aqq6666qqr/nsQXHXVVVddddV/k9d5ndd5L4C/+Iu/QBL3k8QDSeJ+krifJO4niftJ4n4nTpzgfd7nfQC45557uOeee5CEJCQBIAlJSEISkpAEgCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkIQlJAEgCQBIAkgCQBIAkJCEJSUgCQBIAkgCQBIAkACQBIAkASQBIAkASkpCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJL4jyQJAEkASOK5SeKFkcT9JPF/nSReGEn8SyTxgkgCQBIAkgCQxAsiiecmiftJ4n6SuJ8k7icJSdxPEpIAkIQk7icJSdxPEpKQBIAkJCGJ+0lCEveThCQAJCEJSQBIQhKSAJCEJCQBIAlJAEhCEpIAkIQkACQhCQBJSAJAEpIAkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEgCSkIQkJCEJSQBIAkASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkIQkASTzhCU/g8Y9/PCdOnOBt3/ZtOXHiBPeTxP0kcT9J3E8S95PE/STxQLu7uzz1qU8F4LGPfexrcdVVV1111VX/PQiuuuqqq6666r/JO77jO342wNOe9jReEEncTxL3k8T9JPH8HD9+nPd5n/cBYHd3l8c//vFIQhKSkIQkJAEgCUlIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEpKQBIAkACQhCUlIQhKSkIQkJCEJSUhCEpIAkASAJCQhCUlIQhKSkIQkJAEgCQBJAEgCQBIAkgCQBIAkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSeEEk8dwkcT9J/Esk8UCSeFFI4n8KSfxXkcSLQhIAkgCQxP0kASCJ+0nifpK4nyTuJ4n7SUIS95PE/SQhiftJQhL3k4Qk7icJSUgCQBKSkASAJCRxP0lIAkASkpAEgCQkIQkASUgCQBKSkIQkJCEJAElIAkASkgCQhCQkIQlJSEISAJKQBIAkACQhCQBJAEhCEpKQBIAkACQBIAlJSEISkpAEgCQAJAEgCQBJAEhCEpKQhCQkASAJAEkASEISAJIAkMTtt9/O4x//eE6cOMH7v//7c+LECe4niftJ4n6SuJ8k7ieJ+0nigX7t134NgNd93dd9H6666qqrrrrqvwfBVVddddVVV/03eLEXe7HXvuaaax4M8Bd/8RfcTxL3k8T9JPGikMT93vZt35bjx4+zu7vLX//1XyMJSQBIQhKSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEpKQhCQkIQkASQBIAkASAJIAkIQkJCEJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIIl/iSQAJPHcJPE/jST+o0jiP4IkXhBJvDCS+JdIAkASL4gknpsk7icJAElIAkASkrifJO4nCUkASEIS95OEJO4nCUkASEISkgCQhCQkASAJSUgCQBKSkASAJCRxP0lIAkASkpAEgCQkASAJSQBIQhKSkIQkJCEJSUhCEpIAkIQkACQhCQBJSEISkgCQhCQkIQkASQBIQhKSkASAJAAkASAJAElIQhKSkIQkJCEJSUhCEgCSAJAEgCQAJAEgCUkASAJAEpI4Ojri9ttv59y5cxw/fpz3e7/3QxL3k8T9JHE/SdxPEveTxP0kcb8LFy4AcObMmQe92Iu92Gtz1VVXXXXVVf/1CK666qqrrrrqv8HrvM7rvBfAX/zFX3A/SdxPEi+IJO4niftJ4n7v+77vy4Mf/GBWqxV//dd/DYAkJCEJSQBIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSQBIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISAJIAkASAJAAkASAJSUhCEgCSAJAEgCQAJAEgCUkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQxL9EEgCSAJDECyKJ5yaJ+0nifpK4nyT+NSTxf5Uknh9J3E8SL4gkACTx/EgCQBIAkrifJAAkcT9JAEjifpK4nyQkASAJSdxPEveThCQAJCEJSQBIQhL3k4Qk7icJSdxPEpIAkIQkJAEgCUlIAkASkgCQhCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhIAkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIAkASkpCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJAAkIQkASRwdHfGXf/mXHB0dceLECd72bd+Wfy1J3E8S95MEwMWLF/nzP/9zAF7ndV7nvbjqqquuuuqq/3oEV1111VVXXfXf4MVe7MVeG+Av/uIvAJDE/STxQJK4nyTuJ4n7SeJ+b/u2b8uDH/xgVqsVT3jCE5CEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQhCQBJSEISkgCQhCQkIQkASUhCEpKQhCQAJCEJSUhCEpIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCUlIQhKSkASAJAAkASAJAElIAkASAJIAkASAJAAkIQkASQBIAkASAJIAkASAJAAkASAJAEkASOK5SQJAEgCSAJAEgCSemyQAJPHcJPFvJYkHksT/JZL4zyCJfw9JAEjifpIAkMT9JHE/SdxPEveThCQAJCGJ+0nifpKQxP0kIYn7SUISAJKQhCQAJCGJ+0lCEgCSkIQkACQhCQBJSEISAJKQBIAkJAEgCUkASEISAJKQBIAkJAEgCUlIQhIAkpAEgCQAJCEJAEkASEISkpAEgCQAJAEgCUlIQhKSkASAJAAkASAJAEkASEISkpCEJCQBIAkASQBIQhIAkgCQxNHREb//+7/P0dERL/uyL8vbvd3bcT9J3E8S95PECyKJ+0kC4M///M8BeLEXe7HX5qqrrrrqqqv+6xFcddVVV1111X+x13md13nva6655sEAT3va05DECyKJ+0nifpK4nyTu9zqv8zq89Eu/NABPeMITuHTpEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSkIQkJCEJSUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJAEkASAJAEpIAkASAJAAkASAJSQBIAkASAJIAkASAJCQBIAkASQBIAkASAJIAkASAJF4QSQBIAkASAJJ4QSQBIInnJokXRhL3k8R/NEn8fySJ5yYJAEkASAJAEgCSAJAEgCSemyQAJHE/SdxPEveTxP0kcT9J3E8SkgCQhCTuJwlJAEhCEpIAkIQk7icJSQBIQhKSAJCEJAAkIQlJAEhCEgCSkIQkJCEJSQBIQhIAkpAEgCQkASAJSUhCEpKQhCQAJCEJAElIQhKSAJCEJCQhCQBJAEhCEpKQBIAkACQBIAkASUhCEpKQhCQkIQlJSEISAJIAkASAJAAkASAJSQBIAkASAJJYLpf8/u//PgAv+7Ivy+u93utxP0ncTxL3k8T9JPGCSOKpT30qT33qU7nmmmse/GIv9mKvzVVXXXXVVVf91yK46qqrrrrqqv9iL/ZiL/ZaAH/xF3+BJB5IEveTxP0kcT9JPD8PfvCDeZ3XeR0A/uZv/oZLly4hCQBJAEhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAElIQhKSAJAEgCQAJCEJSUgCQBIAkgCQhCQAJAEgCQBJAEjifpIAkASAJAAkASAJAEk8N0kASAJAEgCSeEEkASCJF0QSz00S95PEv0QS/1dJ4kUhiRdEEveTxP0k8dwk8e8hCQBJPDdJ3E8SAJKQBIAkJAEgCUncTxL3k8T9JCEJAElI4n6SkASAJCQhCQBJSOJ+kpAEgCQkASAJSUgCQBKSAJCEJAAkIQlJAEhCEgCSkASAJCQhCUkASEISAJKQBIAkJCEJSQBIQhIAkgCQhCQkIQkASQBIQhKSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIQhIAkgCQBIAkJAGwXC75y7/8SwBe93Vfl9d7vdfjfpK4nyTuJ4n7SeJ+knggSTz1qU8F4HVe53Xei6uuuuqqq676r0Vw1VVXXXXVVf/FXud1Xue9AX7jN36DB5LE/SRxP0m8IJIAePCDH8z7vu/7AvDEJz6R3d1dJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJSUgCQBIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASQBIAkASAJKQhCQkASAJAEkASEISAJIAkASAJCQBIAkASQBIAkASkgCQBIAkACQBIInnJgkASQBIAkASz00SAJIAkMRzkwSAJJ6bJP4jSOKBJPHcJPFvIYn/LSTxH0USAJIAkASAJAAkASCJ5yYJAEncTxIAkrifJO4niftJQhIAkpAEgCQkcT9J3E8SkgCQhCTuJwlJAEhCEpIAkIQkACQhCQBJSEISAJKQBIAkJAEgCUlIQhKSkIQkJCEJSUgCQBKSAJCEJAAkIQlJSAJAEpIAkIQkJCEJAEkASEISkpAEgCQAJAEgCUlIQhKSkASAJAAkASAJAEkASAJAEpKQhCQkIQkASQBIAkASkgCQBMDtt9/OE57wBABe9mVfloc85CHcTxL3k8T9JHE/SdxPEg/0F3/xFwC82Iu92Gtz1VVXXXXVVf+1CK666qqrrrrqv9DrvM7rvDfA0572NC5evMj9JHE/SbwgkrifJAAe/OAH877v+74A3Hrrrdx7771IQhIAkpCEJCQhCUlIQhKSAJCEJCQhCQBJSEISkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASUhCEpKQhCQAJAEgCQBJSAJAEgCSAJCEJAAkASAJAElIAkASAJIAkMT9JAEgCQBJAEjifpIAkASAJAAk8dwkASAJAEk8N0kASOK5SeK5SeJ+krifJO4niav+Y0niuUni30ISAJJ4bpJ4bpK4nyTuJ4n7SeJ+krifJCQBIAlJAEhCEveThCQAJCGJ+0lCEgCSkASAJCRxP0lIAkASkgCQhCQAJCEJAElIAkASkgCQhCQAJCEJAElIQhKSAJCEJAAkIQlJSAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQhCUlIQhKSkIQkJCEJSUhCEgCSAJAEgCQAJAEgCUkASAJAEpJ44hOfyBOe8ASOHz/O273d2/GQhzyEf4kk7ieJ+0nifhcvXuSpT30q11xzzYNf7MVe7LW56qqrrrrqqv86BFddddVVV131X+jFXuzFXgvgL//yL7mfJO4niQeSxP0kcT9JABw/fpz3fd/3BWB3d5fbbrsNSUhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhKSAJCEJCQhCQBJSEISkgCQhCQkIQlJSEISkpAEgCQkIQlJAEgCQBKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAkASQBIAkASkgCQBIAkACQhCQBJAEgCQBKSAJAEgCTuJwkASQBI4n6SAJAEgCQAJHE/SQBIAkASAJK4nyQAJAEgiecmCQBJPDdJPDdJ/FtJ4v8jSfxrSOJ+krifJJ6bJF4QSQBIAkASAJJ4QSQBIIn7SQJAEveTxP0kASAJSQBIQhIAkpDE/SRxP0ncTxKSAJCEJO4nCUkASEISAJKQxP0kIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASQBIQhIAkpCEJCQBIAlJAEgCQBKSkIQkACQBIAlJSEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJSEISAJIAkIQkACTxxCc+kSc84QmcOHGCt3u7t+PEiRMASOJ+knhBJHE/SdzvL/7iLwB4p3d6p8/iqquuuuqqq/7rEFx11VVXXXXVf6HXeZ3XeW+Apz3taQBI4gWRxP0k8dyOHz/O27zN2wCwu7vL3/7t3yIJAEkASEISkpAEgCQkIQlJAEhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQBIAlJSEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCUlIAkASAJIAkIQkJCEJAEkASEISAJIAkMT9JAEgCQBJSAJAEgCSAJCEJAAkASAJAEncTxIAkgCQxHOTBIAknpskACTx3CTx3CTxwkjifpK4nyReEEn8W0niqhdMEi8KSQBIAkASAJK4nyQAJHE/SQBIQhIAkrifJO4niftJQhIAkpAEgCQkASAJSdxPEpIAkIQkACQhCQBJSEISAJKQBIAkJAEgCUkASEISAJKQBIAkJAEgCUkASEISAJKQhCQkASAJSQBIAkASkgCQhCQkIQkASQBIQhKSkASAJAAkASAJSUhCEpKQBIAkACQBIAkASQBIAkASAJKQhCQkASAJAEkASOJ+kgCQxO233865c+c4ceIE7/d+78eJEycAkMT9JHE/STyQJO4nCYCnPvWpAJw5c+bBXHXVVVddddV/HYKrrrrqqquu+i/yOq/zOu8N8Bd/8RdcvHgRSTyQJO4niftJ4oEkAfA2b/M2POQhD2F3d5e//du/RRKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpCEJCQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUhCEpIAkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASQBIAkASkpCEJAAkASAJAElIAkASAJKQBIAkACQhCQBJAEjifpIAkASAJO4nCQBJAEjifpIAkASAJO4nCQBJPDdJAEjiuUniuUniuUnifpL415DECyOJ5yaJ/6sk8UCS+NeQxHOTxL9EEi8qSQBI4n6SAJDE/SRxP0ncTxL3k8T9JHE/SdxPEveThCQAJCEJAElIAkASkrifJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQhCUkASEISAJKQhCQkASAJSUhCEgCSkIQkJAEgCQBJSEISkgCQBIAkACQBIAlJSEISkpCEJCQhCUlIQhKSkIQkACQBIAkASQBIQhKSkASAJACWyyV//dd/zblz5zhx4gTv937vx/0kcT9J3E8SL4gkLl68yFOf+lSuueaaB7/O67zOe3PVVVddddVV/zUIrrrqqquuuuq/yOu8zuu8F8DTn/50JPFAkrifJF4QSQC8z/u8Dw95yENYrVb83d/9HZKQBIAkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASAJKQhCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJAAkASAJSQBIAkASAJKQBIAkACQhCQBJAEhCEgCSAJCEJAAkASCJ+0kCQBIAkrifJAAk8dwkASCJ+0kCQBLPTRIAkrifJJ6bJF4YSdxPElf915PECyIJAEk8kCQAJAEgCQBJAEjiuUniuUnifpK4nyQAJCEJAElIAkASkgCQhCQAJCEJAElIAkASkrifJO4nCUkASEISAJKQBIAkJAEgCUkASEISAJKQBIAkJAEgCUlIQhIAkpAEgCQkIQlJAEhCEgCSAJCEJAAkASAJSUhCEgCSAJCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAEkASEISR0dH/PVf/zVHR0ecOHGC93//9+d+krifJO4niftJ4oEk8Rd/8RcAvM7rvM57cdVVV1111VX/NQiuuuqqq6666r/Ii73Yi702wF/+5V/yQJK4nyQeSBL3kwTA+7zP+/CQhzyE1WrFk570JAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQhCQkASAJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEgCQBIAkpCEJCQBIAkASUgCQBIAkrifJAAkcT9JAEjifpIAkMT9JAEgiftJAkASAJK4nyQAJHE/SQBIAkAS95MEgCTuJwkASTw3SdxPEs9NEveTxL9EElf920nifpK4nyReGEkASOI/giQAJHE/SQBI4n6SAJCEJAAkcT9J3E8S95MEgCQkcT9J3E8S95OEJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASQBIQhIAkpAEgCQAJCEJAElIQhKSAJCEJCQhCQBJAEhCEpKQBIAkACQBIAlJSEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQhCQkIQkASQBIAkASkgCQxNHREX/4h3/I0dERD3nIQ3i7t3s7nh9J3E8S95PEAz3taU8D4MVe7MVe+8Vf/MVfm6uuuuqqq676z0dw1VVXXXXVVf8FXud1Xue9AP7iL/6CB5LECyKJ+0kC4G3e5m14yEMeAsCTnvQk9vb2kIQkACQhCUlIAkASkpCEJAAkIQlJSEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQAJCEJSUgCQBKSkIQkJCEJSUgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJAAkASAJSQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkIQkASQBIQhIAkgCQxP0kASCJ+0kCQBLPTRLPTRLPTRLPTRL3k8R/Bklc9e8niReFJAAkASAJAEkASAJAEgCSAJDEc5MEgCTuJwkASdxPEveTBIAkJAEgCUkASOJ+kpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhIAkpCEJCQBIAlJAEhCEpKQBIAkJAEgCQBJSAJAEgCSkIQkJAEgCQBJSEISkgCQBIAkACQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAEkASAJAEgCSkASAJAAksVwu+cM//EMAXvZlX5bXfd3XBUASL4gk7ieJ+128eJGnPvWpADz2sY99La666qqrrrrqPx/BVVddddVVV/0XeMd3fMfPBnj605/O/STxQJK4nySe28u8zMvwMi/zMgD87d/+LXt7ewBIQhKSkASAJCQhCUkASEISkpAEgCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkACQhCUlIQhKSAJCEJCQhCQBJAEgCQBKSkIQkJCEJSUhCEpKQhCQkASAJAEkASAJAEpKQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASUgCQBL3kwSAJO4nCQBJ3E8SAJK4nyQAJHE/SQBI4n6SAJDE/SQBIIn7SeK5SeKFkcT9JHE/SdxPEi+IJF4YSVz17yOJ5yaJ/wiSAJDEc5MEgCTuJ4n7SQJAEveTxP0kASAJSQBIQhIAkpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSUhCEgCSkASAJCQBIAkASUgCQBKSkIQkACQhCUlIAkASAJKQBIAkACQBIAlJSEISAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSuN9yueTXf/3XAXi913s9Xvd1XxcASdxPEg8kiftJ4n6//uu/DsDrvu7rvg9XXXXVVVdd9Z+P4Kqrrrrqqqv+k73Yi73Ya19zzTUPBvjLv/xLACTxQJK4nyQeSBIPfvCDeZu3eRsA/u7v/o69vT0kIQlJAEhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpAEgCQkIQlJSEISkpAEgCQAJAEgCQBJAEgCQBKSkIQkJCEJAEkASAJAEpIAkASAJCQBIAkASUgCQBIAkpAEgCTuJwkASUgCQBL3kwSAJO4nCQBJ3E8SAJK4nyQAJHE/STw3STw3SdxPEs9NEveTxL+VJP672eb/K0m8IJIAkASAJAAkASAJAEkASOK5SQJAEs9NEgCSkASAJO4nCQBJSAJAEveTxP0kcT9J3E8S95MEgCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhIAkgCQhCQAJCEJAElIQhKSAJCEJAAkASAJSQBIAkASkgCQBIAkJCEJSQBIAkASAJKQhCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASkpCEJAAkASAJAElIAmC5XPJXf/VXALze670er/u6rwuAJO4niRdEEgAXL14E4MyZMw96sRd7sdfmqquuuuqqq/5zEVx11VVXXXXVf7LXeZ3XeS+Av/zLv+T5kcT9JPFAknjwgx/M+77v+wLwpCc9iUuXLiEJAElIQhKSAJCEJCQhCQBJSEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBIAkpCEJCQBIAkASQBIAkASkpCEJCQhCUkASAJAEgCSAJAEgCQkIQlJAEgCQBKSAJAEgCQkASAJAElIAkAS95MEgCQkASCJ+0kCQBKSAJDE/SQBIIn7SQJAEveTxHOTxP0kASCJ+0niuUnifpJ4bpK4nyTuJ4n7SeI/kyT+J7HNfzZJvCCSuJ8k7ieJF4Uk/j0kASAJAEncTxIAknhukrifJAAkcT9J3E8SAJKQBIAkJAEgCUkASEISAJK4nyTuJwkASUgCQBKSAJCEJAAkIQkASUhCEpIAkIQkACQhCQBJAEhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAkASUhCEpIAkASAJAAkASAJSUhCEpKQhCQkASAJAEkASEISkpCEJCQhCUkASAJAEgCSAJCEJAAkAXDHHXfwxCc+EYCXfdmX5WVf9mUBkMT9JHE/STyQJC5evMhf/MVfAPA6r/M678VVV1111VVX/eciuOqqq6666qr/ZC/2Yi/22gB/8Rd/AYAk7ieJF0QSD37wg3nf931fAG677TbOnj2LJCQhCUkASEISkpAEgCQkIQlJSEISkgCQhCQkIQlJSEISkpCEJCQhCQBJSEISkgCQhCQkIQkASUhCEpKQhCQAJCEJSUhCEpKQhCQkIQkASQBIAkASkpCEJCQhCUlIAkASAJIAkIQkACQBIAlJAEgCQBKSAJDE/SQBIAlJAEjifpIAkIQkACRxP0kASEISAJK4nyQAJHE/SdxPEgCSuJ8knpsk7ieJ5yaJ+0ni30oSL4gkHkgSV10hiRdGEv8aknhukviXSAJAEgCSAJAEgCQAJPHcJAEgiftJAkAS95MEgCTuJwkASUgCQBL3k8T9JAEgCUkASEISAJKQBIAkJAEgiftJAkASkgCQhCQAJCEJAEkASEISAJKQBIAkJCEJSQBIQhIAkgCQhCQAJAEgCUkASAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQBIAkASUhCEpKQhCQkASAJAEkASAJAEgCSAJCEJCQhCQBJAEgC4ElPehJPfOITOXHiBK/3eq/HQx7yEJ6bJO4niQeSxJ//+Z8D8GIv9mKvzVVXXXXVVVf95yK46qqrrrrqqv9Er/M6r/Pe11xzzYMBnv70pyOJ+0nigSRxP0kcP36c933f9wXg3nvv5fbbbwdAEgCSkIQkJAEgCUlIQhKSkIQkACQhCUlIAkASkgCQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJCEJAAkASAJAElIAkASAJKQBIAk7icJAElIAkAS95MEgCQkASCJ+0nifpIAkMT9JHE/SQBI4n6SuJ8kACRxP0ncTxLPTRL3k8QLI4n7SeJ+krifJF4QSVz1308SL4gkACTxbyEJAEkASOJ+kgCQxP0kASCJ+0kCQBL3kwSAJCQBIAlJAEjifpIAkIQkACQhCQBJSAJAEpIAkASAJCQBIAlJAEhCEgCSAJCEJAAkIQkASQBIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJAElIQhKSAJAEgCQkIQlJSEISAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJAEkASAJAEgCSkMSTnvQknvjEJ3L8+HHe7u3ejhMnTiCJB5LE/STxQE972tN46lOfyjXXXPPgF3uxF3ttrrrqqquuuuo/D8FVV1111VVX/Sd6sRd7sdcC+Mu//EskcT9JPJAk7ieJ48eP87Ef+7EAXLp0iac85SlIQhKSkIQkACQhCUlIQhKSkASAJCQhCUkASEISkpAEgCQkASAJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAkASQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJCEJCQhCQBJAEhCEgCSuJ8kACQhCQBJ3E8SAJKQBIAk7ieJ+0kCQBKSAJDE/SRxP0kASOJ+krifJJ6bJO4niftJ4rlJ4n6SuJ8k/q0k8e8hif8stvmPYJv/CyTxL5EEgCQAJAEgCQBJvCCSAJDE/SQBIIn7SQJAEveTBIAk7ieJ+0kCQBKSAJDE/SQBIAlJAEhCEgCSkASAJAAkIQkASUgCQBKSAJAEgCQkASAJSQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkIQkJAEgCQBJSEISkgCQBIAkACQhCUlIQhKSkIQkACQBIAkASQBIAkASAJKQhCQkIQlJAEgCQBIAkgCQhCQAJHHHHXfwxCc+kRMnTvB+7/d+nDhxAkm8IJK4nySe9rSnAfA6r/M678VVV1111VVX/echuOqqq6666qr/RK/zOq/z3gC/+Zu/yQsiiQc6fvw4b/M2bwPApUuX+Pu//3skASAJSUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSAJAEgCQkIQlJSEISAJIAkASAJAAkASAJAEkASAJAEpKQhCQAJAEgCQBJSAJAEgCSkASAJCQBIAkASUgCQBKSAJDE/SQBIAlJAEhCEgCSuJ8k7ieJ+0kCQBL3k8T9JHE/STw3SdxPEveTxHOTxP0kcT9J3E8S95PEv4Uk/rezzf9EkrifJF4YSbwgkgCQxL+GJAAkASCJ5yYJAEncTxIAkrifJAAkcT9JAEhCEgCSuJ8kACQhCQBJ3E8SAJKQBIAkJAEgCQBJSAJAEpIAkIQkJCEJAElIAkASkpCEJAAkIQkASQBIQhKSkASAJCQhCUkASAJAEpIAkASAJAAkIQlJSAJAEgCSAJAEgCQAJCEJSUhCEpKQhCQkIQlJSEISAJIAkASAJAAkASAJSUhCEgCSAFgul9xxxx2cP3+eEydO8H7v936cOHECSdxPEg8kifv95V/+JQAv9mIv9tpcddVVV1111X8egquuuuqqq676T/I6r/M67w3w9Kc/nYsXL3I/SdxPEg8kibd5m7fhIQ95CJcuXeLv//7vkYQkJCEJAElIQhKSAJCEJCQhCQBJSEISkgCQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSEISkgCQBIAkACQhCUlIQhKSkIQkJCEJSQBIAkASAJIAkIQkACQBIAkASUgCQBL3kwSAJCQBIIn7SQJAEpIAkIQkACRxP0ncTxL3k8T9JAEgCUkASOJ+krifJO4niftJ4rlJ4n6SuJ8k/iNI4gWRxAsjif9qtvmvYpv/TJL4l0jiRSGJf4kkACQBIAkASbwgkgCQBIAk7icJAEncTxIAkrifJAAkcT9JAEhCEgCSuJ8kACQhCQBJ3E8SAJKQBIAkACQhCQBJSAJAEgCSkASAJCQBIAkASUgCQBKSkIQkACQBIAlJAEgCQBKSAJAEgCQkIQlJAEgCQBIAkpCEJCQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJCEJAAkASAJAEkALJdL/vqv/5rz589z4sQJ3u/93g8ASdxPEg8kCYCLFy/ytKc9jWuuuebBL/ZiL/baXHXVVVddddV/DoKrrrrqqquu+k/yYi/2Yq8F8Jd/+ZfcTxL3k8QDSeJ93ud9eMhDHsJ6veYf/uEfkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJAElIQhKSAJCEJCQhCQBJSEISkgCQhCQkIQkASQBIAkASkpCEJCQhCQBJAEgCQBIAkgCQhCQkIQlJSAJAEgCSkIQkJAEgCQBJSAJAEpIAkMT9JAEgCUkASOJ+krifJO4niftJ4n6SAJCEJAAkcT9J3E8S95PE/SRxP0ncTxLPTRL3k8T9JHE/SdxPEveTxItCEv8b2Obfwjb/m0niuUniBZEEgCReFJIAkASAJAAk8dwkASCJ+0kCQBL3kwSAJAAkIQkASdxPEgCSkASAJAAkIQkASUgCQBIAkpAEgCQAJCEJAElIAkASAJKQBIAkJAEgCQBJSAJAEgCSkASAJAAkIQkASQBIQhKSkASAJAAkIQlJSAJAEgCSAJCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASkpCEJAAkASAJAEkASEISy+WSv/7rv+bo6IgTJ07wCZ/wCQBI4n6SeCBJAPzFX/wFAO/0Tu/0WVx11VVXXXXVfw6Cq6666qqrrvpP8jqv8zrvDfD0pz8dAEm8IJJ4n/d5Hx7ykIewXq/5i7/4CwAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJSQBI4n6SAJCEJAAkIQkASdxPEveTBIAkJAEgCUkASEISAJKQBIAk7ieJ+0nifpK4nyTuJ4n7SeJ+krifJP6jSeJ+kvjfyjb/Grb5v0QSz00SAJJ4UUkCQBIAknhBJAEgCQBJ3E8SAJIAkIQkACQBIIn7SQJAEpIAkASAJCQBIIn7SQJAEpIAkASAJCQBIIn7SQJAEpIAkASAJCQBIAlJAEgCQBKSAJAEgCQkASAJAElIQhKSAJAEgCQkIQlJAEgCQBKSkIQkACQBIAkASUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQkIQlJSEISAJIAkASAJAAkIQlJSAJAEsvlkj/6oz/i6OiI48eP8/7v//4ASOJ+knhuT3va0wA4c+bMg7nqqquuuuqq/xwEV1111VVXXfWf4HVe53XeG+Av//IvuXjxIpJ4IEncTxLv8z7vw0Me8hDW6zVPfvKTkYQkJAEgCUlIQhIAkpCEJCQBIAlJSEISAJKQBIAkACQhCQBJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJAEkASAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIAkgCQBIAkJAEgCQBJ3E8SAJKQBIAk7icJAElIAkASkgCQhCQAJHE/SdxPEveTxP0kcT9J3E8S95PE/SRxP0ncTxL3k8T9JHE/SdxPEveTxP0kcT9J3E8S/xaSeCBJ/Gexzb+Fbf4ltrHN/zaS+I8gCQBJAEgCQBIvjCQAJAEgCQBJPDdJAEjiuUkCQBL3kwSAJO4nCQBJ3E8SAJKQBIAkACQhCQBJ3E8SAJKQBIAkACQhCQBJAEhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAkASUgCQBIAkgCQhCQAJAEgCQBJSEISkgCQBIAkACQBIAkASQBIQhKSkIQkJCEJSUgCQBIAkgCQBIAkACQBIAlJAEgCQBIAklgul/zRH/0RR0dHPOQhD+Ht3u7teG6SuJ8kLl68yNOe9jSuueaaB7/O67zOe3PVVVddddVV//EIrrrqqquuuuo/weu8zuu8F8DTn/50JPFAkrifJN7mbd6GhzzkIQA8+clPZn9/HwBJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISAJIAkIQkJCEJSUgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJAAkIQkASQBIQhIAkgCQhCQAJCEJAEncTxL3k8T9JHE/SdxPEveTxP0kcT9J3E8S95PE/SRxP0ncTxL3k8T9JHE/SdxPEveTxP0k8aKQxAsiif+NbGMb29gGwDa2sc2/lW3+q0ni+ZHE/STx3CTx3CTxopIEgCQAJAEgiRdEEgCSAJDE/SQBIAkASdxPEgCSAJCEJAAkASAJSQBIAkASkgCQxP0kASAJSQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkIQkASQBIQhIAkgCQhCQkIQkASQBIQhKSkASAJAAkASAJSUhCEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASUgCQBIAkgCQBIAkVqsVf/RHfwTAy77sy/J2b/d2SOKBJHE/SfzFX/wFAK/zOq/zXlx11VVXXXXVfzyCq6666qqrrvpP8GIv9mKvDfBXf/VXPJAkHuht3uZteJmXeRkA/v7v/579/X0kIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISAJKQhCQkASAJSUhCEgCSkIQkJAEgCQBJSEISkgCQBIAkACQBIAkASUhCEgCSAJAEgCQAJAEgCQBJSAJAEgCSkASAJAAkIQkASdxPEveTBIAkJAEgCUkASEISAJKQBIAkJAEgCUncTxL3k8T9JHE/SdxPEveTxP0kcT9J3E8S95PEv5Yk7ieJF0QS/xfZ5n8ySfxnksQLIgkASQBI4kUhCQBJAEgCQBLPTRIAkgCQxP0kASAJAEncTxIAkrifJAAkcT9JAEhCEgCSAJCEJAAkASAJSQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkIQkASQBIAkASkpCEJAAkASAJSUhCEgCSAJAEgCQkIQlJSEISAJIAkASAJAAkASAJAEkASAJAEgCSAJCEJCQhCQBJAEgCQBIAkpAEwGq14jd+4zcAeNmXfVle93VfF0k8kCTu9/SnPx2AF3uxF3vtF3/xF39trrrqqquuuuo/FsFVV1111VVX/Qd7ndd5nfcC+Mu//EseSBIP9Lqv+7q8zMu8DAD/8A//wP7+PpIAkASAJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSkIQkJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJCQhCQBJAEhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISAJIAkASAJCQBIAkASUgCQBL3kwSAJCQBIAlJAEjifpK4nyTuJ4n7SeJ+krifJCQBIAlJ3E8S95PE/SRxP0ncTxL3k8SLQhL3k8T9JPGikMR/JEn8f2Wb/wkk8aKQxL9EEgCSAJAEgCQAJPGCSAJAEgCSeG6SAJAEgCTuJwkASdxPEgCSAJCEJAAkASAJSQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkIQkASQBIQhIAkgCQhCQkIQkASQBIAkASkgCQBIAkACQhCUlIAkASAJIAkASAJCQhCUlIQhKSkIQkJAEgCQBJAEhCEpKQhCQkASAJAEkASAJAEgCSkASAJABWqxV/9Ed/BMDrvd7r8Xqv93pI4vm5ePEiT3va0wB47GMf+1pcddVVV1111X8sgquuuuqqq676D/aO7/iOnw3w9Kc/nftJ4oFe9mVfltd5ndcB4B/+4R/Y29tDEpKQhCQkIQkASUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQkASUhCEpIAkIQkJCEJAElIQhKSAJAEgCQAJCEJSUgCQBIAkgCQBIAkACQBIAkASQBIAkASkgCQBIAkACQhCQBJ3E8SAJKQBIAk7ieJ+0kCQBKSuJ8k7ieJ+0nifpK4nyTuJ4n7SUIS95PE/SRxP0ncTxIviCTuJ4n7SeJ+knhBJHE/SbwgknggSTyQJP6r2eZ/Ctv8W9jmv4sknpskXhBJAEjiX0MSAJIAkASAJAAkcT9JAEgCQBIAkrifJAAkASAJSQBIAkAS95MEgCTuJwkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASUhCEpIAkASAJCQhCUkASAJAEpKQhCQAJAEgCQBJSEISkgCQBIAkACQBIAkASQBIAkASkpCEJCQhCUkASAJAEgCSAJAEgCQAJCEJSUgCQBIAkgC4cOECf/M3fwPA677u6/K6r/u6SOJ+krjfb/zGbwDwuq/7uu/DVVddddVVV/3HIrjqqquuuuqq/0Av9mIv9trXXHPNgwH+6q/+CgBJPNBDHvIQ3uZt3gaAf/iHf2B/fx9JSAJAEgCSkIQkJAEgCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJAEgCUlIQhIAkpCEJCQBIAkASUhCEpKQhCQAJAEgCQBJAEhCEpKQhCQAJAEgCQBJAEgCQBKSAJAEgCQAJCEJAElIAkASAJKQBIAkJAEgCUkASOJ+kpAEgCQkASAJSdxPEveTxP0kcT9JPJAk7ieJ+0nifpJ4IEncTxL3k8T9JPGCSOJ+knhBJPHvIYmr/nNI4kUhiReVJF4QSfxLJAEgCQBJAEgCQBIAknhBJAEgCQBJPDdJAEgCQBL3kwSAJAAkIQkASQBIQhIAkgCQxP0kASAJAElIAkASAJKQBIAkACQhCQBJAEhCEpKQBIAkACQhCQBJAEgCQBKSAJAEgCQAJCEJAEkASAJAEgCSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkIQkACQBIAkASQBIQhJ33HEHf/M3fwPA673e6/G6r/u6SOJ+kgC4ePEiAGfOnHnQi73Yi702V1111VVXXfUfh+Cqq6666qqr/gO9zuu8znsB/OVf/iUAknighzzkIbzv+74vAE95ylPY398HQBIAkpCEJCQBIAlJSEISAJKQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISAJIAkIQkACQBIAlJSEISAJIAkASAJCQhCUlIQhKSkASAJAAkIQlJSEISkgCQBIAkACQhCQBJAEjifpIAkIQkACRxP0ncTxL3k8T9JHE/SdxPEveThCQAJCGJ+0nifpK4nyQkcT9J3E8SL4gk7ieJ+0niBZHE/STxgkjifxrb/Ets89/NNv9TSOL5kcT9JPGikMQLIgkASfxbSAJAEgCSAJAEgCTuJwkASQBIAkAS95MEgCQAJHE/SQBIAkASkgCQBIAkJAEgCQBJ3E8SAJIAkIQkACQBIAlJAEgCQBIAkpAEgCQAJCEJAEkASAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJCEJCQhCQBJAEgCQBIAkpAEgCTuuOMOnvSkJwHwsi/7srzu674ukrifJC5evMhf/MVfAPA6r/M678VVV1111VVX/cchuOqqq6666qr/QC/2Yi/22gB/9Vd/hSQe6CEPeQjv+77vC8BTnvIUzp07B4AkJCEJSQBIQhKSkASAJCQhCUkASEISAJKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAkASUhCEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkJCEJSQBIAkASkgCQBIAkJAEgiftJAkASkgCQhCQAJCEJAElIAkASkrifJO4niftJ4oEkcT9J3E8SDySJ+0nigSRxP0ncTxIviCTuJ4kXRBIvKkk8kCSuusI2/xLb/G8iiRdEEi+IJAAkASAJAEkASAJAEgCSAJDECyIJAEkASOK5SQJAEgCSuJ8kACQBIIn7SQJAEgCSkASAJAAkIQkASQBIAkASkgCQBIAkJCEJSQBIAkASkgCQBIAkJCEJSQBIAkASAJKQBIAkACQBIAlJSEISAJIAkASAJAAkIQlJSEISkgCQBIAkACQBIAkASQBIQhKSkIQkJAEgCQBJAEgCQBIAkpAEgCQAJPHkJz+ZJz3pSZw4cYKXfdmX5XVf93V5IEn85V/+JQAv9mIv9tpcddVVV1111X8cgquuuuqqq676D/I6r/M6733NNdc8GODpT386D/SQhzyE933f9wXg7NmznDt3DklIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEgCQBKSkIQkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASEISAJIAkIQkACRxP0kASEISAJK4nyTuJ4n7SeJ+krifJCRxP0ncTxL3k4Qk7ieJ+0nigSRxP0k8kCTuJ4n7SeKBJHE/SbwgknhBJPFAkvjXkMR/J9v8d7DN/3aSeFFI4gWRxH8ESQBIAkASAJIAkMT9JAEgCQBJAEgCQBKSAJAEgCQAJCEJAEkASAJAEpIAkASAJCQBIAkASQBIQhIAkgCQBIAkJAEgCQBJSAJAEgCSAJCEJAAkASAJAElIQhKSAJAEgCQAJCEJSUgCQBIAkgCQBIAkACQhCUlIQhKSkIQkJCEJSUhCEgCSAJAEgCQAJAEgCQBJAEhCEgCSAJAEgCSe8pSn8KQnPYkTJ07wsi/7sjz0oQ/lgZ7+9KfztKc9jWuuuebBL/ZiL/baXHXVVVddddV/DIKrrrrqqquu+g/yYi/2Yq8F8Fd/9VdI4n4PechDeN/3fV8Azp49y1Of+lQkASAJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJAAkIQlJSAJAEgCSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSAJAEgCQAJCEJAEncTxIAkpAEgCTuJwkASUgCQBKSAJCEJO4niftJ4n6SkMT9JHE/SdxPEpK4nyTuJwlJ3E8SDySJ+0niBZHECyKJF0QS/9fY5n8i27wgtnlR2Oa/giSemySemyQAJPGCSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBLPTRIAkgCQBIAkACRxP0kASAJAEveTBIAkACRxP0kASAJAEpIAkASAJAAkIQkASQBIAkASkgCQBIAkJCEJSQBIAkASkpCEJAAkASAJAElIAkASAJIAkASAJCQhCUkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJSEISAJIAkASAJCQB8JSnPIUnPelJnDhxgrd/+7fnoQ99KA/09Kc/HYDXeZ3XeS+uuuqqq6666j8GwVVXXXXVVVf9B3md13md9wb4rd/6Le73kIc8hPd93/cFYG9vj6c+9alIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJAEgCQBJSAJAEpKQhCQAJAEgCUlIQhIAkgCQhCQkIQlJSAJAEgCSAJAEgCQAJAEgCQBJSEISkgCQBIAk7icJAElIAkASAJKQBIAkJAEgiftJ4n6SuJ8kJHE/SdxPEveThCTuJ4n7SeKBJHE/STyQJB5IEveTxANJ4n6SeCBJ3E8SDySJF0QSDySJB5LEfyfb/E9jG9v8XyaJ5yaJF0QSAJL4zyAJAEkASAJAEgCSeG6SAJAEgCTuJwkASQBIAkASkgCQBIAkACQhCQBJAEgCQBKSAJAEgCQAJCEJAEkASAJAEpIAkASAJAAkIQkASQBIAkASkpCEJAAkASAJAEkASEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIQhIAkgCQBIAkACQhCQBJADzlKU/hSU96EsePH+ft3u7teOhDH8r9/uIv/gKAF3uxF3ttrrrqqquuuuo/BsFVV1111VVX/Qd4ndd5nfcGePrTn87FixcBOH78OO/7vu8LwN7eHo9//OORhCQAJAEgCUkASAJAEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISkgCQhCQAJAEgCUlIQhIAkgCQhCQkIQkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJCQBIAkASUgCQBL3k8T9JHE/SdxPEveTxP0kIQkASUjifpK4nyQkcT9JPJAk7ieJB5LEA0nifpJ4IEncTxIPJIkXRBIPJIl/D0n8T2Ub2/xnss2Lyjb/Wrb5zyKJ+0niP4IkXhBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkMRzkwSAJAAkASCJ+0kCQBIAkgCQxP0kASAJAEkASEISAJIAkASAJCQBIAkASQBIQhIAkgCQBIAkJAEgCQBJAEhCEgCSAJAEgCQAJCEJSUgCQBIAkgCQBIAkJCEJSUhCEgCSAJAEgCQAJAEgCQBJAEgCQBIAkpCEJCQBIAkASQBIAkASkgCQBIAkAO68806e/OQnc+LECd7u7d6OkydPArC7u8vTnvY0rrnmmge/2Iu92Gtz1VVXXXXVVf9+BFddddVVV131H+DFXuzFXgvgr/7qrwA4fvw4H/dxHwfA3t4ej3/84wGQBIAkJCEJSQBIQhKSkASAJCQBIAkASUgCQBIAkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIAkASkpCEJAAkASAJAEkASEISkpCEJCQhCUlIAkASAJIAkASAJAAkIQkASQBIQhIAkrifJAAkIQkASUgCQBKSAJCEJAAkIYn7SeJ+knggSdxPEg8kiftJQhL3k8QDSeKBJHE/STyQJF4QSTyQJP6vsc2/hm3+M9jmP4pt/q1s8x9JEi+MJJ6bJJ6bJAAk8a8lCQBJAEgCQBL/EkkASAJAEgCSAJAEgCQkASAJAEkASAJAEpIAkASAJAAkcT9JAEgCQBIAkpAEgCQAJAEgCUkASAJAEgCSkASAJAAkASAJSUhCEgCSAJAEgCQAJCEJSUgCQBIAkgCQBIAkACQhCUlIQhKSAJAEgCQkIQlJSEISkpCEJCQBIAkASQBIAkASAJKQBIAkACQBIInlcskdd9zBk5/8ZE6cOMH7vd/7cfLkSQD+8i//EoB3eqd3+iyuuuqqq6666t+P4Kqrrrrqqqv+A7zO67zOewM8/elP5/jx43zcx30cAHt7ezz+8Y8HQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJAElIQhKSAJCEJCQhCQBJAEhCEpKQBIAkACQBIAlJSEISkpAEgCQAJAEgCQBJSEISkgCQBIAkACRxP0kASOJ+kgCQhCQAJHE/SdxPEveTxP0kcT9JSOJ+krifJCRxP0ncTxKSuJ8kHkgSDySJ+0lCEveTxANJ4oEk8YJI4oEk8UCSeCBJPJAkHkgS/xJJPDdJ/HezzX8U29jmX8M2/xNI4l9DEi+MJP4tJAEgCQBJAEjiRSEJAEkASAJAEgCSAJAEgCQAJPHcJAEgCQBJAEjifpIAkASAJAAkIQkASQBIAkASAJKQBIAkACQBIAlJAEgCQBIAkpCEJCQBIAkASQBIQhKSkASAJAAkASAJAElIAkASAJIAkASAJAAkASAJAElIQhKSkASAJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAEkASAJAEqvVijvuuIPz589z4sQJ3u/93o+TJ0/y9Kc/HYAzZ848mKuuuuqqq6769yO46qqrrrrqqn+n13md13lvgL/6q78C4OM+7uMA2Nvb4/GPfzySkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSAJAEgCQkASAJAElIQhKSAJAEgCQAJCEJSUgCQBIAkgCQBIAkACQBIAkASQBIQhIAkgCQBIAkJAEgCQBJSAJAEveTxP0kASAJSdxPEveTxP0kcT9JSOJ+krifJCRxP0k8kCQeSBL3k4Qk7ieJB5LEA0nigSTxQJL4rySJ/wy2+ZfY5l/LNraxzb+FbWzzr2Wb/wsk8aKQxHOTBIAk/iWSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAknpskACQBIAkASQBI4n6SAJAEgCQAJAEgCUkASAJAEgCSAJCEJAAkASAJAElIAkASAJIAkASAJCQBIAkASQBIAkASkgCQBIAkACQBIAlJSEISAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBKSAJAEgCQAJAEgCUkArFYr/vZv/5bz589z4sQJ3v/93x9JPO1pT+Oaa6558Ou8zuu8N1ddddVVV13170Nw1VVXXXXVVf9Or/M6r/NeABcvXuRt3/ZtAdjb2+Pxj388kgCQhCQkIQkASQBIQhIAkgCQhCQAJAEgCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIAkASAJKQhCQkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSuJ8kACRxP0kASEISAJKQBIAk7icJSQBIQhL3k8T9JPFAkrifJB5IEg8kiftJQhL3k8QDSeKBJPFAknggSTyQJB5IEg8kiQeSxANJ4oEk8X+ZbWxjm+fnty780V/+1vk//Evb2MY2/1ls8/zY5n8qSTw3STw3SbwgkgCQBIAk/jNJAkASAJIAkASAJAAkcT9JAEgCQBIAkgCQxP0kASAJAEkASAJAEpIAkASAJAAkIQkASQBIAkASAJKQBIAkACQBIAkASUhCEpIAkASAJAAkASAJSUhCEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASUgCQBIAkgCQBIAkJAEgCYDVasXf/u3fcv78eY4fP877vd/78fSnPx2A13md13kvrrrqqquuuurfh3L8+HGuuuqqq6666t/jwz/8w7+bZ3rIQx7C3t4ej3/845EEgCQkASAJAElIQhKSAJCEJCQhCQBJSEISkgCQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASQBIQhKSkASAJAAkASAJAEkASEISkpCEJAAkASAJAEkASAJAEpIAkASAJCQBIAkASUgCQBL3k8T9JHE/SdxPEveThCTuJ4n7SUIS95PE/SQhiftJQhL3k8QDSeKBJPFAknggSTyQJB5IEg8kiQeSxANJ4rlJ4oEk8UCSeG6SeG6SeG6SeH4k8YJI4kUhif9ID3rQgzh27Bgn1tvx4MXNOw960IO2jh8/zqVLl/i3sM1/JNv8byCJF0QSL4gkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCTuJwkASQBIAkASAJIAkMT9JAEgCQBJAEgCQBL3kwSAJAAkASCJ+0kCQBIAkrifJAAkASAJAEkASOJ+kgCQBIAkACQBIAkASQBI4n6SAJAEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCQBJAEgCQBKSAJAEgCQApmniwoULbG9vc/LkSR760IcCcM011zz4cY973O/cd999t3LVVVddddVV/zYEV1111VVXXfXv8Dqv8zrvxTM95CEPYW9vj8c//vFIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUkASAJAEpKQhCQAJAEgCQBJSEISkpCEJCQhCQBJAEhCEpKQBIAkACQBIAkASUgCQBIAkpAEgCTuJ4n7SQJAEpIAkIQk7ieJ+0nifpKQxP0kcT9JSOJ+knggSTyQJB5IEg8kiQeSxANJ4oEk8UCSeCBJ/GtJ4n8a27wobPMf5UEPehAv9VIv9SRJPPjBD772wQ9+8LWSeKmXeqknPehBD+Jfyzb/Etv8TySJ+0nihZHECyMJAEk8N0kASOJFJQkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEveTBIAkACQBIAkASQBI4n6SAJAEgCQAJAEgCQBJSAJAEgCSAJAEgCQkASAJAEkASEISkpAEgCQAJAEgCQBJSEISkgCQBIAkACQBIAkASQBIQhKSkIQkJAEgCQBJAEgCQBKSkIQkJCEJSUgCQBIAkgCQBIAkACQhCQBJAEgCQBIAy+WSv/u7v+P8+fM80GMf+9jX4qqrrrrqqqv+7Qiuuuqqq6666t/hHd/xHT+bZ1qv1zzhCU9AEpIAkIQkJCEJAEkASEISAJIAkIQkACQBIAlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJAAkIQlJSAJAEgCSAJCEJCQhCQBJAEgCQBIAkgCQBIAkACQhCQBJAEgCQBL3kwSAJO4nCQBJSAJAEpIAkMT9JHE/SUjifpK4nyTuJwlJ3E8SDySJB5LEA0nigSTxQJJ4IEk8kCQeSBL/WpJ4IEn8SyTxX8E2/xFs8+91++23f+kv/MIv/Nnf/u3fPvId3/Ed/8g2tnnHd3zHP/rbv/3bR/7CL/zCn91+++1fyovINv8S27wgtvmvJol/iSReGEm8KCTxgkgCQBIAkgCQxL+XJP4lkgCQBIAkACQBIAkASdxPEgCSAJAEgCQAJAEgiftJAkASAJIAkASAJCQBIAkASQBIAkASkgCQBIAkACQBIAkASUhCEpIAkASAJAAkASAJAEkASAJAEpKQhCQkIQlJSEISAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkASAJSSyXS/7u7/6O5XLJ/V73dV/3fbjqqquuuuqqfzv0oAc9iKuuuuqqq676t3ixF3ux1/7cz/3c3+KZ7rzzTh5IEveTxP0k8UCSuJ8k7ieJB5LE/SRxP0k8kCTuJ4n7SeKBJPFAkrifJB5IEg8kiQeSxANJ4rlJ4oEk8fxI4rlJ4vmRxPMjiRdEEi+MJF4QSfxLJPHCSOJfIokXRhL/Ekn8SyTxopLEv4Yk/qNI4t/q2LFj3HjjjQDY5oEkAXDnnXdy6dIlXhjb/EewzYvCNv8S27wgtnlBbPP82Oa52eb5sc1zs80D2ea52eaBbPPcbPNAtnkg2zyQbR7INg9kmweyzQPZ5oFscz/bPJBtHsg2D2Sb+9nmgWzzQLa5n20eyDb3s80D2eaBbPNAtrmfbR7INg9kmweyzQPZ5oFs80C2eSDbPJBtnpttHsg2z802Gxsb3HjjjdzvMz/zM1/nH/7hH36bq6666qqrrvrXo3LVVVddddVV/0Znz5699bd+67e++3Ve53XeG+DGG2/kqv/bbPMvsc1V/3McHR0B8Nqv/dq3Ag/mAV77tV/71t/+7d9+8N13381V//Ek8dwkcdVV/1r/8A//8Ntnz569lauuuuqqq676t0EPetCDuOqqq6666qp/qxd7sRd77Rd7sRd7La666qr/kT76oz/6s2+88UYAbPNAkgC48847+eqv/urP5t/ovfb4bJ6Pv5nx238947f5V/pwb39aRV1C+14dfMMcLd7SG+/yZMbHvRT9KwLcxvS0P9fw+2/o+VttEccA9sndH9Thty3xIVdd9X/IP/zDP/zOP/zDP/w2V1111VVXXfVvQ+Wqq6666qqr/h3+4R/+4bf/4R/+4be56qqr/kd6z/d8z0d+wzd8w00f9mEf9po/+qM/+kfv+I7v+CoAP/qjP/pHwKt8wzd8w+9euHDhjh/90R/9HP6NPuh2Pptn+psZv/3XM377e4/xOfwbfVy77gOvpdyQwA06YEZwvRd8i3a/+bV9/MUXaGNi4gYNXO852wQXyHM/ooOv+1EdfPlSPuKqq6666qqrrrrqqvuhBz3oQVx11VVXXXXVVVdd9X/Xrbfe6p2dnYP9/f0tHmB7e/tgb29v68EPfrD4d/jK+/itv57x2997jM/hP8BX54nvf2tvvBsP8HjGv3mPOPdG35Qnf/wVmL06D3AP7c7v0sHX/kAcfvMB3uOqq6666qqrrrrqqgeictVVV1111VVXXXXV/2kPfvCDtbe3Z4Df/d3fvRXgNV/zNR8MbD34wQ8W/04few2vw3+gH9DhNz/c9TGPonvxFV4+XuPffrcOv/ac8t7v0+E3Xutyw42UW/bx3t9r/ItfZPkTP6Wj71viI6666qqrrrrqqquuem7oQQ96EFddddVVV1111VVX/f/wKq/yKg8B+KM/+qOn8z9UmHhd5m/2KHcvsZKXj2f8mz/R8DsNtw1r8429eLsbKbfsk5f+XuNf/iXDH6VIrrrqqquuuuqqq656ftCDHvQgrrrqqquuuuqqq6666qqrrrrqqquuuuqq/5OoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4p/BFYte2aQ3ueAAAAAAElFTkSuQmCC) diff --git a/docs/kcl/rem.md b/docs/kcl/rem.md index 8f9b906ca0..c5c235e8a0 100644 --- a/docs/kcl/rem.md +++ b/docs/kcl/rem.md @@ -21,8 +21,8 @@ rem(num: i64, divisor: i64) -> i64 | Name | Type | Description | Required | |----------|------|-------------|----------| -| `num` | `i64` | | Yes | -| `divisor` | `i64` | | Yes | +| `num` | `i64` | The number which will be divided by `divisor`. | Yes | +| `divisor` | `i64` | The number which will divide `num`. | Yes | ### Returns diff --git a/docs/kcl/std.json b/docs/kcl/std.json index cc591a0866..d66b087a7d 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -93166,7 +93166,7 @@ "summary": "Create a 3D surface or solid by interpolating between two or more sketches.", "description": "The sketches need to closed and on the same plane.", "tags": [], - "keywordArguments": false, + "keywordArguments": true, "args": [ { "name": "sketches", @@ -94488,20 +94488,18 @@ } }, "required": true, - "labelRequired": true + "description": "Which sketches to loft. Must include at least 2 sketches.", + "labelRequired": false }, { - "name": "data", - "type": "LoftData", + "name": "v_degree", + "type": "NonZeroU32", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_LoftData", - "allOf": [ - { - "$ref": "#/components/schemas/LoftData" - } - ], - "nullable": true, + "title": "NonZeroU32", + "type": "integer", + "format": "uint32", + "minimum": 1.0, "definitions": { "Sketch": { "description": "A sketch is a collection of paths.", @@ -95808,37 +95806,3968 @@ "nullable": true } } - }, - "LoftData": { - "description": "Data for a loft.", + } + } + }, + "required": true, + "description": "Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified.", + "labelRequired": true + }, + { + "name": "bez_approximate_rational", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Boolean", + "type": "boolean", + "definitions": { + "Sketch": { + "description": "A sketch is a collection of paths.", "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], "properties": { - "vDegree": { - "description": "Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified.", - "type": "integer", - "format": "uint32", - "minimum": 1.0, - "nullable": true + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" }, - "bezApproximateRational": { - "description": "Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary.", - "default": null, - "type": "boolean", - "nullable": true + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } }, - "baseCurveIndex": { - "description": "This can be set to override the automatically determined topological base curve, which is usually the first section encountered.", - "default": null, - "type": "integer", - "format": "uint32", - "minimum": 0.0, - "nullable": true + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] }, - "tolerance": { - "description": "Tolerance for the loft operation.", - "default": null, - "type": "number", - "format": "double", + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "description": "Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary.", + "labelRequired": true + }, + { + "name": "base_curve_index", + "type": "u32", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_uint32", + "type": "integer", + "format": "uint32", + "minimum": 0.0, + "nullable": true, + "definitions": { + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "description": "This can be set to override the automatically determined topological base curve, which is usually the first section encountered.", + "labelRequired": true + }, + { + "name": "tolerance", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_double", + "type": "number", + "format": "double", + "nullable": true, + "definitions": { + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], "nullable": true } } @@ -95846,6 +99775,7 @@ } }, "required": false, + "description": "Tolerance for the loft operation.", "labelRequired": true } ], @@ -97234,7 +101164,7 @@ "examples": [ "// Loft a square and a triangle.\nsquareSketch = startSketchOn('XY')\n |> startProfileAt([-100, 200], %)\n |> line([200, 0], %)\n |> line([0, -200], %)\n |> line([-200, 0], %)\n |> lineTo([profileStartX(%), profileStartY(%)], %)\n |> close(%)\n\ntriangleSketch = startSketchOn(offsetPlane('XY', 75))\n |> startProfileAt([0, 125], %)\n |> line([-15, -30], %)\n |> line([30, 0], %)\n |> lineTo([profileStartX(%), profileStartY(%)], %)\n |> close(%)\n\nloft([squareSketch, triangleSketch])", "// Loft a square, a circle, and another circle.\nsquareSketch = startSketchOn('XY')\n |> startProfileAt([-100, 200], %)\n |> line([200, 0], %)\n |> line([0, -200], %)\n |> line([-200, 0], %)\n |> lineTo([profileStartX(%), profileStartY(%)], %)\n |> close(%)\n\ncircleSketch0 = startSketchOn(offsetPlane('XY', 75))\n |> circle({ center = [0, 100], radius = 50 }, %)\n\ncircleSketch1 = startSketchOn(offsetPlane('XY', 150))\n |> circle({ center = [0, 100], radius = 20 }, %)\n\nloft([\n squareSketch,\n circleSketch0,\n circleSketch1\n])", - "// Loft a square, a circle, and another circle with options.\nsquareSketch = startSketchOn('XY')\n |> startProfileAt([-100, 200], %)\n |> line([200, 0], %)\n |> line([0, -200], %)\n |> line([-200, 0], %)\n |> lineTo([profileStartX(%), profileStartY(%)], %)\n |> close(%)\n\ncircleSketch0 = startSketchOn(offsetPlane('XY', 75))\n |> circle({ center = [0, 100], radius = 50 }, %)\n\ncircleSketch1 = startSketchOn(offsetPlane('XY', 150))\n |> circle({ center = [0, 100], radius = 20 }, %)\n\nloft([\n squareSketch,\n circleSketch0,\n circleSketch1\n], {\n // This can be set to override the automatically determined\n // topological base curve, which is usually the first section encountered.\n baseCurveIndex = 0,\n // Attempt to approximate rational curves (such as arcs) using a bezier.\n // This will remove banding around interpolations between arcs and non-arcs.\n // It may produce errors in other scenarios Over time, this field won't be necessary.\n bezApproximateRational = false,\n // Tolerance for the loft operation.\n tolerance = 0.000001,\n // Degree of the interpolation. Must be greater than zero.\n // For example, use 2 for quadratic, or 3 for cubic interpolation in\n // the V direction. This defaults to 2, if not specified.\n vDegree = 2\n})" + "// Loft a square, a circle, and another circle with options.\nsquareSketch = startSketchOn('XY')\n |> startProfileAt([-100, 200], %)\n |> line([200, 0], %)\n |> line([0, -200], %)\n |> line([-200, 0], %)\n |> lineTo([profileStartX(%), profileStartY(%)], %)\n |> close(%)\n\ncircleSketch0 = startSketchOn(offsetPlane('XY', 75))\n |> circle({ center = [0, 100], radius = 50 }, %)\n\ncircleSketch1 = startSketchOn(offsetPlane('XY', 150))\n |> circle({ center = [0, 100], radius = 20 }, %)\n\nloft([\n squareSketch,\n circleSketch0,\n circleSketch1\n], baseCurveIndex = 0, bezApproximateRational = false, tolerance = 0.000001, vDegree = 2)" ] }, { @@ -149218,6 +153148,7 @@ "format": "int64" }, "required": true, + "description": "The number which will be divided by `divisor`.", "labelRequired": false }, { @@ -149230,6 +153161,7 @@ "format": "int64" }, "required": true, + "description": "The number which will divide `num`.", "labelRequired": true } ], diff --git a/src/wasm-lib/Cargo.lock b/src/wasm-lib/Cargo.lock index 192982f8b9..c7386560b3 100644 --- a/src/wasm-lib/Cargo.lock +++ b/src/wasm-lib/Cargo.lock @@ -121,9 +121,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" dependencies = [ "backtrace", ] @@ -401,9 +401,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1112,7 +1112,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.1.0", + "http 1.2.0", "indexmap 2.7.0", "slab", "tokio", @@ -1215,9 +1215,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1242,7 +1242,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -1253,7 +1253,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "pin-project-lite", ] @@ -1303,7 +1303,7 @@ dependencies = [ "futures-channel", "futures-util", "h2", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "httparse", "itoa", @@ -1320,7 +1320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", + "http 1.2.0", "hyper 1.4.1", "hyper-util", "rustls", @@ -1340,7 +1340,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "hyper 1.4.1", "pin-project-lite", @@ -1706,7 +1706,7 @@ dependencies = [ "git_rev", "gltf-json", "handlebars", - "http 1.1.0", + "http 1.2.0", "iai", "image", "indexmap 2.7.0", @@ -1793,7 +1793,7 @@ dependencies = [ "data-encoding", "format_serde_error", "futures", - "http 1.1.0", + "http 1.2.0", "itertools 0.13.0", "log", "mime_guess", @@ -1819,9 +1819,9 @@ dependencies = [ [[package]] name = "kittycad-modeling-cmds" -version = "0.2.77" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b77259b37acafa360d98af27431ac394bc8899eeed7037513832ddbee856811" +checksum = "10a9cab4476455be70ea57643c31444068b056d091bd348cab6044c0d8ad7fcc" dependencies = [ "anyhow", "chrono", @@ -1829,7 +1829,7 @@ dependencies = [ "enum-iterator", "enum-iterator-derive", "euler", - "http 1.1.0", + "http 1.2.0", "kittycad-modeling-cmds-macros", "kittycad-unit-conversion-derive", "measurements", @@ -2863,7 +2863,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "hyper 1.4.1", @@ -2905,7 +2905,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f67ad7fdf5c0a015763fcd164bee294b13fb7b6f89f1b55961d40f00c3e32d6b" dependencies = [ "async-trait", - "http 1.1.0", + "http 1.2.0", "reqwest", "reqwest-middleware", ] @@ -2918,7 +2918,7 @@ checksum = "d1ccd3b55e711f91a9885a2fa6fbbb2e39db1776420b062efc058c6410f7e5e3" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", + "http 1.2.0", "reqwest", "serde", "thiserror 1.0.68", @@ -2935,7 +2935,7 @@ dependencies = [ "async-trait", "futures", "getrandom", - "http 1.1.0", + "http 1.2.0", "hyper 1.4.1", "parking_lot 0.11.2", "reqwest", @@ -2956,7 +2956,7 @@ dependencies = [ "anyhow", "async-trait", "getrandom", - "http 1.1.0", + "http 1.2.0", "matchit", "opentelemetry", "reqwest", @@ -3200,9 +3200,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] @@ -3218,9 +3218,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", @@ -4028,7 +4028,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.2.0", "httparse", "log", "rand 0.8.5", diff --git a/src/wasm-lib/Cargo.toml b/src/wasm-lib/Cargo.toml index acd333c6bf..e3c7515280 100644 --- a/src/wasm-lib/Cargo.toml +++ b/src/wasm-lib/Cargo.toml @@ -76,7 +76,7 @@ members = [ [workspace.dependencies] http = "1" kittycad = { version = "0.3.28", default-features = false, features = ["js", "requests"] } -kittycad-modeling-cmds = { version = "0.2.77", features = ["websocket"] } +kittycad-modeling-cmds = { version = "0.2.79", features = ["websocket"] } [workspace.lints.clippy] assertions_on_result_states = "warn" diff --git a/src/wasm-lib/derive-docs/src/lib.rs b/src/wasm-lib/derive-docs/src/lib.rs index 6f923d52c6..dbd6db3ac5 100644 --- a/src/wasm-lib/derive-docs/src/lib.rs +++ b/src/wasm-lib/derive-docs/src/lib.rs @@ -6,6 +6,8 @@ mod tests; mod unbox; +use std::collections::HashMap; + use convert_case::Casing; use inflector::Inflector; use once_cell::sync::Lazy; @@ -47,6 +49,10 @@ struct StdlibMetadata { /// If false, all arguments require labels. #[serde(default)] unlabeled_first: bool, + + /// Key = argument name, value = argument doc. + #[serde(default)] + arg_docs: HashMap, } #[proc_macro_attribute] @@ -282,6 +288,17 @@ fn do_stdlib_inner( let ty_string = rust_type_to_openapi_type(&ty_string); let required = !ty_ident.to_string().starts_with("Option <"); + let description = if let Some(s) = metadata.arg_docs.get(&arg_name) { + quote! { #s } + } else if metadata.keywords && ty_string != "Args" && ty_string != "ExecState" { + errors.push(Error::new_spanned( + &arg, + "Argument was not documented in the arg_docs block", + )); + continue; + } else { + quote! { String::new() } + }; let label_required = !(i == 0 && metadata.unlabeled_first); if ty_string != "ExecState" && ty_string != "Args" { let schema = quote! { @@ -294,6 +311,7 @@ fn do_stdlib_inner( schema: #schema, required: #required, label_required: #label_required, + description: #description.to_string(), } }); } @@ -355,6 +373,7 @@ fn do_stdlib_inner( schema, required: true, label_required: true, + description: String::new(), }) } } else { diff --git a/src/wasm-lib/derive-docs/src/tests.rs b/src/wasm-lib/derive-docs/src/tests.rs index a0485b2b66..2701b85142 100644 --- a/src/wasm-lib/derive-docs/src/tests.rs +++ b/src/wasm-lib/derive-docs/src/tests.rs @@ -116,6 +116,9 @@ fn test_stdlib_line_to() { let (item, errors) = do_stdlib( quote! { name = "lineTo", + arg_docs = { + sketch = "the sketch you're adding the line to" + } }, quote! { /// This is some function. diff --git a/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen b/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen index 54d547ed00..56865b8f7a 100644 --- a/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen +++ b/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen @@ -91,6 +91,7 @@ impl crate::docs::StdLibFn for SomeFn { schema: generator.root_schema_for::(), required: true, label_required: true, + description: String::new().to_string(), }] } @@ -105,6 +106,7 @@ impl crate::docs::StdLibFn for SomeFn { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/args_with_refs.gen b/src/wasm-lib/derive-docs/tests/args_with_refs.gen index 9d3ce6eb84..a0660ef063 100644 --- a/src/wasm-lib/derive-docs/tests/args_with_refs.gen +++ b/src/wasm-lib/derive-docs/tests/args_with_refs.gen @@ -91,6 +91,7 @@ impl crate::docs::StdLibFn for SomeFn { schema: generator.root_schema_for::(), required: true, label_required: true, + description: String::new().to_string(), }] } @@ -105,6 +106,7 @@ impl crate::docs::StdLibFn for SomeFn { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/array.gen b/src/wasm-lib/derive-docs/tests/array.gen index f7689a7007..618097bca6 100644 --- a/src/wasm-lib/derive-docs/tests/array.gen +++ b/src/wasm-lib/derive-docs/tests/array.gen @@ -129,6 +129,7 @@ impl crate::docs::StdLibFn for Show { schema: generator.root_schema_for::<[f64; 2usize]>(), required: true, label_required: true, + description: String::new().to_string(), }] } @@ -143,6 +144,7 @@ impl crate::docs::StdLibFn for Show { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/box.gen b/src/wasm-lib/derive-docs/tests/box.gen index 98875f4013..e5bb77fadd 100644 --- a/src/wasm-lib/derive-docs/tests/box.gen +++ b/src/wasm-lib/derive-docs/tests/box.gen @@ -92,6 +92,7 @@ impl crate::docs::StdLibFn for Show { schema: generator.root_schema_for::(), required: true, label_required: true, + description: String::new().to_string(), }] } @@ -106,6 +107,7 @@ impl crate::docs::StdLibFn for Show { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen b/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen index 5cf5843536..7d1a8b6b5c 100644 --- a/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen +++ b/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen @@ -130,6 +130,7 @@ impl crate::docs::StdLibFn for MyFunc { schema: generator.root_schema_for::>(), required: false, label_required: true, + description: String::new().to_string(), }] } @@ -144,6 +145,7 @@ impl crate::docs::StdLibFn for MyFunc { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/lineTo.gen b/src/wasm-lib/derive-docs/tests/lineTo.gen index 6b63efed3c..609c5aad20 100644 --- a/src/wasm-lib/derive-docs/tests/lineTo.gen +++ b/src/wasm-lib/derive-docs/tests/lineTo.gen @@ -131,6 +131,7 @@ impl crate::docs::StdLibFn for LineTo { schema: generator.root_schema_for::(), required: true, label_required: true, + description: String::new().to_string(), }, crate::docs::StdLibFnArg { name: "sketch".to_string(), @@ -138,6 +139,7 @@ impl crate::docs::StdLibFn for LineTo { schema: generator.root_schema_for::(), required: true, label_required: true, + description: "the sketch you're adding the line to".to_string(), }, ] } @@ -153,6 +155,7 @@ impl crate::docs::StdLibFn for LineTo { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/min.gen b/src/wasm-lib/derive-docs/tests/min.gen index b1bbbd5310..1d8aff3783 100644 --- a/src/wasm-lib/derive-docs/tests/min.gen +++ b/src/wasm-lib/derive-docs/tests/min.gen @@ -129,6 +129,7 @@ impl crate::docs::StdLibFn for Min { schema: generator.root_schema_for::>(), required: true, label_required: true, + description: String::new().to_string(), }] } @@ -143,6 +144,7 @@ impl crate::docs::StdLibFn for Min { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/option.gen b/src/wasm-lib/derive-docs/tests/option.gen index b610fc0774..96ffb2cf11 100644 --- a/src/wasm-lib/derive-docs/tests/option.gen +++ b/src/wasm-lib/derive-docs/tests/option.gen @@ -92,6 +92,7 @@ impl crate::docs::StdLibFn for Show { schema: generator.root_schema_for::>(), required: false, label_required: true, + description: String::new().to_string(), }] } @@ -106,6 +107,7 @@ impl crate::docs::StdLibFn for Show { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/option_input_format.gen b/src/wasm-lib/derive-docs/tests/option_input_format.gen index 41016a7be6..d0b417eaa6 100644 --- a/src/wasm-lib/derive-docs/tests/option_input_format.gen +++ b/src/wasm-lib/derive-docs/tests/option_input_format.gen @@ -92,6 +92,7 @@ impl crate::docs::StdLibFn for Import { schema: generator.root_schema_for::>(), required: false, label_required: true, + description: String::new().to_string(), }] } @@ -106,6 +107,7 @@ impl crate::docs::StdLibFn for Import { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen b/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen index 350a9a890a..7dca531c4d 100644 --- a/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen +++ b/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen @@ -92,6 +92,7 @@ impl crate::docs::StdLibFn for Import { schema: generator.root_schema_for::>(), required: false, label_required: true, + description: String::new().to_string(), }] } @@ -106,6 +107,7 @@ impl crate::docs::StdLibFn for Import { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen b/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen index ca692a5fec..9789a29bec 100644 --- a/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen +++ b/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen @@ -92,6 +92,7 @@ impl crate::docs::StdLibFn for Import { schema: generator.root_schema_for::>(), required: false, label_required: true, + description: String::new().to_string(), }] } @@ -106,6 +107,7 @@ impl crate::docs::StdLibFn for Import { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/show.gen b/src/wasm-lib/derive-docs/tests/show.gen index 16d396ba29..01aef8ae8c 100644 --- a/src/wasm-lib/derive-docs/tests/show.gen +++ b/src/wasm-lib/derive-docs/tests/show.gen @@ -92,6 +92,7 @@ impl crate::docs::StdLibFn for Show { schema: generator.root_schema_for::>(), required: true, label_required: true, + description: String::new().to_string(), }] } @@ -106,6 +107,7 @@ impl crate::docs::StdLibFn for Show { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen b/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen index 5a24917dc3..218cdedcab 100644 --- a/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen +++ b/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen @@ -99,6 +99,7 @@ impl crate::docs::StdLibFn for SomeFunction { schema, required: true, label_required: true, + description: String::new(), }) } diff --git a/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs b/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs index 7780381b0b..161c370d2f 100644 --- a/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs +++ b/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs @@ -189,7 +189,11 @@ impl EngineConnection { uuid_to_cpp(path_id) ) } - kcmc::ModelingCmd::Extrude(kcmc::Extrude { distance, target }) => { + kcmc::ModelingCmd::Extrude(kcmc::Extrude { + distance, + target, + faces: _, // Engine team: start using this once the frontend and engine both use it. + }) => { format!( r#" scene->getSceneObject(Utils::UUID("{target}"))->extrudeToSolid3D({} * scaleFactor, true); diff --git a/src/wasm-lib/kcl/src/docs/mod.rs b/src/wasm-lib/kcl/src/docs/mod.rs index ed39eebb33..138d3b0bca 100644 --- a/src/wasm-lib/kcl/src/docs/mod.rs +++ b/src/wasm-lib/kcl/src/docs/mod.rs @@ -59,6 +59,12 @@ pub struct StdLibFnArg { pub schema: schemars::schema::RootSchema, /// If the argument is required. pub required: bool, + /// Additional information that could be used instead of the type's description. + /// This is helpful if the type is really basic, like "u32" -- that won't tell the user much about + /// how this argument is meant to be used. + /// Empty string means this has no docs. + #[serde(default, skip_serializing_if = "String::is_empty")] + pub description: String, /// Even in functions that use keyword arguments, not every parameter requires a label (most do though). /// Some functions allow one unlabeled parameter, which has to be first in the /// argument list. @@ -106,6 +112,11 @@ impl StdLibFnArg { } pub fn description(&self) -> Option { + // Check if we explicitly gave this stdlib arg a description. + if !self.description.is_empty() { + return Some(self.description.clone()); + } + // If not, then try to get something meaningful from the schema. get_description_string_from_schema(&self.schema.clone()) } } diff --git a/src/wasm-lib/kcl/src/parsing/parser.rs b/src/wasm-lib/kcl/src/parsing/parser.rs index 7afccb4a1d..26ec22767b 100644 --- a/src/wasm-lib/kcl/src/parsing/parser.rs +++ b/src/wasm-lib/kcl/src/parsing/parser.rs @@ -2539,6 +2539,7 @@ fn fn_call_kw(i: &mut TokenSlice) -> PResult> { let initial_unlabeled_arg = opt((expression, comma, opt(whitespace)).map(|(arg, _, _)| arg)).parse_next(i)?; let args = labeled_arguments(i)?; ignore_whitespace(i); + opt(comma_sep).parse_next(i)?; let end = close_paren.parse_next(i)?.end; Ok(Node { diff --git a/src/wasm-lib/kcl/src/std/args.rs b/src/wasm-lib/kcl/src/std/args.rs index be31585718..f8a48349ea 100644 --- a/src/wasm-lib/kcl/src/std/args.rs +++ b/src/wasm-lib/kcl/src/std/args.rs @@ -133,12 +133,16 @@ impl Args { where T: FromKclValue<'a>, { - let Some(ref arg) = self.kw_args.unlabeled else { - return Err(KclError::Semantic(KclErrorDetails { + let arg = self + .kw_args + .unlabeled + .as_ref() + .or(self.args.first()) + .ok_or(KclError::Semantic(KclErrorDetails { source_ranges: vec![self.source_range], message: format!("This function requires a value for the special unlabeled first parameter, '{label}'"), - })); - }; + }))?; + T::from_kcl_val(&arg.value).ok_or_else(|| { KclError::Semantic(KclErrorDetails { source_ranges: arg.source_ranges(), @@ -411,13 +415,6 @@ impl Args { FromArgs::from_args(self, 0) } - pub(crate) fn get_sketches_and_data<'a, T>(&'a self) -> Result<(Vec, Option), KclError> - where - T: FromArgs<'a> + serde::de::DeserializeOwned + FromKclValue<'a> + Sized, - { - FromArgs::from_args(self, 0) - } - pub(crate) fn get_data_and_optional_tag<'a, T>(&'a self) -> Result<(T, Option), KclError> where T: serde::de::DeserializeOwned + FromKclValue<'a> + Sized, @@ -865,22 +862,6 @@ impl<'a> FromKclValue<'a> for crate::std::polar::PolarCoordsData { } } -impl<'a> FromKclValue<'a> for crate::std::loft::LoftData { - fn from_kcl_val(arg: &'a KclValue) -> Option { - let obj = arg.as_object()?; - let_field_of!(obj, v_degree?); - let_field_of!(obj, bez_approximate_rational?); - let_field_of!(obj, base_curve_index?); - let_field_of!(obj, tolerance?); - Some(Self { - v_degree, - bez_approximate_rational, - base_curve_index, - tolerance, - }) - } -} - impl<'a> FromKclValue<'a> for crate::std::planes::StandardPlane { fn from_kcl_val(arg: &'a KclValue) -> Option { let s = arg.as_str()?; diff --git a/src/wasm-lib/kcl/src/std/extrude.rs b/src/wasm-lib/kcl/src/std/extrude.rs index 42f8862060..a75d7d37cb 100644 --- a/src/wasm-lib/kcl/src/std/extrude.rs +++ b/src/wasm-lib/kcl/src/std/extrude.rs @@ -113,6 +113,7 @@ async fn inner_extrude( ModelingCmd::from(mcmd::Extrude { target: sketch.id.into(), distance: LengthUnit(length), + faces: Default::default(), }), ) .await?; diff --git a/src/wasm-lib/kcl/src/std/loft.rs b/src/wasm-lib/kcl/src/std/loft.rs index de214ccc77..795b3dbb86 100644 --- a/src/wasm-lib/kcl/src/std/loft.rs +++ b/src/wasm-lib/kcl/src/std/loft.rs @@ -1,11 +1,11 @@ //! Standard library lofts. +use std::num::NonZeroU32; + use anyhow::Result; use derive_docs::stdlib; use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd}; use kittycad_modeling_cmds as kcmc; -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; use crate::{ errors::{KclError, KclErrorDetails}, @@ -15,45 +15,31 @@ use crate::{ const DEFAULT_V_DEGREE: u32 = 2; -/// Data for a loft. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] -#[serde(rename_all = "camelCase")] -pub struct LoftData { - /// Degree of the interpolation. Must be greater than zero. - /// For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. - /// This defaults to 2, if not specified. - pub v_degree: Option, - /// Attempt to approximate rational curves (such as arcs) using a bezier. - /// This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios - /// Over time, this field won't be necessary. - #[serde(default)] - pub bez_approximate_rational: Option, - /// This can be set to override the automatically determined topological base curve, which is usually the first section encountered. - #[serde(default)] - pub base_curve_index: Option, - /// Tolerance for the loft operation. - #[serde(default)] - pub tolerance: Option, -} - -impl Default for LoftData { - fn default() -> Self { - Self { - // This unwrap is safe because the default value is always greater than zero. - v_degree: Some(std::num::NonZeroU32::new(DEFAULT_V_DEGREE).unwrap()), - bez_approximate_rational: None, - base_curve_index: None, - tolerance: None, - } - } -} - /// Create a 3D surface or solid by interpolating between two or more sketches. pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result { - let (sketches, data): (Vec, Option) = args.get_sketches_and_data()?; + let sketches = args.get_unlabeled_kw_arg("sketches")?; + let v_degree: NonZeroU32 = args + .get_kw_arg_opt("vDegree") + .unwrap_or(NonZeroU32::new(DEFAULT_V_DEGREE).unwrap()); + // Attempt to approximate rational curves (such as arcs) using a bezier. + // This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios + // Over time, this field won't be necessary. + let bez_approximate_rational = args.get_kw_arg_opt("bezApproximateRational").unwrap_or(false); + // This can be set to override the automatically determined topological base curve, which is usually the first section encountered. + let base_curve_index: Option = args.get_kw_arg_opt("baseCurveIndex"); + // Tolerance for the loft operation. + let tolerance: Option = args.get_kw_arg_opt("tolerance"); - let solid = inner_loft(sketches, data, exec_state, args).await?; + let solid = inner_loft( + sketches, + v_degree, + bez_approximate_rational, + base_curve_index, + tolerance, + exec_state, + args, + ) + .await?; Ok(KclValue::Solid(solid)) } @@ -116,28 +102,31 @@ pub async fn loft(exec_state: &mut ExecState, args: Args) -> Result circle({ center = [0, 100], radius = 20 }, %) /// -/// loft([squareSketch, circleSketch0, circleSketch1], { -/// // This can be set to override the automatically determined -/// // topological base curve, which is usually the first section encountered. +/// loft([squareSketch, circleSketch0, circleSketch1], /// baseCurveIndex = 0, -/// // Attempt to approximate rational curves (such as arcs) using a bezier. -/// // This will remove banding around interpolations between arcs and non-arcs. -/// // It may produce errors in other scenarios Over time, this field won't be necessary. /// bezApproximateRational = false, -/// // Tolerance for the loft operation. /// tolerance = 0.000001, -/// // Degree of the interpolation. Must be greater than zero. -/// // For example, use 2 for quadratic, or 3 for cubic interpolation in -/// // the V direction. This defaults to 2, if not specified. /// vDegree = 2, -/// }) +/// ) /// ``` #[stdlib { name = "loft", + keywords = true, + unlabeled_first = true, + arg_docs = { + sketches = "Which sketches to loft. Must include at least 2 sketches.", + v_degree = "Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified.", + bez_approximate_rational = "Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary.", + base_curve_index = "This can be set to override the automatically determined topological base curve, which is usually the first section encountered.", + tolerance = "Tolerance for the loft operation.", + } }] async fn inner_loft( sketches: Vec, - data: Option, + v_degree: NonZeroU32, + bez_approximate_rational: bool, + base_curve_index: Option, + tolerance: Option, exec_state: &mut ExecState, args: Args, ) -> Result, KclError> { @@ -152,20 +141,15 @@ async fn inner_loft( })); } - // Get the loft data. - let data = data.unwrap_or_default(); - let id = exec_state.id_generator.next_uuid(); args.batch_modeling_cmd( id, ModelingCmd::from(mcmd::Loft { section_ids: sketches.iter().map(|group| group.id).collect(), - base_curve_index: data.base_curve_index, - bez_approximate_rational: data.bez_approximate_rational.unwrap_or(false), - tolerance: LengthUnit(data.tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))), - v_degree: data - .v_degree - .unwrap_or_else(|| std::num::NonZeroU32::new(DEFAULT_V_DEGREE).unwrap()), + base_curve_index, + bez_approximate_rational, + tolerance: LengthUnit(tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))), + v_degree, }), ) .await?; diff --git a/src/wasm-lib/kcl/src/std/math.rs b/src/wasm-lib/kcl/src/std/math.rs index 557085793f..b4055eb97a 100644 --- a/src/wasm-lib/kcl/src/std/math.rs +++ b/src/wasm-lib/kcl/src/std/math.rs @@ -34,6 +34,10 @@ pub async fn rem(_exec_state: &mut ExecState, args: Args) -> Result Result { Ok(num % divisor)