<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">Wouldn’t protocols be a better solution in this case? If little to no logic can be shared between enum cases, why have the enum in the first place?</p>
<p style="margin:0px 0px 1.2em!important">Your variant:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-swift" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)"><span class="hljs-class"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">protocol</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">State</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span>
}
<span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">enum</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">AuthenticationState</span>: <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">State</span>, <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">CustomStringConvertible</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> invalid {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> description: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"Authentication invalid."</span> }
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">switch</span> event {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> login <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">UserLoggedIn</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .validated(token: login.token)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">default</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">break</span>
}
}
}
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> expired(<span class="hljs-number" style="color:rgb(0,128,128)">_</span> expiration: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Date</span>) {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> description: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"Authentication expired at <span class="hljs-subst" style="color:rgb(51,51,51);font-weight:bold;font-weight:normal">\(expiration)</span>."</span> }
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">switch</span> event {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> refreshed <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">TokenRefreshed</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .validated(token: refreshed.token)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">default</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">break</span>
}
}
}
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> validated(token: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span>) {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> description: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"The authentication token is <span class="hljs-subst" style="color:rgb(51,51,51);font-weight:bold;font-weight:normal">\(token)</span>."</span> }
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">switch</span> event {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> expiration <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">TokenExpired</span>:
<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>(<span class="hljs-string" style="color:rgb(221,17,68)">"Expiring token: <span class="hljs-subst" style="color:rgb(51,51,51);font-weight:bold;font-weight:normal">\(token)</span>"</span>)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .expired(expiration.date)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-number" style="color:rgb(0,128,128)">_</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">TokenRejected</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .invalid
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-number" style="color:rgb(0,128,128)">_</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">UserLoggedOut</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .invalid
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">default</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">break</span>
}
}
}
}
</code></pre>
<p style="margin:0px 0px 1.2em!important">My suggestion:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-swift" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)">public <span class="hljs-class"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">protocol</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">State</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span>
}
@<span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">closed</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">protocol</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">AuthenticationState</span> : <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">State</span>, <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">CustomStringConvertible</span> </span>{ }
<span class="hljs-class"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">struct</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">InvalidAuthenticationState</span> : <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">AuthenticationState</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> description: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"Authentication invalid."</span> }
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">switch</span> event {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> login <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">UserLoggedIn</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .validated(token: login.token)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">default</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">break</span>
}
}
}
<span class="hljs-class"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">struct</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">ExpiredAuthenticationState</span> : <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">AuthenticationState</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> expiration: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Date</span>
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> description: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"Authentication expired at <span class="hljs-subst" style="color:rgb(51,51,51);font-weight:bold;font-weight:normal">\(expiration)</span>."</span> }
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">switch</span> event {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> refreshed <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">TokenRefreshed</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .validated(token: refreshed.token)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">default</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">break</span>
}
}
}
<span class="hljs-class"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">struct</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">ValidatedAuthenticationState</span> : <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">AuthenticationState</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> token: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span>
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> description: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"The authentication token is <span class="hljs-subst" style="color:rgb(51,51,51);font-weight:bold;font-weight:normal">\(token)</span>."</span> }
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">mutating</span> <span class="hljs-func"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">func</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">react</span><span class="hljs-params">(to event: Event)</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">switch</span> event {
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> expiration <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">TokenExpired</span>:
<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>(<span class="hljs-string" style="color:rgb(221,17,68)">"Expiring token: <span class="hljs-subst" style="color:rgb(51,51,51);font-weight:bold;font-weight:normal">\(token)</span>"</span>)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .expired(expiration.date)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-number" style="color:rgb(0,128,128)">_</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">TokenRejected</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .invalid
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> <span class="hljs-number" style="color:rgb(0,128,128)">_</span> <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">as</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">UserLoggedOut</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">self</span> = .invalid
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">default</span>:
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">break</span>
}
}
}
</code></pre>
<p style="margin:0px 0px 1.2em!important">If <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">AuthenticationState</code> is not <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">public</code>, then compiler can make an optimization and turn existentials and indirect calls into an enum, essentially.<br>We can even split <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">public</code> protocols into <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">open</code> and <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">public</code>, as we did with classes, to allow for expressing this intent more explicitly.</p>
<p style="margin:0px 0px 1.2em!important">But pattern matching on structs is impossible—we can change that with a separate proposal. For example, we can allow destructuring structs/enums/classes by any combination of their properties:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-swift" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)"><span class="hljs-class"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">struct</span> <span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold;color:rgb(68,85,136);font-weight:bold">S</span> </span>{
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> foo: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span>
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> bar: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Double</span>
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> buz: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">String</span> { <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">return</span> <span class="hljs-string" style="color:rgb(221,17,68)">"42"</span> }
}
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> s = <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">S</span>(foo: <span class="hljs-number" style="color:rgb(0,128,128)">42</span>, bar: <span class="hljs-number" style="color:rgb(0,128,128)">42.0</span>)
<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">let</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">S</span>(foo: x, buz: z) = s
</code></pre>
<div title="MDH:PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPldvdWxkbid0IHByb3RvY29scyBiZSBhIGJldHRlciBz
b2x1dGlvbiBpbiB0aGlzIGNhc2U/IElmIGxpdHRsZSB0byBubyBsb2dpYyBjYW4gYmUgc2hhcmVk
IGJldHdlZW4gZW51bSBjYXNlcywgd2h5IGhhdmUgdGhlIGVudW0gaW4gdGhlIGZpcnN0IHBsYWNl
PzwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+PC9kaXY+PGRpdiBjbGFzcz0iZ21h
aWxfZXh0cmEiPllvdXIgdmFyaWFudDo8L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJy
PjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj5gYGBzd2lmdDwvZGl2PjxkaXYgY2xhc3M9
ImdtYWlsX2V4dHJhIj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPnByb3RvY29sIFN0
YXRlIHs8L2Rpdj48c3BhbiBjbGFzcz0iZ21haWwtaW0iIHN0eWxlPSJmb250LXNpemU6IDEyLjhw
eDsiPjxkaXY+Jm5ic3A7ICZuYnNwOyBtdXRhdGluZyBmdW5jIHJlYWN0KHRvIGV2ZW50OiBFdmVu
dCk8L2Rpdj48ZGl2Pn08L2Rpdj48ZGl2Pjxicj48L2Rpdj48L3NwYW4+PGRpdiBzdHlsZT0iZm9u
dC1zaXplOiAxMi44cHg7Ij5lbnVtIEF1dGhlbnRpY2F0aW9uU3RhdGU6IFN0YXRlLCBDdXN0b21T
dHJpbmdDb252ZXJ0aWJsZSB7PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij48
YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7IGNh
c2UgaW52YWxpZCB7PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgdmFyIGRlc2NyaXB0aW9uOiBTdHJpbmcgeyByZXR1cm4gIkF1
dGhlbnRpY2F0aW9uIGludmFsaWQuIiB9PC9kaXY+PHNwYW4gY2xhc3M9ImdtYWlsLWltIiBzdHls
ZT0iZm9udC1zaXplOiAxMi44cHg7Ij48ZGl2Pjxicj48L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBtdXRhdGluZyBmdW5jIHJlYWN0KHRvIGV2ZW50OiBFdmVudCkgezwvZGl2
PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc3dpdGNoIGV2
ZW50IHs8L2Rpdj48L3NwYW4+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXNlIGxldCBsb2dpbiBhcyBVc2Vy
TG9nZ2VkSW46PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlbGYgPSAudmFs
aWRhdGVkKHRva2VuOiBsb2dpbi50b2tlbik8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEy
LjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGRlZmF1bHQ6
PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJyZWFrPC9kaXY+PGRpdiBzdHls
ZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyB9PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgfTwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+
Jm5ic3A7ICZuYnNwOyB9PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij48YnI+
PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7IGNhc2Ug
ZXhwaXJlZChfIGV4cGlyYXRpb246IERhdGUpIHs8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6
IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB2YXIgZGVzY3JpcHRpb246IFN0
cmluZyB7IHJldHVybiAiQXV0aGVudGljYXRpb24gZXhwaXJlZCBhdCBcKGV4cGlyYXRpb24pLiIg
fTwvZGl2PjxzcGFuIGNsYXNzPSJnbWFpbC1pbSIgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+
PGRpdj48YnI+PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgbXV0YXRpbmcg
ZnVuYyByZWFjdCh0byBldmVudDogRXZlbnQpIHs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN3aXRjaCBldmVudCB7PC9kaXY+PGRpdj4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXNlIGxldCByZWZyZXNoZWQgYXMg
VG9rZW5SZWZyZXNoZWQ6PC9kaXY+PC9zcGFuPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4
OyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBzZWxmID0gLnZhbGlkYXRlZCh0b2tlbjogcmVmcmVzaGVkLnRva2VuKTwvZGl2PjxzcGFuIGNs
YXNzPSJnbWFpbC1pbSIgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+PGRpdj4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkZWZhdWx0OjwvZGl2PjxkaXY+Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBicmVhazwv
ZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfTwvZGl2
PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IH08L2Rpdj48ZGl2PiZuYnNwOyAmbmJz
cDsgfTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyBjYXNlIHZhbGlkYXRl
ZCh0b2tlbjogU3RyaW5nKSB7PC9kaXY+PC9zcGFuPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIu
OHB4OyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHZhciBkZXNjcmlwdGlvbjogU3RyaW5n
IHsgcmV0dXJuICJUaGUgYXV0aGVudGljYXRpb24gdG9rZW4gaXMgXCh0b2tlbikuIiB9PC9kaXY+
PHNwYW4gY2xhc3M9ImdtYWlsLWltIiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij48ZGl2Pjxi
cj48L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBtdXRhdGluZyBmdW5jIHJl
YWN0KHRvIGV2ZW50OiBFdmVudCkgezwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgc3dpdGNoIGV2ZW50IHs8L2Rpdj48L3NwYW4+PGRpdiBzdHlsZT0i
Zm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBjYXNlIGxldCBleHBpcmF0aW9uIGFzIFRva2VuRXhwaXJlZDo8L2Rpdj48ZGl2IHN0eWxl
PSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgcHJpbnQoIkV4cGlyaW5nIHRva2VuOiBcKHRva2VuKSIpPC9k
aXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlbGYgPSAuZXhwaXJlZChleHBpcmF0
aW9uLmRhdGUpPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXNlIF8gYXMgVG9rZW5SZWplY3RlZDo8
L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2VsZiA9IC5pbnZhbGlkPC9kaXY+
PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyBjYXNlIF8gYXMgVXNlckxvZ2dlZE91dDo8L2Rpdj48ZGl2IHN0eWxl
PSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgc2VsZiA9IC5pbnZhbGlkPC9kaXY+PGRpdiBzdHlsZT0iZm9u
dC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBkZWZhdWx0OjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBicmVhazwvZGl2
PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgfTwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IH08L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6
IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgfTwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIu
OHB4OyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+fTwvZGl2Pjxk
aXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+YGBgPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1z
aXplOiAxMi44cHg7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij5N
eSBzdWdnZXN0aW9uOjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+PGJyPjwv
ZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+YGBgc3dpZnQ8L2Rpdj48ZGl2IHN0
eWxlPSJmb250LXNpemU6IDEyLjhweDsiPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+
cHVibGljIHByb3RvY29sIFN0YXRlIHs8L2Rpdj48c3BhbiBjbGFzcz0iZ21haWwtaW0iIHN0eWxl
PSJmb250LXNpemU6IDEyLjhweDsiPjxkaXY+Jm5ic3A7ICZuYnNwOyBtdXRhdGluZyBmdW5jIHJl
YWN0KHRvIGV2ZW50OiBFdmVudCk8L2Rpdj48ZGl2Pn08L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2
PkBjbG9zZWQgcHJvdG9jb2wgQXV0aGVudGljYXRpb25TdGF0ZSA6IFN0YXRlLCBDdXN0b21TdHJp
bmdDb252ZXJ0aWJsZSB7IH08L2Rpdj48ZGl2Pjxicj48L2Rpdj48L3NwYW4+PGRpdiBzdHlsZT0i
Zm9udC1zaXplOiAxMi44cHg7Ij5zdHJ1Y3QgSW52YWxpZEF1dGhlbnRpY2F0aW9uU3RhdGUgOiBB
dXRoZW50aWNhdGlvblN0YXRlIHs8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsi
PiZuYnNwOyAmbmJzcDsgdmFyIGRlc2NyaXB0aW9uOiBTdHJpbmcgeyByZXR1cm4gIkF1dGhlbnRp
Y2F0aW9uIGludmFsaWQuIiB9PC9kaXY+PHNwYW4gY2xhc3M9ImdtYWlsLWltIiBzdHlsZT0iZm9u
dC1zaXplOiAxMi44cHg7Ij48ZGl2Pjxicj48L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgbXV0YXRp
bmcgZnVuYyByZWFjdCh0byBldmVudDogRXZlbnQpIHs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBzd2l0Y2ggZXZlbnQgezwvZGl2Pjwvc3Bhbj48ZGl2IHN0eWxlPSJmb250
LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXNlIGxldCBsb2dp
biBhcyBVc2VyTG9nZ2VkSW46PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4m
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzZWxmID0gLnZhbGlkYXRl
ZCh0b2tlbjogbG9naW4udG9rZW4pPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7
Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGVmYXVsdDo8L2Rpdj48ZGl2IHN0eWxlPSJm
b250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IGJyZWFrPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgfTwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+
Jm5ic3A7ICZuYnNwOyB9PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij59PC9k
aXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0i
Zm9udC1zaXplOiAxMi44cHg7Ij5zdHJ1Y3QgRXhwaXJlZEF1dGhlbnRpY2F0aW9uU3RhdGUgOiBB
dXRoZW50aWNhdGlvblN0YXRlIHs8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsi
PiZuYnNwOyAmbmJzcDsgdmFyIGV4cGlyYXRpb246IERhdGU8L2Rpdj48ZGl2IHN0eWxlPSJmb250
LXNpemU6IDEyLjhweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsi
PiZuYnNwOyAmbmJzcDsgdmFyIGRlc2NyaXB0aW9uOiBTdHJpbmcgeyByZXR1cm4gIkF1dGhlbnRp
Y2F0aW9uIGV4cGlyZWQgYXQgXChleHBpcmF0aW9uKS4iIH08L2Rpdj48c3BhbiBjbGFzcz0iZ21h
aWwtaW0iIHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPjxkaXY+PGJyPjwvZGl2PjxkaXY+Jm5i
c3A7ICZuYnNwOyBtdXRhdGluZyBmdW5jIHJlYWN0KHRvIGV2ZW50OiBFdmVudCkgezwvZGl2Pjxk
aXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN3aXRjaCBldmVudCB7PC9kaXY+PGRpdj4m
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgY2FzZSBsZXQgcmVmcmVzaGVkIGFzIFRva2VuUmVm
cmVzaGVkOjwvZGl2Pjwvc3Bhbj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlbGYgPSAudmFsaWRhdGVkKHRv
a2VuOiByZWZyZXNoZWQudG9rZW4pPC9kaXY+PHNwYW4gY2xhc3M9ImdtYWlsLWltIiBzdHlsZT0i
Zm9udC1zaXplOiAxMi44cHg7Ij48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkZWZh
dWx0OjwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
YnJlYWs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB9PC9kaXY+PGRpdj4m
bmJzcDsgJm5ic3A7IH08L2Rpdj48ZGl2Pn08L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PnN0cnVj
dCBWYWxpZGF0ZWRBdXRoZW50aWNhdGlvblN0YXRlIDogQXV0aGVudGljYXRpb25TdGF0ZSB7PC9k
aXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7IHZh
ciB0b2tlbjogU3RyaW5nPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog
MTIuOHB4OyI+PGJyPjwvc3Bhbj48L2Rpdj48L3NwYW4+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAx
Mi44cHg7Ij4mbmJzcDsgJm5ic3A7IHZhciBkZXNjcmlwdGlvbjogU3RyaW5nIHsgcmV0dXJuICJU
aGUgYXV0aGVudGljYXRpb24gdG9rZW4gaXMgXCh0b2tlbikuIiB9PC9kaXY+PHNwYW4gY2xhc3M9
ImdtYWlsLWltIiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij48ZGl2Pjxicj48L2Rpdj48ZGl2
PiZuYnNwOyAmbmJzcDsgbXV0YXRpbmcgZnVuYyByZWFjdCh0byBldmVudDogRXZlbnQpIHs8L2Rp
dj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzd2l0Y2ggZXZlbnQgezwvZGl2Pjwv
c3Bhbj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyBjYXNlIGxldCBleHBpcmF0aW9uIGFzIFRva2VuRXhwaXJlZDo8L2Rpdj48ZGl2IHN0
eWxlPSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IHByaW50KCJFeHBpcmluZyB0b2tlbjogXCh0b2tlbikiKTwvZGl2PjxkaXYgc3R5
bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgc2VsZiA9IC5leHBpcmVkKGV4cGlyYXRpb24uZGF0ZSk8L2Rpdj48ZGl2IHN0eWxl
PSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXNlIF8g
YXMgVG9rZW5SZWplY3RlZDo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlbGYgPSAuaW52YWxpZDwv
ZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IGNhc2UgXyBhcyBVc2VyTG9nZ2VkT3V0OjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6
ZTogMTIuOHB4OyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2Vs
ZiA9IC5pbnZhbGlkPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgZGVmYXVsdDo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6
IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJyZWFr
PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgfTwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+Jm5ic3A7ICZu
YnNwOyB9PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij59PC9kaXY+PC9kaXY+
PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij5gYGA8L2Rpdj48ZGl2IHN0eWxlPSJmb250
LXNpemU6IDEyLjhweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsi
PklmIGBBdXRoZW50aWNhdGlvblN0YXRlYCBpcyBub3QgYHB1YmxpY2AsIHRoZW4gY29tcGlsZXIg
Y2FuIG1ha2UgYW4gb3B0aW1pemF0aW9uIGFuZCB0dXJuIGV4aXN0ZW50aWFscyBhbmQgaW5kaXJl
Y3QgY2FsbHMgaW50byBhbiBlbnVtLCBlc3NlbnRpYWxseS48L2Rpdj48ZGl2IHN0eWxlPSJmb250
LXNpemU6IDEyLjhweDsiPldlIGNhbiBldmVuIHNwbGl0IGBwdWJsaWNgIHByb3RvY29scyBpbnRv
IGBvcGVuYCBhbmQgYHB1YmxpY2AsIGFzIHdlIGRpZCB3aXRoIGNsYXNzZXMsIHRvIGFsbG93IGZv
ciBleHByZXNzaW5nIHRoaXMgaW50ZW50IG1vcmUgZXhwbGljaXRseS48L2Rpdj48ZGl2IHN0eWxl
PSJmb250LXNpemU6IDEyLjhweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEy
LjhweDsiPkJ1dCBwYXR0ZXJuIG1hdGNoaW5nIG9uIHN0cnVjdHMgaXMgaW1wb3NzaWJsZS0td2Ug
Y2FuIGNoYW5nZSB0aGF0IHdpdGggYSBzZXBhcmF0ZSBwcm9wb3NhbC4gRm9yIGV4YW1wbGUsIHdl
IGNhbiBhbGxvdyBkZXN0cnVjdHVyaW5nIHN0cnVjdHMvZW51bXMvY2xhc3NlcyBieSBhbnkgY29t
YmluYXRpb24gb2YgdGhlaXIgcHJvcGVydGllczo8YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1z
aXplOiAxMi44cHg7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij5g
YGBzd2lmdDwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+c3RydWN0IFMgezwv
ZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyI+Jm5ic3A7ICZuYnNwOyB2YXIgZm9v
OiBJbnQ8L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPiZuYnNwOyAmbmJzcDsg
dmFyIGJhcjogRG91YmxlPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij4mbmJz
cDsgJm5ic3A7IHZhciBidXo6IFN0cmluZyB7IHJldHVybiAiNDIiIH08L2Rpdj48ZGl2IHN0eWxl
PSJmb250LXNpemU6IDEyLjhweDsiPn08L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhw
eDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsiPmxldCBzID0gUyhm
b286IDQyLCBiYXI6IDQyLjApPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij48
YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij5sZXQgUyhmb286IHgsIGJ1
ejogeikgPSBzPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMi44cHg7Ij5gYGA8L2Rpdj48
L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div>