<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>62196</bug_id>
          
          <creation_ts>2011-06-07 01:20:53 -0700</creation_ts>
          <short_desc>Allow drawing a slider thumb for any nodes</short_desc>
          <delta_ts>2011-06-08 19:07:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>52920</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416396</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 01:20:53 -0700</bug_when>
    <thetext>We currently support only drawing slider thumbs which are children of RenderSlider.
Support grandchild thumbs too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416410</commentid>
    <comment_count>1</comment_count>
      <attachid>96221</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 02:29:33 -0700</bug_when>
    <thetext>Created attachment 96221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416584</commentid>
    <comment_count>2</comment_count>
      <attachid>96221</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-07 09:59:22 -0700</bug_when>
    <thetext>Comment on attachment 96221
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=96221&amp;action=review

I am not thrilled about adding shadow DOM-related functions to RenderObject. It seems like an abstraction leak. But I know you&apos;re fixing an abstraction leak, so perhaps this will work out on the long term.

&gt; Source/WebCore/rendering/RenderObject.cpp:248
&gt; +RenderObject* RenderObject::hostRenderer() const

This should probably have a more descriptive name, like shadowNodeHostRenderer().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417055</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 20:58:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I am not thrilled about adding shadow DOM-related functions to RenderObject. It seems like an abstraction leak. But I know you&apos;re fixing an abstraction leak, so perhaps this will work out on the long term.

ok, I changed the strategy.
Renderers should retrieve required information via corresponding nodes, and we should avoid assuming a specific tree structure like o-&gt;parent()-&gt;isSlider().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417062</commentid>
    <comment_count>4</comment_count>
      <attachid>96371</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 21:22:57 -0700</bug_when>
    <thetext>Created attachment 96371
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417284</commentid>
    <comment_count>5</comment_count>
      <attachid>96371</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-08 09:19:14 -0700</bug_when>
    <thetext>Comment on attachment 96371
Patch 2

View in context: https://bugs.webkit.org/attachment.cgi?id=96371&amp;action=review

This looks pretty cool.

&gt; Source/WebCore/dom/Node.cpp:966
&gt; +Node* Node::focusCheckDelegationNode()

I think this name is a bit confusing. How about &quot;focusDelegate&quot;?

Also, how does this correlate with the work that Ito-san is doing on focus in shadow DOM?

&gt; Source/WebCore/html/shadow/SliderThumbElement.h:-52
&gt; -    bool inDragMode() const { return m_inDragMode; }

Whoo, this is cool!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417674</commentid>
    <comment_count>6</comment_count>
      <attachid>96371</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-08 16:31:33 -0700</bug_when>
    <thetext>Comment on attachment 96371
Patch 2

View in context: https://bugs.webkit.org/attachment.cgi?id=96371&amp;action=review

&gt;&gt; Source/WebCore/dom/Node.cpp:966
&gt;&gt; +Node* Node::focusCheckDelegationNode()
&gt; 
&gt; I think this name is a bit confusing. How about &quot;focusDelegate&quot;?
&gt; 
&gt; Also, how does this correlate with the work that Ito-san is doing on focus in shadow DOM?

I also thought it was not a good name.  focusDelegate sounds good.

I think this is not related to the Hayato&apos;s work.  This is used only for focus rendering delegation. A slider thumb node doesn&apos;t have focus conceptually, but it should be rendered with the focus state of the owner &lt;input&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417748</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-08 19:07:14 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/88415</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96221</attachid>
            <date>2011-06-07 02:29:33 -0700</date>
            <delta_ts>2011-06-07 21:22:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62196-20110607182931.patch</filename>
            <type>text/plain</type>
            <size>15868</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgyMTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMDcyMjllYTE0N2Y0MThl
MTVmMDZmYWI3ZDc3ZDRjZDA0MmQ4MjE5Li42OTMyMTEzZGQ3YjE3ZjA5ZjE5YjZjNjI0ZDJmODBi
YzY1Nzg4MjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDYtMDcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IGRyYXdpbmcgYSBzbGlkZXIgdGh1bWIgaW4gZGVl
cGVyIHBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MjE5NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBkb2Vzbid0IGNoYW5nZSB2aXNp
YmxlIGJlaGF2aW9yIHlldC4KKworICAgICAgICAqIGRvbS9Ob2RlLmg6IEFkZCBhIGNvbW1lbnQg
b24gc2hhZG93QW5jZXN0b3JOb2RlKCkuCisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5jcHA6IFVzZSBob3N0UmVuZGVyZXIoKSBpbnN0ZWFkIG9mIHBhcmVudCgpLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVNsaWRlclRodW1iKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHA6IGRpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYVNsaWRlclRodW1iKToKKyAgICAgICAgKFdlYkNv
cmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omhvc3RSZW5k
ZXJlcik6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDogQWRkZWQg
YSBkZWNsYXJhdGlvbiBvZiBob3N0UmVuZGVyZXIoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KTogQ2hl
Y2sgaG9zdFJlbmRlcmVyKCkgaW5zdGVhZCBvZiBwYXJlbnQoKS4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRTbGlkZXJUaHVtYik6IFVzZSBob3N0UmVuZGVyZXIo
KSBpbnN0ZWFkIG9mIHBhcmVudCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtV2luLmNwcDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtV2luOjpkZXRlcm1pbmVTbGlkZXJUaHVtYlN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lQ2hyb21pdW1XaW46OmRldGVybWluZUNsYXNzaWNTdGF0ZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBhaW50U2xpZGVyVGh1bWIpOiBkaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVTYWZhcmkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6
OnBhaW50U2xpZGVyVGh1bWIpOiBkaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVXaW46OmRldGVybWluZVNs
aWRlclRodW1iU3RhdGUpOiBkaXR0by4gCisKIDIwMTEtMDYtMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCmluZGV4IDZmYzk1ZmMwODFhODVjMGRjNGNhYjZiNjE5NmQyZTg0YjdmMjUz
MzQuLjQ1ZGM5ZjNjZmVjYjdiNGUwODJlNDIyMjIzYzcxOTc2ZTVlNzdmNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aApAQCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dC
b3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGNhbkhh
dmVMaWdodENoaWxkUmVuZGVyZXJXaXRoU2hhZG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IAorICAgIC8vIFJldHVybnMgYSBob3N0IG5vZGUgaWYgdGhpcyBpcyBpbiBhIHNoYWRvdyB0cmVl
LgorICAgIC8vIFJldHVybnMgdGhpcyBvdGhlcndpc2UuCiAgICAgTm9kZSogc2hhZG93QW5jZXN0
b3JOb2RlKCkgY29uc3Q7CiAgICAgLy8gUmV0dXJucyAwLCBhIFNoYWRvd1Jvb3QsIG9yIGEgbGVn
YWN5IHNoYWRvdyByb290LgogICAgIE5vZGUqIHNoYWRvd1RyZWVSb290Tm9kZSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAppbmRleCA0MWMx
OGEyYWU3NTAxZjY1YTM5ZDI5NGU4N2QwMGFmM2QxNTMxNDBlLi5mZjAwZGU4Y2U5YmQzMzljYWUy
MjVjZGRlYmY5OGIwNmU2Y2Y0YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmNwcApAQCAtMTQ0MSwxMSArMTQ0MSwxMiBAQCBib29sIFJlbmRlclRoZW1l
UXQ6OnBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5m
byYgcGFpbgogCiBib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5k
ZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBy
KQogewotICAgIGlmICghby0+cGFyZW50KCktPmlzU2xpZGVyKCkpCisgICAgUmVuZGVyT2JqZWN0
KiBob3N0ID0gby0+aG9zdFJlbmRlcmVyKCk7CisgICAgaWYgKCFob3N0IHx8ICFob3N0LT5pc1Ns
aWRlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBXZSBjYW4gZ2V0IHRoZSBI
VE1MTWVkaWFFbGVtZW50IGZyb20gdGhlIHBhcmVudCBvZiB0aGUgdGh1bWIgOiBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQuCi0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0g
dG9QYXJlbnRNZWRpYUVsZW1lbnQoby0+cGFyZW50KCkpOworICAgIEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KGhvc3QpOwogICAgIGlmICghbWVk
aWFFbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE0NTYsNyArMTQ1Nyw3IEBA
IGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVjdCog
bywgY29uc3QgUGFpbnRJbmZvJiBwYWluCiAgICAgcC5wYWludGVyLT5zZXRSZW5kZXJIaW50KFFQ
YWludGVyOjpBbnRpYWxpYXNpbmcsIHRydWUpOwogCiAgICAgcC5wYWludGVyLT5zZXRQZW4oUXQ6
Ok5vUGVuKTsKLSAgICBwLnBhaW50ZXItPnNldEJydXNoKGdldE1lZGlhQ29udHJvbEZvcmVncm91
bmRDb2xvcihvLT5wYXJlbnQoKSkpOworICAgIHAucGFpbnRlci0+c2V0QnJ1c2goZ2V0TWVkaWFD
b250cm9sRm9yZWdyb3VuZENvbG9yKGhvc3QpKTsKICAgICBwLnBhaW50ZXItPmRyYXdSZWN0KHIu
eCgpLCByLnkoKSwgci53aWR0aCgpLCByLmhlaWdodCgpKTsKIAogICAgIHJldHVybiBmYWxzZTsK
QEAgLTE0NjgsMTQgKzE0NjksMTQgQEAgdm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlkZXJU
aHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAogICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBv
LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCk7CiAKICAgICBpZiAocGFydCA9PSBNZWRpYVNsaWRlclRo
dW1iUGFydCkgewotICAgICAgICBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSBvLT5wYXJlbnQo
KS0+c3R5bGUoKTsKKyAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gby0+aG9zdFJl
bmRlcmVyKCktPnN0eWxlKCk7CiAgICAgICAgIFFfQVNTRVJUKHBhcmVudFN0eWxlKTsKIAogICAg
ICAgICBpbnQgcGFyZW50SGVpZ2h0ID0gcGFyZW50U3R5bGUtPmhlaWdodCgpLnZhbHVlKCk7CiAg
ICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChwYXJlbnRIZWlnaHQgLyAzLCBGaXhl
ZCkpOwogICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHBhcmVudEhlaWdodCwg
Rml4ZWQpKTsKICAgICB9IGVsc2UgaWYgKHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBh
cnQpIHsKLSAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gby0+cGFyZW50KCktPnN0
eWxlKCk7CisgICAgICAgIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9IG8tPmhvc3RSZW5kZXJl
cigpLT5zdHlsZSgpOwogICAgICAgICBRX0FTU0VSVChwYXJlbnRTdHlsZSk7CiAKICAgICAgICAg
aW50IHBhcmVudFdpZHRoID0gcGFyZW50U3R5bGUtPndpZHRoKCkudmFsdWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bS5jcHAKaW5kZXggNDBlZTliMGFiOGEzYTY5OGFkYzQwMTIxNjExZDdhNjI0MGEwNDQ1NC4uYjIz
MDNlMGE4MjVjMWVjOWY3YTZiMGYwZmU1ZDQ3YjFlNDljYzQxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAK
QEAgLTE2NywxMCArMTY3LDExIEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFTbGlkZXIoUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjCiAKIHN0YXRpYyBi
b29sIHBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgaWYgKCFvYmpl
Y3QtPnBhcmVudCgpLT5pc1NsaWRlcigpKQorICAgIFJlbmRlck9iamVjdCogaG9zdCA9IG9iamVj
dC0+aG9zdFJlbmRlcmVyKCk7CisgICAgaWYgKCFob3N0IHx8ICFob3N0LT5pc1NsaWRlcigpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1l
bnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QtPnBhcmVudCgpKTsKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChob3N0KTsKICAg
ICBpZiAoIW1lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yMDIsNyAr
MjAzLDcgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEkKIAogc3RhdGljIGJvb2wgcGFpbnRNZWRp
YVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoIW9iamVjdC0+cGFy
ZW50KCktPmlzU2xpZGVyKCkpCisgICAgaWYgKCFvYmplY3QtPmhvc3RSZW5kZXJlcigpIHx8ICFv
YmplY3QtPmhvc3RSZW5kZXJlcigpLT5pc1NsaWRlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJl
c291cmNlKCJtZWRpYVZvbHVtZVNsaWRlclRodW1iIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDc4NGUzZDUxODRlMjVhNTc2MGNhNjZkMTkxODQyZjc2
N2U3NGUyMGEuLmIyNmViNDliODFkOGRkNmRhZGYyM2FkN2JhODEyOWMwZjBkN2U0ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNDUsNiArMjQ1LDEx
IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0Rlc2NlbmRhbnRPZihjb25zdCBSZW5kZXJPYmplY3Qq
IG9iaikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlbmRlck9iamVjdCogUmVuZGVy
T2JqZWN0Ojpob3N0UmVuZGVyZXIoKSBjb25zdAoreworICAgIHJldHVybiBub2RlKCkgPyBub2Rl
KCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpLT5yZW5kZXJlcigpIDogMDsKK30KKwogYm9vbCBSZW5k
ZXJPYmplY3Q6OmlzQm9keSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCkt
Pmhhc1RhZ05hbWUoYm9keVRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKaW5kZXggOTZiZjk0Yzg2NmU4N2YxNmExNGFiY2JiMjRjMDYyNWNiNjc0ZjFiZi4uODZhZGIx
MjliNmRjZDg1Mzg1NzMxMDU2Y2JlYzAyNjk0YWQzMGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtMTMwLDYgKzEzMCwxMCBAQCBwdWJsaWM6CiAKICAgICBS
ZW5kZXJPYmplY3QqIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgYm9v
bCBpc0Rlc2NlbmRhbnRPZihjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICAvLyBJZiB0
aGlzIHJlbmRlcmVyIGlzIGZvciBhIHNoYWRvdyBub2RlLCByZXR1cm5zIGEgcmVuZGVyZXIgb2Yg
dGhlIGhvc3Qgbm9kZS4KKyAgICAvLyBJZiB0aGlzIGlzIG5vdCBmb3IgYSBzaGFkb3cgbm9kZSwg
cmV0dXJucyB0aGlzLgorICAgIC8vIElmIHRoaXMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgbm9kZSwg
cmV0dXJucyAwLgorICAgIFJlbmRlck9iamVjdCogaG9zdFJlbmRlcmVyKCkgY29uc3Q7CiAKICAg
ICBSZW5kZXJPYmplY3QqIHByZXZpb3VzU2libGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlv
dXM7IH0KICAgICBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9u
ZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBjYjZl
NDg0MDc3OTg5NjIxNjU2MDI4NzkzZjljMGQyOGQxZDZmNGYzLi4zN2E2NGNhODMwMzA3Yjg2Yjdj
ZWU0NDZmN2NhNWIzNmMyOTVmMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHAKQEAgLTMwNiw5ICszMDYsOSBAQCBib29sIFJlbmRlclRoZW1lOjpwYWludChSZW5k
ZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZQogICAg
ICAgICAgICAgcmV0dXJuIHBhaW50U2xpZGVyVHJhY2sobywgcGFpbnRJbmZvLCByKTsKICAgICAg
ICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRo
dW1iVmVydGljYWxQYXJ0OgotICAgICAgICAgICAgaWYgKG8tPnBhcmVudCgpLT5pc1NsaWRlcigp
KQorICAgICAgICAgICAgaWYgKG8tPmhvc3RSZW5kZXJlcigpICYmIG8tPmhvc3RSZW5kZXJlcigp
LT5pc1NsaWRlcigpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYWludFNsaWRlclRodW1iKG8s
IHBhaW50SW5mbywgcik7Ci0gICAgICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGRyYXdpbmcg
YSBzbGlkZXIgdGh1bWIgd2l0aG91dCBhIHBhcmVudCBzbGlkZXIKKyAgICAgICAgICAgIC8vIFdl
IGRvbid0IHN1cHBvcnQgZHJhd2luZyBhIHNsaWRlciB0aHVtYiB3aXRob3V0IGFuIGFuY2VzdG9y
IHNsaWRlcgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFGdWxsc2NyZWVu
QnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhRnVsbHNjcmVlbkJ1dHRv
bihvLCBwYWludEluZm8sIHIpOwpAQCAtMzI5LDcgKzMyOSw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6
OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IEludFJlCiAgICAgICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgogICAgICAgICAgICAgcmV0dXJu
IHBhaW50TWVkaWFTbGlkZXJUcmFjayhvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1l
ZGlhU2xpZGVyVGh1bWJQYXJ0OgotICAgICAgICAgICAgaWYgKG8tPnBhcmVudCgpLT5pc1NsaWRl
cigpKQorICAgICAgICAgICAgaWYgKG8tPmhvc3RSZW5kZXJlcigpICYmIG8tPmhvc3RSZW5kZXJl
cigpLT5pc1NsaWRlcigpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhU2xpZGVy
VGh1bWIobywgcGFpbnRJbmZvLCByKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IE1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvblBhcnQ6CkBAIC0zMzksNyArMzM5LDcgQEAgYm9v
bCBSZW5kZXJUaGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgSW50UmUKICAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6
CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKG8sIHBhaW50
SW5mbywgcik7CiAgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6Ci0gICAg
ICAgICAgICBpZiAoby0+cGFyZW50KCktPmlzU2xpZGVyKCkpCisgICAgICAgICAgICBpZiAoby0+
aG9zdFJlbmRlcmVyKCkgJiYgby0+aG9zdFJlbmRlcmVyKCktPmlzU2xpZGVyKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihvLCBwYWludEluZm8s
IHIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFUaW1lUmVtYWluaW5n
UGFydDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHAKaW5kZXggYzNmMTVjODdhOWQ0MzQ4N2FlYzY5MzljZGYyMzMzNzhhOTk5
ZDBiMi4uMTAwNzc4NDg0NDZmNjQwNmE2YzU2NDcxYjM2MzQ3ZjNiOGNhNDMzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5j
cHAKQEAgLTI5Niw3ICsyOTYsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGFp
bnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbwogewogICAgIFBs
YXRmb3JtQnJpZGdlOjpUaGVtZVBhaW50RXh0cmFQYXJhbXMgZXh0cmFQYXJhbXM7CiAgICAgZXh0
cmFQYXJhbXMuc2xpZGVyLnZlcnRpY2FsID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNs
aWRlclRodW1iVmVydGljYWxQYXJ0OwotICAgIGV4dHJhUGFyYW1zLnNsaWRlci5pbkRyYWcgPSB0
b1JlbmRlclNsaWRlcihvLT5wYXJlbnQoKSktPmluRHJhZ01vZGUoKTsKKyAgICBleHRyYVBhcmFt
cy5zbGlkZXIuaW5EcmFnID0gdG9SZW5kZXJTbGlkZXIoby0+aG9zdFJlbmRlcmVyKCkpLT5pbkRy
YWdNb2RlKCk7CiAKICAgICBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRUaGVtZVBhcnQoaS5jb250ZXh0
LCBQbGF0Zm9ybUJyaWRnZTo6UGFydFNsaWRlclRodW1iLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMs
IG8pLCByZWN0LCAmZXh0cmFQYXJhbXMpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCA1
M2VjOWNiZWMzODMzOWYxZWM4M2EyMzgxODA2MjQxZTA3ZDM4OGRjLi45Y2U5NjFmMjJlYTUzM2Yz
ZTU0MDM5NTFiNDhjMmY1OTg3MTliMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCkBAIC01NTksMTIgKzU1OSwxMyBAQCB1
bnNpZ25lZCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpkZXRlcm1pbmVTdGF0ZShSZW5kZXJPYmpl
Y3QqIG8sIENvbnRyb2xTdWJQYXJ0CiAKIHVuc2lnbmVkIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46
OmRldGVybWluZVNsaWRlclRodW1iU3RhdGUoUmVuZGVyT2JqZWN0KiBvKQogeworICAgIFJlbmRl
ck9iamVjdCogaG9zdCA9IG8tPmhvc3RSZW5kZXJlcigpOwogICAgIHVuc2lnbmVkIHJlc3VsdCA9
IFRVU19OT1JNQUw7Ci0gICAgaWYgKCFpc0VuYWJsZWQoby0+cGFyZW50KCkpKQorICAgIGlmICgh
aXNFbmFibGVkKGhvc3QpKQogICAgICAgICByZXN1bHQgPSBUVVNfRElTQUJMRUQ7Ci0gICAgZWxz
ZSBpZiAoc3VwcG9ydHNGb2N1cyhvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkpICYmIGlzRm9jdXNl
ZChvLT5wYXJlbnQoKSkpCisgICAgZWxzZSBpZiAoc3VwcG9ydHNGb2N1cyhvLT5zdHlsZSgpLT5h
cHBlYXJhbmNlKCkpICYmIGlzRm9jdXNlZChob3N0KSkKICAgICAgICAgcmVzdWx0ID0gVFVTX0ZP
Q1VTRUQ7Ci0gICAgZWxzZSBpZiAodG9SZW5kZXJTbGlkZXIoby0+cGFyZW50KCkpLT5pbkRyYWdN
b2RlKCkpCisgICAgZWxzZSBpZiAodG9SZW5kZXJTbGlkZXIoaG9zdCktPmluRHJhZ01vZGUoKSkK
ICAgICAgICAgcmVzdWx0ID0gVFVTX1BSRVNTRUQ7CiAgICAgZWxzZSBpZiAoaXNIb3ZlcmVkKG8p
KQogICAgICAgICByZXN1bHQgPSBUVVNfSE9UOwpAQCAtNTg2LDkgKzU4NywxMCBAQCB1bnNpZ25l
ZCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpkZXRlcm1pbmVDbGFzc2ljU3RhdGUoUmVuZGVyT2Jq
ZWN0KiBvLCBDb250cm9sUwogICAgICAgICByZXR1cm4gcmVzdWx0OyAgIAogCiAgICAgaWYgKHBh
cnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBwYXJ0ID09IFNsaWRlclRodW1iVmVy
dGljYWxQYXJ0KSB7Ci0gICAgICAgIGlmICghaXNFbmFibGVkKG8tPnBhcmVudCgpKSkKKyAgICAg
ICAgUmVuZGVyT2JqZWN0KiBob3N0ID0gby0+aG9zdFJlbmRlcmVyKCk7CisgICAgICAgIGlmICgh
aXNFbmFibGVkKGhvc3QpKQogICAgICAgICAgICAgcmVzdWx0ID0gREZDU19JTkFDVElWRTsKLSAg
ICAgICAgZWxzZSBpZiAodG9SZW5kZXJTbGlkZXIoby0+cGFyZW50KCkpLT5pbkRyYWdNb2RlKCkp
IC8vIEFjdGl2ZSBzdXBlcnNlZGVzIGhvdmVyCisgICAgICAgIGVsc2UgaWYgKHRvUmVuZGVyU2xp
ZGVyKGhvc3QpLT5pbkRyYWdNb2RlKCkpIC8vIEFjdGl2ZSBzdXBlcnNlZGVzIGhvdmVyCiAgICAg
ICAgICAgICByZXN1bHQgPSBERkNTX1BVU0hFRDsKICAgICAgICAgZWxzZSBpZiAoaXNIb3ZlcmVk
KG8pKQogICAgICAgICAgICAgcmVzdWx0ID0gREZDU19IT1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggZDBmYzllYjYyMTFlMjVlNTI5ZTU0OTUxMDUz
MTc2MTM0MGJkOGU1Ni4uZWFhOGFjYmZjMGVjMzIxY2QzMTlmMThiOTc2YWEyOTk1Y2M1MDI0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMTI5OCw3
ICsxMjk4LDkgQEAgY29uc3QgZmxvYXQgdmVydGljYWxTbGlkZXJIZWlnaHRQYWRkaW5nID0gMC4x
ZjsKIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3Qq
IG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQogewotICAg
IEFTU0VSVChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSk7CisgICAgUmVuZGVyT2JqZWN0KiBob3N0
ID0gby0+aG9zdFJlbmRlcmVyKCk7CisgICAgQVNTRVJUKGhvc3QpOworICAgIEFTU0VSVChob3N0
LT5pc1NsaWRlcigpKTsKIAogICAgIE5TU2xpZGVyQ2VsbCogc2xpZGVyVGh1bWJDZWxsID0gby0+
c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0CiAgICAgICAg
ID8gc2xpZGVyVGh1bWJWZXJ0aWNhbCgpCkBAIC0xMzA3LDkgKzEzMDksOSBAQCBib29sIFJlbmRl
clRoZW1lTWFjOjpwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZgogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRl
eHQocGFpbnRJbmZvLmNvbnRleHQpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRl
cyB3ZSByZXNwb25kIHRvLgotICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKHNsaWRlclRodW1iQ2VsbCwg
by0+cGFyZW50KCkpOwotICAgIHVwZGF0ZUVuYWJsZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8t
PnBhcmVudCgpKTsKLSAgICB1cGRhdGVGb2N1c2VkU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBvLT5w
YXJlbnQoKSk7CisgICAgdXBkYXRlQWN0aXZlU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBob3N0KTsK
KyAgICB1cGRhdGVFbmFibGVkU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBob3N0KTsKKyAgICB1cGRh
dGVGb2N1c2VkU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBob3N0KTsKIAogICAgIC8vIFVwZGF0ZSB0
aGUgcHJlc3NlZCBzdGF0ZSB1c2luZyB0aGUgTlNDZWxsIHRyYWNraW5nIG1ldGhvZHMsIHNpbmNl
IHRoYXQncyBob3cgTlNTbGlkZXJDZWxsIGtlZXBzIHRyYWNrIG9mIGl0LgogICAgIGJvb2wgb2xk
UHJlc3NlZDsKQEAgLTEzMTgsNyArMTMyMCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50
U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mCiAg
ICAgZWxzZQogICAgICAgICBvbGRQcmVzc2VkID0gbV9pc1NsaWRlclRodW1iSG9yaXpvbnRhbFBy
ZXNzZWQ7CiAKLSAgICBib29sIHByZXNzZWQgPSB0b1JlbmRlclNsaWRlcihvLT5wYXJlbnQoKSkt
PmluRHJhZ01vZGUoKTsKKyAgICBib29sIHByZXNzZWQgPSB0b1JlbmRlclNsaWRlcihob3N0KS0+
aW5EcmFnTW9kZSgpOwogCiAgICAgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlk
ZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgbV9pc1NsaWRlclRodW1iVmVydGljYWxQcmVz
c2VkID0gcHJlc3NlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVNhZmFyaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVT
YWZhcmkuY3BwCmluZGV4IDFhODkzNDU1MmVjYjI1YzZlMWYxYmNiMDEwZDFlOWUxMmY2YTM0M2Yu
LmUzMmU3NzQ3M2I1NWRkNzg1YTk2YmE5ZWMxNDIwNmFhMzQ0OGU0MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcApAQCAtOTk4LDExICs5OTgs
MTIgQEAgY29uc3QgZmxvYXQgdmVydGljYWxTbGlkZXJIZWlnaHRQYWRkaW5nID0gMC4xZjsKIGJv
b2wgUmVuZGVyVGhlbWVTYWZhcmk6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBj
b25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBBU1NF
UlQoU2FmYXJpVGhlbWVMaWJyYXJ5KCkpOworICAgIFJlbmRlck9iamVjdCogaG9zdCA9IG8tPmhv
c3RSZW5kZXJlcigpOworICAgIEFTU0VSVChob3N0KTsKKyAgICBBU1NFUlQoaG9zdC0+aXNTbGlk
ZXIoKSk7CiAKLSAgICBBU1NFUlQoby0+cGFyZW50KCktPmlzU2xpZGVyKCkpOwotCi0gICAgYm9v
bCBwcmVzc2VkID0gdG9SZW5kZXJTbGlkZXIoby0+cGFyZW50KCkpLT5pbkRyYWdNb2RlKCk7Ci0g
ICAgVGhlbWVDb250cm9sU3RhdGUgc3RhdGUgPSBkZXRlcm1pbmVTdGF0ZShvLT5wYXJlbnQoKSk7
CisgICAgYm9vbCBwcmVzc2VkID0gdG9SZW5kZXJTbGlkZXIoaG9zdCktPmluRHJhZ01vZGUoKTsK
KyAgICBUaGVtZUNvbnRyb2xTdGF0ZSBzdGF0ZSA9IGRldGVybWluZVN0YXRlKGhvc3QpOwogICAg
IHN0YXRlICY9IH5TYWZhcmlUaGVtZTo6UHJlc3NlZFN0YXRlOwogICAgIGlmIChwcmVzc2VkKQog
ICAgICAgICBzdGF0ZSB8PSBTYWZhcmlUaGVtZTo6UHJlc3NlZFN0YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggMTVmNjRjNWU0YzY0YjYwY2Ey
NWQ4NjVjYWQ0YjJiYWQzYTA5ODJlZS4uYzAwMmYzZmJlMTkzNTUzYmRkOWZlMjg0M2RmZmI1ODE2
OWY1ZTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3Bw
CkBAIC00NjIsMTIgKzQ2MiwxMyBAQCB1bnNpZ25lZCBSZW5kZXJUaGVtZVdpbjo6ZGV0ZXJtaW5l
U3RhdGUoUmVuZGVyT2JqZWN0KiBvKQogCiB1bnNpZ25lZCBSZW5kZXJUaGVtZVdpbjo6ZGV0ZXJt
aW5lU2xpZGVyVGh1bWJTdGF0ZShSZW5kZXJPYmplY3QqIG8pCiB7CisgICAgUmVuZGVyT2JqZWN0
KiBob3N0ID0gby0+aG9zdFJlbmRlcmVyKCk7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gVFVTX05P
Uk1BTDsKLSAgICBpZiAoIWlzRW5hYmxlZChvLT5wYXJlbnQoKSkpCisgICAgaWYgKCFpc0VuYWJs
ZWQoaG9zdCkpCiAgICAgICAgIHJlc3VsdCA9IFRVU19ESVNBQkxFRDsKLSAgICBlbHNlIGlmIChz
dXBwb3J0c0ZvY3VzKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8tPnBh
cmVudCgpKSkKKyAgICBlbHNlIGlmIChzdXBwb3J0c0ZvY3VzKG8tPnN0eWxlKCktPmFwcGVhcmFu
Y2UoKSkgJiYgaXNGb2N1c2VkKGhvc3QpKQogICAgICAgICByZXN1bHQgPSBUVVNfRk9DVVNFRDsK
LSAgICBlbHNlIGlmICh0b1JlbmRlclNsaWRlcihvLT5wYXJlbnQoKSktPmluRHJhZ01vZGUoKSkK
KyAgICBlbHNlIGlmICh0b1JlbmRlclNsaWRlcihob3N0KS0+aW5EcmFnTW9kZSgpKQogICAgICAg
ICByZXN1bHQgPSBUVVNfUFJFU1NFRDsKICAgICBlbHNlIGlmIChpc0hvdmVyZWQobykpCiAgICAg
ICAgIHJlc3VsdCA9IFRVU19IT1Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96371</attachid>
            <date>2011-06-07 21:22:57 -0700</date>
            <delta_ts>2011-06-08 16:31:33 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-62196-20110608132254.patch</filename>
            <type>text/plain</type>
            <size>41513</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzMjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYzUzNzAzMzc0NTRhYzE1NGUxNTcz
OTdkNzM5ZmU5MGVkZmM4NDk1Li43N2M3MTgxYjAwZGJiZWQ3Zjk2NjQ3OWExNTI2MDAyM2I4MDU3
ODRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDcgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFsbG93IGRyYXdpbmcgYSBzbGlkZXIgdGh1bWIgZm9yIGFueSBub2Rlcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTk2CisgICAg
ICAgIAorICAgICAgICBUaGUgYmVoYXZpb3Igd2FzIGNoYW5nZWQuIFdlIHNob3VsZCBzaG93IHNs
aWRlciB0aHVtYnMgZm9yIGFueSBub2RlcyB3aXRoCisgICAgICAgIC13ZWJraXQtYXBwZWFyYW5j
ZTpzbGlkZXJ0dW1iLWhvcml6b250YWwvdmVydGljYWwuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L3RodW1ic2xpZGVyLW5vLXBhcmVudC1zbGlkZXIuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvZmFzdC9mb3Jtcy90aHVtYnNsaWRlci1uby1wYXJlbnQtc2xpZGVyLWV4cGVjdGVkLnBuZzoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy90aHVtYnNsaWRlci1uby1wYXJlbnQt
c2xpZGVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0wNi0wNyAgSmFtZXMgS296aWFuc2tpICA8a296
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQuIFVwZGF0ZSBl
eHBlY3RhdGlvbnMgZm9yIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3RodW1ic2xpZGVyLW5vLXBhcmVudC1zbGlkZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdGh1bWJzbGlkZXItbm8tcGFyZW50LXNsaWRlci5odG1sCmlu
ZGV4IGYyNjMxMDY5NThhOTI2MDBkM2E2YmE1NmY2MTBmMjZjOGZlYWNhMDcuLmMyODYwOWJkYzU4
OGE2MmNkZGQ1ZTM1ZjU2N2EyOGY5NmJlZGMxNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvdGh1bWJzbGlkZXItbm8tcGFyZW50LXNsaWRlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdGh1bWJzbGlkZXItbm8tcGFyZW50LXNsaWRlci5odG1sCkBAIC0xLDE1
ICsxLDIzIEBACiA8aHRtbD4KIDxoZWFkPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0g
ICAgICAgICN0aHVtYkhvcml6b250YWwgeyAtd2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlcnRodW1i
LWhvcml6b250YWw7IH0KLSAgICAgICAgI3RodW1iVmVydGljYWwgeyAtd2Via2l0LWFwcGVhcmFu
Y2U6IHNsaWRlcnRodW1iLXZlcnRpY2FsOyB9Ci0gICAgPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisjdGh1bWJIb3Jpem9udGFsIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHNs
aWRlcnRodW1iLWhvcml6b250YWw7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHdp
ZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKK30KKyN0aHVtYlZlcnRpY2FsIHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlcnRodW1iLXZlcnRpY2FsOworICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7Cit9Cis8L3N0
eWxlPgogPC9oZWFkPgogPGJvZHk+Ci0gICAgVGhlcmUgc2hvdWxkIGJlIG5vIHRodW1ic2xpZGVy
cyBiZWxvdywgeW91IHNob3VsZCBvbmx5IHNlZSB0aGUgd29yZHMgIkhlbGxvIFdvcmxkIiB0d2lj
ZS4KLSAgICA8YnI+Ci0gICAgPGJyPgotICAgIDxzcGFuIGlkPSJ0aHVtYkhvcml6b250YWwiPkhl
bGxvIFdvcmxkPC9zcGFuPjxicj4KLSAgICA8c3BhbiBpZD0idGh1bWJWZXJ0aWNhbCI+SGVsbG8g
V29ybGQ8L3NwYW4+Cis8IS0tIFRoZXJlIHNob3VsZCBiZSBhIGhvcml6b250YWwgc2xpZGVyIHRo
dW1iIGFuZCBhIHZlcnRpY2FsIHNsaWRlciB0aHVtYi4gLS0+Cis8c3BhbiBpZD0idGh1bWJIb3Jp
em9udGFsIj48L3NwYW4+PGJyPgorPHNwYW4gaWQ9InRodW1iVmVydGljYWwiPjwvc3Bhbj4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2Zvcm1zL3RodW1ic2xpZGVyLW5vLXBhcmVudC1zbGlkZXItZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvdGh1bWJzbGlkZXItbm8tcGFyZW50LXNsaWRl
ci1leHBlY3RlZC5wbmcKaW5kZXggNjhkNzY0N2RhNjMzMzFhNjEyOTY1NmFkN2Q4NmM5NzY0OGE4
Y2EzZi4uNjg1ZWFlZDhhMWMzMDM1Zjk4MGI0ZDkyOTdmZWRmODFhZWI5YjBiZiAxMDA2NDQKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyOTIyCnpjbWVIT1g7aE99OFYpSDZpbjBfZHFxMFAkO3hh
JWZrUHJ6OzVEfkJ5RUxJUmZ3amZsMnV0WHBNbDdRQnRNTjI5bwp6dkwpSjxhVTVoKEw+Mj08MStm
QiZEX2JCeXoobU9jQSM1UURuUDZ1aSZZMiVgPUN0ITsmaTUtaEA0MCF1ZCpBeSEKeiZ3Y0x3WnE2
VXtfRUBgbTw3eUJId0FSYVd1UCtHbjVkO0pSQUpKV0BqdWEtSmojcSF8SU9Ucmk2eX1AYm19cCM1
CnpFQ31qazU0Vz8yVkxvJWZndSVuPztFezBxaClEWXwleDRrc2h+ckxTY0k+RnNsajtvTzZLLXc/
ejEtWCYyTlVCVwp6UHNBSnRmJCY7cXpoKkBueVJLVitWc0FkJXFJKSEye3w9dEEjVmVyZjh+MGFH
ckJRaEY4bihxZmNTP2w0Un5IczQKejVPMXB+SnZZakl6TFZvRnh+YCtqRmkpTGB1LSQrNXNRWSRL
KzRrYDNDZjFUcD8zZWRTJEN7WldERi0lQWo3dUhfCnp0eGJJNEZyQUAyeTAqPnRDIS1URj4zZEVw
JlZoZFRYX2MkUHItI2A+Wl9BYWdYSz1ES2Vvdn1GV314NHJHPG5MTQp6bD04d0NfWD41c1JpY01I
M1ZVfX1qaGlIXzQpXz4rNGwjSXJOODJnZyFJN1J4VkdpN3pmUFlZOXUqOzwtVWBzbU0KeihWOXM8
UDxOPkYpMGdOb289JXNpNk1UYHktUHhEQiYyJnkrQk9nQzhaMWtjMDwkaX5fRWN8LTBfbCFRSnYx
RSRtCnpVQ2x2MC0yNn4pTHBmPystOV9zM2gxViE8KnpobUJtaFc2bHxLdkN8N3kzITwjKyE0RjU3
JmhsOTxjaTk+eDVwTAp6d1VWbjlPMjVoZHJ7Z0ozUGIwIUlhN1I2VHkxJkhFSERzK0ladEZJIzxm
aXoySEI4N2NqXmV4Ozc8Y2FqU0FNMiUKendyMW0rIW5LfFU0YyljRnUydm1IZX1+djs9V3IoeHdZ
NjtKcnJmbThsUHBpKEtOWV9Cd3JkKSstPSs0ZVVqYDVoCnorcVdjS2NCfDM3cTtPcj5TXjJCYTgt
bERvc0goP3JfSHVicVZaLUUqYkwqUmVgaTx0QEZRMUl5NGd7eT95LUxwWQp6X3FjTTRrVi1FVVpi
UytGXlgrKTI5ZGxaNlJkUmBTTk0xKyZqdGxFck0tRUhKelc2cmpzMnl5TzdESU0rO283aWwKellQ
eFhjPWQpcGNNZnArNmxiJislLXtgciMhIW49WFheQTRMdmp4TjVWWWU7JGQ7YUcwYEs+bVJPRmR0
ZD4yWDcyCnorakw5dnpUNUY0X1EhZTQqUCk/Pl5sOTU7czZjJDxLSnVGQnVQJCVzYz03ZjVTQE9m
MzVlX0J3YGY+OSk+XjZuVAp6PTxOND0rSUZ5USUrUW05aFMpPDE8QSZGZG10dGBoVT16bDM7PjB+
e152QChHaDR2OWQrNF4he007ZTUjV3R5Q28KellXe1l8KXQ2VlViaSNlSnshR2hsYz10NWl4OG9x
JiZEWGQ0KTkmTTZ0Z2tMTzlSNG8zcntKWC0qN1ExaiZ1cSgkCnp7bHwwWEQ8d3UlJHxfJSg/M1Ft
WSQkTWowWDh3RiFHaE9ONGpMJHZ+MHpwN3RkdEpaQVlsI0xyYklpNXQ5fWg9MAp6P1QpcE1KPmh5
eVopP18oMyhyQDRlPCVMWSg/MXp3KT9MKjUqLSo4MEo/WWJpWExad1FYUnI9Tm85KmYtZG9PR14K
el53UW9SY3h+TWAmTHQ7VV5qeWptaDRXJiN8Sn5gfVQhJXlBQ2dPTCZDN3JmJGc5V0FTPzZ7R09B
VDYtQXR8MGBTCnpxNWpoQzhZPGhKelEqRlRYMyFaN1ptfE11d21OeyQyIWZyb0lIJUR7aTtHKUtA
UStOSGZeODZWI2lrbUF6MDFLMgp6a09jbnpBLX1iMFBCSiF4YllKWSMqfEhvJlhVdilZKXsqeVpo
OGtBc1FVdj0lOX5tdE50TEI0c1pIX2ZLMU9eNkgKejt+OHsxViVNJSsmZnxtYSl7SEVUJDhZaW9f
MUMoaWAtNGReSzkpMiEhc3I7dVFBSUpFWnJmIVVsKFVGNUlDUExTCnphUj97dTNFUH1Ga31qVWh7
ZG5tQ0p2R2dhRCZ0JE5fVTdkRERWcD9rN1JpbzlCakhGQms5MnRYM3tyZlBSOVZAdgp6aSpMKjla
a256eDI/Oz9rSCFZMT97aVJ9QyloVThwYmRuTU88e3E5bVFWPG5WWSloOEhxfGFGY2p0MGJjQmU9
T3sKelBDI0cpUm5NZkIqSFJZT1N4Sik1JF5fJW8wLTk8eDhgckpzQTE8S20ob3o7e2pLd1Q3SSgy
MFAyN0B0UTVNIWlACnokKzE1VnEpVXJhYWxGIypUMylNdGtAUTd4SVhucj1RdytPRiRFUkpTNlNM
Kzt0c3sqWkhBNEBUZlg2cE52YUxMcwp6Q0M7IU1MfjBeNSRFK1lYJmJxVnUyOSgjKitiT2JPdnEm
KjJ7TEpXTWBlZkgrJXNAaGZJWUlifUlaYD0lSn0rZn4KekYmRnBHaUIlN2chdn5NZ1o8JVVFRj9P
ZlQyI2ZvVTZ4OT9OYm9PU3FPS2JDT1ZvLXR2IWMydD9PT35DX2QoI2MkCnpVK20wLTxFSkt5TiVL
Pzg1ZCg4WG8lSG8+NHhoQXVVJjVUV3U1aSFMdjV6N29VcTByWmVOJF5PVT58aSliXmRrSgp6dzgk
e3ZTVjYkaWc3U2NaX1YpYjkqd3w9bjl8TmZ+VGZ3c1M9dD8jcC0jfEkwdSpQcCtEdTNwdHozPWw3
a3V4R1QKelk8OGcwZnF9eDJeb2JGJUtYQzRudkdCV2JVRU99UUE+VElERTVvUHFkaSZgSnRBISpp
bDkreWlGVWNPe2U/U0VQCnopakB8Y09yN0ZHbzhuYko1Ky1qJUB0UC1KXnBufmp6PzA9Vmsqdk5M
IyF6fnM+ZkpQKUpreEtBa29CYzYydypJKAp6MVUkTXc1QG9kdj0rTXBhMlllMCoya3hnSjM5SkY+
TVkoTjlKOSlrPmhPUVYocFhsbjhKPEUjMUdHY0wxWnpgM3EKem5zfGtuPSo4aCFHYjhKQlg3Pz08
MmI3dHpJX1R4QlJzZndrcUw0fFlRIWptMyN5JHV+R0FSKSFGQUZ4S3pFO1gzCnpxdmc5SSVtJkRq
VnI5JEl7PFFIbi1rZkJfUz9rVy15SG1gWkg7aCZQO0ozUXlicWBpbD5fRCZJbSN0ZUxLbTQlUgp6
REl1SmlDYSNBUUNQI3psX3lxWml4NndGM2NgZFVmZyMpaTBOTV8ldnRqdzlLZHc/b2FOUzJkbVhH
WkgmWVJNfEAKenU1ano3PVItVW1rTGlFXlhmSGA/ZXIjK14qandGfUtTMTJ7WW5sZFZEdDE7MEs9
cVNQeGRCRzM8ZShpfnpRKihgCnpVfX1VTHJTNjZ4RklfMG4wRGpwajFwXz5LUVlUaVV0KVY5dloy
ND0/YSNzeGhzOzVpWWVlO1kpOCVyJiVPQSRoaQp6el5mSjdvK1luYkhNKDt0MUxYQzJ2UE5KRzRG
MUo/NDY9a0pFd0VScHF3LTttRnlIMV9wQTdwcGQkenMzLUZhe28KelFOc0JiekU0b1c1a3t1QV5v
YyZqK2N0N1JufXYjMU92R1VIRXNvT1VOTCk7bGFfOSFIPWtfQ0sqVGZvd1o/LU4mCnpXOWFjR0o8
fjVnUVJ8cXIlfGl0YkEtKit7RCZFMlBJO2l3ZWwxIWsoY09GemRyNig/TSg/eCtPd3Jzan1nI0gx
Zwp6X2gmQjN4NCp0aCNMdGRHUVZCRHl2UGxAKC1hXkBiTyFfUHppT2V6KG1lbDBFc2dGO0hfTkxF
d0RhTEJhR3slQ3MKektxbThQYSFPSU0lJjRubWFvMCU4c0JkMW90KlJedjRUVkJeIXtiT08lZUlw
RnE3JWx0MzV5QyZCfU5BJHNeUFhKCnoxQkhrOWt4VUR1Z0RRQj8taGUhUUl7QCl2SnZpJkBjJVQ1
cFNCY3tPZGN4QFErLWlkR05wWDdnMzkzdHRvZlEqewp6UnJRYyZGIUh1KUQ7T2BZX0RZb0NocG9+
bG0+YkZGakJLa1RvQ1dlRVJiJjJWWiNGd0piY3FzSEM2bnNuZDt7N1EKekRkTUB8WDFKM0lRSz1y
QWxeUjVDRU5qT3RhN3ppWT19ck8kY1U8NHgxI3lGaFk/UktPKEo+SUdDKjdMOE5rZ3NJCnpuQTdg
KT98WVlmOHlfWVVkQ1liY2h7KWtKYVlYMDZlKlRlSHszNF9NYyQxVCowZkZxb3FNMXQ4Z0dLP2F7
bH1WOwp6d3pRUUlDZ2VAI2A8RUN3TTZgK1QpVmVkYlVAbzUjNzBKY0hnQFpJV0RocWlCPkppdDZz
eHxGezM4S3Jgd3RFS3EKek5wfHkzVzNhKGdXN1RkTDRjVDs4aVhTdT9CYCQwaiZHQV51N0hSXiV6
bmIhcWooJiVVODE9YyYhYz5ScGs+RW1oCno5TmVpNXQ3O1lvNnAyaVZTd2Q3SmxGeTxSb3Z7aWpW
diZgKzA3UCh4a1E/e05aSjd5bClgfCs1YCYrJU4jPFc/Ywp6KXAmaGNRLWJPJkxGU3tuZE5EdHcj
RExRUHgwcyprNVlAJnFBT0hHTnM8NUNJPkxBbXc7JEJpZVNIayhIMGEjP3MKeiNKJVE8Q1c5eTNY
O1ZJbk0hUHtIckJkPFNuPSl4YDVqJGpoWX5xJTk1RWpTfCooYFh3VjI+Tk9eNWIjUlB8JnM8Cnpp
QHtadCgkZG1lKVJrRWM+aCV2VDQoe3loRXFpUSY+T1FtYkYyMmdBcmVWRlEyKUshRGFLQm5HYHVi
QV48djR5eAp6M055QkwwNGZqJndqIXw7RUV7dEFHQzlXJGR5K0VmTzFWamhRTUJhWk4qRH41KCR4
Myo+NVNlcGV9RGZkN1MqTG0KekN9dytkakY7QU0kT0t1TmdVYmphOUdCY1c3dileQlBKJnlgd3p4
IT5uT3FNTUhIUkJwY3M9JUJudW08JEphQz5gCnpxcHMwM0dOQj1BM3UxfVVrbzBSZDVjSnFEYHBi
PzFMZWJYdHltVlhSTStaI3xBeFhZRSVUeDB8UjRzSWQ8cHlVQgp6JFJ9eE9gQzI3V0ctemNCTDRU
O1Q0SD0tRHh3fTE9M3hXUkY1YntBfig4dGdqdWV7N0dtKD5kPml5Q2J9U3IlO3QKemZFRzBeRzY1
MVRSc3FsIXdhQH5SeVNTOGkwVkAkJGBgPklVZlUqRShgT1FjREMhMF9KRWRXe292QEQlb3tkWHJo
CnowRXF3KzBWRCFRXmhjWiQxS0kqOzMhcDg0dyoybmV2ZypneztVSkt+JUVofD96OzYyZTtXVihE
VU9kSkp3dkZuUwp6SWx4OT5AZzJ8YV5yam98Rm8xXnZKUGhEcmVzPlE4XyFodm9FWnI7dGQ8KT1Q
ZXBfViMtP0RmZT0/fVpPXzx2e1QKY0dGMjxjI2ZPNjxkKnIkNUthK3NHK2BhYyE+PEs7bmNaIVE+
V0I+cEYKCmxpdGVyYWwgMjAxMjMKemNtZUh2Y3tyNXF8RiU/OGxDNj5+cWYjbXJ2aFBaenZRO1h7
bU9XJn4qcUxHUz1waHlBaz9jSUJFUXp0aSpkQGRDCnpVP0A5LShNKmhPajR7akB2JVIteCVsalZS
PE0kciNAQlFhfWtIYkhoK2tNfkhlU2ZhY14qUFZhZDB4bEZVOSZWNQp6LWdSJm5BME1DYW1DRn15
QGJQVng9aX1xUUJQYWtJTmV9K1Q1QlBOPUBaejA3KlpjMFNKXj98I2R8RW5NOHQmPkUKenN4SW0t
PyVMV3FEeX1MaitVZyFePnAkSnF3T3Vgaz9pSDI1OVR2UHlPcy11cUZfRkxLNUFwRE47TGdWdnk1
LWxLCnotOThmTV9IczRCZzxsVH4tdTJtMjl7VCs3NzJCZnc3eUMzaFZsRjxyYWlGUzsmKXc5bjQx
aEp+N0xIWkVkO0VqJgp6P2QxNEheNk1TRWhqUVZJWnB2NEd5P2dRYWMrcWl9Kk9JNUhTZz84M3lW
Kn0maytnOXdOKDNZciZuTjhQcXJVUVIKeitZZSNQalc9Um01OCZzJCpebGBXLXQwVzVlKUpZQC1j
bXV9VHl5e3ZNajhxaWlMJCVoMCVMYGdoWkx2eFJIZzVECnojNCg7UU8mPm00TnxBKV92SzhsbHRk
RDx2MHV2flJDa2AjbUMrYiorZypJMTtDPmZ3XzU1dFckUEluPEpzOyNqewp6ZHlTKG5ZcmtCOS1a
MERAZUVNPXdjODM/KHF3Un1tZ1Zwb0F5M1Uwbm0pRHQ9XmdZaVR2WCZ6KUU1OzIhQU5uakwKelJj
diZySXpEXmxTLSVtJWBUTkBgYmN9KF8wZ2RJPWQ7M3JhM3MqSGg/e3lOalA8KFJ9SSgkWiRucChv
U3k+I14jCnp6dnRUUlpxNSRfP3EwU1VHellLTiMlXy18SFlrQjRneHRSVkp1RmVlYkcmYmlhJmQk
b3NqXjNRX3JjeGkhazRkIQp6VWZreEtUNilibU0qcEN5ZGJ6KlJrczwtPEItcSY/MUBGMipta1ZY
KlY0OS1fc094WFhedHMwbUx0bU95M2pXNEUKeiQzMlBzISloeyYqPG9LZ2JlcitBSTN2QXdYK3Ax
Y0dPZ3lJKytnbilWdHxEc0poP0E4JDtSfjZocF9QYV4hYkJFCnpeRU40fVFAPn49cTYxMTwpWURH
TW9oY2B0P1FKRkFxUnBCOzNjOVBSaDBsM18mQCYqTT17ezNBNUt0V1ZST0B5fAp6aVlMZVdHSGM7
fGViVXF8cmpfRmdtRjxafHlBbj5ROXQoYSNJdXdgRWRXUVBqa1hleHM7aHJ4PkZlXkZjTTMzKV8K
ekhISDNyX3ROV0VscFQhaExLYGsyY0NURTJEYj85P0dtZTR5ZTl9IWx0N1o+bUVmSSVkT2E1UnlB
Pnx6QlNBSDxACnpDOVQlaThjR3A7P2Z3b05Qe0o/U15ldGtzM2hhe2BzbTxQWU41NSEpQGVQZH1g
VDh2fiFMaXxUKDxmNFVVJWtUVwp6Kz14QXVsVDxzPz9zQjheOHFWYSNqbHJYWD9xPlRkKHImclQx
UGBWNCU3U0hIPnpycXheUkshbXRzJHZtckpUfG0Kek95LTloITt6SzsyY2xCZUFmTV92N2U5cVFq
cE81IT1ldSZAK3xBR308VDBWO2h5WF87RT1wQ3YjOXdNflIxeCp8CnpTaUlmSTZtKWdHLVhCLSo5
TyY4Zz8lSChoO1cpSXZAMnYmMUo2RH0rX0JxJFlvQjZuM0olOCRrS3V6TFlDekNRTAp6JDBFWUo3
eSheajVyJWpNQlotTHMhQV5HI2xqXiZDRDRaYnslI2FqRHBGSCl8QyZvcUlfI3hqR3sld015eiNw
R1oKejNCdGtxXlBJKjFgdU54SmBgZnBQTzdzNzczVUk5QW5FYj1lZ094a1FlcUpqN2E3Zl9LSk4k
Sj9zPllUclpVWTR0CnprTj4/aC08QjxDJjVhe3sqZU5KcWFtbn1taExIczJ0MlRfWCZCTVomRkhP
VCs7XyVQUWUpcn1KQlZ+b08zbnx3eAp6cnJwUklxJUFrXjBLSF5Vbmg/YHg1c1coZ1gpOG5La0ZP
K0dFX2JlcD5vWk51ZDhhczRJWE98QCkjdUB0UlprIUIKem5LYUBPalJiSTMmbDJyU0M0TFBFXlVV
anpOUnFZQnRJMTNUNFcpRj9gVEF3aj5jPy1sU0AwXlYydmFMLXNlPkpRCnp5KGBRdDNPcGFweTFK
WFQxUjA7OHQ3c2J7QmNgZiYpbEF2dG9ZUkFNTn12ZUlzbz4jO1lgJjsoe0h8TlNTbjgyKQp6elBq
c094S3hSWkQ0dVUlakpyMiltcHRZM3EzcUlkSyh8M2hIK1IwZmlrUlhROENKNzRUaHlgQ3EzbCNy
Tz9kTG4Kekk8d1cydzQhZ1l7TUJUIyRjZmBVOUtqZ053fEBfYnEtOUpoSVdlIzUwUlBCYGF8dXRD
JnZjeHNGdDFzdG95JnVCCnpFMCFuZnQ3UG00KG5pY0hFaUg5dC1qPmdtKWF8aStCTVUrJDxpV3F+
bWRsKTNMY2goc248diV6UyVoc2l3VzZ1cgp6NzNLKDBCSWZhST9WQFBtNXVKMEJTczUhfl5rTDV3
MiVJUVFQQkFNJkhpazImYX0hNX44KW90eytHQ2BfY2xPYDgKejdnWXs/YyFkTWs2LVRnZmN5NiFg
ZWFJRHVGPUV0b0N0Rig/Uk14S3kqZDM5Q2BvUnYhZlM4MDYrNEB3cE0yQlNLCno7Oy1WcE8ldU5l
alhWaTt5OEVFNGIlZCQ9e2dGaHc2MCpMPlAhNj5OMW92YUlOayZkeE1tK1kzK0lZbk1RTVRvegp6
UUQrZGxGVjlKSm1oeVNJRV5QWjJ7QCM1RHE+VHlqRGBnbHRDRGVHaFBZcDFXSUlZc3RzTF50SjFa
UVFraytxPVkKem5IfWE0I15XJExsekJfYURnQyRZZH4xN2lAPmdpIypfeSp7TiZjVTw/QVl4UDZS
JFpeQFRtWDEmfW5zZDMtKj8kCnplaGdiIzA8TmZUcHwmV2lBPFMzanpLVjU1O2xMaiFALXVJNj1A
NEc5cEUhQjdJIUp4O3NtSjFrZDVZcE9qc0NPUAp6ZDsyM05vWCNScSZDbzdkeFNmPDFyfkM2UmJg
I3ZIcG4pQXdWVGYzYk1PM3JEaWcyI2t5MktyQWZBalE9RT4jWlgKekckYjNqYGtua2lGNl9xKF9k
MFR3NEBEVUA+T2M4UnQ/UmhjVDJEJVFfKn04ZztvV0UtUXtpWV8lZnhFSXB5aTdGCnpxd0ctNz5g
SiZoa25VaEo3eHNATkQ9LUM8QH5xPWItMjwycm08WHt1KWdmam9xazV+WkVIT1I8VSZ4TkZ2RDdI
egp6YGE8ODZGYjB9SDxmO2U1ZnFibHkxUkB0big/VjI/NW1nYERwYkF1UipYQkBHbT51TlJESDZ+
QnZEUDVoKnxGT2kKem9+enp9N0QwakdlTFJtZW9faGt4ajFpYFZiN0wkKk11fXFqaClKOHNjY1U7
JGdUJVdFMUxXfEdhMCN0Qk5GMF9uCnphTSEwZVpnUDZUWlNjQnsoTCU3RnB9PF40aHVVaUcwZyEh
T3AqTlNlSWBzUkA9bThJU2pMeldyP0hGdUY+NU5EYgp6aGAjemV1QyNWV3BLQlh4bUQ8SGxjclN9
RyM0dzklcnFhb2hWNU8zMzdoQkopcGtvJV5lO2lHRGZUX2NBNl5VaHEKemF1bm9EbFRvJDc/Z1ls
NSN7d3YqPz5aU0AxWjByXjgtNG0kMW9mJVlEWDQtOCYjeSZUPm1gU1Fae29mNyFoPHhNCnpURyp5
RmJTd0NLLSFkTXZsakRxI0pkMzwjXjY9QkImfkJhXmB3Q0AySUAzQW4kcnZnRigjUztqUXJwRHFH
O0pKJAp6YGo/MTZnX3R6cihUbyhjVmEmLUN2dSl8OHRBXmdObSN1aCNWVDtXPmEzbUtJdnUkWlor
dTU8ZVQkNTJNQjFVWEsKenNvT14xTi0xNFZ5Y01TdXBmcmBUc1VSTWRuVT0jJFl4S00tckN8bCNP
KyloNWtTWH1KViFYRlZGRWJ2JDhveDlTCnpxZnthanZ5R09IN35TYTdxdHBrcCh8dDwzY3RiTTVM
KFdOU2o2fTVSaGJGcEQoezFqQTI+MTYzVkBERzhkdzl6KQp6OEFKXz9Pbl5CfCg1eyt8WXZTTjhJ
MUk/c1o/YiFvSVg3QDVXaUNPdkoqOX5+U3F7XyYlT3owZDJNRyFHazFpY2oKenJac25nIVl2c0tT
UylIPEUxRGImIVRhViZkRlhWXyZnQUV1WGA8O2heX0s5T2Mmc0w2cVpNblRlemB7YXI+IUN7Cno1
ekd7WG0mblhocXBBRj87RX1oc1F0b1FyU3NAbCZSdWl2bz8zZ0MqTEIrIUJ2dFVfYUhCZVFTJDVk
e3tZUWR6Rwp6PUdhMGQyYkRZRTQpPVF1UTM9OE1xTCRqRUF1cjk4OCRRYk5UQWtSZjsmWD4kd0VN
bzNBe1ImXzRKbis2ezh+YCMKejJzJmxBLWE8N0klYGA5VGB1cWBScVVqeWs8fH1QJjUlNi1SKUtf
SiNGRk8mNllvRGwzT3BsengtJHloKGdDUWJECnpLfnRMRXhQdlM5MjtOTWlCSEV7LSFMdUJqUCVj
TUAxZFhvQU9idD4qOEZlRDwpSmJjJEt9TjxRQU43OXFPSCReeQp6S25UZ0l2MCZVND1PZzFkOz9A
WTZAMW13XlhpOzk5OUQrPzFobj1XKD8pdy1NN0o/KiRGLSVXfjlqTWstKVkmWFgKemVJZlNAOHFk
TUE4dF5gaG84KmRhISR+WGQ1M0FaP085KTBuKilOdGFpcHIxR0dVej9ILWA0R2dWfSh5fWB5ZC1f
CnojbEFwTUxAWCk3TGRMXjlrdmdpI0t7KCVuMklmVW9CPyFUV0xSZSVKTUZaMTdQbllOcHgwc21M
ZkU7S1RiVjQpPwp6IVVmNDF2ND5hRVgtQzdjdU59dyUqeDFGX0U3MX49YWVXeEo9NzU5PEN9UX49
UylDQWRvd20xfCRMezlBazwyTkAKejEtYz03djFKP3heciVtOEV7YUhQSWAoaW17aEdTIWN6cVpI
RDMhPUtEdTZwRSlhUEFGPUZoWjFKPmVHRHlmQ2doCnpIZ348PUludFVUMVpLMHxgZjVUbHtSVnZ1
PU5WaWVkJj5yOHRWVnN0QUhtQVpiMnxsQ3ooe04+MilTfClqTGleUAp6WjZJYUNOKFNMLWdMKiVu
bjtnNH1JWCFwYnlKQ29vVzRmXmxieTIoSGBmY25FeXJZQ31JRkBOYikmK0EjRC0oPj8KemEqYWtU
aVR5VENXRGJ8WWkkcFNgJDYwdEQyT3BmQ2BgfVZCalRfVj4wfl89QzxzTVJKKzFXK3NRZ1FDfURR
bisrCnpWOW9HITE5Mkl0Nk4ofDFQSW5pfnZ+e3BqUFBBYylKRXBYayRJdERNLVRSTEdSYzY8YS1y
fWROYj5HSVpUS0d9Ywp6ZFY8R01wJj41ZUshUmN+Km1oRm5WRHFZfmhUekNjelMwc0ZoQmEjNVYr
bDlgUW1+O3dtWmA1JkcpPFA2bzByNFgKeigkKGZiN2RTTVBQVCMmTmpvQkxSXyF3dVZVZU8lSTJ0
KkJFQUYkQHdNYSZsRmh2eUVFUkdQclVFQz47REYoQ1RfCno+c28tPTN2UFptYl9hN3Y4MUhpKWMo
TERuZGt8RSl1a2RyNCpOd1hGe3xTZmdEeWxEe153eVd0YUY8ZyshWDtLYAp6NHJlJUxDNmF8ZylK
MSQ/O2VyQHJBdCh4bHFiI2RZPl52UyMoYHpAJShgY19tSTE7IU1Sb1lvKCYtWUQyKmhCWnAKem8t
ZH15O0x4RlB7azdAYi1aZWNMcT11O2NiQlAwV0pLVyVwKChKYEJwU1lpdSsyXzUrP3tAJmByJExT
UGc0Z3dRCnotaGZAVSVDcio0MlY+JkVqTGBycVNoKndJNHVvbWIxYk1lI2x5dkJlV1Mjdkd4d099
ZWIoKnFYXi19RD5IU1okYwp6R3J4e203OE9aclRCKEFkYSVTXjdqfVBzaysmQkR+dG9APWklKX1T
O2xuNyZxbHMkM2k9TWE2ckRlfDVnPSZGajAKeklwJTZGZCZrTktQYjtTX01iMXdweGNheHVDMzI/
fCtrcThobW83Uk9jX2RsbXVARH5gV2hlY2heanpGekpQbGVrCno5ek01MztjK1FzYityIU57IVph
RGIxRUk3PGx7eERERDZXPWphTCRiV0diTzl0RiYkLXJ2eE1KRCYzOCh0dU95ZAp6T0t2WDRTKEEk
ODc2Z3FxNyZoKGBOfTg1IzBkUlZadGlJKzY2cnZwRzRtSSFFRmBxaElYWUdUfW10ZyE0OzdMKkAK
ejVeYDdQIUBMYV9LTjhDI0d8dHNGPFM/QmlXOz19N0VrQD9eKlBrTV51IyZzVFdAPER3WmBeQFFa
Z3I1fTFMK1MyCnpBWXhUPUdnRDVCMUxhLVghRD9NUyZTK2s5MklwMjRVKykmQ1FgI3loSkEyNm5T
LSEhVUw3OUFwdDZFMSghcXNPdgp6VlgwMjJRNFdmVkleMEVpe0Y/YiZBK0lvd2deZ1hNNkhaYWRh
MFZVK1gpPlV+TjdHOEteUFhhKW1JdnYweW5Ca24Kek5LIXxnTmVRQCNMbC1CUnAjQU5HaHV3WD49
RTtjeENBSDNAQU09KnZeeWY4YmxvUH1ldG8wfXpeMGFxMlFoO3x4CnotSEJWN3FlR31xSzB2dHFY
ak1pV1ZNXzlsdDtEaHVgSnpzMmY0fTI3U0w9fj52dS1mMU8leWF1T3pxRzxycHxyWgp6UVUjUlMx
VWV7Tzl8WEVhdXlgJXEpKmxpQ2x8fjI+dUhLe2BHUEYkZlhfV0ZwY0o9cX4mZEFzOVJMWVpyZ3BZ
bGwKei17TTdTVE9pSHNxMyUlUlBPcEg3YipxR0BSXmRzUj8+I2ReMlpnRFo8VkBAfWdMTVV7PjM2
IWc/KHM8cWJxPSM/Cno0Zz1pQ0Y/RTd3NDBuYWFGfT1oP2wtaEpVQHhFcmc5Q25DMW5sMF8yMkZf
d0kkUlNkd2d0anloYURIIUU7YEkoUwp6YTRufUokdUA8eFB6UkEtdFAyUnU0a2c2VlJjWnlyJH1C
RlojSS0wXm42UG5vLUlIJiVBNUYzRVg7ZTVMelVffCMKelhLQjZya01YcCtKfGdzSEBkN15HbX0q
fmxLal8oQjNWdUl2aDRVWSRqPlJGQ2FqRCFEKXZAdjNWR3AlfFh4P3AxCnpha3EyaW43PFc2YjVG
QWB7ZnMkS2Q/NURBOE5mOEB5WHtfXnQ3OEV1N1Jae3NgUkpMcGZ8fSlYTld6MnJOUGo3Mwp6Zyk+
U3JpQ1ZDfXh8Rnh2YyMmfGNgcWQ7b0I3NFcyOGoqdD01M0lfVzleKmsmOHdLTXtQJUt1Zl5MSntS
Sjl5eF8KemhnNj92cz8mQnVCUmlwUzhKRkozSWRNR05CVzdqKnFoKEdOd3lnaC1wJXlAeUVlbCk4
cjhCTTYwQFc8UkRgSTxICno5eiF+YVh6RF57dFRRcmVtTVpCNEZDJU5NK1ZlNi1DSVhefilPYSlh
QGk8PGRrSUdPSHFNbHcoWEpwVENoRGBiKAp6eSRIbm5ZPnA8Q1o5YyNSN0tzRWN0PCRzPCFDTngt
dFc2NyZMVEl+TUhRJXl2PW9jVlYrWHNlWFZpVUNSQFBLTGUKeklNPkYhZ009ajxea1N3cVVBSDcl
MCVJMChQRVhDcWRQUWJzJGxVeno3O31CQmpNZnRVTDc5PXl0UzB9JjxJJFUoCnplQS1ZVCUqcnoo
RD14PyohZzVrO2YkfUJMVCktI2FyO29SbWJ8NFUkKmZESzded0B3fnduSH4mbEBHKmdCJGhTUAp6
P29ONSE5YUM1MUkqYHI1YDR5YnFeaEJCOyE3Uk5ucnBESVBkV0NqaTNxTX02cG1CJVdmJSRgMk5H
d198YVkzM3sKekBVK0UrVkUzWGhXfk5VSWIzM0tGWWJ9UjZsVCghPGxweF9vajJAXnlNOEF5fElu
PXVIclM4eGcrVzkwQGA7SnklCnpZKmA/JjEkPjBCNn4ofW93WTZNckd2eE18REpLdEVmRTJ4fkYh
JF88Xld9VCFRailzPkVfKnV+KzN9Mmw+a1B+Uwp6biNFcD9vRWJRSmlMVHJvbjN2JkAwK3F0OSM7
Ml9wT2JCdVk2bm1WRiNqYEQ3cTQ8ZCUmej5SSlhOK2E/bWc8XlYKemI+eUElVj9PMXlxJWxub0A0
R089SGVhUSZyNFpFY092dVZHJlVxbWtgOFNDZnl+aExWdiQ5b14jKW99X2p8fncyCnoxZXFGQUU3
fDs2RWkqT2w5QWwpfl9+SWtuPmVzUHw2OS1eQ3FRYXVLZWcmPj54VzYwd3V+dkBBdUIpOUgtMjs5
KQp6TyFvOVVOT2l2XjZTVVo9KUBgbzhGVU57LWA3c2JjM0dDPTA8OW1DZXl0WTRJPEA9VllhNjNL
ZTUkWFAzNWowQUgKej5aRkI2eSZjPjRqdC1QMWBjPzVWeTl5bUB6M15gNnM4PmtsZWZUdVJvNDcp
cHRAQT9yJUhYN0psO2FNU0VRKD5PCnpnSko1SXUrfW5MTDhTSz1SQXl0VXk+SGJJd2BxS0hlUWE9
OzhoeTJGbHAzV3Z7KEcme3IrNTtQSWB5TnErSyRqSgp6Um1NPEFrUmB7Zz9wdDBKSVFtT2g+MSRx
JV9JezE3YDFfVnFJal96d0N4cCVMbz1iTCZ1WExUN25fI3pValold20Kej9KbiFPV1AxcyNVRjBg
QXI4ckJ9VH5IbG8yOVhxKGx9ISo0TzwxNyVIKDkjcXNeWkloVFJ8X09iTjVHc3dXX2xjCnooaTJu
WjZEa2tGK0FMNnJ3RFAmTFVFbDc2ZSpZQ0dhdTltbEU+bUpKZXlXWFc2T0Vgb3ZmS3VkSyMjWExv
NTtLbwp6Q3otVzYtK3x1MHJzWCF9SWE+OD88cTdWM1VUIyhNTEUxTnBLRzwkMWhnNi1EI3d8ZVBl
Iz1GeXNtaXNlRmVwWj4KejhENEJuezdCVSQxQk1zTGllZj1CYUlTNHxKdnI+Rj4xd2UwN1lTdnxe
cEY7VTVFejAlZlp0PX5pOFQ8JlFAej8/CnpJbmlec0t0NFZtcXEpIU5KUXw8UUhGQHI7ZUEpaFhI
QllFSSlXWUwjXmY8TWElYWtSN1IoaG9iUF8zYzkhS31FRQp6PHxaTk5meEdaNDU7bWAmQGQpcVpw
K2hzKEwzQEUpJiZINDgrb3lmeWpwWXgwZyYjSykjJWRpVV9aT3pXWU01IzwKenIrbGRCbiQ/SylI
P1ArJGFxTzJOZH1FYj9TWT9qMTsmVnUqZTZQPHE4c0lIVV5qJWloaHdQN2AySTJERiRpT31zCnpB
KUhUUnlzcn5wPTIod1VmKzxBPF5lbylzZEZyJnpoc1pZKk5xVlhmPzNKI0RESHtpdilfQUJadlN2
M0p3eSZeTAp6elpLcjV1VnF2KTxZUmVsVUlTRGI0JjdiP3pNcWdyKFduYz9ET3RCQnBDPiVJaW9I
VDc/PCpwbEpkRkxybzd7Z2sKei1SVHVzMTlHOV4mYTBgIyFyPFd5cnZ6WkV6TEJEQUd8XmZaSSs7
SiFWdkUjYSlgelVrPFRLSmlOTj9vY2Zxb0JSCnpWMTA4NzJrUUBeWXt0QTNZez9wbW1sJVh5KjVB
a0d5JjxAR3k4Jj9lbUBteURxXl5ZRWVISHNJMCNreSZlcH1URgp6dDk3cW8+Y1hnRmZLSEVOSy1k
KUIrcUtOIypLOyYlSUk8PVg+TFVlaytBITl0TmB+X3MrJUhSQShUdEphKE9NT2UKelZjPUY2cX1+
YUNQWXhWezJnWXp2WTdUP1o5ZVopTSE0OEAhQXElYmh6U08/bkRWNVkjaGF1dTB1dnh4bT5WXiV9
CnpDdyg3eVYqZS0lKEFXQnRaYm9CYyh6eDwkbkIxaHcwKUcxRFR1cGA0KVZLaSUpaU8kYGFtRm9J
bEwkPCViMWh8Twp6WlhPUGc7emI1JCRoc1QhSH0kOHM2KTtIR0JSTXAhKn5rRiFPJX4rJV8rVURY
ZDJBZShWRkN8I21RMis4LVZ9a0gKejwze2RMSjIpeXdYbjMkbCE1KXZrUEx0fHgjZVoxTTcmTG0r
NDhfT31eMWgtdSpMJjAzVlNaZkNCP2k9bVVfQ202CnotYHwzZ0s4diZKIzcqRlRVRFglUUY+e2dD
ZkwjZHhKfF41VWE5dGx7Yk4qUy1OYWlQZWFAfG9OcWVfa1kpT2l5Zwp6eks8YW4ybndqN05oejM2
bntlOU5ZTVh1bkIoY1NXZlhrZjh3M3FHYGA5KnU/T2dPcWZUXzgzIWM2Q2JFdml2RHoKempANmBr
QEl5U2NBUmJhZnUqK0wqUSk7eDgobjJycjNVYjtOVHZiWEM0MGczVWRBMWZlMWUyZzglaldxYyYq
JnYlCnpNQHdrWHgjSz5ETno3RjVGeH1Zc3orQShNR2VsZz9rV2kwc0c7eGR3bF90ZllSVk9VMiVf
MmczMDJ4ekVHVkhOSQp6ZH57MVNeQUU3Sm5rcVJiPHUye3BpVlVoYUZsZFppSnJmZXRUTyZJO3o5
TDJYdDUrT3NzPn1LVl9Cbjh6d2dkSTgKem5GPS19ME0paS1mVFoyVG9mJjh9bEkxbWZiKSk2TyhR
KiV+PHZTPHZuTnY1SUNmenhpR2F1SlRWV3xqJjEpWH5uCnpOMF58VylpISh8YT5ffDJNJUx6b3Y8
JVIhWGZLQl5AXjZoc1lGUiR+PFE4UXNCQT11UGRCenZqe2x1OFk7eWFxSwp6SDQhOCNEPzw9MTdD
Wn5wSzV6ZlplXklvZ0loK2BAdCRHbUpfdl5ZdVlHfXZidEduWXpnfnJAZTN8fnxfS2gkT1IKej1K
I0JrbzRFfSN7YDBjV0BJenZULXRSPnl0cjZBbnA2ZkV9IzE2WkFZfUlRPExtaSRBSjRHKz1MUE5D
OEhQQ1MrCnpGPGs7LTVBPipYJWU8Z3BqO3lFa0F3VzhmOGtZMUU5R0s2QElRKn07OHBYVyo+Q2hi
LWA4e2dscn5LO1Mxand4cwp6MG9EcnQlQj9FK1U0cnRQWDh7NUt6bHBAWGZ2c052byU3bTQ2T1M4
clI4fVNAbCVOKndJbShYd04zWnFfVCleKUMKeklYNjdKc0lvMFRALW8wRHJOUHpDdylkajh3Kncj
VWYmdHd5SUg4RntoTlFTQThkT0VGMTlEalFJeEJ0RjlkP2lnCno0U3o0V0BhZmt9e205NzVjfFo7
STloK0dGQjU2aGE1dlExYTJoZD1aVSM0PW1PV0o/RVo0YWxteHxnLT9fYVYoYQp6bENWNkV0WTVt
eTNMVFkkRkUmcm9hKEhrWjktRWR3dDt1fjJyTG5NKCRPPD9oSmZEYUtab1RTcEB+NkR0OFQqZ1EK
enl+bHtYXy1nOVFrO0dHZygmR1JfKUoob29eMn4lQFYpbXBvLVcmaVBPeCpjaSt8Z0dEdTJsYlZF
YVQ8WUo9KnUpCnpjPSo4eWFYKyNJNGUrYU5UMzM7U05gVWtnejxQaGNpMXtONCQ4dXRnNDdRaGRv
V1lHSjshPWJFbHNJMnhlKlJHbwp6clBZMUFCJVFwal9ANFVzXj9aYGt7YnhVfGd7YSYyOWBNRHoy
TzVJJSgrZ25TM29FVzxxUXkhbSFoKipjYXV0SkYKeipFOyp2IX1NWFd6VSF1eW9SYSNiX1A3K1or
KypjUD5lRVI7ZTlzOXp3Si17Wmh3Z3hRb1U9Uj5YY35qMUZkNypSCnpSayFBeTt8JElVe0I0Yl80
PnpAVW03T1ZxPHM0Q05WKkEmSHtQPD1ISSEmcGtTO0Q/cCVRUGxTejJPM2xsQGNIVAp6YGhgdVVk
QTdlVkRqQXtRNGc3WDdBSXwoIWxwfE4rcytAX2QjNipiQ0lIMnQ+MGhjSEhBUkRTT1ZHQXx4RkR+
dnMKekF0dCZtTUVMXyF5dyRSbE1sblZYXzV1Q2Z6S289aDdYZ1RQRjlFNENqOEhpU209UHFzJHlD
PmI2R3xVUyZ4ZyZ0CnpPS0M/bnRgckF7a0l9JDgqSWteeUJDfnEpLWQoNEQlcGQod3hlR2k1MTwx
YnF2Misrem9GMjc5WmIoaWJYd1ZAZgp6U15Mej9vRChsUmoyTiRWdFkyN3E3PVI1a25jMlZyVGhD
O2BNSlVNezA3T2NJNUFfbDdvQ3Z5PzYmbnotVnt6MF8KemhrMjxtOGRqPyNVVGJ7RkZxcVE3Y20r
dExFO24rbl9wVTlyaH5RPlNyfCpQfTEkNityJWtefnw8Tyh3Sk1KajM8CnopXmtPJWxKcmBpSEQ4
ZkxVK2twdml+TX1uKVdxJDFsezxiYylLU2lLOCEkIXtOPktQblNXb0REKEJwdSFnc3E2KAp6PiV1
VlhARzlgSFVWI0BeVERLbmcoKj5ZM3ZmOHNrIylsMGhOSD01eHpuK15jWlB9d0ZxUTdXNzNAQVNX
aiNTUCEKemh2NENOMX52TTdZRFBrZEBmfkNvLW0jPkt5WE4xMiVPKThSKG16fTwyNlNoaWMzPlYx
c0I0YGM0fktxZVQkfVk+CnplYXQ2clFlUHN5ekFGNFhQTlFCZkVGJTk+SGpafjJAISZSdVJ+dTUj
YUdne09AJm57SzBeZWNBK0VVTXA2NU8/Sgp6JiVsRC1ocilwPERUajxnTzxgfXM1bzAkUXR8RklZ
bWlpRmxBPXtvREFTQE8tWipjPUE/K21hXmZ+MyM3YmVtPyUKemdKSzw4JEt6O1NkZFR8NCZxOTt5
Pk1XMlRiaE1qVj8tTFZiWlBKalU8NH1rcXp3TSkhKzw8JWdvIzBUSUAhR1N8CnpxeUoyfns4d2Rf
ViFqXlVYSj57fSM3Y2lLMVAhUlBZOUhMRGlCUTlmXkBkJjgkMEFGcjRAI1FfZTREaDl1Nj9DfAp6
aiNtWFViVjxBdGFePyRBSEVgSz1WdWB8WGtzNGFQdnMxKVlOdjgpU2xyI20qdk1RJkAxKF5NRzM1
YHp4VjVQOU4KenNfbWY5TjB8T3Z3e1Y8RXhlS0hqPShtb2NicmgodWdKWXNpVDEhKzZDfisqaDk1
OVRNZnpuZ0Q/Z3phU0dBZClaCnpWS29MSGh8SjlIY3xFKDx3Y2Z1ZDZAUjx8M21wYmJxPChgUjgp
R1pSVSYhflRPbiV4Q2FDdm1AVWk+PFpmQ0I9Rgp6NV9JMihSZkJ8M2VTWS0xUmtROXgmP30rLUFA
O0F8T1JyJVZmWiRvYSlVSmZ1a19ZM3lGcVFLWDMzITVFS0E/ZjcKenlnKWw5SH5eWDFiSTg2LShr
Jn0hQW5uS314NGVETGBGMz5oMiF8JDNkV0NpbVFMZGVTdm9KJDxUT0UyVGFqeU59CnokTzdKfFRo
dy0qbGJVKHR7aVFxaCtoPjZlPncmVldiVnswb1opTntnYCEmczlURHxoSzF7fkFybTRsOHhNdnBQ
Ygp6aG8lcWpMXjNDRk1SJjN5KkpkVnhIdUgzPmpRP2VyZWBzY2luMzNhd2wpP0QpUlRXU305ZCRL
JWM/YyRrZEA5MCkKej9rbSFNIVR2MHl7R2ZYLVJvXm9wcTFFe293Q2pwd0BTRFNWNT5mZCRySmpi
OWs9P0ZFI1o/RCZpdmdkbSo1M2IqCnpxdlZ+Rk1JWHdxKzUkbzltfCRaUF9ndCF1ZGw9TlomKnI3
fUheVmF3PjVoRihDZ1FQKVFhPnhXQ3tQQHRyV09tdgp6XksofWdUNE5Xcm5SQChZXkc4Iz1MQFZ8
eCMkI14xSjNRfGVEPTA1Xk4rNiNCbHlQQkJHQ2o/KjIkQWdxRmBYeUoKekhLPiVDOT1DamBePmg4
b3RLQCZ1N21eUktZKE1nb1B6WktYX3pNRyFyJFE3dXRUclQlPzNPS1c2TFFhTkk4Un5RCnp3JiZZ
XjZXPnMxWDlXZjJnSmdvJT5DNH4xRDFTKDBacCk4bzV5UnNRSmM1VipBZT47T1BuQnY9MTRqfnsr
Kng7aAp6fDQmZXE3LUYxWUtwJiEwdEwreUdeUnc+fns4NzB2MEwmR2pBclhKVj1rUS05KyRhRV9M
eW9+KGM/aUoze2RnMm0KelQlZmw5ZFlCX2xDbGVKTiF6UHBjMGIyLV9HSHRNcW8hKG1YR0FLPkRY
K29+KVNPNGtQdT9nZ058R3ZWKlB3ZTk9CnpuaCluY19GN0g/YnJSeTZwdWhCYDlJenVROFNBUG0t
RT16PHI5QU5hQHREa2lfNSVDX1BfTz8wcHd5PnhSNkR1PAp6MnxsVEZHaytVfHR8TWlxT2w2PUt7
QzZkRnZ8JVppcTx3RXpqcnc8N1graiY7TTYzUGBINFhKP2gpLVBLPmBhWVkKelFRc0luc255bG1W
QkR6fVZIOX4+Z2BPQUtHNy11TXJQQio/NlREZHR6YElIKSN+RnhIJjMqdnhINTJVJEI+fj4+Cnph
bG40KHl+WDZ8b3FaNVZsPkYtWTc8Qkkwe3xjTF88NW4tYm5RSkZOVlN1SEVZZERmPHhPUld0JGlG
Skh2Xk4mdwp6OSNkY2hYcC0kZitTX0xYJns7bkZ6Tm81VXplQ2ArNkhhblhGQnxfVyskMVh9bkhx
PChzaEV5byZtNG5xb18hd3kKeiplTWZfNFFTMHlOfk56bVUqSmFPUk5QPjIyd2B3QVFELVcoOUJA
SGlyWnxRZCFzcVBwT0o+dXUzM2ZsRHY2YTdmCno/WSpJOE5kaXJOalJ5az1mbncjZXEqNEc8S0c5
VlEpQEA/Nl5BI3VGK0Yqdz9xK1ljVUpvRl8mWntaSCVUN0VeQgp6WmpuN3VTOyF5aDBBZX4lbDhG
R3lTLX1YNTc3P1MtMWs5WEVfWkktWFpOY0BfSGhMTjBxQHNXPCtNbCVjRVBXc3IKejZnZ3lSYlJK
VlhTN0hZaz5XU3JqSF9SLTtCYzdxX0ZYRUZkYnFmdGRDVj5+cmBXV2soQVFgJExtRWZtVGlWZnNM
CnpARFUrbDNwSiE7Jjt8fTJtKD1FcEd8NWE3MUZnRT1md3UwJE5xbk56a2dfISZvMWNfQlB5XldX
OVJUVURTKldMVgp6KGJJbjJmNEFWamZYdzkrfDQle1ktc1c4QyFgSU5GdX54IUReNk0oPkZ5TlR1
b3tQWkAzRVArI191SVo1KH1Sd08KemsmLTFITHRwRTJtVjRhK3IpcHYzUnAmPi0qUDthbGRZbU1F
RVk1aVVwPzVyKVF+PWRSPCg/WkozSGl5Q21XOWxmCno5eGdaZTRSTElvQX1ZdEUlZG5jYi1BWW54
cF94YDwkaXg2T0xOdDgkeD9fUDs/d1VLR0YlTns0b1NpdTIrTEkregp6NGxzfV41KlkwbzlxV1Z6
cG98JHhaSSMzXiQhJm1mb2l0eUU4NVJHUmptY2tZfEpiJFZrQjd4Jlozb0c2aVFFN2EKeiF0KVA5
Yn1IYjw0TGhOR3VDVEsmWGB3MGNhM0dPZzhOYmgwO2xPfEg4M0FoQ2dfK00qXjlIczdTUGgmPlpM
TFdgCnpaRFc5MWFTNyhDUWdOVDBCZlpic0RvQ1d9Q2psX05fc0lDPCErT1J6JT1hbF5DYEtnUTdF
QG1YO1VQXyZ0TT1RSwp6QWBfM3VDR3RWclB2cE8+OUpwSCk7aFEtc1lmfl5BIT0qT1JNflhmRyUt
SHdnT2c3QGozKTdMN09vRW9kQzFFTnwKenApQUR9cG8mPzZmO1JLcCpVa0FVTDZ0UEdpO0ZYXzha
dkA7PzYjVnQoQlpNQ1hLRCp6d0ZYaiNiaSMkX1hFKS00Cno/WShCKztPLTwpeThlRWZDfHoybzhx
VGI8JkUzUHMmYkx4THI3YHs8YmleeWFHOUBucG42VktOMCMjezNPI1QmNgp6VGooY209alRMKipE
VXYjYnNVUDc+QipMbkJST1AzK29aXm9MQWwyYUo1NEZvcXVeJjQ8WGc9NihAK1FhVnEoI3EKeiow
PitRezUhKU9GK1glTjAjNUJJZEo8cStUUG1eZG4tOyRuJUh9UVg3Q1JmVz91IU45MSpTUXU9RXJZ
bEJORlg0Cnp3KGlPMD5zdW03QHlwIV5fVm0zKzhHPzZnPzRjTHFCKjtZbnJaUmh+byZ0MD1IUj5O
MjBAYFYtP2ZkV1ZOdH0oKQp6eS1SVX4zbm5IdDlWdGFTe3hZKiQpZVBEYllKY25HWFVreEtLc0xN
aGcrbSV2MkVJQ1o8KmUlbUMrTlpHQCQ0WlgKejNEX2dUdyRRRXJ3dEhMbjE5byoqQFNQPlMpanoq
c2Q5JSt2KldLWTNYPEUrU2ZSbFk8cVE8a0B2bTRHY0s1eHUtCnpNZ0dKRm9jdWxFQT5SJG1iOytN
S1pKUmhofDdIRndKMndtJjFPVHBYTGhYaW1kTSt3ekVQbmF3MjhLe0BNRStzbAp6LX0xeT9ob2NA
bjxvbkl8Iz5WMFF5STN5JlB+cktANFp+a0VIUmRaTTc2QCY0IytfVFhDYDckfHY/MWBpejxiRD0K
ekkmNjV4JUslTi1zYz57Tk0xTXloWUJOTmVTK3Q9VCRSRkJWWCNkOzNWbHphV0FeSTAoajVpVCY2
WkFJX2xUQlc8CnpOZ1ghOz5MJEQxWShPPn1rYm5FRiVecSNEam9sekx7M3EzWmxVO0FKPnJIbjNS
fEdhQ3dOMkc9UTwoaW48SzVKKgp6SD9gfGNkSCl+Sj1SWjBpSXY9VVBfaUc0QXVZV0pWclc+K3A4
MnhLflo4R2l1KSl1MThXQE5KJio9JEJPbi1MJWEKdG5fRDBAY1pxRD0kK0VlVD1Lc2Z5RytkKWtB
WH4mK0BwbSE2eDZTY2d4b0NOejxvdnh+e3MrVGRzMV5WSwoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL3RodW1ic2xpZGVyLW5vLXBhcmVudC1zbGlkZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvdGh1bWJz
bGlkZXItbm8tcGFyZW50LXNsaWRlci1leHBlY3RlZC50eHQKaW5kZXggN2U2YmI5OTJmMTI2ZTQw
YmZlZmUxMDYyOTMwMGVmOTgzNDgxZWY4ZC4uZjFkNjQxZmVkNjJiMTQ5OWEwMTZhN2U3NzM4Y2Qy
YTNiOWYxODFhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9y
bXMvdGh1bWJzbGlkZXItbm8tcGFyZW50LXNsaWRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvdGh1bWJzbGlkZXItbm8tcGFyZW50LXNsaWRl
ci1leHBlY3RlZC50eHQKQEAgLTMsMTUgKzMsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4NTg0Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OTJ4MTgKLSAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTkyOiAiVGhlcmUgc2hvdWxkIGJlIG5vIHRo
dW1ic2xpZGVycyBiZWxvdywgeW91IHNob3VsZCBvbmx5IHNlZSB0aGUgd29yZHMgXCJIZWxsbyBX
b3JsZFwiIHR3aWNlLiAiCi0gICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgwCi0g
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDE4KSBzaXplIDB4MTgKLSAgICAgIFJlbmRlckJsb2Nr
IHtTUEFOfSBhdCAoMCwzNikgc2l6ZSA3OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA3OXgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc5
OiAiSGVsbG8gV29ybGQiCi0gICAgICBSZW5kZXJCUiB7QlJ9IGF0ICg3OSw1MCkgc2l6ZSAweDAK
LSAgICAgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCw1NCkgc2l6ZSA3OXgxOAotICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3OXgxOAotICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDc5OiAiSGVsbG8gV29ybGQiCisgICAgICBSZW5kZXJCbG9jayB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjAsMjApIHNp
emUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7U1BBTn0gYXQgKDAsMjApIHNpemUgMjB4MjAKICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdh
YzEyYWM4YjdlZjVjZWU3Zjk2ZjkwZjdhYmE0YzQzODNmYjE2MWYuLmVhMDM1MjRhMjVhMzlhMWUw
YjlkMmZhYzMzNDNhMDNhN2Y4YzIyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NiBAQAorMjAx
MS0wNi0wNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgZHJhd2luZyBhIHNsaWRl
ciB0aHVtYiBmb3IgYW55IG5vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjIxOTYKKworICAgICAgICBSZW5kZXJPYmplY3Q6Om5vZGUoKSBzaG91
bGQgcHJvdmlkZSB2YXJpb3VzIGluZm9ybWF0aW9uIHdoaWNoIGlzCisgICAgICAgIG5lY2Vzc2Fy
eSBmb3IgcmVuZGVyaW5nLiBXZSBkb24ndCBuZWVkIHRvIHJlZmVyIHRoZSBwYXJlbnQgcmVuZGVy
ZXIuCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpm
b2N1c0NoZWNrRGVsZWdhdGlvbk5vZGUpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vTm9kZS5oOiBB
ZGRlZCBhIGRlY2xhcmF0aW9uLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUGFyZW50TWVkaWFFbGVtZW50KToKKyAg
ICAgICAgICBBZGRlZCBhbiBvdmVybG9hZCBvZiB0b1BhcmVudE1lZGlhRWxlbWVudCgpIHdpdGgg
Tm9kZSogcGFyYW1ldGVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1BhcmVudE1lZGlhRWxlbWVudCk6IGRpdHRvLgor
ICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmlzRW5hYmxlZEZvcm1Db250cm9sKToKKyAgICAg
ICAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGhvc3Qgbm9kZS4KKyAgICAgICAgKFdlYkNv
cmU6OlNsaWRlclRodW1iRWxlbWVudDo6aXNSZWFkT25seUZvcm1Db250cm9sKTogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmZvY3VzQ2hlY2tEZWxlZ2F0aW9u
Tm9kZSk6CisgICAgICAgICAgUmV0dXJucyB0aGUgaG9zdCBub2RlIHNvIHRoYXQgUmVuZGVyVGhl
bWU6OmlzRm9jdXNlZCgpIHJldHVybnMgdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6ZGV0YWNoKTogU3R5bGUgbml0LgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
VGh1bWJFbGVtZW50Ojpob3N0SW5wdXQpOgorICAgICAgICAgIE1ha2UgaXQgY29uc3QgYmVjYXVz
ZSBpdCBpcyBjYWxsZWQgYnkgY29uc3QgZnVuY3Rpb25zLgorICAgICAgICAqIGh0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAgIC0gUmVtb3ZlIGluRHJhZ01vZGUoKQor
ICAgICAgICAgIC0gVXBkYXRlIGRlY2xhcmF0aW9ucworICAgICAgICAqIHBsYXRmb3JtL3F0L1Jl
bmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGFpbnRN
ZWRpYVNsaWRlclRodW1iKToKKyAgICAgICAgICBVc2UgTm9kZTo6c2hhZG93QW5jZXN0b3JOb2Rl
KCkgaW5zdGVhZCBvZiBSZW5kZXJPYmplY3Q6OnBhcmVudCgpIHRvCisgICAgICAgICAgc3VwcG9y
dCBkZWVwZXIgdGh1bWIgbm9kZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1lZGlhU2xpZGVyVGh1
bWIpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVt
Yik6IFJlbW92ZSBpc1NsaWRlcigpIGNoZWNrLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJT
bGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjppbkRyYWdNb2RlKToK
KyAgICAgICAgICBTbGlkZXJUaHVtYkVsZW1lbnQ6OmluRHJhZ01vZGUoKSB3YXMgcmVtb3ZlZCwg
YW5kIE5vZGU6OmFjdGl2ZSgpIGhhcworICAgICAgICAgIHRoZSBzYW1lIGluZm9ybWF0aW9uLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGFpbnQpOiBSZW1vdmUgaXNTbGlkZXIoKSBjaGVja3MuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6aXNGb2N1c2VkKTogQXBwbHkgTm9kZTo6Zm9jdXNDaGVja0Rl
bGVnYXRpb25Ob2RlKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1M
aW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBh
aW50U2xpZGVyVGh1bWIpOgorICAgICAgICAgIGlzUHJlc3NlZCgpIGlzIGVub3VnaC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHA6CisgICAgICAgICAgaXNF
bmFibGVkKCksIGlzRm9jdXNlZCgpLCBhbmQgaXNQcmVzc2VkKCkgYXJlIGVub3VnaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmRldGVybWluZVNsaWRlclRodW1i
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6ZGV0ZXJt
aW5lQ2xhc3NpY1N0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVtYik6Cisg
ICAgICAgICAgLSBSZW1vdmUgaXNTbGlkZXIoKSBjaGVjay4KKyAgICAgICAgICAtIFBhc3Npbmcg
J28nIHRvIHVkcGF0ZUZvb1N0YXRlIGZ1bmN0aW9ucyBpcyBlbm91Z2guCisgICAgICAgICAgLSBp
c1ByZXNzZWQoKSBpcyBlbm91Z2guCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2Fm
YXJpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lU2FmYXJpOjpwYWludFNsaWRl
clRodW1iKToKKyAgICAgICAgICBXZSBkb24ndCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgYW55bW9y
ZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVXaW46OmRldGVybWluZVNsaWRlclRodW1iU3RhdGUpOgorICAgICAg
ICAgIGlzRW5hYmxlZCgpLCBpc0ZvY3VzZWQoKSwgYW5kIGlzUHJlc3NlZCgpIGFyZSBlbm91Z2gu
CisKIDIwMTEtMDYtMDcgIElhbiBIZW5kZXJzb24gIDxpYW5oQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGJkNDFlNTI4
YTAyNWRjZmE5MTdjOTAwODNiZDY1MmIxYzIxNGI4ZDQuLjMwZjA2M2NjMjdlN2FjYzQ4MzRiOTJm
MTg3YmY4NWViMGYzNjc3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTk2Myw2ICs5NjMsMTEgQEAg
Ym9vbCBOb2RlOjppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKICAgICByZXR1cm4gaXNGb2N1c2Fi
bGUoKTsKIH0KIAorTm9kZSogTm9kZTo6Zm9jdXNDaGVja0RlbGVnYXRpb25Ob2RlKCkKK3sKKyAg
ICByZXR1cm4gdGhpczsKK30KKwogdW5zaWduZWQgTm9kZTo6bm9kZUluZGV4KCkgY29uc3QKIHsK
ICAgICBOb2RlICpfdGVtcE5vZGUgPSBwcmV2aW91c1NpYmxpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4
IDZmYzk1ZmMwODFhODVjMGRjNGNhYjZiNjE5NmQyZTg0YjdmMjUzMzQuLjIwNDIzMzIyZDVkYjVk
MDE0MDU2MGMzYTZhN2RiNDJlZDQ3ZWQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMzM1LDYgKzMzNSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIE5v
ZGUqIGZvY3VzQ2hlY2tEZWxlZ2F0aW9uTm9kZSgpOwogCiAgICAgYm9vbCBpc0NvbnRlbnRFZGl0
YWJsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggOTRjYjNkNmMwNTk4NDAwZTM2ODIzYzg1MGMyNjZk
NDFiODcyNWIxZS4uZWQ1MmJlY2ZhMmY3NzEyOGQxYWM0OGUwZGI1NjEyMjIzNWM1OTI4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcApAQCAtNTIsOSArNTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVkaWFFbGVtZW50
KFJlbmRlck9iamVjdCogbykKK0hUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVkaWFFbGVtZW50
KE5vZGUqIG5vZGUpCiB7Ci0gICAgTm9kZSogbm9kZSA9IG8tPm5vZGUoKTsKICAgICBOb2RlKiBt
ZWRpYU5vZGUgPSBub2RlID8gbm9kZS0+c2hhZG93QW5jZXN0b3JOb2RlKCkgOiAwOwogICAgIGlm
ICghbWVkaWFOb2RlIHx8ICghbWVkaWFOb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9U
YWcpICYmICFtZWRpYU5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphdWRpb1RhZykpKQogICAg
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5oCmluZGV4IGZmOGY0NjE0NmQ2YjRjNTdhYjBlNjYwOTE5NzEwOGEzMGVm
YWY2YzcuLjg5NmQ0NjZhMGZjODI1ODhlNjI0OGFlOTA2M2YwNmFkMmFhMzkxYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAt
NzAsNyArNzAsOCBAQCBlbnVtIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHsKICAgICBNZWRpYVZv
bHVtZVNsaWRlck11dGVCdXR0b24sCiB9OwogCi1IVE1MTWVkaWFFbGVtZW50KiB0b1BhcmVudE1l
ZGlhRWxlbWVudChSZW5kZXJPYmplY3QqKTsKK0hUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVk
aWFFbGVtZW50KE5vZGUqKTsKK2lubGluZSBIVE1MTWVkaWFFbGVtZW50KiB0b1BhcmVudE1lZGlh
RWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSB7IHJldHVybiB0b1BhcmVudE1lZGlhRWxl
bWVudChyZW5kZXJlci0+bm9kZSgpKTsgfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuY3BwCmluZGV4IDhhMDZjYjMzZmI1Y2JmY2EwMGZmYzhhZTZkZmVmNTRkOTFjNzRkYmYuLmZj
ODZjNDUxY2RjOGVjNDI0ODBhYmY5YmIwMWQwMDE1OGNkMzJlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtOTcsNiArOTcs
MjEgQEAgUmVuZGVyT2JqZWN0KiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVu
ZGVyU2xpZGVyVGh1bWIodGhpcyk7CiB9CiAKK2Jvb2wgU2xpZGVyVGh1bWJFbGVtZW50Ojppc0Vu
YWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhvc3RJbnB1dCgpLT5pc0Vu
YWJsZWRGb3JtQ29udHJvbCgpOworfQorCitib29sIFNsaWRlclRodW1iRWxlbWVudDo6aXNSZWFk
T25seUZvcm1Db250cm9sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaG9zdElucHV0KCktPmlzUmVh
ZE9ubHlGb3JtQ29udHJvbCgpOworfQorCitOb2RlKiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmZvY3Vz
Q2hlY2tEZWxlZ2F0aW9uTm9kZSgpCit7CisgICAgcmV0dXJuIGhvc3RJbnB1dCgpOworfQorCiB2
b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zyb20oY29uc3QgSW50UG9pbnQmIHBvaW50KQog
ewogICAgIHNldFBvc2l0aW9uRnJvbVBvaW50KHBvaW50KTsKQEAgLTE5MywxNSArMjA4LDE3IEBA
IHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZXRhY2goKQogewogICAgIGlmIChtX2luRHJhZ01v
ZGUpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCi0g
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRz
Tm9kZSgwKTsgICAgICAKKyAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlKDApOwogICAgIH0KICAgICBIVE1MRGl2RWxlbWVudDo6ZGV0
YWNoKCk7CiB9CiAKLUhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElu
cHV0KCkKK0hUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkg
Y29uc3QKIHsKLSAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KHBhcmVudE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKKyAgICAv
LyBPbmx5IEhUTUxJbnB1dEVsZW1lbnQgY3JlYXRlcyBTbGlkZXJUaHVtYkVsZW1lbnQgaW5zdGFu
Y2VzIGFzIGl0cyBzaGFkb3cgbm9kZXMuCisgICAgLy8gU28sIHNoYWRvd0FuY2VzdG9yTm9kZSgp
IG11c3QgYmUgYW4gSFRNTElucHV0RWxlbWVudC4KKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgpOworICAgIHJldHVybiBp
bnB1dDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmgKaW5kZXggYjI5MTQxZjM5OWVkMGEyZTc2NzlmYmYxZjc5YzI0OGY2NTZj
M2M2Zi4uMTdkODgxMjk0OGU0YTQzNzZkOWM3MGFiMmU1NWUwZmMxMjAwZjE2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKQEAgLTQ5LDcg
KzQ5LDYgQEAgY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTbGlkZXJUaHVtYkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCopOwogCi0gICAgYm9vbCBpbkRyYWdNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9pbkRyYWdNb2RlOyB9CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21WYWx1ZSgpOwogCiAgICAg
dm9pZCBkcmFnRnJvbShjb25zdCBJbnRQb2ludCYpOwpAQCAtNjEsMTAgKzYwLDEzIEBAIHByaXZh
dGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWRGb3JtQ29u
dHJvbCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKSBj
b25zdDsKKyAgICB2aXJ0dWFsIE5vZGUqIGZvY3VzQ2hlY2tEZWxlZ2F0aW9uTm9kZSgpOwogICAg
IHZvaWQgc3RhcnREcmFnZ2luZygpOwogICAgIHZvaWQgc3RvcERyYWdnaW5nKCk7CiAgICAgdm9p
ZCBzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJbnRQb2ludCYpOwotICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGhvc3RJbnB1dCgpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpIGNv
bnN0OwogCiAgICAgYm9vbCBtX2luRHJhZ01vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAppbmRleCA0ZDE5YWNkOWVmZjhhNDdlMGM0NTQ5OWZh
NjViZDQyNzVkYzY4NDZjLi40NjJlNmY4MDAwOTBmMzI2MDBiYzU2NzgxMDc4OTg0ZWQ0NTAwODdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcApAQCAt
MTQ0MSwxMSArMTQ0MSwxMCBAQCBib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVkaWFTbGlkZXJU
cmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbgogCiBib29sIFJlbmRl
clRoZW1lUXQ6OnBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQogewotICAgIGlmICghby0+cGFy
ZW50KCktPmlzU2xpZGVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIFdlIGNh
biBnZXQgdGhlIEhUTUxNZWRpYUVsZW1lbnQgZnJvbSB0aGUgcGFyZW50IG9mIHRoZSB0aHVtYiA6
IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudC4KLSAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvLT5wYXJlbnQoKSk7CisgICAgQVNTRVJU
KG8tPm5vZGUoKSk7CisgICAgTm9kZSogaG9zdE5vZGUgPSBvLT5ub2RlKCktPnNoYWRvd0FuY2Vz
dG9yTm9kZSgpOworICAgIEFTU0VSVChob3N0Tm9kZSk7CisgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQoaG9zdE5vZGUpOwogICAgIGlmICgh
bWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE0NTYsNyArMTQ1NSw3
IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVj
dCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWluCiAgICAgcC5wYWludGVyLT5zZXRSZW5kZXJIaW50
KFFQYWludGVyOjpBbnRpYWxpYXNpbmcsIHRydWUpOwogCiAgICAgcC5wYWludGVyLT5zZXRQZW4o
UXQ6Ok5vUGVuKTsKLSAgICBwLnBhaW50ZXItPnNldEJydXNoKGdldE1lZGlhQ29udHJvbEZvcmVn
cm91bmRDb2xvcihvLT5wYXJlbnQoKSkpOworICAgIHAucGFpbnRlci0+c2V0QnJ1c2goZ2V0TWVk
aWFDb250cm9sRm9yZWdyb3VuZENvbG9yKGhvc3ROb2RlLT5yZW5kZXJlcigpKSk7CiAgICAgcC5w
YWludGVyLT5kcmF3UmVjdChyLngoKSwgci55KCksIHIud2lkdGgoKSwgci5oZWlnaHQoKSk7CiAK
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCmluZGV4IDQwZWU5YjBhYjhhM2E2OThh
ZGM0MDEyMTYxMWQ3YTYyNDBhMDQ0NTQuLmFkNDJkNTZkOTU3MTk3ODBhMTUzZTllYzk0M2ZhMDMy
NzE2ODM5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCkBAIC0xNjcsMTAgKzE2NywxMCBAQCBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mbywgYwogCiBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewotICAgIGlmICghb2JqZWN0LT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0LT5wYXJlbnQoKSk7CisgICAgQVNTRVJUKG9i
amVjdC0+bm9kZSgpKTsKKyAgICBOb2RlKiBob3N0Tm9kZSA9IG9iamVjdC0+bm9kZSgpLT5zaGFk
b3dBbmNlc3Rvck5vZGUoKTsKKyAgICBBU1NFUlQoaG9zdE5vZGUpOworICAgIEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KGhvc3ROb2RlKTsKICAg
ICBpZiAoIW1lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yMDIsOSAr
MjAyLDYgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEkKIAogc3RhdGljIGJvb2wgcGFpbnRNZWRp
YVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoIW9iamVjdC0+cGFy
ZW50KCktPmlzU2xpZGVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHN0YXRpYyBJ
bWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhVm9s
dW1lU2xpZGVyVGh1bWIiKTsKICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8u
Y29udGV4dCwgcmVjdCwgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDU0NDljNDEyYmYyNDljNjcwMDA5OTQz
NjAzMzBkYWJmN2U2MTg2ZDcuLmJlNmU3OWE3ZDFhZjk0NzAzOThkNzE3YWM0ZDIyMDU5NDEzMDU3
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC0xODgs
NyArMTg4LDcgQEAgU2xpZGVyVGh1bWJFbGVtZW50KiBSZW5kZXJTbGlkZXI6OnNoYWRvd1NsaWRl
clRodW1iKCkgY29uc3QKIGJvb2wgUmVuZGVyU2xpZGVyOjppbkRyYWdNb2RlKCkgY29uc3QKIHsK
ICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNoYWRvd1NsaWRlclRodW1i
KCk7Ci0gICAgcmV0dXJuIHRodW1iRWxlbWVudCAmJiB0aHVtYkVsZW1lbnQtPmluRHJhZ01vZGUo
KTsKKyAgICByZXR1cm4gdGh1bWJFbGVtZW50ICYmIHRodW1iRWxlbWVudC0+YWN0aXZlKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwCmluZGV4IGNiNmU0ODQwNzc5ODk2MjE2NTYwMjg3OTNmOWMwZDI4ZDFkNmY0ZjMu
LmUxODMzZTBmYWJhMjQ1YTNjNDNmOTcyN2IxOGI3NGYwZTMyMWU4NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMzA2LDEwICszMDYsNyBAQCBib29sIFJl
bmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBJbnRSZQogICAgICAgICAgICAgcmV0dXJuIHBhaW50U2xpZGVyVHJhY2sobywg
cGFpbnRJbmZvLCByKTsKICAgICAgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0Ogog
ICAgICAgICBjYXNlIFNsaWRlclRodW1iVmVydGljYWxQYXJ0OgotICAgICAgICAgICAgaWYgKG8t
PnBhcmVudCgpLT5pc1NsaWRlcigpKQotICAgICAgICAgICAgICAgIHJldHVybiBwYWludFNsaWRl
clRodW1iKG8sIHBhaW50SW5mbywgcik7Ci0gICAgICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0
IGRyYXdpbmcgYSBzbGlkZXIgdGh1bWIgd2l0aG91dCBhIHBhcmVudCBzbGlkZXIKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIHBhaW50U2xpZGVyVGh1bWIobywgcGFpbnRJ
bmZvLCByKTsKICAgICAgICAgY2FzZSBNZWRpYUZ1bGxzY3JlZW5CdXR0b25QYXJ0OgogICAgICAg
ICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKG8sIHBhaW50SW5mbywgcik7
CiAgICAgICAgIGNhc2UgTWVkaWFQbGF5QnV0dG9uUGFydDoKQEAgLTMyOSw5ICszMjYsNyBAQCBi
b29sIFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBJbnRSZQogICAgICAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKICAg
ICAgICAgICAgIHJldHVybiBwYWludE1lZGlhU2xpZGVyVHJhY2sobywgcGFpbnRJbmZvLCByKTsK
ICAgICAgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKLSAgICAgICAgICAgIGlmIChvLT5w
YXJlbnQoKS0+aXNTbGlkZXIoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVNs
aWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIHJldHVybiBwYWludE1lZGlhU2xpZGVyVGh1bWIobywgcGFpbnRJbmZvLCByKTsKICAgICAg
ICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b25QYXJ0OgogICAgICAgICAgICAgcmV0
dXJuIHBhaW50TWVkaWFNdXRlQnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0OgpAQCAtMzM5LDkgKzMzNCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IEludFJlCiAgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0Ogog
ICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhvLCBwYWludElu
Zm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgotICAgICAg
ICAgICAgaWYgKG8tPnBhcmVudCgpLT5pc1NsaWRlcigpKQotICAgICAgICAgICAgICAgIHJldHVy
biBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIobywgcGFpbnRJbmZvLCByKTsKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVt
YihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQ6
CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVRpbWVSZW1haW5pbmcobywgcGFpbnRJbmZv
LCByKTsKICAgICAgICAgY2FzZSBNZWRpYUN1cnJlbnRUaW1lUGFydDoKQEAgLTc3Nyw2ICs3NzAs
OCBAQCBib29sIFJlbmRlclRoZW1lOjppc0ZvY3VzZWQoY29uc3QgUmVuZGVyT2JqZWN0KiBvKSBj
b25zdAogICAgIE5vZGUqIG5vZGUgPSBvLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgbm9kZSA9IG5vZGUtPmZvY3VzQ2hlY2tEZWxlZ2F0
aW9uTm9kZSgpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CiAg
ICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAgICAgcmV0dXJuIG5vZGUgPT0g
ZG9jdW1lbnQtPmZvY3VzZWROb2RlKCkgJiYgZnJhbWUgJiYgZnJhbWUtPnNlbGVjdGlvbigpLT5p
c0ZvY3VzZWRBbmRBY3RpdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKaW5kZXggYzNmMTVjODdhOWQ0MzQ4N2FlYzY5
MzljZGYyMzMzNzhhOTk5ZDBiMi4uY2Y1NzIzYzkxNWM5NDBkYjU5YmY5MjIxZmJhMjRlMDlmOWY0
MWJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1MaW51eC5jcHAKQEAgLTI5Niw3ICsyOTYsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50
SW5mbwogewogICAgIFBsYXRmb3JtQnJpZGdlOjpUaGVtZVBhaW50RXh0cmFQYXJhbXMgZXh0cmFQ
YXJhbXM7CiAgICAgZXh0cmFQYXJhbXMuc2xpZGVyLnZlcnRpY2FsID0gby0+c3R5bGUoKS0+YXBw
ZWFyYW5jZSgpID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0OwotICAgIGV4dHJhUGFyYW1zLnNs
aWRlci5pbkRyYWcgPSB0b1JlbmRlclNsaWRlcihvLT5wYXJlbnQoKSktPmluRHJhZ01vZGUoKTsK
KyAgICBleHRyYVBhcmFtcy5zbGlkZXIuaW5EcmFnID0gaXNQcmVzc2VkKG8pOwogCiAgICAgUGxh
dGZvcm1CcmlkZ2U6OnBhaW50VGhlbWVQYXJ0KGkuY29udGV4dCwgUGxhdGZvcm1CcmlkZ2U6OlBh
cnRTbGlkZXJUaHVtYiwgZ2V0V2ViVGhlbWVTdGF0ZSh0aGlzLCBvKSwgcmVjdCwgJmV4dHJhUGFy
YW1zKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAKaW5kZXggNTNlYzljYmVjMzgzMzlmMWVjODNh
MjM4MTgwNjI0MWUwN2QzODhkYy4uYjIyN2QyYWFiN2M5MjBkNzljYzIzYzY4Mjk2ZTU3ODc0ZGQz
NWU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtV2luLmNwcApAQCAtNTYwLDExICs1NjAsMTEgQEAgdW5zaWduZWQgUmVuZGVyVGhlbWVD
aHJvbWl1bVdpbjo6ZGV0ZXJtaW5lU3RhdGUoUmVuZGVyT2JqZWN0KiBvLCBDb250cm9sU3ViUGFy
dAogdW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6ZGV0ZXJtaW5lU2xpZGVyVGh1bWJT
dGF0ZShSZW5kZXJPYmplY3QqIG8pCiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gVFVTX05PUk1B
TDsKLSAgICBpZiAoIWlzRW5hYmxlZChvLT5wYXJlbnQoKSkpCisgICAgaWYgKCFpc0VuYWJsZWQo
bykpCiAgICAgICAgIHJlc3VsdCA9IFRVU19ESVNBQkxFRDsKLSAgICBlbHNlIGlmIChzdXBwb3J0
c0ZvY3VzKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8tPnBhcmVudCgp
KSkKKyAgICBlbHNlIGlmIChzdXBwb3J0c0ZvY3VzKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkg
JiYgaXNGb2N1c2VkKG8pKQogICAgICAgICByZXN1bHQgPSBUVVNfRk9DVVNFRDsKLSAgICBlbHNl
IGlmICh0b1JlbmRlclNsaWRlcihvLT5wYXJlbnQoKSktPmluRHJhZ01vZGUoKSkKKyAgICBlbHNl
IGlmIChpc1ByZXNzZWQobykpCiAgICAgICAgIHJlc3VsdCA9IFRVU19QUkVTU0VEOwogICAgIGVs
c2UgaWYgKGlzSG92ZXJlZChvKSkKICAgICAgICAgcmVzdWx0ID0gVFVTX0hPVDsKQEAgLTU4Niw5
ICs1ODYsOSBAQCB1bnNpZ25lZCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpkZXRlcm1pbmVDbGFz
c2ljU3RhdGUoUmVuZGVyT2JqZWN0KiBvLCBDb250cm9sUwogICAgICAgICByZXR1cm4gcmVzdWx0
OyAgIAogCiAgICAgaWYgKHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBwYXJ0
ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7Ci0gICAgICAgIGlmICghaXNFbmFibGVkKG8t
PnBhcmVudCgpKSkKKyAgICAgICAgaWYgKCFpc0VuYWJsZWQobykpCiAgICAgICAgICAgICByZXN1
bHQgPSBERkNTX0lOQUNUSVZFOwotICAgICAgICBlbHNlIGlmICh0b1JlbmRlclNsaWRlcihvLT5w
YXJlbnQoKSktPmluRHJhZ01vZGUoKSkgLy8gQWN0aXZlIHN1cGVyc2VkZXMgaG92ZXIKKyAgICAg
ICAgZWxzZSBpZiAoaXNQcmVzc2VkKG8pKSAvLyBBY3RpdmUgc3VwZXJzZWRlcyBob3ZlcgogICAg
ICAgICAgICAgcmVzdWx0ID0gREZDU19QVVNIRUQ7CiAgICAgICAgIGVsc2UgaWYgKGlzSG92ZXJl
ZChvKSkKICAgICAgICAgICAgIHJlc3VsdCA9IERGQ1NfSE9UOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGQwZmM5ZWI2MjExZTI1ZTUyOWU1NDk1MTA1
MzE3NjEzNDBiZDhlNTYuLjY1N2FmNWU5ZmI4OWZmYTVhNmY0MTcwMTdhNzA1OGY5OTliODc3MGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTEyOTgs
OCArMTI5OCw2IEBAIGNvbnN0IGZsb2F0IHZlcnRpY2FsU2xpZGVySGVpZ2h0UGFkZGluZyA9IDAu
MWY7CiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcikKIHsKLSAg
ICBBU1NFUlQoby0+cGFyZW50KCktPmlzU2xpZGVyKCkpOwotCiAgICAgTlNTbGlkZXJDZWxsKiBz
bGlkZXJUaHVtYkNlbGwgPSBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJW
ZXJ0aWNhbFBhcnQKICAgICAgICAgPyBzbGlkZXJUaHVtYlZlcnRpY2FsKCkKICAgICAgICAgOiBz
bGlkZXJUaHVtYkhvcml6b250YWwoKTsKQEAgLTEzMDcsOSArMTMwNSw5IEBAIGJvb2wgUmVuZGVy
VGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mCiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4
dChwYWludEluZm8uY29udGV4dCk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVz
IHdlIHJlc3BvbmQgdG8uCi0gICAgdXBkYXRlQWN0aXZlU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBv
LT5wYXJlbnQoKSk7Ci0gICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNsaWRlclRodW1iQ2VsbCwgby0+
cGFyZW50KCkpOwotICAgIHVwZGF0ZUZvY3VzZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8tPnBh
cmVudCgpKTsKKyAgICB1cGRhdGVBY3RpdmVTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8pOworICAg
IHVwZGF0ZUVuYWJsZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8pOworICAgIHVwZGF0ZUZvY3Vz
ZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8pOwogCiAgICAgLy8gVXBkYXRlIHRoZSBwcmVzc2Vk
IHN0YXRlIHVzaW5nIHRoZSBOU0NlbGwgdHJhY2tpbmcgbWV0aG9kcywgc2luY2UgdGhhdCdzIGhv
dyBOU1NsaWRlckNlbGwga2VlcHMgdHJhY2sgb2YgaXQuCiAgICAgYm9vbCBvbGRQcmVzc2VkOwpA
QCAtMTMxOCw3ICsxMzE2LDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVt
YihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICBlbHNlCiAg
ICAgICAgIG9sZFByZXNzZWQgPSBtX2lzU2xpZGVyVGh1bWJIb3Jpem9udGFsUHJlc3NlZDsKIAot
ICAgIGJvb2wgcHJlc3NlZCA9IHRvUmVuZGVyU2xpZGVyKG8tPnBhcmVudCgpKS0+aW5EcmFnTW9k
ZSgpOworICAgIGJvb2wgcHJlc3NlZCA9IGlzUHJlc3NlZChvKTsKIAogICAgIGlmIChvLT5zdHls
ZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCiAgICAgICAgIG1f
aXNTbGlkZXJUaHVtYlZlcnRpY2FsUHJlc3NlZCA9IHByZXNzZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcAppbmRleCAxYTg5MzQ1NTJlY2IyNWM2
ZTFmMWJjYjAxMGQxZTllMTJmNmEzNDNmLi4wN2Q2MGYzOTZiYjBmNTQ3ZGM4NTI5ZjhlZTZhYzhj
N2NkMjc4ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVTYWZhcmkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNh
ZmFyaS5jcHAKQEAgLTk5OCwxNiArOTk4LDcgQEAgY29uc3QgZmxvYXQgdmVydGljYWxTbGlkZXJI
ZWlnaHRQYWRkaW5nID0gMC4xZjsKIGJvb2wgUmVuZGVyVGhlbWVTYWZhcmk6OnBhaW50U2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
SW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQoU2FmYXJpVGhlbWVMaWJyYXJ5KCkpOwotCi0gICAg
QVNTRVJUKG8tPnBhcmVudCgpLT5pc1NsaWRlcigpKTsKLQotICAgIGJvb2wgcHJlc3NlZCA9IHRv
UmVuZGVyU2xpZGVyKG8tPnBhcmVudCgpKS0+aW5EcmFnTW9kZSgpOwotICAgIFRoZW1lQ29udHJv
bFN0YXRlIHN0YXRlID0gZGV0ZXJtaW5lU3RhdGUoby0+cGFyZW50KCkpOwotICAgIHN0YXRlICY9
IH5TYWZhcmlUaGVtZTo6UHJlc3NlZFN0YXRlOwotICAgIGlmIChwcmVzc2VkKQotICAgICAgICBz
dGF0ZSB8PSBTYWZhcmlUaGVtZTo6UHJlc3NlZFN0YXRlOwotCi0gICAgcGFpbnRUaGVtZVBhcnQo
U2xpZGVyVGh1bWJQYXJ0LCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHIs
IE5TU21hbGxDb250cm9sU2l6ZSwgc3RhdGUpOworICAgIHBhaW50VGhlbWVQYXJ0KFNsaWRlclRo
dW1iUGFydCwgcGFpbnRJbmZvLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCByLCBOU1NtYWxs
Q29udHJvbFNpemUsIGRldGVybWluZVN0YXRlKG8pKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IDE1ZjY0
YzVlNGM2NGI2MGNhMjVkODY1Y2FkNGIyYmFkM2EwOTgyZWUuLmM0NWQ4YWQxZGNjNzg0OTgyOWQy
NTU2YzNkMGM5ODRiNmYxZmJjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luLmNwcApAQCAtNDYzLDExICs0NjMsMTEgQEAgdW5zaWduZWQgUmVuZGVyVGhlbWVX
aW46OmRldGVybWluZVN0YXRlKFJlbmRlck9iamVjdCogbykKIHVuc2lnbmVkIFJlbmRlclRoZW1l
V2luOjpkZXRlcm1pbmVTbGlkZXJUaHVtYlN0YXRlKFJlbmRlck9iamVjdCogbykKIHsKICAgICB1
bnNpZ25lZCByZXN1bHQgPSBUVVNfTk9STUFMOwotICAgIGlmICghaXNFbmFibGVkKG8tPnBhcmVu
dCgpKSkKKyAgICBpZiAoIWlzRW5hYmxlZChvKSkKICAgICAgICAgcmVzdWx0ID0gVFVTX0RJU0FC
TEVEOwotICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgp
KSAmJiBpc0ZvY3VzZWQoby0+cGFyZW50KCkpKQorICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMo
by0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpKSAmJiBpc0ZvY3VzZWQobykpCiAgICAgICAgIHJlc3Vs
dCA9IFRVU19GT0NVU0VEOwotICAgIGVsc2UgaWYgKHRvUmVuZGVyU2xpZGVyKG8tPnBhcmVudCgp
KS0+aW5EcmFnTW9kZSgpKQorICAgIGVsc2UgaWYgKGlzUHJlc3NlZChvKSkKICAgICAgICAgcmVz
dWx0ID0gVFVTX1BSRVNTRUQ7CiAgICAgZWxzZSBpZiAoaXNIb3ZlcmVkKG8pKQogICAgICAgICBy
ZXN1bHQgPSBUVVNfSE9UOwo=
</data>
<flag name="review"
          id="90039"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>