<?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>129354</bug_id>
          
          <creation_ts>2014-02-25 18:16:29 -0800</creation_ts>
          <short_desc>[iOS][WK2] Split the rects/scale updates in 3 internally consistent groups</short_desc>
          <delta_ts>2014-02-25 23:38:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984579</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-25 18:16:29 -0800</bug_when>
    <thetext>[iOS][WK2] Split the rects/scale updates in 3 internally consistent groups</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984584</commentid>
    <comment_count>1</comment_count>
      <attachid>225209</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-25 18:34:02 -0800</bug_when>
    <thetext>Created attachment 225209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984588</commentid>
    <comment_count>2</comment_count>
      <attachid>225209</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-02-25 18:41:22 -0800</bug_when>
    <thetext>Comment on attachment 225209
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WKContentView.mm:153
&gt; +    if (!isStableState &amp;&amp; abs(scale - _page-&gt;displayedContentScale()) &lt; 0.0005) {

Can we put 0.0005 into a constant with a good name?

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:362
&gt; +        // FIXME: patch separately.

What does this mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984593</commentid>
    <comment_count>3</comment_count>
      <attachid>225209</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-02-25 18:52:11 -0800</bug_when>
    <thetext>Comment on attachment 225209
Patch

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

&gt; Source/WebKit2/Scripts/webkit2/messages.py:224
&gt; +        &apos;VisibleContentRectUpdateInfo&apos;,

weird that this doesn&apos;t have a namespace, isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984646</commentid>
    <comment_count>4</comment_count>
      <attachid>225224</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-25 22:57:01 -0800</bug_when>
    <thetext>Created attachment 225224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984649</commentid>
    <comment_count>5</comment_count>
      <attachid>225226</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-25 23:31:18 -0800</bug_when>
    <thetext>Created attachment 225226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984652</commentid>
    <comment_count>6</comment_count>
      <attachid>225226</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-25 23:38:00 -0800</bug_when>
    <thetext>Comment on attachment 225226
Patch

Clearing flags on attachment: 225226

Committed r164702: &lt;http://trac.webkit.org/changeset/164702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984653</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-25 23:38:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225209</attachid>
            <date>2014-02-25 18:34:02 -0800</date>
            <delta_ts>2014-02-25 22:56:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129354-20140225183401.patch</filename>
            <type>text/plain</type>
            <size>63434</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDI5NDZmZDRiZjI0NWU4
M2EwNjU2NzQzNjYzNWVmMmM2OTY2YjllMi4uNzkzYzcwNGU1ODNiYzVjYTFjNzgzYzYwYzMxZTUw
Y2EwOTVjYmM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMSBAQAorMjAxNC0wMi0yNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJd
IFNwbGl0IHRoZSByZWN0cy9zY2FsZSB1cGRhdGVzIGluIDMgaW50ZXJuYWxseSBjb25zaXN0ZW50
IGdyb3VwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI5MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RHVyaW5nIHNjYWxpbmcsIHRoZSBzY2FsZSBhbmQgcmVjdCBvZiBVSVNjcm9sbFZpZXcsIFdlYlBh
Z2VQcm94eSwgRHJhd2luZ0FyZWFQcm94eSwKKyAgICAgICAgRHJhd2luZ0FyZWEgYW5kIFdlYlBh
Z2Ugd2VyZSBpbiBjb21wbGV0ZWx5IGluY29uc2lzdGVudCBzdGF0ZXMuCisKKyAgICAgICAgU29t
ZSBvZiB0aG9zZSBkaXNjb25uZWN0IHdlcmUgdGVtcG9yYXJ5IChsaWtlIHdoZW4gc2V0dGluZyB0
aGUgcmVjdCBhbmQgc2NhbGUgaW4gdHdvIGRpZmZlcmVudAorICAgICAgICBtZXNzYWdlcyksIHNv
bWUgd2VyZSBsYXN0aW5nIHRoZSB0aW1lIG9mIGEgdGlsZSB1cGRhdGUgKGxpa2UgdGhlIFVJUHJv
Y2VzcyB2aWV3IG9mIHRoZSBzY2FsZSkuCisgICAgICAgIFRoaXMgd2FzIGNhdXNpbmcgdmFyaW91
cyB2aXN1YWwgZ2xpdGNoZXMuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIGFsbCB0aGUgdXBkYXRl
cyBmcm9tIHRoZSBVSVByb2Nlc3MgYXJlIGZ1bm5lbGVkIHRocm91Z2ggYSBzaW5nbGUgcGF0aCBh
bmQgdGhlIHZhbHVlcworICAgICAgICBhcmUgc3BsaXQgaW50byAzIGRpZmZlcmVudCBncm91cHMv
dHlwZXMuCisgICAgICAgIFdoZW4gdXBkYXRpbmcgdGhlIHNjYWxlL3JlY3RzLCB0aGUgVUlQcm9j
ZXNzIHNlbmRzIHRoZSBuZXcgaW5mb3JtYXRpb24gdG8gdGhlIFdlYlByb2Nlc3Mgb24gYSBxdWV1
ZQorICAgICAgICB0aHJvdWdoIFZpZXdVcGRhdGVEaXNwYXRjaGVyLiBUaGVyZSwgdGhlIHVwZGF0
ZXMgYXJlIGFjY3VtdWxhdGVkIHVudGlsIHRoZSBNYWluVGhyZWFkIGlzIGF2YWlsYWJsZS4KKyAg
ICAgICAgT25jZSB0aGUgbWFpbiB0aHJlYWQgaXMgInVuYmxvY2tlZCIgZnJvbSB0aGUgcHJldmlv
dXMgZnJhbWUsIGFsbCB0aGUgZGF0YSBhcmUgdXBkYXRlZCBhdCBvbmNlIGZyb20KKyAgICAgICAg
dGhlIGxhc3Qga25vd24gc3RhdGUgaW4gVmlld1VwZGF0ZURpc3BhdGNoZXIuIFRoZSBuZXcgdGls
ZXMgYXJlIGNyZWF0ZWQgZm9yIHRoZSBuZXcgY29udmVyYWdlIGluZm9ybWF0aW9uCisgICAgICAg
IGFuZCB0aGV5IGFyZSBzZW50IHRvIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgQXQgYW55IHBv
aW50LCB0aGVyZSBhcmUgMyB0eXBlcyBvZiBzY2FsZSBhbmQgcmVjdHMgdXNlZCBmb3IgZGlmZmVy
ZW50IHB1cnBvc2U6CisgICAgICAgIC1JbiB0aGUgVUlQcm9jZXNzLCB0aGVyZSBpcyB0aGUgVUlT
Y3JvbGxWaWV3IHNjYWxlIGFuZCByZWN0cyB3aGljaCByZXByZXNlbnQgdGhlICJ0cnVlIiBzdGF0
ZSBvciB3aGF0CisgICAgICAgICBpcyBjdXJyZW50bHkgb24gc2NyZWVuLgorICAgICAgICAgVGhh
dCBpbmZvcm1hdGlvbiBpcyBtaXJyb3JlZCBpbnRvIFdlYlBhZ2VQcm94eSBmb3IgdGhlIG90aGVy
IGNsYXNzZXMgbmVlZGluZyBpdCBsaWtlIERyYXdpbmdBcmVhUHJveHkuCisgICAgICAgIC1JbiB0
aGUgV2ViUHJvY2VzcywgdGhlcmUgaXMgdGhlIGxhc3Qga25vd24gc3RhdGUuIFRoYXQgc3RhdGUg
aXMgYWx3YXlzIGxhZ2dpbmcgYSBsaXR0bGUgYmVoaW5kIHRoZSAidHJ1ZSIKKyAgICAgICAgIHN0
YXRlLgorICAgICAgICAtQmFjayBpbiB0aGUgVUlQcm9jZXNzLCB3ZSBoYXZlIHRoZSB0aWxlIHN0
YXRlcyB0aGF0IGlzIGF0dGFjaGVkIHRvIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLiBJdCBp
cyB1c2VkCisgICAgICAgICB0byBzZXR1cCB0aGUgcmVuZGVyaW5nLgorCisgICAgICAgIFdpdGgg
dGhpcyBjaGFuZ2UsIHRoZXJlIGFyZSB0d28gcGF0aHMgZm9yIHVwZGF0aW5nIHRoZSBwYWdlIHNj
YWxlIGZhY3RvcjoKKyAgICAgICAgLVRoZSBVSSBkcml2ZXMgdGhlIGNoYW5nZSwgdGhlIHVwZGF0
ZXMgZ29lcyBXS1dlYlZpZXctPldLQ29udGVudFZpZXctPldlYlBhZ2VQcm94eS0+Vmlld1VwZGF0
ZURpc3BhdGNoZXIKKyAgICAgICAgIC0+V2ViUGFnZS0+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEtPlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHktPldLQ29udGVudFZpZXctPldLV2Vi
Vmlldy4KKyAgICAgICAgLUlmIGNoYW5nZXMgaW4gdGhlIGNvbnRlbnQgZm9yY2Ugc2NhbGluZyBw
YXJhbWV0ZXJzLCB0aGUgdXBkYXRlcyBnb2VzOiBXZWJQYWdlLT5SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYQorICAgICAgICAgLT5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LT5XS0Nv
bnRlbnRWaWV3LT5XS1dlYlZpZXcuCisgICAgICAgIFRoZSB0d28ga2luZCBvZiB1cGRhdGVzIGZy
ZXF1ZW50bHkgY29uZmxpY3RzIGR1cmluZyBsb2FkaW5nLiBXZSBkaWZmZXJlbnRpYXRlIHRob3Nl
IHRocm91Z2ggdGhlIGZsYWcKKyAgICAgICAgc2NhbGVXYXNTZXRCeVVJUHJvY2VzcyBwYXNzZWQg
d2l0aCB0aGUgdXBkYXRlcy4gSW4gY2FzZXMgb2YgY29uZmxpY3RzLCB0aGUgdXNlciBhbHdheXMg
d2lucy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKToKKyAgICAg
ICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbzo6ZXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOjp1bm9ic2N1cmVkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm86OnNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9
PSk6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6c2NhbGVXYXNTZXRC
eVVJUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpzZXRTY2FsZVdhc1NldEJ5VUlQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBjb250ZW50VmlldzpkaWRDb21taXRMYXll
clRyZWU6V2ViS2l0OjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRGaW5pc2hTY3JvbGxp
bmddKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRTY3JvbGw6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlkWm9vbTpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IHNjcm9sbFZpZXdEaWRFbmRab29taW5nOndpdGhWaWV3OmF0U2NhbGU6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfZnJhbWVPckJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldE9ic2N1cmVkSW5zZXRzOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2VuZEludGVyYWN0aXZlT2JzY3VyZWRJbnNldHNDaGFuZ2VdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW06CisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlVmlz
aWJsZUNvbnRlbnRSZWN0c10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6RHJhd2luZ0FyZWFQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnNldEN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpc3BsYXllZENvbnRlbnRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZXhwb3NlZENvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojp1bm9ic2N1cmVkQ29udGVudFJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVk
UmVjdDpzY2FsZTppblN0YWJsZVN0YXRlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRp
ZEZpbmlzaFNjcm9sbGluZ10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFpvb21Ub1Nj
YWxlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6
c2NhbGVkRXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5OjppbmRpY2F0b3JMb2NhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmluZGljYXRvclNjYWxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0
b3IpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaWV3VXBkYXRlRGlzcGF0Y2hlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjp+Vmlld1VwZGF0ZURpc3BhdGNo
ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6dmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNo
ZXI6OmRpc3BhdGNoVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZVBh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNjYWxlV2FzU2V0QnlVSVByb2Nlc3MpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dGFw
SGlnaGxpZ2h0QXRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZp
c2libGVDb250ZW50UmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aWxsU3RhcnRV
c2VyVHJpZ2dlcmVkWm9vbWluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDE0LTAyLTI0ICBNYXJ0aW4gSG9j
ayAgPG1ob2NrQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmVhdGUgU2Vzc2lvbklEIHZhbHVlLXN0
eWxlIGNsYXNzIGZvciBzZXNzaW9uIElEcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDUzNGQ4NGZlOGQwMzFlMTA4NzgyNGFmZGViNzcwMzQyNzIwYTIxMzUuLmQ2M2QzNDMzMjZk
NDFjNDNiNDcyNzk5YzYwN2JiNzIyNzk5ZDBmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtOTcsNiArOTcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBTdG9yYWdl
TWFuYWdlciBcCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyIFwKICAgICBWaWV3R2VzdHVyZUdl
b21ldHJ5Q29sbGVjdG9yIFwKKyAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlciBcCiAgICAgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXIgXAogICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHkgXAogICAgIFdlYkNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5CmluZGV4IDM2NDBlOWEyMDMxOGFmY2M3OGRiMWViYTZhMjJjZmVlMmNmN2Uw
Y2IuLjYzMTdjNmNhZGRiOTNjODdjMzI2YzBmY2RjYWM5MjAyNGFlMjcxN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTIyMSw2ICsyMjEsNyBAQCBk
ZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OlNl
Y3VyaXR5T3JpZ2luRGF0YScsCiAgICAgICAgICdXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhJywKICAg
ICAgICAgJ1dlYktpdDo6VGV4dENoZWNrZXJTdGF0ZScsCisgICAgICAgICdWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvJywKICAgICAgICAgJ1dlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9y
ZScsCiAgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMnLAogICAgICAg
ICAnV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZmVjNWRkN2ZmZjc5ZDcyZThmNTI4NDQzMDYzM2M0MDkyYTJlMjJhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgorCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm86OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fZXhwb3NlZFJlY3Q7CisgICAgZW5jb2RlciA8
PCBtX3Vub2JzY3VyZWRSZWN0OworICAgIGVuY29kZXIgPDwgbV9zY2FsZTsKK30KKworYm9vbCBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHJlc3VsdCkKK3sKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2V4cG9zZWRSZWN0KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdW5vYnNjdXJlZFJlY3Qp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
bV9zY2FsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzNkZGZlMTU1YWQxMzJm
NGRhYmJiNzU4ZmI3MTZlMjA0Yzk4ZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApAQCAtMCwwICsxLDcyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvX2gKKyNk
ZWZpbmUgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mb19oCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0UmVjdC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
K2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8geworcHVibGljOgorICAgIFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8oKQorICAgICAgICA6IG1fc2NhbGUoLTEpCisgICAgeworICAgIH0K
KworICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBleHBvc2VkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVj
dCwgZG91YmxlIHNjYWxlKQorICAgICAgICA6IG1fZXhwb3NlZFJlY3QoZXhwb3NlZFJlY3QpCisg
ICAgICAgICwgbV91bm9ic2N1cmVkUmVjdCh1bm9ic2N1cmVkUmVjdCkKKyAgICAgICAgLCBtX3Nj
YWxlKHNjYWxlKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGV4cG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9leHBvc2VkUmVjdDsgfQorICAgIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Vu
b2JzY3VyZWRSZWN0OyB9CisgICAgZG91YmxlIHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2Fs
ZTsgfQorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvJik7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1f
ZXhwb3NlZFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZFJlY3Q7Cisg
ICAgZG91YmxlIG1fc2NhbGU7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGEsIGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8mIGIpCit7CisgICAgcmV0dXJuIGEuc2NhbGUoKSA9PSBiLnNjYWxlKCkgJiYgYS5l
eHBvc2VkUmVjdCgpID09IGIuZXhwb3NlZFJlY3QoKSAmJiBhLnVub2JzY3VyZWRSZWN0KCkgPT0g
Yi51bm9ic2N1cmVkUmVjdCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCmluZGV4IDQyMzVi
NjlkNzhiYzYxZWUwY2IzZjFiZDcyMDlkM2RjMzVjMmY5YjUuLmFhMGRkZmJkZTkwODNlYzQyODBi
ZDcyZDJjNzQwNjdiNjY5NGFlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTE2NCw2ICsxNjQsOSBAQCBw
dWJsaWM6CiAKICAgICBkb3VibGUgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlU2NhbGVGYWN0b3I7IH0KICAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3Rvcihkb3VibGUgcGFn
ZVNjYWxlRmFjdG9yKSB7IG1fcGFnZVNjYWxlRmFjdG9yID0gcGFnZVNjYWxlRmFjdG9yOyB9CisK
KyAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3NjYWxl
V2FzU2V0QnlVSVByb2Nlc3M7IH0KKyAgICB2b2lkIHNldFNjYWxlV2FzU2V0QnlVSVByb2Nlc3Mo
Ym9vbCBzY2FsZVdhc1NldEJ5VUlQcm9jZXNzKSB7IG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzcyA9
IHNjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICAKICAgICB1aW50NjRfdCByZW5kZXJUcmVl
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZVNpemU7IH0KICAgICB2b2lkIHNldFJl
bmRlclRyZWVTaXplKHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKSB7IG1fcmVuZGVyVHJlZVNpemUg
PSByZW5kZXJUcmVlU2l6ZTsgfQpAQCAtMTg0LDYgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV9kZXN0cm95ZWRM
YXllcklEczsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fY29udGVudHNTaXplOwogICAgIGRvdWJs
ZSBtX3BhZ2VTY2FsZUZhY3RvcjsKKyAgICBib29sIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzczsK
ICAgICB1aW50NjRfdCBtX3JlbmRlclRyZWVTaXplOwogICAgIGRvdWJsZSBtX21pbmltdW1TY2Fs
ZUZhY3RvcjsKICAgICBkb3VibGUgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpp
bmRleCBlNjYxMjAxMDBkNzM4YTk2NDhlMzZkOGZmYTM2ODMyNjIwNDM4MzZjLi4xOTRkZGIzNjRl
MGE4MWRjOTkzMDc3OTc0Nzk3ZjU2MmVjYTc0ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTQxMCw2
ICs0MTAsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjplbmNvZGUoSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2Rlc3Ryb3ll
ZExheWVySURzOwogICAgIGVuY29kZXIgPDwgbV9jb250ZW50c1NpemU7CiAgICAgZW5jb2RlciA8
PCBtX3BhZ2VTY2FsZUZhY3RvcjsKKyAgICBlbmNvZGVyIDw8IG1fc2NhbGVXYXNTZXRCeVVJUHJv
Y2VzczsKICAgICBlbmNvZGVyIDw8IG1fbWluaW11bVNjYWxlRmFjdG9yOwogICAgIGVuY29kZXIg
PDwgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CiAgICAgZW5jb2RlciA8PCBtX2FsbG93c1VzZXJTY2Fs
aW5nOwpAQCAtNDU2LDYgKzQ1Nyw5IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246
OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9wYWdlU2NhbGVGYWN0b3IpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3NjYWxlV2FzU2V0
QnlVSVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5tX21pbmltdW1TY2FsZUZhY3RvcikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQppbmRleCA4NjczY2QxMjllNjI0Zjk0OWQxZTdiNjZhNjE2NGQ4ZmM0MDhhMDVhLi5jZDhjNmU3
M2UxMjVmOTM4ZTk0NmVhODk5NWE3NTU4NmJmYzU0YmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzIyLDcgKzMyMiw3IEBACiAg
ICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6bGF5ZXJUcmVlVHJhbnNhY3Rpb24u
bWluaW11bVNjYWxlRmFjdG9yKCldOwogICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhpbXVtWm9vbVNj
YWxlOmxheWVyVHJlZVRyYW5zYWN0aW9uLm1heGltdW1TY2FsZUZhY3RvcigpXTsKICAgICBbX3Nj
cm9sbFZpZXcgc2V0Wm9vbUVuYWJsZWQ6bGF5ZXJUcmVlVHJhbnNhY3Rpb24uYWxsb3dzVXNlclNj
YWxpbmcoKV07Ci0gICAgaWYgKCFbX3Njcm9sbFZpZXcgaXNab29taW5nXSAmJiAhW19zY3JvbGxW
aWV3IGlzWm9vbUJvdW5jaW5nXSkKKyAgICBpZiAoIWxheWVyVHJlZVRyYW5zYWN0aW9uLnNjYWxl
V2FzU2V0QnlVSVByb2Nlc3MoKSAmJiAhW19zY3JvbGxWaWV3IGlzWm9vbWluZ10gJiYgIVtfc2Ny
b2xsVmlldyBpc1pvb21Cb3VuY2luZ10pCiAgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2Nh
bGU6bGF5ZXJUcmVlVHJhbnNhY3Rpb24ucGFnZVNjYWxlRmFjdG9yKCldOwogCiAgICAgaWYgKF9n
ZXN0dXJlQ29udHJvbGxlcikKQEAgLTM3MCw3ICszNzAsNyBAQAogCiAtICh2b2lkKV9kaWRGaW5p
c2hTY3JvbGxpbmcKIHsKLSAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c107Cisg
ICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6WUVTXTsK
ICAgICBbX2NvbnRlbnRWaWV3IGRpZEZpbmlzaFNjcm9sbGluZ107CiB9CiAKQEAgLTM5MywxOCAr
MzkzLDE4IEBACiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICop
c2Nyb2xsVmlldwogewotICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsKKyAg
ICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhTdGFibGVTdGF0ZTpOT107CiB9
CiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFpvb206KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcK
IHsKLSAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c107CisgICAgW3NlbGYgX3Vw
ZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6Tk9dOwogfQogCiAtICh2b2lk
KXNjcm9sbFZpZXdEaWRFbmRab29taW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhW
aWV3OihVSVZpZXcgKil2aWV3IGF0U2NhbGU6KENHRmxvYXQpc2NhbGUKIHsKICAgICBBU1NFUlQo
c2Nyb2xsVmlldyA9PSBfc2Nyb2xsVmlldyk7Ci0gICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250
ZW50UmVjdHNdOworICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzV2l0aFN0YWJs
ZVN0YXRlOllFU107CiAgICAgW19jb250ZW50VmlldyBkaWRab29tVG9TY2FsZTpzY2FsZV07CiB9
CiAKQEAgLTQxNiwxMCArNDE2LDEwIEBACiAgICAgICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11
bUxheW91dFNpemU6Ym91bmRzLnNpemVdOwogICAgIFtfc2Nyb2xsVmlldyBzZXRGcmFtZTpib3Vu
ZHNdOwogICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11bVNpemU6Ym91bmRzLnNpemVdOwotICAg
IFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsKKyAgICBbc2VsZiBfdXBkYXRlVmlz
aWJsZUNvbnRlbnRSZWN0c1dpdGhTdGFibGVTdGF0ZTpZRVNdOwogfQogCi0tICh2b2lkKV91cGRh
dGVWaXNpYmxlQ29udGVudFJlY3RzCistICh2b2lkKV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3Rz
V2l0aFN0YWJsZVN0YXRlOihCT09MKWlzU3RhdGVTdGFibGUKIHsKICAgICBDR1JlY3QgZnVsbFZp
ZXdSZWN0ID0gc2VsZi5ib3VuZHM7CiAgICAgQ0dSZWN0IHZpc2libGVSZWN0SW5Db250ZW50Q29v
cmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpmdWxsVmlld1JlY3QgdG9WaWV3Ol9jb250ZW50
Vmlldy5nZXQoKV07CkBAIC00MjksNyArNDI5LDcgQEAKIAogICAgIENHRmxvYXQgc2NhbGVGYWN0
b3IgPSBbX3Njcm9sbFZpZXcgem9vbVNjYWxlXTsKIAotICAgIFtfY29udGVudFZpZXcgZGlkVXBk
YXRlVmlzaWJsZVJlY3Q6dmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyB1bm9ic2N1cmVk
UmVjdDp1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzIHNjYWxlOnNjYWxlRmFjdG9y
XTsKKyAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnZpc2libGVSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3RvciBpblN0YWJsZVN0YXRlOmlzU3RhdGVTdGFibGVd
OwogfQogCiAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICop
a2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KEJPT0wpYWRqdXN0U2Nyb2xsVmlldwpAQCAt
NjkyLDcgKzY5Miw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcyBs
YXlvdXRNaWxlc3RvbmVzKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlCiAgICAgQVNTRVJUKG9ic2N1
cmVkSW5zZXRzLmJvdHRvbSA+PSAwKTsKICAgICBBU1NFUlQob2JzY3VyZWRJbnNldHMucmlnaHQg
Pj0gMCk7CiAgICAgX29ic2N1cmVkSW5zZXRzID0gb2JzY3VyZWRJbnNldHM7Ci0gICAgW3NlbGYg
X3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNdOworICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29u
dGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOiFfaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJh
Y3RpdmVseV07CiB9CiAKIC0gKFVJQ29sb3IgKilfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9y
CkBAIC03MjQsNiArNzI0LDcgQEAgc3RhdGljIGlubGluZSBXZWJDb3JlOjpMYXlvdXRNaWxlc3Rv
bmVzIGxheW91dE1pbGVzdG9uZXMoX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmUKIHsKICAgICBBU1NF
UlQoX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkpOwogICAgIF9pc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5ID0gTk87CisgICAgW3NlbGYgX3VwZGF0ZVZp
c2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6WUVTXTsKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KaW5kZXggNThkNDEx
NWVkMzMyZDMyMjllZmM1ZTI1ZTYxMzJmM2VmYmM0Zjc4Yi4uNjdiNWU2ODNlMjZjM2NmYWFmOGFm
ZWRlNGY2ZmU0N2EzZjMyYTI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9pb3MvV0tWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
aW9zL1dLVmlld0lPUy5tbQpAQCAtMjYzLDcgKzI2Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKICAgICBDR0Zsb2F0IHNjYWxlRmFjdG9yID0gW19zY3JvbGxWaWV3IHpvb21TY2FsZV07
CiAKLSAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnZpc2libGVSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3Rvcl07CisgICAgW19jb250ZW50VmlldyBkaWRVcGRh
dGVWaXNpYmxlUmVjdDp2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzIHVub2JzY3VyZWRS
ZWN0OnVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgc2NhbGU6c2NhbGVGYWN0b3Ig
aW5TdGFibGVTdGF0ZTpZRVNdOwogfQogCiAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5m
bzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KEJPT0wpYWRq
dXN0U2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuY3BwCmluZGV4IDhlM2Y4MWY0MjRkZTNhMmI1NDJhMWQ4ODI2ZTBiMGJjNDJkNjhhM2YuLjYy
MDlmNTk2ZDdjMjdjNGJhYzZjZmUxZjE4NjM0YmU4MzExYTRiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAgRHJhd2lu
Z0FyZWFQcm94eTo6RHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGUgdHlwZSwgV2ViUGFn
ZVByb3h5KiB3ZWJQYWdlUHIKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV93ZWJQYWdlUHJv
eHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zaXplKHdlYlBhZ2VQcm94eS0+dmlld1NpemUoKSkK
LSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLCBtX2V4cG9zZWRS
ZWN0Q2hhbmdlZFRpbWVyKHRoaXMsICZEcmF3aW5nQXJlYVByb3h5OjpleHBvc2VkUmVjdENoYW5n
ZWRUaW1lckZpcmVkKQogI2VuZGlmCiB7CkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgRHJhd2luZ0Fy
ZWFQcm94eTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBJbnRTaXplJiBsYXll
clBvc2l0aW9uCiAgICAgc2l6ZURpZENoYW5nZSgpOwogfQogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
CisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2VkUmVj
dChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRSZWN0KQogewogICAgIGlmICghbV93ZWJQYWdlUHJv
eHktPmlzVmFsaWQoKSkKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Ojpl
eHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKFRpbWVyPERyYXdpbmdBcmVhUHJveHk+KikKICAg
ICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpT
ZXRFeHBvc2VkUmVjdChtX2V4cG9zZWRSZWN0KSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsK
ICAgICBtX2xhc3RTZW50RXhwb3NlZFJlY3QgPSBtX2V4cG9zZWRSZWN0OwogfQorI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKIAogdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRDdXN0b21GaXhlZFBv
c2l0aW9uUmVjdChjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0KQogewpAQCAtOTMs
NiArOTQsNSBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldEN1c3RvbUZpeGVkUG9zaXRpb25S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvbgogCiAgICAgbV93ZWJQYWdlUHJveHkt
PnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0Q3VzdG9tRml4ZWRQb3Np
dGlvblJlY3QoZml4ZWRQb3NpdGlvblJlY3QpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOwog
fQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggZGNmNTlmMjJjMzViZWM0ZTgzOGFmNDk1OWU2
Y2IzZDUyYzc4N2IxNy4uN2YyN2NjMGRkMjlmM2E4ZTA5ZjY0ZTE3YjI4YTliYjk0MjVmZDMyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC03Mywx
NCArNzMsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RUcmFuc2llbnRab29t
KGRvdWJsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbW1p
dFRyYW5zaWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KIAotI2lmIFBM
QVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhw
b3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IGV4cG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9leHBvc2VkUmVjdDsgfQogICAgIHZv
aWQgZXhwb3NlZFJlY3RDaGFuZ2VkVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxEcmF3aW5nQXJl
YVByb3h5PiopOwotICAgIAorI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBz
ZXRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICNl
bmRpZgogCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9yKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHNob3dEZWJ1Z0luZGljYXRvcihib29sKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNTaG93aW5nRGVidWdJbmRpY2F0b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkBA
IC0xMTEsOSArMTEzLDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUdl
b21ldHJ5KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hh
bmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld0ludHJpbnNpY0NvbnRlbnRTaXplKSB7IH0K
IAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXZWJDb3JlOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5
PiBtX2V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyOwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2V4
cG9zZWRSZWN0OwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2xhc3RTZW50RXhwb3NlZFJlY3Q7
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmE1MTE5OGI1OGQxOWExZmYzM2I5MDZlMDc3OTcz
OGFiNTIwYzAzOS4uNWI0NjU4NGVlMzhiZWIwMDcyNzIxNjY1MTY3N2I4NGNkZjFlMjBhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5j
bHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldLQmFzZS5o
IgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJDb2xvclBpY2tlci5o
IgpAQCAtNDUwLDggKzQ1MSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGVjdXRlRWRpdENvbW1h
bmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7CiAgICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgUGFzc1JlZlB0cjxWYWxpZGF0ZUNvbW1hbmRDYWxs
YmFjaz4pOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHVub2JzY3VyZWRDb250ZW50UmVjdCgpIGNvbnN0OwotICAgIHZvaWQgc2V0VW5vYnNjdXJlZENv
bnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3QpOworICAg
IGRvdWJsZSBkaXNwbGF5ZWRDb250ZW50U2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGUuc2NhbGUoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlLmV4cG9zZWRSZWN0KCk7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZS51bm9ic2N1cmVkUmVjdCgpOyB9CisKKyAgICB2b2lkIHVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYp
OwogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0
IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIApAQCAtODQ2LDcgKzg1MCw2
IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHdpbGxTdGFydFVzZXJU
cmlnZ2VyZWRab29taW5nKCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hab29taW5nKGZsb2F0IG5ld1Nj
YWxlKTsKIAogICAgIHZvaWQgdGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiwgdWludDY0X3QmIHJlcXVlc3RJRCk7CiAKQEAgLTEyMzksNyArMTI0Miw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOwotICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCBtX3Vub2JzY3VyZWRSZWN0OworICAgIFZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoVklCUkFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcuaAppbmRleCA0NWFkOGNmMjM2YThlOTM2MmUzOWU3MjRjNjMxM2EzMWQwZDhhNzdk
Li5hNTYwZDA2YmZmYzc4MTA4ZWQ4MTdiZDliNjE3N2JhYzg1NDlmOWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjEsNyArNjEsNyBAQCBXS19B
UElfQ0xBU1MKIAogLSAodm9pZClzZXRNaW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7CiAtICh2b2lk
KXNldE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpc2l6ZTsKLS0gKHZvaWQpZGlkVXBkYXRlVmlz
aWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2Jz
Y3VyZWRSZWN0IHNjYWxlOihDR0Zsb2F0KXNjYWxlOworLSAodm9pZClkaWRVcGRhdGVWaXNpYmxl
UmVjdDooQ0dSZWN0KXZpc2libGVSZWN0IHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXJl
ZFJlY3Qgc2NhbGU6KENHRmxvYXQpc2NhbGUgaW5TdGFibGVTdGF0ZTooQk9PTClpc1N0YWJsZVN0
YXRlOwogCiAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZzsKIC0gKHZvaWQpZGlkWm9vbVRvU2Nh
bGU6KENHRmxvYXQpc2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcubW0KaW5kZXggNzRiYmRiYWFlMThlYjU2ZDFjYjBkNzQ5NWM0OTA1NjhiNjE1YTcw
MS4uZDQwNzRjOGJhZWMzODRlYjdhMTMxNmI2MDMxN2Y0YjcwNGZlNjY3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ4LDE4ICsxNDgsMjAg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4gW19pbnRlcmFjdGlvblZpZXcg
aXNFZGl0YWJsZV07CiB9CiAKLS0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2
aXNpYmxlUmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRSZWN0IHNjYWxlOihD
R0Zsb2F0KXNjYWxlCistICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJs
ZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9h
dClzY2FsZSBpblN0YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGUKIHsKLSAgICBfcGFnZS0+
c2V0VW5vYnNjdXJlZENvbnRlbnRSZWN0KHVub2JzY3VyZWRSZWN0KTsKLSAgICBfcGFnZS0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT5zY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFEZWxlZ2F0
ZWRTY3JvbGxpbmcoX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+cm9vdFNjcm9s
bGluZ05vZGVJRCgpLCByb3VuZGVkSW50UG9pbnQodW5vYnNjdXJlZFJlY3Qub3JpZ2luKSk7Cisg
ICAgaWYgKCFpc1N0YWJsZVN0YXRlICYmIGFicyhzY2FsZSAtIF9wYWdlLT5kaXNwbGF5ZWRDb250
ZW50U2NhbGUoKSkgPCAwLjAwMDUpIHsKKyAgICAgICAgLy8gVGlueSBjaGFuZ2VzIG9mIHNjYWxl
IGR1cmluZyBpbnRlcmFjdGl2ZSB6b29tIGNhdXNlIGNvbnRlbnQgdG8ganVtcCBieSBvbmUgcGl4
ZWwsIGNyZWF0aW5nCisgICAgICAgIC8vIHZpc3VhbCBub2lzZS4gV2UgZmlsdGVyIHRob3NlIHVz
ZWxlc3MgdXBkYXRlcy4KKyAgICAgICAgc2NhbGUgPSBfcGFnZS0+ZGlzcGxheWVkQ29udGVudFNj
YWxlKCk7CisgICAgfQorICAgIF9wYWdlLT51cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8odmlzaWJsZVJlY3QsIHVub2JzY3VyZWRSZWN0LCBzY2Fs
ZSkpOwogCiAgICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKSkg
ewotICAgICAgICBGbG9hdFJlY3QgZXhwb3NlZFJlY3QgPSB2aXNpYmxlUmVjdDsKLSAgICAgICAg
ZXhwb3NlZFJlY3Quc2NhbGUoc2NhbGUpOwotICAgICAgICBkcmF3aW5nQXJlYS0+c2V0RXhwb3Nl
ZFJlY3QoZXhwb3NlZFJlY3QpOworICAgICAgICBGbG9hdFJlY3QgZml4ZWRQb3NSZWN0ID0gW3Nl
bGYgZml4ZWRQb3NpdGlvblJlY3RGcm9tRXhwb3NlZFJlY3Q6dW5vYnNjdXJlZFJlY3Qgc2NhbGU6
c2NhbGVdOworICAgICAgICBkcmF3aW5nQXJlYS0+c2V0Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3Qo
Zml4ZWRQb3NSZWN0KTsKKyAgICAgICAgZHJhd2luZ0FyZWEtPnVwZGF0ZURlYnVnSW5kaWNhdG9y
KCk7CiAgICAgfQotCi0gICAgW3NlbGYgX3VwZGF0ZUZpeGVkUG9zaXRpb25SZWN0XTsKIH0KIAog
LSAodm9pZClzZXRNaW5pbXVtU2l6ZTooQ0dTaXplKXNpemUKQEAgLTE3NCwxNSArMTc2LDYgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4gZXhwb3NlZFJlY3Q7CiB9CiAKLS0g
KHZvaWQpX3VwZGF0ZUZpeGVkUG9zaXRpb25SZWN0Ci17Ci0gICAgYXV0byBkcmF3aW5nQXJlYSA9
IF9wYWdlLT5kcmF3aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2luZ0FyZWEpCi0gICAgICAgIHJl
dHVybjsKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NSZWN0ID0gW3NlbGYgZml4ZWRQb3NpdGlvblJl
Y3RGcm9tRXhwb3NlZFJlY3Q6X3BhZ2UtPnVub2JzY3VyZWRDb250ZW50UmVjdCgpIHNjYWxlOl9w
YWdlLT5wYWdlU2NhbGVGYWN0b3IoKV07Ci0gICAgZHJhd2luZ0FyZWEtPnNldEN1c3RvbUZpeGVk
UG9zaXRpb25SZWN0KGZpeGVkUG9zUmVjdCk7Ci19Ci0KIC0gKHZvaWQpc2V0TWluaW11bUxheW91
dFNpemU6KENHU2l6ZSlzaXplCiB7CiAgICAgX3BhZ2UtPnNldFZpZXdwb3J0Q29uZmlndXJhdGlv
bk1pbmltdW1MYXlvdXRTaXplKEludFNpemUoQ0dDZWlsaW5nKHNpemUud2lkdGgpLCBDR0NlaWxp
bmcoc2l6ZS5oZWlnaHQpKSk7CkBAIC0xOTAsNyArMTgzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAogLSAodm9pZClkaWRGaW5pc2hTY3JvbGxpbmcKIHsKLSAgICBbc2VsZiBfdXBkYXRl
Rml4ZWRQb3NpdGlvblJlY3RdOwogICAgIFtfaW50ZXJhY3Rpb25WaWV3IF9kaWRFbmRTY3JvbGxp
bmdPclpvb21pbmddOwogfQogCkBAIC0yMTIsNyArMjA0LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAogLSAodm9pZClkaWRab29tVG9TY2FsZTooQ0dGbG9hdClzY2FsZQogewotICAgIF9w
YWdlLT5kaWRGaW5pc2hab29taW5nKHNjYWxlKTsKICAgICBbX2ludGVyYWN0aW9uVmlldyBfZGlk
RW5kU2Nyb2xsaW5nT3Jab29taW5nXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBlMGQ5MzVjNzQ1NTI1NzNhZTE3NGM1ODEz
MjcyMGVlNWExNjg0ODU0Li4wODFhNTU2ZTM0ZjE5ZWZjMWIyZjFiMTY4ZTIwZmI3ZmQ0MDkzNzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TLmgi
CiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5o
IgorI2ltcG9ydCAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0yMjksMTQgKzIzMCwxMiBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6YXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2soY29uc3QgU3RyaW5n
JiBiZWZvcmVUZXh0LCBjb25zdAogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0
dXJuVmFsdWUoYmVmb3JlVGV4dCwgbWFya2VkVGV4dCwgc2VsZWN0ZWRUZXh0LCBhZnRlclRleHQs
IGxvY2F0aW9uLCBsZW5ndGgpOwogfQogCi1jb25zdCBGbG9hdFJlY3QmIFdlYlBhZ2VQcm94eTo6
dW5vYnNjdXJlZENvbnRlbnRSZWN0KCkgY29uc3QKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pCiB7Ci0gICAgcmV0dXJuIG1fdW5vYnNjdXJlZFJl
Y3Q7Ci19Ci0KLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoY29u
c3QgRmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCkKLXsKLSAgICBtX3Vub2JzY3VyZWRSZWN0ID0g
dW5vYnNjdXJlZFJlY3Q7CisgICAgaWYgKHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gPT0g
bV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKQorICAgICAgICByZXR1cm47CisgICAgbV9s
YXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
bzsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjpW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGUobV9wYWdlSUQsIHZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8pLCAwKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0Q29uZmlndXJh
dGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCkBAIC00
NTIsMTIgKzQ1MSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVk
Wm9vbWluZygpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OldpbGxTdGFy
dFVzZXJUcmlnZ2VyZWRab29taW5nKCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaFpvb21pbmcoZmxvYXQgbmV3U2NhbGUpCi17Ci0gICAgbV9wYWdlU2NhbGVG
YWN0b3IgPSBuZXdTY2FsZTsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkRmluaXNoWm9vbWluZyhuZXdTY2FsZSksIG1fcGFnZUlEKTsKLX0KLQogdm9pZCBXZWJQYWdl
UHJveHk6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
cG9zaXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVu
aXF1ZVJlcXVlc3RJRCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDdhYTU5
ZGQ5NzhhYmU4NTJiZmRhZjg5YWE4YjE2YjNhNjAxMTRlZTguLmRjZGU3NGFiOWQzNWExZGMyNGEz
MjNjMmM0ZWU5OWY3ZjQ1YjkzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDEx
ICs0OSwxNSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRp
ZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVHZW9tZXRyeSgp
IG92ZXJyaWRlOwogCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNjYWxlZEV4cG9zZWRSZWN0KCkg
Y29uc3Q7CiAgICAgdm9pZCBzaG93RGVidWdJbmRpY2F0b3IoYm9vbCk7CiAKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICBmbG9hdCBpbmRpY2F0b3JTY2FsZShX
ZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZURlYnVnSW5kaWNhdG9yKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGlj
YXRvcihXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSwgYm9vbCByb290TGF5ZXJDaGFuZ2Vk
LCBmbG9hdCBzY2FsZSk7CiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvclBvc2l0aW9uKCk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggOWI5YzM3ZDMwOGI0YTY1
NTEwMTZkMzNlOTQ1ZTFjOWViYzNiNjRiZi4uNmQ1NmYxMGIzNTlhNzA1YmRlMzFlYTg1N2IyZjJm
YjRhMmI4NWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OCw2ICs3OCwxOCBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUdlb21ldHJ5
KCkKICAgICAgICAgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7CiB9CiAKK0Zsb2F0UmVjdCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzY2FsZWRFeHBvc2VkUmVjdCgpIGNvbnN0Cit7Cisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBtX3dlYlBhZ2VQcm94eS0+ZXhwb3NlZENvbnRl
bnRSZWN0KCk7CisjZWxzZQorICAgIEZsb2F0UmVjdCBzY2FsZWRFeHBvc2VkUmVjdCA9IGV4cG9z
ZWRSZWN0KCk7CisgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHktPnBhZ2VTY2Fs
ZUZhY3RvcigpOworICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlLCBzY2FsZSk7Cisg
ICAgcmV0dXJuIHNjYWxlZEV4cG9zZWRSZWN0OworI2VuZGlmCit9CisKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFVwZGF0ZUdlb21ldHJ5KCkKIHsKICAgICBtX2xh
c3RTZW50U2l6ZSA9IG1fc2l6ZTsKQEAgLTEwOSwyMSArMTIxLDI4IEBAIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zCiB9CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwot
c3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvclRvcEluc2V0ID0gMTAwOwogCisjaWYgUExBVEZP
Uk0oTUFDKQogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2Vk
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHIpCiB7CiAgICAgRHJhd2luZ0FyZWFQcm94
eTo6c2V0RXhwb3NlZFJlY3Qocik7CiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigp
OwogfQorI2VuZGlmCiAKIEZsb2F0UG9pbnQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6aW5kaWNhdG9yTG9jYXRpb24oKSBjb25zdAogewogICAgIGlmIChtX3dlYlBhZ2VQcm94eS0+
ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIEZsb2F0
UG9pbnQgdGlsZWRNYXBMb2NhdGlvbiA9IG1fd2ViUGFnZVByb3h5LT51bm9ic2N1cmVkQ29udGVu
dFJlY3QoKS5sb2NhdGlvbigpOworICAgICAgICBmbG9hdCBhYnNvbHV0ZUluc2V0ID0gaW5kaWNh
dG9ySW5zZXQgLyBtX3dlYlBhZ2VQcm94eS0+ZGlzcGxheWVkQ29udGVudFNjYWxlKCk7CisgICAg
ICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGFic29sdXRlSW5zZXQsIGFic29sdXRl
SW5zZXQpOworI2Vsc2UKICAgICAgICAgRmxvYXRQb2ludCB0aWxlZE1hcExvY2F0aW9uID0gZXhw
b3NlZFJlY3QoKS5sb2NhdGlvbigpOwotICAgICAgICB0aWxlZE1hcExvY2F0aW9uICs9IEZsb2F0
U2l6ZShpbmRpY2F0b3JJbnNldCwgaW5kaWNhdG9yVG9wSW5zZXQpOwotICAgICAgICBmbG9hdCBz
Y2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIHRp
bGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGluZGljYXRvckluc2V0LCBpbmRpY2F0b3JJbnNl
dCk7CisgICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIG1fd2ViUGFnZVByb3h5LT5wYWdlU2NhbGVG
YWN0b3IoKTs7CiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24uc2NhbGUoc2NhbGUsIHNjYWxlKTsK
KyNlbmRpZgogICAgICAgICByZXR1cm4gdGlsZWRNYXBMb2NhdGlvbjsKICAgICB9CiAgICAgCkBA
IC0xNDYsMTIgKzE2NSwxOCBAQCBmbG9hdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjppbmRpY2F0b3JTY2FsZShJbnRTaXplIGNvbnRlbnRzU2l6ZSkgY29ucwogICAgIGZsb2F0IHNj
YWxlID0gMTsKICAgICBpZiAoIWNvbnRlbnRzU2l6ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZmxv
YXQgd2lkdGhTY2FsZSA9IHN0ZDo6bWluPGZsb2F0Pigodmlld1NpemUud2lkdGgoKSAtIDIgKiBp
bmRpY2F0b3JJbnNldCkgLyBjb250ZW50c1NpemUud2lkdGgoKSwgMC4wNSk7Ci0gICAgICAgIHNj
YWxlID0gc3RkOjptaW4od2lkdGhTY2FsZSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZpZXdTaXplLmhl
aWdodCgpIC0gaW5kaWNhdG9yVG9wSW5zZXQgLSBpbmRpY2F0b3JJbnNldCkgLyBjb250ZW50c1Np
emUuaGVpZ2h0KCkpOworICAgICAgICBzY2FsZSA9IHN0ZDo6bWluKHdpZHRoU2NhbGUsIHN0YXRp
Y19jYXN0PGZsb2F0Pih2aWV3U2l6ZS5oZWlnaHQoKSAtIDIgKiBpbmRpY2F0b3JJbnNldCkgLyBj
b250ZW50c1NpemUuaGVpZ2h0KCkpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gc2NhbGU7CiB9
CiAKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRp
Y2F0b3IoKQoreworICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxzbyB1cGRhdGUgbGl2ZSBpbmZv
cm1hdGlvbiBkdXJpbmcgc2NhbGUuCisgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigp
OworfQorCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVn
SW5kaWNhdG9yKEludFNpemUgY29udGVudHNTaXplLCBib29sIHJvb3RMYXllckNoYW5nZWQsIGZs
b2F0IHNjYWxlKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0aGUgbGFzdCBzdWJsYXllci4K
QEAgLTE3OCwxMCArMjAzLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICAgICBbbV9leHBv
c2VkUmVjdEluZGljYXRvckxheWVyIHNldEJvcmRlcldpZHRoOmNvdW50ZXJTY2FsZWRCb3JkZXJd
OwogCiAgICAgaWYgKG1fd2ViUGFnZVByb3h5LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgewotICAg
ICAgICBGbG9hdFJlY3Qgc2NhbGVkRXhwb3NlZFJlY3QgPSBleHBvc2VkUmVjdCgpOwotICAgICAg
ICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci0g
ICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlLCBzY2FsZSk7Ci0KKyAgICAgICAg
RmxvYXRSZWN0IHNjYWxlZEV4cG9zZWRSZWN0ID0gdGhpcy0+c2NhbGVkRXhwb3NlZFJlY3QoKTsK
ICAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRQb3NpdGlvbjpzY2FsZWRF
eHBvc2VkUmVjdC5sb2NhdGlvbigpXTsKICAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JM
YXllciBzZXRCb3VuZHM6RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2NhbGVkRXhwb3NlZFJlY3Qu
c2l6ZSgpKV07CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzODJiNjYyNGM2YzljMjM1MDQ5NGYyNjBiMWM1
ODcyYjg1MDUwMDdjLi4yMzgzMmE2NTBhMzZlNmFlNWNiNjhmMzJhYTM4MmVhYzU4ZDFjZmIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00NDMsNiArNDQzLDEyIEBACiAJCTFRUTQxN0NCMTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0
Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRp
b24uaCAqLzsgfTsKIAkJMVpaNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29t
cGxldGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQkI0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAq
LzsgfTsKIAkJMjYzMTcyQ0YxOEI0Njk0OTAwNjVCOUMzIC8qIE5hdGl2ZVdlYlRvdWNoRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MzE3MkNF
MThCNDY5NDkwMDY1QjlDMyAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50LmggKi87IH07CisJCTI2ODQw
NTQ0MThCODVBNjMwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0MDU0MjE4Qjg1
QTYzMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oICovOyB9OworCQky
Njg0MDU0OTE4Qjg1RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMu
aW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODQw
NTQ4MThCODVGRjcwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5tZXNzYWdlcy5pbiAq
LzsgfTsKKwkJMjY4NDA1NEMxOEI4NkMzNTAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY4NDA1NEExOEI4NjZGRjAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8uY3BwICovOyB9OworCQkyNjg0MDU0RjE4Qjg2QzhFMDAyMkMzOEIgLyogVmlld1VwZGF0ZURp
c3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY4NDA1NDUxOEI4NUU3RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCAq
LzsgfTsKKwkJMjY4NDA1NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI2ODQwNTUwMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTI2ODQwNTUzMThCODZFRDYwMDIyQzM4QiAv
KiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0MDU1MTE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1Vw
ZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oICovOyB9OwogCQkyNkY5QTgzQjE4QTM0NjgxMDBBRUI4
OEEgLyogV0tXZWJWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjZGOUE4M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
OTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwRjQyNzExNzJBMEM3
NDAwOTM5RkYwIC8qIENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKIAkJMjkzRUJFQUIx
NjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
MTQ1LDYgKzIxNTEsMTMgQEAKIAkJMUZCMDBBQzYxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MzE3MkNFMThCNDY5NDkwMDY1QjlDMyAvKiBOYXRpdmVXZWJU
b3VjaEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYlRv
dWNoRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY2NTlBQTAxODVGQUFF
RDAwNDMwM0REIC8qIEluZm8taU9TLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSAiSW5mby1pT1MucGxp
c3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU0MjE4Qjg1QTYzMDAyMkMz
OEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTI2ODQwNTQ1MThCODVFN0UwMDIyQzM4QiAvKiBWaWV3VXBkYXRl
RGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3
VXBkYXRlRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2ODQw
NTQ2MThCODVFN0UwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3VXBkYXRlRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU0ODE4Qjg1RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0
ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlld1VwZGF0
ZURpc3BhdGNoZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2
ODQwNTRBMThCODY2RkYwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU1MDE4
Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlld1VwZGF0ZURpc3BhdGNo
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gIlZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2ODQwNTUxMThC
ODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMuaDsg
cGF0aCA9ICJWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmgiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNkY5QTgzQTE4QTM0NjNGMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBw
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc1N1
cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkzRUJFQTkxNjI3RDlD
OTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0RPTVRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5MjcsNiArMzk0
MCw4IEBACiAJCQkJMUFDMTMzNjUxODU2NUI1NzAwRjNFQzA1IC8qIFVzZXJEYXRhLmNwcCAqLywK
IAkJCQkxQUMxMzM2NjE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuaCAqLywKIAkJCQlCQ0Iw
QjBERjEyMzA1QUIxMDBCMTM0MUUgLyogVXNlck1lc3NhZ2VDb2RlcnMuaCAqLywKKwkJCQkyNjg0
MDU0QTE4Qjg2NkZGMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAg
Ki8sCisJCQkJMjY4NDA1NDIxOEI4NUE2MzAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uaCAqLywKIAkJCQkxQTBGMjlDOTEyMEIzNzE2MDA1M0QxQjkgLyogVmlzaXRlZExp
bmtUYWJsZS5jcHAgKi8sCiAJCQkJMUEwRjI5Q0ExMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRM
aW5rVGFibGUuaCAqLywKIAkJCQlCQzMyOUQ5OTE2QUNDRTk5MDAzMTZERTIgLyogV2ViQXJjaGl2
ZS5jcHAgKi8sCkBAIC01MDQxLDYgKzUwNTYsOSBAQAogCQkJCTJEODE5Qjk5MTg2Mjc1QjMwMDFG
MDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcCAqLywKIAkJCQkyRDgxOUI5
QTE4NjI3NUIzMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5oICovLAog
CQkJCTJEODE5QjlCMTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVj
dG9yLm1lc3NhZ2VzLmluICovLAorCQkJCTI2ODQwNTQ1MThCODVFN0UwMDIyQzM4QiAvKiBWaWV3
VXBkYXRlRGlzcGF0Y2hlci5jcHAgKi8sCisJCQkJMjY4NDA1NDYxOEI4NUU3RTAwMjJDMzhCIC8q
IFZpZXdVcGRhdGVEaXNwYXRjaGVyLmggKi8sCisJCQkJMjY4NDA1NDgxOEI4NUZGNzAwMjJDMzhC
IC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLm1lc3NhZ2VzLmluICovLAogCQkJCUJDNzJCOUY4MTFF
NjQ3NkIwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgKi8sCiAJCQkJQkM3
MkI5RjkxMUU2NDc2QjAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmggKi8sCiAJ
CQkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLywKQEAg
LTYwODcsNiArNjEwNSw4IEBACiAJCQkJMUFCMzFBOTUxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQkyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyog
Vmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyRDFCNUQ1
QzE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLywK
KwkJCQkyNjg0MDU1MDE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTI2ODQwNTUxMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3
VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggKi8sCiAJCQkJNTEyRTM1NjgxMzBCNTdGMDAwQUJE
MTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQk1MTJFMzU2OTEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJNZXNzYWdlcy5oICovLAogCQkJCTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTY2NTcs
NiArNjY3Nyw3IEBACiAJCQkJNTEwNjREMzYxODk3ODFDNDAwNEIyRkVCIC8qIFNRTGl0ZUlEQkN1
cnNvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0QxMEY0Mzc4RDAwNThDMTVBIC8qIFdl
YkVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3
ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTI2ODQwNTUzMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyog
QVBJRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAv
KiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREI5MTBGNDM4MEYwMDU4QzE1
QSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NzYzLDYgKzY3ODQsNyBAQAogCQkJ
CUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25T
cGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzNzIxODU2NkM3QzAwRjNFQzA1IC8qIEFQ
SUZyYW1lSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyNjg0MDU0NDE4Qjg1QTYzMDAyMkMz
OEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Mzc5NDg0MDQxNTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUUzNTFGNjE4MEY1Qzc1MDBFNTNCRTkgLyogV2ViSURCRmFjdG9yeUJhY2tlbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5k
ZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzM1Nyw2ICs3Mzc5LDcgQEAKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlFMUQyNkE1MTE3NTk2
NEQ3MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLywKKwkJ
CQkyNjg0MDU0OTE4Qjg1RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2Fn
ZXMuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJCUUxMzNGRDhBMTQyM0REN0YwMEZDN0JGQiAvKiBX
ZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC03Nzk3LDYgKzc4MjAsNyBAQAogCQkJCTc1RTc0OUU5
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMzNzUgLyogSW5qZWN0
ZWRCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEyRjY2RDMxMDA3QjJD
MzIgLyogSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTI2ODQwNTRDMThCODZDMzUwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyOTM1RTMx
Mjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNENjdEMzBFMTVDMDhGOUEwMDg0M0FERiAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTgwMjAsNiArODA0NCw3IEBACiAJCQkJQkM4MjgzNjUxNkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNv
bnRlbnRQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTI1QzVGMTg1N0VBMDUw
MDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlCQzgyODM5OTE2QjQ4REMwMDBBMjc4RkUgLyogV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMjY4NDA1NEYxOEI4NkM4RTAwMjJDMzhCIC8qIFZpZXdV
cGRhdGVEaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjlFMjQ0MTEyMERBQ0Ew
MEExMzdFMCAvKiBXZWJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTUwNUY5MTY4
MDAyNTUwMEE5MzBFQiAvKiBXZWJDb250ZXh0Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMDlCOEY4MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTgwOTMsNiArODExOCw3IEBACiAJCQkJQkMwRTYwNzQxMkQ2
QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMxQkUxRjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzgwMUMwOTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhp
dFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjY4NDA1NTIxOEI4NkVENjAwMjJD
MzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxMUIyNEFBMTMyRTA5NzIwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2IC8qIFdlYkljb25E
YXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2NDEzMkVDNUI5MDBC
RUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRh
dGVEaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3
VXBkYXRlRGlzcGF0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAyOGNmOGUzYmIwMzVjNjE1MTViZjg5
OGFhOGI3MGQxZTA2Nzk0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKQEAgLTAsMCArMSw4MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWV3VXBkYXRlRGlz
cGF0Y2hlci5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAiVmlld1VwZGF0ZURp
c3BhdGNoZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1Bhc3NSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdVcGRhdGVEaXNwYXRjaGVy
KTsKK30KKworVmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKCkKKyAg
ICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVmlld1VwZGF0
ZURpc3BhdGNoZXIiKSkKK3sKK30KKworVmlld1VwZGF0ZURpc3BhdGNoZXI6On5WaWV3VXBkYXRl
RGlzcGF0Y2hlcigpCit7Cit9CisKK3ZvaWQgVmlld1VwZGF0ZURpc3BhdGNoZXI6OmluaXRpYWxp
emVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBjb25uZWN0
aW9uLT5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZpZXdVcGRhdGVEaXNw
YXRjaGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUuZ2V0KCksIHRoaXMpOworfQor
Cit2b2lkIFZpZXdVcGRhdGVEaXNwYXRjaGVyOjp2aXNpYmxlQ29udGVudFJlY3RVcGRhdGUodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvKQoreworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fZGF0YU11dGV4KTsKKyAgICAgICAgbV9sYXRlc3RVcGRhdGUuc2V0KHBhZ2VJRCwgdmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk7CisgICAgfQorICAgIFJ1bkxvb3A6Om1haW4oKS0+
ZGlzcGF0Y2goYmluZCgmVmlld1VwZGF0ZURpc3BhdGNoZXI6OmRpc3BhdGNoVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlLCB0aGlzKSk7Cit9CisKK3ZvaWQgVmlld1VwZGF0ZURpc3BhdGNoZXI6OmRp
c3BhdGNoVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKCkKK3sKKyAgICBIYXNoTWFwPHVpbnQ2NF90
LCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvPiBsb2NhbENvcHk7CisgICAgeworICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhTXV0ZXgpOworICAgICAgICBsb2NhbENvcHkuc3dh
cChtX2xhdGVzdFVwZGF0ZSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBpdGVyYXRvciA6IGxv
Y2FsQ29weSkgeworICAgICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IFdlYlByb2Nlc3M6OnNo
YXJlZCgpLndlYlBhZ2UoaXRlcmF0b3Iua2V5KSkKKyAgICAgICAgICAgIHdlYlBhZ2UtPnVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoaXRlcmF0b3IudmFsdWUpOworICAgIH0KK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ0YzYyNGE2OWVlNzE2ZDQyYmE2NWNjZTVkNjMwZDM3ZjQxNDFmYjIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1Vw
ZGF0ZURpc3BhdGNoZXIuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBW
aWV3VXBkYXRlRGlzcGF0Y2hlcl9oCisjZGVmaW5lIFZpZXdVcGRhdGVEaXNwYXRjaGVyX2gKKwor
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWV3VXBkYXRlRGlzcGF0Y2hl
ciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IGNyZWF0ZSgp
OworICAgIH5WaWV3VXBkYXRlRGlzcGF0Y2hlcigpOworCisgICAgdm9pZCBpbml0aWFsaXplQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKKworcHJpdmF0ZToKKyAgICBWaWV3VXBkYXRlRGlz
cGF0Y2hlcigpOworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24q
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHZpc2libGVDb250
ZW50UmVjdFVwZGF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8mKTsKKworICAgIHZvaWQgZGlzcGF0Y2hWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUo
KTsKKworICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgTXV0ZXggbV9kYXRhTXV0
ZXg7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbz4g
bV9sYXRlc3RVcGRhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFZpZXdwb3J0VXBkYXRlRGlzcGF0Y2hlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTdlMmM4ZGQxODZhZDI3NmU1NThhY2M4ODBjMjY4OGQ1MDM1OGZl
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9W
aWV3VXBkYXRlRGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisjIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFZpZXdVcGRhdGVE
aXNwYXRjaGVyIHsKKyAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUodWludDY0X3QgcGFnZUlE
LCBXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gdmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mbykKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA2N2YwNDBjMGI4OGMxNmVlMTQ2MjAxYTNkNWJjODVkYWZhNzUxMDY4Li5l
NTIyMWQ5NDJjMmZiYmRhMGQxMjUxYWJhZmMwMTljNDFjNmIxMDc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yODIsNiArMjgyLDcgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCBt
X3Nob3VsZFJldHVybldvcmRBdFNlbGVjdGlvbihmYWxzZSkKKyAgICAsIG1fc2NhbGVXYXNTZXRC
eVVJUHJvY2VzcyhmYWxzZSkKICAgICAsIG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3Io
ZmFsc2UpCiAjZW5kaWYKICAgICAsIG1faW5zcGVjdG9yQ2xpZW50KDApCkBAIC0xMjU1LDYgKzEy
NTYsOSBAQCB2b2lkIFdlYlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZSh1aW50NjRfdCBkaXNw
bGF5SUQpCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlKGRvdWJsZSBzY2FsZSwgY29uc3QgSW50
UG9pbnQmIG9yaWdpbikKIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV9zY2FsZVdhc1NldEJ5
VUlQcm9jZXNzID0gZmFsc2U7CisjZW5kaWYKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0g
cGx1Z2luVmlld0ZvckZyYW1lKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsKICAgICBpZiAocGx1Z2lu
VmlldyAmJiBwbHVnaW5WaWV3LT5oYW5kbGVzUGFnZVNjYWxlRmFjdG9yKCkpIHsKICAgICAgICAg
cGx1Z2luVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlLCBvcmlnaW4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjExNWU1Y2M5ZWQ4Mzg3
NjE2ZWRjZDVmOWE0M2NhMjM0OTgwZjM3NS4uYjZjNzVkZWIxNzkzZGExMjIzMDliNzkzMzZmMDVh
MWQwZDAzMzhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xNDMsNiArMTQzLDcgQEAgY2xhc3MgUGFnZUJhbm5lcjsKIGNsYXNzIFBhZ2VPdmVy
bGF5OwogY2xhc3MgUGx1Z2luVmlldzsKIGNsYXNzIFNlc3Npb25TdGF0ZTsKK2NsYXNzIFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm87CiBjbGFzcyBXZWJDb2xvckNob29zZXI7CiBjbGFzcyBX
ZWJDb250ZXh0TWVudTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CkBAIC02NTIsOSAr
NjUzLDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldFZpZXdwb3J0
Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsK
ICAgICB2b2lkIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKKyAgICB2b2lkIHVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYp
OworICAgIGJvb2wgc2NhbGVXYXNTZXRCeVVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2Nh
bGVXYXNTZXRCeVVJUHJvY2VzczsgfQogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpv
b21pbmcoKTsKLSAgICB2b2lkIGRpZEZpbmlzaFNjcm9sbGluZyhjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBjb250ZW50T2Zmc2V0KTsKLSAgICB2b2lkIGRpZEZpbmlzaFpvb21pbmcoZmxvYXQp
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
QEAgLTEwODMsNiArMTA4NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJldHVybldv
cmRBdFNlbGVjdGlvbjsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbjsKKyAgICBib29sIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzczsK
ICAgICBib29sIG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3I7CiAgICAgV2ViQ29yZTo6
SW50U2l6ZSBtX2Jsb2NrU2VsZWN0aW9uRGVzaXJlZFNpemU7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggNTdmYTRkODhlYjFjZWJkYzQ1NDI4NGViOWE1YTk4MzRjNWViNjAyOS4uZjE1MmQyYWJjMzky
Y2EwMWFjNTBmOTIzMTU0ZGYxZmIwMDMxNjJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMxNSw3ICszMTUs
NiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogI2lmIFBMQVRGT1JN
KElPUykKICAgICBXaWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpOwotICAgIERpZEZpbmlz
aFpvb21pbmcoZmxvYXQgc2NhbGUpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmIFVT
RShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAyZmJmOGRlMTY5ZDI5NTJkNDUzMWZkYWIx
Y2U0ZTM2YmZhNDMyMGI2Li40ZjNkMDY0MmRkMzQxYTM3NzZmY2YxN2YzOTE4NDdjZWIyZGE2Yzhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIKICNpbXBv
cnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW1wb3J0ICJMYXllclRy
ZWVIb3N0LmgiCisjaW1wb3J0ICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgiCiAjaW1w
b3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2ltcG9ydCAiV2ViRnJhbWUuaCIKQEAgLTM1Nyw2ICszNTksNyBAQCB2b2lkIFdlYlBhZ2U6
OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGbG9hdFBv
aW50JiBwb3NpdAogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIGlmIChyZW5kZXJl
cikgewogICAgICAgICByZW5kZXJlci0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CisgICAgICAgIC8v
IEZJWE1FOiBwYXRjaCBzZXBhcmF0ZWx5LgogICAgICAgICBDb2xvciBoaWdobGlnaHRDb2xvciA9
IG5vZGUtPmNvbXB1dGVkU3R5bGUoKS0+dGFwSGlnaGxpZ2h0Q29sb3IoKTsKICAgICAgICAgaWYg
KCFub2RlLT5kb2N1bWVudCgpLmZyYW1lKCktPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgICAg
IEZyYW1lVmlldyogdmlldyA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKS0+dmlldygpOwpAQCAt
MTUwOSwxNCArMTUxMiwzMCBAQCB2b2lkIFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmlndXJhdGlvbkNo
YW5nZWQoKQogICAgIHNjYWxlUGFnZShzY2FsZSwgbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCkt
PnNjcm9sbFBvc2l0aW9uKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OndpbGxTdGFydFVzZXJUcmln
Z2VyZWRab29taW5nKCkKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhj
b25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKQogewotICAgIG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IgPSB0cnVlOwor
ICAgIGRvdWJsZSBib3VuZGVkU2NhbGUgPSBzdGQ6Om1pbihtX3ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5tYXhpbXVtU2NhbGUoKSwgc3RkOjptYXgobV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11
bVNjYWxlKCksIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uc2NhbGUoKSkpOworCisgICAg
SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQodmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkUmVjdCgpLmxvY2F0aW9uKCkpOworCisgICAgRmxvYXRS
ZWN0IGV4cG9zZWRSZWN0ID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5leHBvc2VkUmVj
dCgpOworICAgIGV4cG9zZWRSZWN0LnNjYWxlKGJvdW5kZWRTY2FsZSk7CisgICAgbV9kcmF3aW5n
QXJlYS0+c2V0RXhwb3NlZFJlY3QoZXhwb3NlZFJlY3QpOworCisgICAgaWYgKGJvdW5kZWRTY2Fs
ZSAhPSBtX3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpKSB7CisgICAgICAgIG1fc2NhbGVXYXNTZXRC
eVVJUHJvY2VzcyA9IHRydWU7CisgICAgICAgIG1fcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKGJv
dW5kZWRTY2FsZSwgc2Nyb2xsUG9zaXRpb24pOworICAgICAgICBpZiAobV9kcmF3aW5nQXJlYS0+
bGF5ZXJUcmVlSG9zdCgpKQorICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9z
dCgpLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQYWdlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoYm91bmRlZFNjYWxl
KSk7CisgICAgfQorCisgICAgLy8gRklYTUU6IHdlIHNob3VsZCBhbHNvIHVwZGF0ZSB0aGUgZnJh
bWUgdmlldyBmcm9tIHVub2JzY3VyZWQgcmVjdC4gQWx0ZW5hdGl2ZWx5LCB3ZSBjYW4gaGF2ZSBp
dCBwdWxsIHRoZSB2YWx1ZXMgZnJvbSBTY3JvbGxWaWV3LgogfQogCi12b2lkIFdlYlBhZ2U6OmRp
ZEZpbmlzaFpvb21pbmcoZmxvYXQgbmV3U2NhbGUpCit2b2lkIFdlYlBhZ2U6OndpbGxTdGFydFVz
ZXJUcmlnZ2VyZWRab29taW5nKCkKIHsKLSAgICBtX3BhZ2UtPnNldFBhZ2VTY2FsZUZhY3Rvcihu
ZXdTY2FsZSwgbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCktPnNjcm9sbFBvc2l0aW9uKCkpOwor
ICAgIG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IgPSB0cnVlOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4
IDI2MWJiZmJkZDIzZDMxMTk2ZDI4OWZkZDhkMDcwZWQ4YmYwYWIyM2QuLjkzYzU3YjY5ZDA3NjFj
M2FhYmRiM2RlMTEwZjIyOGJhMTRiZTNhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMjUsNiArMzI1LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6Zmx1c2hMYXllcnMoKQogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxlRmFjdG9y
KG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwogICAgIGxheWVyVHJh
bnNhY3Rpb24uc2V0UmVuZGVyVHJlZVNpemUobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5yZW5kZXJU
cmVlU2l6ZSgpKTsKICNpZiBQTEFURk9STShJT1MpCisgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRT
Y2FsZVdhc1NldEJ5VUlQcm9jZXNzKG1fd2ViUGFnZS0+c2NhbGVXYXNTZXRCeVVJUHJvY2Vzcygp
KTsKICAgICBsYXllclRyYW5zYWN0aW9uLnNldE1pbmltdW1TY2FsZUZhY3RvcihtX3dlYlBhZ2Ut
Pm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CiAgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRNYXhp
bXVtU2NhbGVGYWN0b3IobV93ZWJQYWdlLT5tYXhpbXVtUGFnZVNjYWxlRmFjdG9yKCkpOwogICAg
IGxheWVyVHJhbnNhY3Rpb24uc2V0QWxsb3dzVXNlclNjYWxpbmcobV93ZWJQYWdlLT5hbGxvd3NV
c2VyU2NhbGluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IGE2NWM4YTJlNTEzYTBjOTRmMGE4NTRiZWZlODkwODU5ZTlkOTg3MjEuLjMzMDhhOGE4M2Q2
MjU5MWE3NGEyMDhiY2QzOTEwNDQwZGUyM2ZiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTUxLDYgKzE1MSw5IEBAIFdlYlByb2Nlc3MmIFdlYlByb2Nl
c3M6OnNoYXJlZCgpCiAKIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIDogbV9ldmVudERp
c3BhdGNoZXIoRXZlbnREaXNwYXRjaGVyOjpjcmVhdGUoKSkKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgLCBtX3ZpZXdVcGRhdGVEaXNwYXRjaGVyKFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpjcmVhdGUo
KSkKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgLCBtX2luRGlkQ2xvc2UoZmFsc2UpCiAg
ICAgLCBtX3Nob3VsZFRyYWNrVmlzaXRlZExpbmtzKHRydWUpCiAgICAgLCBtX2hhc1NldENhY2hl
TW9kZWwoZmFsc2UpCkBAIC0yMTYsNiArMjE5LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFs
aXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiAgICAgY29ubmVjdGlv
bi0+c2V0U2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZSh0cnVlKTsKIAogICAgIG1f
ZXZlbnREaXNwYXRjaGVyLT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgbV92aWV3VXBkYXRlRGlzcGF0Y2hlci0+aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oY29ubmVjdGlvbik7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXItPmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBhZTUyYzlhYWUxNzU0NjNhNTYyZjU0ZjYzZWVjZGQwYThm
ZDBjNTJhLi45ZDNmODQ1ODBiYTkzNDNjMjA2YTdjNGY2MDVkZThjYjRmMDY0NWQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSAiVmlld1VwZGF0ZURpc3BhdGNoZXIu
aCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5r
SGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CkBAIC0yODAsNiArMjgxLDkg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGU+IG1faW5qZWN0ZWRCdW5kbGU7
CiAKICAgICBSZWZQdHI8RXZlbnREaXNwYXRjaGVyPiBtX2V2ZW50RGlzcGF0Y2hlcjsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgUmVmUHRyPFZpZXdVcGRhdGVEaXNwYXRjaGVyPiBtX3ZpZXdVcGRh
dGVEaXNwYXRjaGVyOworI2VuZGlmCiAKICAgICBib29sIG1faW5EaWRDbG9zZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225224</attachid>
            <date>2014-02-25 22:57:01 -0800</date>
            <delta_ts>2014-02-25 23:31:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129354-20140225225700.patch</filename>
            <type>text/plain</type>
            <size>62904</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzdmNTg4NzYyM2NhYWUz
ODI0N2VkNjNiNzBjZTJmZmRlMGU4N2U1MS4uZTZmN2MyYzhjYzY2MTI3MTA0NGVlOWIwZDJiZDM2
MTcyNzk3ZWY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMSBAQAorMjAxNC0wMi0yNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJd
IFNwbGl0IHRoZSByZWN0cy9zY2FsZSB1cGRhdGVzIGluIDMgaW50ZXJuYWxseSBjb25zaXN0ZW50
IGdyb3VwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI5MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBEdXJp
bmcgc2NhbGluZywgdGhlIHNjYWxlIGFuZCByZWN0IG9mIFVJU2Nyb2xsVmlldywgV2ViUGFnZVBy
b3h5LCBEcmF3aW5nQXJlYVByb3h5LAorICAgICAgICBEcmF3aW5nQXJlYSBhbmQgV2ViUGFnZSB3
ZXJlIGluIGNvbXBsZXRlbHkgaW5jb25zaXN0ZW50IHN0YXRlcy4KKworICAgICAgICBTb21lIG9m
IHRob3NlIGRpc2Nvbm5lY3Qgd2VyZSB0ZW1wb3JhcnkgKGxpa2Ugd2hlbiBzZXR0aW5nIHRoZSBy
ZWN0IGFuZCBzY2FsZSBpbiB0d28gZGlmZmVyZW50CisgICAgICAgIG1lc3NhZ2VzKSwgc29tZSB3
ZXJlIGxhc3RpbmcgdGhlIHRpbWUgb2YgYSB0aWxlIHVwZGF0ZSAobGlrZSB0aGUgVUlQcm9jZXNz
IHZpZXcgb2YgdGhlIHNjYWxlKS4KKyAgICAgICAgVGhpcyB3YXMgY2F1c2luZyB2YXJpb3VzIHZp
c3VhbCBnbGl0Y2hlcy4KKworICAgICAgICBUbyBmaXggdGhpcywgYWxsIHRoZSB1cGRhdGVzIGZy
b20gdGhlIFVJUHJvY2VzcyBhcmUgZnVubmVsZWQgdGhyb3VnaCBhIHNpbmdsZSBwYXRoIGFuZCB0
aGUgdmFsdWVzCisgICAgICAgIGFyZSBzcGxpdCBpbnRvIDMgZGlmZmVyZW50IGdyb3Vwcy90eXBl
cy4KKyAgICAgICAgV2hlbiB1cGRhdGluZyB0aGUgc2NhbGUvcmVjdHMsIHRoZSBVSVByb2Nlc3Mg
c2VuZHMgdGhlIG5ldyBpbmZvcm1hdGlvbiB0byB0aGUgV2ViUHJvY2VzcyBvbiBhIHF1ZXVlCisg
ICAgICAgIHRocm91Z2ggVmlld1VwZGF0ZURpc3BhdGNoZXIuIFRoZXJlLCB0aGUgdXBkYXRlcyBh
cmUgYWNjdW11bGF0ZWQgdW50aWwgdGhlIE1haW5UaHJlYWQgaXMgYXZhaWxhYmxlLgorICAgICAg
ICBPbmNlIHRoZSBtYWluIHRocmVhZCBpcyAidW5ibG9ja2VkIiBmcm9tIHRoZSBwcmV2aW91cyBm
cmFtZSwgYWxsIHRoZSBkYXRhIGFyZSB1cGRhdGVkIGF0IG9uY2UgZnJvbQorICAgICAgICB0aGUg
bGFzdCBrbm93biBzdGF0ZSBpbiBWaWV3VXBkYXRlRGlzcGF0Y2hlci4gVGhlIG5ldyB0aWxlcyBh
cmUgY3JlYXRlZCBmb3IgdGhlIG5ldyBjb252ZXJhZ2UgaW5mb3JtYXRpb24KKyAgICAgICAgYW5k
IHRoZXkgYXJlIHNlbnQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBBdCBhbnkgcG9pbnQs
IHRoZXJlIGFyZSAzIHR5cGVzIG9mIHNjYWxlIGFuZCByZWN0cyB1c2VkIGZvciBkaWZmZXJlbnQg
cHVycG9zZToKKyAgICAgICAgLUluIHRoZSBVSVByb2Nlc3MsIHRoZXJlIGlzIHRoZSBVSVNjcm9s
bFZpZXcgc2NhbGUgYW5kIHJlY3RzIHdoaWNoIHJlcHJlc2VudCB0aGUgInRydWUiIHN0YXRlIG9y
IHdoYXQKKyAgICAgICAgIGlzIGN1cnJlbnRseSBvbiBzY3JlZW4uCisgICAgICAgICBUaGF0IGlu
Zm9ybWF0aW9uIGlzIG1pcnJvcmVkIGludG8gV2ViUGFnZVByb3h5IGZvciB0aGUgb3RoZXIgY2xh
c3NlcyBuZWVkaW5nIGl0IGxpa2UgRHJhd2luZ0FyZWFQcm94eS4KKyAgICAgICAgLUluIHRoZSBX
ZWJQcm9jZXNzLCB0aGVyZSBpcyB0aGUgbGFzdCBrbm93biBzdGF0ZS4gVGhhdCBzdGF0ZSBpcyBh
bHdheXMgbGFnZ2luZyBhIGxpdHRsZSBiZWhpbmQgdGhlICJ0cnVlIgorICAgICAgICAgc3RhdGUu
CisgICAgICAgIC1CYWNrIGluIHRoZSBVSVByb2Nlc3MsIHdlIGhhdmUgdGhlIHRpbGUgc3RhdGVz
IHRoYXQgaXMgYXR0YWNoZWQgdG8gUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uIEl0IGlzIHVz
ZWQKKyAgICAgICAgIHRvIHNldHVwIHRoZSByZW5kZXJpbmcuCisKKyAgICAgICAgV2l0aCB0aGlz
IGNoYW5nZSwgdGhlcmUgYXJlIHR3byBwYXRocyBmb3IgdXBkYXRpbmcgdGhlIHBhZ2Ugc2NhbGUg
ZmFjdG9yOgorICAgICAgICAtVGhlIFVJIGRyaXZlcyB0aGUgY2hhbmdlLCB0aGUgdXBkYXRlcyBn
b2VzIFdLV2ViVmlldy0+V0tDb250ZW50Vmlldy0+V2ViUGFnZVByb3h5LT5WaWV3VXBkYXRlRGlz
cGF0Y2hlcgorICAgICAgICAgLT5XZWJQYWdlLT5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS0+
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS0+V0tDb250ZW50Vmlldy0+V0tXZWJWaWV3
LgorICAgICAgICAtSWYgY2hhbmdlcyBpbiB0aGUgY29udGVudCBmb3JjZSBzY2FsaW5nIHBhcmFt
ZXRlcnMsIHRoZSB1cGRhdGVzIGdvZXM6IFdlYlBhZ2UtPlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhCisgICAgICAgICAtPlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHktPldLQ29udGVu
dFZpZXctPldLV2ViVmlldy4KKyAgICAgICAgVGhlIHR3byBraW5kIG9mIHVwZGF0ZXMgZnJlcXVl
bnRseSBjb25mbGljdHMgZHVyaW5nIGxvYWRpbmcuIFdlIGRpZmZlcmVudGlhdGUgdGhvc2UgdGhy
b3VnaCB0aGUgZmxhZworICAgICAgICBzY2FsZVdhc1NldEJ5VUlQcm9jZXNzIHBhc3NlZCB3aXRo
IHRoZSB1cGRhdGVzLiBJbiBjYXNlcyBvZiBjb25mbGljdHMsIHRoZSB1c2VyIGFsd2F5cyB3aW5z
LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChzdHJ1Y3Rfb3JfY2xhc3MpOgorICAgICAgICAq
IFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OlZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjpleHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm86OnVub2JzY3VyZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mbzo6c2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcj09KToK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpzY2FsZVdhc1NldEJ5VUlQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OnNl
dFNjYWxlV2FzU2V0QnlVSVByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbnRlbnRWaWV3OmRpZENvbW1pdExheWVyVHJl
ZTpXZWJLaXQ6Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEZpbmlzaFNjcm9sbGluZ10p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZFNjcm9sbDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRab29tOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
c2Nyb2xsVmlld0RpZEVuZFpvb21pbmc6d2l0aFZpZXc6YXRTY2FsZTpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9mcmFtZU9yQm91bmRzQ2hhbmdlZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0T2JzY3VyZWRJbnNldHM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
ZW5kSW50ZXJhY3RpdmVPYnNjdXJlZEluc2V0c0NoYW5nZV0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvaW9zL1dLVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF91cGRhdGVWaXNpYmxl
Q29udGVudFJlY3RzXSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Q3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlzcGxheWVkQ29udGVudFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpleHBvc2VkQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnVub2JzY3VyZWRDb250ZW50UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnVub2JzY3VyZWRSZWN0
OnNjYWxlOmluU3RhYmxlU3RhdGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkRmlu
aXNoU2Nyb2xsaW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkWm9vbVRvU2NhbGU6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyk6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzY2Fs
ZWRFeHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmluZGljYXRvckxvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yU2NhbGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKToKKyAgICAg
ICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6On5WaWV3VXBkYXRlRGlzcGF0Y2hlcik6
CisgICAgICAgIChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjp2aXNpYmxlQ29u
dGVudFJlY3RVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjYWxlUGFnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2NhbGVXYXNTZXRCeVVJUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0YXBIaWdo
bGlnaHRBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlVmlzaWJs
ZUNvbnRlbnRSZWN0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndpbGxTdGFydFVzZXJU
cmlnZ2VyZWRab29taW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OldlYlByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTQtMDItMjUgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgV2ViQ29yZTo6VmlzaXRl
ZExpbmtQcm92aWRlciB0byBXZWJDb3JlOjpWaXNpdGVkTGlua1N0b3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA1MzRkODRmZThkMDMxZTEwODc4MjRhZmRlYjc3MDM0MjcyMGEy
MTM1Li5kNjNkMzQzMzI2ZDQxYzQzYjQ3Mjc5OWM2MDdiYjcyMjc5OWQwZjg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTk3LDYgKzk3LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMg
PSBcCiAgICAgU3RvcmFnZU1hbmFnZXIgXAogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciBcCiAg
ICAgVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvciBcCisgICAgVmlld1VwZGF0ZURpc3BhdGNo
ZXIgXAogICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIFwKICAgICBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCA4MWFmN2JkMWNjZDUyNWJjMjgyZTEw
OTY5MzdjMWM2MWZjMWU4NjI0Li4yNTc4ZGFiZmI0ZTQ3MWM3YTg0ZDhkZWZkNmU0OTM5Y2Q5YjU4
MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0y
MjIsNiArMjIyLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUpOgogICAg
ICAgICAnV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEnLAogICAgICAgICAnV2ViS2l0OjpTdGF0
aXN0aWNzRGF0YScsCiAgICAgICAgICdXZWJLaXQ6OlRleHRDaGVja2VyU3RhdGUnLAorICAgICAg
ICAnV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJywKICAgICAgICAgJ1dlYktp
dDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZScsCiAgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMnLAogICAgICAgICAnV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmVjNWRkN2ZmZjc5ZDcyZThmNTI4NDQzMDYzM2M0MDky
YTJlMjJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
by5oIgorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fZXhw
b3NlZFJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3Vub2JzY3VyZWRSZWN0OworICAgIGVuY29kZXIg
PDwgbV9zY2FsZTsKK30KKworYm9vbCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8mIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2V4cG9z
ZWRSZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1fdW5vYnNjdXJlZFJlY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9zY2FsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iYzNkZGZlMTU1YWQxMzJmNGRhYmJiNzU4ZmI3MTZlMjA0Yzk4ZmNjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8uaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvX2gKKyNkZWZpbmUgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
b19oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorCituYW1lc3BhY2UgSVBDIHsK
K2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gewor
cHVibGljOgorICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oKQorICAgICAgICA6IG1f
c2NhbGUoLTEpCisgICAgeworICAgIH0KKworICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8oY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkUmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCwgZG91YmxlIHNjYWxlKQorICAgICAgICA6IG1fZXhw
b3NlZFJlY3QoZXhwb3NlZFJlY3QpCisgICAgICAgICwgbV91bm9ic2N1cmVkUmVjdCh1bm9ic2N1
cmVkUmVjdCkKKyAgICAgICAgLCBtX3NjYWxlKHNjYWxlKQorICAgIHsKKyAgICB9CisKKyAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9l
eHBvc2VkUmVjdDsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3Vub2JzY3VyZWRSZWN0OyB9CisgICAgZG91YmxlIHNjYWxl
KCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJik7CisKK3ByaXZhdGU6Cisg
ICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3NlZFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IG1fdW5vYnNjdXJlZFJlY3Q7CisgICAgZG91YmxlIG1fc2NhbGU7Cit9OworCitpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGEsIGNv
bnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGIpCit7CisgICAgcmV0dXJuIGEuc2Nh
bGUoKSA9PSBiLnNjYWxlKCkgJiYgYS5leHBvc2VkUmVjdCgpID09IGIuZXhwb3NlZFJlY3QoKSAm
JiBhLnVub2JzY3VyZWRSZWN0KCkgPT0gYi51bm9ic2N1cmVkUmVjdCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm9f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oCmluZGV4IDkyOTViNGJmMmZlZDUzMDFhOTRmMDgxYTMzYTc2MTQ4ODVkMjFl
YzkuLjE2ZDVmNTNkYzY5MTJjYTY0NTRlMjU4NjNiZjkwNjNmNTdjOWI5ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
LmgKQEAgLTE2NCw2ICsxNjQsOSBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgcGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KICAgICB2b2lkIHNldFBh
Z2VTY2FsZUZhY3Rvcihkb3VibGUgcGFnZVNjYWxlRmFjdG9yKSB7IG1fcGFnZVNjYWxlRmFjdG9y
ID0gcGFnZVNjYWxlRmFjdG9yOyB9CisKKyAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3Mo
KSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KKyAgICB2b2lkIHNl
dFNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoYm9vbCBzY2FsZVdhc1NldEJ5VUlQcm9jZXNzKSB7IG1f
c2NhbGVXYXNTZXRCeVVJUHJvY2VzcyA9IHNjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICAK
ICAgICB1aW50NjRfdCByZW5kZXJUcmVlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJl
ZVNpemU7IH0KICAgICB2b2lkIHNldFJlbmRlclRyZWVTaXplKHVpbnQ2NF90IHJlbmRlclRyZWVT
aXplKSB7IG1fcmVuZGVyVHJlZVNpemUgPSByZW5kZXJUcmVlU2l6ZTsgfQpAQCAtMTg3LDYgKzE5
MCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRD4gbV9kZXN0cm95ZWRMYXllcklEczsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1f
Y29udGVudHNTaXplOwogICAgIGRvdWJsZSBtX3BhZ2VTY2FsZUZhY3RvcjsKKyAgICBib29sIG1f
c2NhbGVXYXNTZXRCeVVJUHJvY2VzczsKICAgICB1aW50NjRfdCBtX3JlbmRlclRyZWVTaXplOwog
ICAgIGRvdWJsZSBtX21pbmltdW1TY2FsZUZhY3RvcjsKICAgICBkb3VibGUgbV9tYXhpbXVtU2Nh
bGVGYWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCBlNjU3YjM4YmRkMThhYmZlYzUyM2UwNmQ1YWNm
MTEzNTVmOThmZWRjLi42ZDI3MWFlMmY5YWM4N2UwOWRlOTM0NDk0ZDBlNjYwNTA1ZTE5OTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24ubW0KQEAgLTQxMCw2ICs0MTAsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBtX2Rlc3Ryb3llZExheWVySURzOwogICAgIGVuY29kZXIgPDwgbV9jb250
ZW50c1NpemU7CiAgICAgZW5jb2RlciA8PCBtX3BhZ2VTY2FsZUZhY3RvcjsKKyAgICBlbmNvZGVy
IDw8IG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzczsKICAgICBlbmNvZGVyIDw8IG1fbWluaW11bVNj
YWxlRmFjdG9yOwogICAgIGVuY29kZXIgPDwgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CiAgICAgZW5j
b2RlciA8PCBtX2FsbG93c1VzZXJTY2FsaW5nOwpAQCAtNDU3LDYgKzQ1OCw5IEBAIGJvb2wgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmVtb3RlTGF5CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9wYWdlU2Nh
bGVGYWN0b3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21pbmltdW1TY2FsZUZhY3Rv
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA5MTAzNzAwYmJhOWUxNTUzNDM1YmU3ZDg5
NWYyMDRiMDdjYzViZjQ0Li5iOGM1MTA3NTYwYjg3ZmI3MWJhYzA1OTcxNmUzZjhiY2Y3MTE5ZjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtMzI2LDcgKzMyNiw3IEBACiAgICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2Nh
bGU6bGF5ZXJUcmVlVHJhbnNhY3Rpb24ubWluaW11bVNjYWxlRmFjdG9yKCldOwogICAgIFtfc2Ny
b2xsVmlldyBzZXRNYXhpbXVtWm9vbVNjYWxlOmxheWVyVHJlZVRyYW5zYWN0aW9uLm1heGltdW1T
Y2FsZUZhY3RvcigpXTsKICAgICBbX3Njcm9sbFZpZXcgc2V0Wm9vbUVuYWJsZWQ6bGF5ZXJUcmVl
VHJhbnNhY3Rpb24uYWxsb3dzVXNlclNjYWxpbmcoKV07Ci0gICAgaWYgKCFbX3Njcm9sbFZpZXcg
aXNab29taW5nXSAmJiAhW19zY3JvbGxWaWV3IGlzWm9vbUJvdW5jaW5nXSkKKyAgICBpZiAoIWxh
eWVyVHJlZVRyYW5zYWN0aW9uLnNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSAmJiAhW19zY3JvbGxW
aWV3IGlzWm9vbWluZ10gJiYgIVtfc2Nyb2xsVmlldyBpc1pvb21Cb3VuY2luZ10pCiAgICAgICAg
IFtfc2Nyb2xsVmlldyBzZXRab29tU2NhbGU6bGF5ZXJUcmVlVHJhbnNhY3Rpb24ucGFnZVNjYWxl
RmFjdG9yKCldOwogCiAgICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKQEAgLTM3NCw3ICszNzQs
NyBAQAogCiAtICh2b2lkKV9kaWRGaW5pc2hTY3JvbGxpbmcKIHsKLSAgICBbc2VsZiBfdXBkYXRl
VmlzaWJsZUNvbnRlbnRSZWN0c107CisgICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVj
dHNXaXRoU3RhYmxlU3RhdGU6WUVTXTsKICAgICBbX2NvbnRlbnRWaWV3IGRpZEZpbmlzaFNjcm9s
bGluZ107CiB9CiAKQEAgLTM5NywxOCArMzk3LDE4IEBACiAKIC0gKHZvaWQpc2Nyb2xsVmlld0Rp
ZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewotICAgIFtzZWxmIF91cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzXTsKKyAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0
c1dpdGhTdGFibGVTdGF0ZTpOT107CiB9CiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFpvb206KFVJ
U2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKIHsKLSAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRl
bnRSZWN0c107CisgICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxl
U3RhdGU6Tk9dOwogfQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRab29taW5nOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWaWV3OihVSVZpZXcgKil2aWV3IGF0U2NhbGU6KENHRmxv
YXQpc2NhbGUKIHsKICAgICBBU1NFUlQoc2Nyb2xsVmlldyA9PSBfc2Nyb2xsVmlldyk7Ci0gICAg
W3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNdOworICAgIFtzZWxmIF91cGRhdGVWaXNp
YmxlQ29udGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOllFU107CiAgICAgW19jb250ZW50VmlldyBk
aWRab29tVG9TY2FsZTpzY2FsZV07CiB9CiAKQEAgLTQyMCwxMCArNDIwLDEwIEBACiAgICAgICAg
IFtfY29udGVudFZpZXcgc2V0TWluaW11bUxheW91dFNpemU6Ym91bmRzLnNpemVdOwogICAgIFtf
c2Nyb2xsVmlldyBzZXRGcmFtZTpib3VuZHNdOwogICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11
bVNpemU6Ym91bmRzLnNpemVdOwotICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3Rz
XTsKKyAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhTdGFibGVTdGF0ZTpZ
RVNdOwogfQogCi0tICh2b2lkKV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzCistICh2b2lkKV91
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOihCT09MKWlzU3RhdGVTdGFi
bGUKIHsKICAgICBDR1JlY3QgZnVsbFZpZXdSZWN0ID0gc2VsZi5ib3VuZHM7CiAgICAgQ0dSZWN0
IHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpmdWxs
Vmlld1JlY3QgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV07CkBAIC00MzMsNyArNDMzLDcgQEAK
IAogICAgIENHRmxvYXQgc2NhbGVGYWN0b3IgPSBbX3Njcm9sbFZpZXcgem9vbVNjYWxlXTsKIAot
ICAgIFtfY29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dmlzaWJsZVJlY3RJbkNvbnRl
bnRDb29yZGluYXRlcyB1bm9ic2N1cmVkUmVjdDp1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3Jk
aW5hdGVzIHNjYWxlOnNjYWxlRmFjdG9yXTsKKyAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZp
c2libGVSZWN0OnZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6
dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3RvciBpblN0
YWJsZVN0YXRlOmlzU3RhdGVTdGFibGVdOwogfQogCiAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRX
aXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KEJP
T0wpYWRqdXN0U2Nyb2xsVmlldwpAQCAtNjk2LDcgKzY5Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2Vi
Q29yZTo6TGF5b3V0TWlsZXN0b25lcyBsYXlvdXRNaWxlc3RvbmVzKF9XS1JlbmRlcmluZ1Byb2dy
ZXNzRXZlCiAgICAgQVNTRVJUKG9ic2N1cmVkSW5zZXRzLmJvdHRvbSA+PSAwKTsKICAgICBBU1NF
UlQob2JzY3VyZWRJbnNldHMucmlnaHQgPj0gMCk7CiAgICAgX29ic2N1cmVkSW5zZXRzID0gb2Jz
Y3VyZWRJbnNldHM7Ci0gICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNdOworICAg
IFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOiFfaXNDaGFu
Z2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseV07CiB9CiAKIC0gKFVJQ29sb3IgKilfcGFn
ZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yCkBAIC03MjgsNiArNzI4LDcgQEAgc3RhdGljIGlubGlu
ZSBXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzIGxheW91dE1pbGVzdG9uZXMoX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmUKIHsKICAgICBBU1NFUlQoX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVy
YWN0aXZlbHkpOwogICAgIF9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5ID0g
Tk87CisgICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6
WUVTXTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1ZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9X
S1ZpZXdJT1MubW0KaW5kZXggZDVlY2M0NzFkOGY2NmIzNjE4ZWRmNmRhOTU1OTA1M2I5YTkxZTE1
MS4uNTRhMzIxNTQ4NmMzNzdiMmZhYWEwMTczMDc1OTkzNzlhYzhhODljNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQpAQCAtMjYzLDcgKzI2Myw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICAgICBDR0Zsb2F0IHNjYWxlRmFjdG9yID0g
W19zY3JvbGxWaWV3IHpvb21TY2FsZV07CiAKLSAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZp
c2libGVSZWN0OnZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6
dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3Rvcl07Cisg
ICAgW19jb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp2aXNpYmxlUmVjdEluQ29udGVu
dENvb3JkaW5hdGVzIHVub2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRp
bmF0ZXMgc2NhbGU6c2NhbGVGYWN0b3IgaW5TdGFibGVTdGF0ZTpZRVNdOwogfQogCiAtICh2b2lk
KV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFk
anVzdFNjcm9sbFZpZXc6KEJPT0wpYWRqdXN0U2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCmluZGV4IDJkOTY1ZDY1MzY2MDMyZWE2NzY4
NzNmOTA5MTdhNjA1MWViMDAzNDQuLmMxOTIxYzY4NDM4NTRhNzA3MWE2YzcxYTg2NzE3OGEwYWVl
ZDI1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM5LDcgKzM5LDcgQEAgRHJhd2luZ0FyZWFQcm94eTo6RHJhd2luZ0FyZWFQcm94eShEcmF3
aW5nQXJlYVR5cGUgdHlwZSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHIKICAgICA6IG1fdHlwZSh0
eXBlKQogICAgICwgbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zaXplKHdl
YlBhZ2VQcm94eS0+dmlld1NpemUoKSkKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgLCBtX2V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJkRyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQpCiAj
ZW5kaWYKIHsKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRTaXpl
KGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEludFNpemUmIGxheWVyUG9zaXRpb24KICAgICBz
aXplRGlkQ2hhbmdlKCk7CiB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShN
QUMpCiB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgZXhwb3NlZFJlY3QpCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS0+aXNWYWxpZCgpKQpA
QCAtODUsNiArODUsNyBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hhbmdl
ZFRpbWVyRmlyZWQoKQogICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6RHJhd2luZ0FyZWE6OlNldEV4cG9zZWRSZWN0KG1fZXhwb3NlZFJlY3QpLCBtX3dlYlBhZ2VQ
cm94eS0+cGFnZUlEKCkpOwogICAgIG1fbGFzdFNlbnRFeHBvc2VkUmVjdCA9IG1fZXhwb3NlZFJl
Y3Q7CiB9CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHk6
OnNldEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlv
blJlY3QpCiB7CkBAIC05Myw2ICs5NCw1IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eTo6c2V0Q3Vz
dG9tRml4ZWRQb3NpdGlvblJlY3QoY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uCiAKICAg
ICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpT
ZXRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChmaXhlZFBvc2l0aW9uUmVjdCksIG1fd2ViUGFnZVBy
b3h5LT5wYWdlSUQoKSk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCAxZDcyYzBmODVi
NTM5MGNhMjIwOTE5M2U5MDgwNDQ2N2UwYmIzM2M2Li5mNTkzYmQ1ZTEyZjk3ZjVlMWI2ZTdjNzg5
MWYxYzgxYTkxYzI1YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5LmgKQEAgLTczLDE0ICs3MywxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFk
anVzdFRyYW5zaWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9p
bnQpIHsgfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZp
cnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9z
ZWRSZWN0OyB9CisjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGV4cG9zZWRS
ZWN0Q2hhbmdlZFRpbWVyRmlyZWQoKTsKICAgICAKICAgICB2b2lkIHNldEN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3IoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hv
d0RlYnVnSW5kaWNhdG9yKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdEZWJ1
Z0luZGljYXRvcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTExMSw5ICsxMTQsMTEg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlR2VvbWV0cnkoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgbmV3SW50cmluc2ljQ29udGVudFNpemUpIHsgfQogCisjaWYgUExBVEZPUk0o
TUFDKQogICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHk+IG1fZXhwb3NlZFJlY3RD
aGFuZ2VkVGltZXI7CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3NlZFJlY3Q7CiAgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG1fbGFzdFNlbnRFeHBvc2VkUmVjdDsKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBlYmVlMmE3YzVhNDY3MDgzOGFmOTJiZTc2MzA5Y2M2ZTM0NTU2ZGIzLi5hMGY2
YWY4MjJjNTg3OTBmZGVmZDAwYTExMGIyYjY1Y2JiODg4ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQ
YWdlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgiCkBAIC00NTEsOCArNDUy
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcm
IGNvbW1hbmROYW1lKTsKICAgICB2b2lkIHZhbGlkYXRlQ29tbWFuZChjb25zdCBTdHJpbmcmIGNv
bW1hbmROYW1lLCBQYXNzUmVmUHRyPFZhbGlkYXRlQ29tbWFuZENhbGxiYWNrPik7CiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRl
bnRSZWN0KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCk7CisgICAgZG91YmxlIGRpc3BsYXll
ZENvbnRlbnRTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZS5zY2FsZSgpOyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29u
dGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUu
ZXhwb3NlZFJlY3QoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlLnVub2JzY3VyZWRSZWN0KCk7IH0KKworICAgIHZvaWQgdXBkYXRlVmlzaWJsZUNvbnRlbnRS
ZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJik7CiAgICAgdm9pZCBzZXRW
aWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CiAgICAgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbiYpOwogCkBAIC04NDcsNyArODUxLDYgQEAgcHVibGljOgogCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmco
KTsKLSAgICB2b2lkIGRpZEZpbmlzaFpvb21pbmcoZmxvYXQgbmV3U2NhbGUpOwogCiAgICAgdm9p
ZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1aW50
NjRfdCYgcmVxdWVzdElEKTsKIApAQCAtMTI0MCw3ICsxMjQzLDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKElPUykKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5PiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0
IG1fdW5vYnNjdXJlZFJlY3Q7CisgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBtX2xh
c3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSUJSQVRJ
T04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4
IGQ1MGVkODQzYzIwMTI5MTI2MDdmMTMwOTA2YmQ3Njk4N2RlMDM2NTMuLjVlOTdiNjMxYmJjMjYy
Y2M2NDZhYzBkZjUzOTEzNGIzODY2YmY3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC02Niw3ICs2Niw3IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmln
dXJhdGlvbjsKIAogLSAodm9pZClzZXRNaW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7CiAtICh2b2lk
KXNldE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpc2l6ZTsKLS0gKHZvaWQpZGlkVXBkYXRlVmlz
aWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2Jz
Y3VyZWRSZWN0IHNjYWxlOihDR0Zsb2F0KXNjYWxlOworLSAodm9pZClkaWRVcGRhdGVWaXNpYmxl
UmVjdDooQ0dSZWN0KXZpc2libGVSZWN0IHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXJl
ZFJlY3Qgc2NhbGU6KENHRmxvYXQpc2NhbGUgaW5TdGFibGVTdGF0ZTooQk9PTClpc1N0YWJsZVN0
YXRlOwogCiAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZzsKIC0gKHZvaWQpZGlkWm9vbVRvU2Nh
bGU6KENHRmxvYXQpc2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcubW0KaW5kZXggNDIxMGY2MTk1NTQwYmY1YjU4ZDNmZjg0YzQ3YjdjMDcyZjhmMjJh
MS4uYWY5OGJiYmFlNmMyNjg5YWUxZTZiY2RjNDhjNzc4MGE3NTc2ZjUyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ2LDE4ICsxNDYsMjEg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4gW3NlbGYgaXNFZGl0YWJsZV07
CiB9CiAKLS0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdCB1
bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRSZWN0IHNjYWxlOihDR0Zsb2F0KXNjYWxl
CistICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNj
dXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9hdClzY2FsZSBpblN0
YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGUKIHsKLSAgICBfcGFnZS0+c2V0VW5vYnNjdXJl
ZENvbnRlbnRSZWN0KHVub2JzY3VyZWRSZWN0KTsKLSAgICBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSgpLT5zY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmco
X3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+cm9vdFNjcm9sbGluZ05vZGVJRCgp
LCByb3VuZGVkSW50UG9pbnQodW5vYnNjdXJlZFJlY3Qub3JpZ2luKSk7CisgICAgZG91YmxlIHNj
YWxlTm9pc2VUaHJlc2hvbGQgPSAwLjAwMDU7CisgICAgaWYgKCFpc1N0YWJsZVN0YXRlICYmIGFi
cyhzY2FsZSAtIF9wYWdlLT5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSkgPCBzY2FsZU5vaXNlVGhy
ZXNob2xkKSB7CisgICAgICAgIC8vIFRpbnkgY2hhbmdlcyBvZiBzY2FsZSBkdXJpbmcgaW50ZXJh
Y3RpdmUgem9vbSBjYXVzZSBjb250ZW50IHRvIGp1bXAgYnkgb25lIHBpeGVsLCBjcmVhdGluZwor
ICAgICAgICAvLyB2aXN1YWwgbm9pc2UuIFdlIGZpbHRlciB0aG9zZSB1c2VsZXNzIHVwZGF0ZXMu
CisgICAgICAgIHNjYWxlID0gX3BhZ2UtPmRpc3BsYXllZENvbnRlbnRTY2FsZSgpOworICAgIH0K
KyAgICBfcGFnZS0+dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvKHZpc2libGVSZWN0LCB1bm9ic2N1cmVkUmVjdCwgc2NhbGUpKTsKIAogICAgIGlm
IChhdXRvIGRyYXdpbmdBcmVhID0gX3BhZ2UtPmRyYXdpbmdBcmVhKCkpIHsKLSAgICAgICAgRmxv
YXRSZWN0IGV4cG9zZWRSZWN0ID0gdmlzaWJsZVJlY3Q7Ci0gICAgICAgIGV4cG9zZWRSZWN0LnNj
YWxlKHNjYWxlKTsKLSAgICAgICAgZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRSZWN0KGV4cG9zZWRS
ZWN0KTsKKyAgICAgICAgRmxvYXRSZWN0IGZpeGVkUG9zUmVjdCA9IFtzZWxmIGZpeGVkUG9zaXRp
b25SZWN0RnJvbUV4cG9zZWRSZWN0OnVub2JzY3VyZWRSZWN0IHNjYWxlOnNjYWxlXTsKKyAgICAg
ICAgZHJhd2luZ0FyZWEtPnNldEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGZpeGVkUG9zUmVjdCk7
CisgICAgICAgIGRyYXdpbmdBcmVhLT51cGRhdGVEZWJ1Z0luZGljYXRvcigpOwogICAgIH0KLQot
ICAgIFtzZWxmIF91cGRhdGVGaXhlZFBvc2l0aW9uUmVjdF07CiB9CiAKIC0gKHZvaWQpc2V0TWlu
aW11bVNpemU6KENHU2l6ZSlzaXplCkBAIC0xNzIsMTUgKzE3NSw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAgICAgcmV0dXJuIGV4cG9zZWRSZWN0OwogfQogCi0tICh2b2lkKV91cGRhdGVG
aXhlZFBvc2l0aW9uUmVjdAotewotICAgIGF1dG8gZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2lu
Z0FyZWEoKTsKLSAgICBpZiAoIWRyYXdpbmdBcmVhKQotICAgICAgICByZXR1cm47Ci0gICAgRmxv
YXRSZWN0IGZpeGVkUG9zUmVjdCA9IFtzZWxmIGZpeGVkUG9zaXRpb25SZWN0RnJvbUV4cG9zZWRS
ZWN0Ol9wYWdlLT51bm9ic2N1cmVkQ29udGVudFJlY3QoKSBzY2FsZTpfcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCldOwotICAgIGRyYXdpbmdBcmVhLT5zZXRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChm
aXhlZFBvc1JlY3QpOwotfQotCiAtICh2b2lkKXNldE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUp
c2l6ZQogewogICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0
U2l6ZShJbnRTaXplKENHQ2VpbGluZyhzaXplLndpZHRoKSwgQ0dDZWlsaW5nKHNpemUuaGVpZ2h0
KSkpOwpAQCAtMjEwLDcgKzIwNCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZv
aWQpZGlkWm9vbVRvU2NhbGU6KENHRmxvYXQpc2NhbGUKIHsKLSAgICBfcGFnZS0+ZGlkRmluaXNo
Wm9vbWluZyhzY2FsZSk7CiAgICAgW3NlbGYgX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZ107CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
aW5kZXggMDI2YTk2YTUwODEzZjNkZTZmZTI0Njk3NTFhZjUyNGIwY2I1YWY4Yy4uYTlmNzIyOGNk
NzBmZTNkODY4ZTI4N2M4NWI1NWU1ZTFiZjY0OTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lt
cG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiUGFnZUNsaWVudC5oIgor
I2ltcG9ydCAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUlu
dGVyZmFjZUlPUy5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCkBAIC0yMzAsMTQgKzIz
MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2so
Y29uc3QgU3RyaW5nJiBiZWZvcmVUZXh0LCBjb25zdAogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2Fs
bGJhY2tXaXRoUmV0dXJuVmFsdWUoYmVmb3JlVGV4dCwgbWFya2VkVGV4dCwgc2VsZWN0ZWRUZXh0
LCBhZnRlclRleHQsIGxvY2F0aW9uLCBsZW5ndGgpOwogfQogCi1jb25zdCBGbG9hdFJlY3QmIFdl
YlBhZ2VQcm94eTo6dW5vYnNjdXJlZENvbnRlbnRSZWN0KCkgY29uc3QKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8mIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pCiB7Ci0gICAgcmV0dXJuIG1f
dW5vYnNjdXJlZFJlY3Q7Ci19Ci0KLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRVbm9ic2N1cmVkQ29u
dGVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCkKLXsKLSAgICBtX3Vub2Jz
Y3VyZWRSZWN0ID0gdW5vYnNjdXJlZFJlY3Q7CisgICAgaWYgKHZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8gPT0gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKQorICAgICAgICByZXR1
cm47CisgICAgbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlID0gdmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbzsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlZpZXdVcGRhdGVE
aXNwYXRjaGVyOjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUobV9wYWdlSUQsIHZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8pLCAwKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdw
b3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHNpemUpCkBAIC00NTUsMTIgKzQ1NCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRV
c2VyVHJpZ2dlcmVkWm9vbWluZygpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OldpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCksIG1fcGFnZUlEKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaFpvb21pbmcoZmxvYXQgbmV3U2NhbGUpCi17Ci0gICAg
bV9wYWdlU2NhbGVGYWN0b3IgPSBuZXdTY2FsZTsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkRmluaXNoWm9vbWluZyhuZXdTY2FsZSksIG1fcGFnZUlEKTsKLX0KLQog
dm9pZCBXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgcG9zaXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCiB7CiAgICAgc3RhdGlj
IHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
CmluZGV4IDdhYTU5ZGQ5NzhhYmU4NTJiZmRhZjg5YWE4YjE2YjNhNjAxMTRlZTguLmRjZGU3NGFi
OWQzNWExZGMyNGEzMjNjMmM0ZWU5OWY3ZjQ1YjkzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTQ5LDExICs0OSwxNSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VT
Y2FsZUZhY3RvckRpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVHZW9tZXRyeSgpIG92ZXJyaWRlOwogCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNjYWxlZEV4
cG9zZWRSZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBzaG93RGVidWdJbmRpY2F0b3IoYm9vbCk7CiAK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICBmbG9hdCBpbmRp
Y2F0b3JTY2FsZShXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9yKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRh
dGVEZWJ1Z0luZGljYXRvcihXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSwgYm9vbCByb290
TGF5ZXJDaGFuZ2VkLCBmbG9hdCBzY2FsZSk7CiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRv
clBvc2l0aW9uKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggOWI5
YzM3ZDMwOGI0YTY1NTEwMTZkMzNlOTQ1ZTFjOWViYzNiNjRiZi4uNmQ1NmYxMGIzNTlhNzA1YmRl
MzFlYTg1N2IyZjJmYjRhMmI4NWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03
OCw2ICs3OCwxOCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZFVw
ZGF0ZUdlb21ldHJ5KCkKICAgICAgICAgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7CiB9CiAKK0Zsb2F0
UmVjdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzY2FsZWRFeHBvc2VkUmVjdCgp
IGNvbnN0Cit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBtX3dlYlBhZ2VQcm94eS0+
ZXhwb3NlZENvbnRlbnRSZWN0KCk7CisjZWxzZQorICAgIEZsb2F0UmVjdCBzY2FsZWRFeHBvc2Vk
UmVjdCA9IGV4cG9zZWRSZWN0KCk7CisgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJv
eHktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxl
LCBzY2FsZSk7CisgICAgcmV0dXJuIHNjYWxlZEV4cG9zZWRSZWN0OworI2VuZGlmCit9CisKIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFVwZGF0ZUdlb21ldHJ5KCkK
IHsKICAgICBtX2xhc3RTZW50U2l6ZSA9IG1fc2l6ZTsKQEAgLTEwOSwyMSArMTIxLDI4IEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zCiB9CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJ
bnNldCA9IDEwOwotc3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvclRvcEluc2V0ID0gMTAwOwog
CisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjpzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHIpCiB7CiAgICAgRHJh
d2luZ0FyZWFQcm94eTo6c2V0RXhwb3NlZFJlY3Qocik7CiAgICAgdXBkYXRlRGVidWdJbmRpY2F0
b3JQb3NpdGlvbigpOwogfQorI2VuZGlmCiAKIEZsb2F0UG9pbnQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9jYXRpb24oKSBjb25zdAogewogICAgIGlmIChtX3dl
YlBhZ2VQcm94eS0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpIHsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgICAgIEZsb2F0UG9pbnQgdGlsZWRNYXBMb2NhdGlvbiA9IG1fd2ViUGFnZVByb3h5LT51bm9i
c2N1cmVkQ29udGVudFJlY3QoKS5sb2NhdGlvbigpOworICAgICAgICBmbG9hdCBhYnNvbHV0ZUlu
c2V0ID0gaW5kaWNhdG9ySW5zZXQgLyBtX3dlYlBhZ2VQcm94eS0+ZGlzcGxheWVkQ29udGVudFNj
YWxlKCk7CisgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGFic29sdXRlSW5z
ZXQsIGFic29sdXRlSW5zZXQpOworI2Vsc2UKICAgICAgICAgRmxvYXRQb2ludCB0aWxlZE1hcExv
Y2F0aW9uID0gZXhwb3NlZFJlY3QoKS5sb2NhdGlvbigpOwotICAgICAgICB0aWxlZE1hcExvY2F0
aW9uICs9IEZsb2F0U2l6ZShpbmRpY2F0b3JJbnNldCwgaW5kaWNhdG9yVG9wSW5zZXQpOwotICAg
ICAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS0+cGFnZVNjYWxlRmFjdG9yKCk7
CisgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGluZGljYXRvckluc2V0LCBp
bmRpY2F0b3JJbnNldCk7CisgICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIG1fd2ViUGFnZVByb3h5
LT5wYWdlU2NhbGVGYWN0b3IoKTs7CiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24uc2NhbGUoc2Nh
bGUsIHNjYWxlKTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gdGlsZWRNYXBMb2NhdGlvbjsKICAg
ICB9CiAgICAgCkBAIC0xNDYsMTIgKzE2NSwxOCBAQCBmbG9hdCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5OjppbmRpY2F0b3JTY2FsZShJbnRTaXplIGNvbnRlbnRzU2l6ZSkgY29ucwog
ICAgIGZsb2F0IHNjYWxlID0gMTsKICAgICBpZiAoIWNvbnRlbnRzU2l6ZS5pc0VtcHR5KCkpIHsK
ICAgICAgICAgZmxvYXQgd2lkdGhTY2FsZSA9IHN0ZDo6bWluPGZsb2F0Pigodmlld1NpemUud2lk
dGgoKSAtIDIgKiBpbmRpY2F0b3JJbnNldCkgLyBjb250ZW50c1NpemUud2lkdGgoKSwgMC4wNSk7
Ci0gICAgICAgIHNjYWxlID0gc3RkOjptaW4od2lkdGhTY2FsZSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHZpZXdTaXplLmhlaWdodCgpIC0gaW5kaWNhdG9yVG9wSW5zZXQgLSBpbmRpY2F0b3JJbnNldCkg
LyBjb250ZW50c1NpemUuaGVpZ2h0KCkpOworICAgICAgICBzY2FsZSA9IHN0ZDo6bWluKHdpZHRo
U2NhbGUsIHN0YXRpY19jYXN0PGZsb2F0Pih2aWV3U2l6ZS5oZWlnaHQoKSAtIDIgKiBpbmRpY2F0
b3JJbnNldCkgLyBjb250ZW50c1NpemUuaGVpZ2h0KCkpOwogICAgIH0KICAgICAKICAgICByZXR1
cm4gc2NhbGU7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBk
YXRlRGVidWdJbmRpY2F0b3IoKQoreworICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxzbyB1cGRh
dGUgbGl2ZSBpbmZvcm1hdGlvbiBkdXJpbmcgc2NhbGUuCisgICAgdXBkYXRlRGVidWdJbmRpY2F0
b3JQb3NpdGlvbigpOworfQorCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OnVwZGF0ZURlYnVnSW5kaWNhdG9yKEludFNpemUgY29udGVudHNTaXplLCBib29sIHJvb3RMYXll
ckNoYW5nZWQsIGZsb2F0IHNjYWxlKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0aGUgbGFz
dCBzdWJsYXllci4KQEAgLTE3OCwxMCArMjAzLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwK
ICAgICBbbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyIHNldEJvcmRlcldpZHRoOmNvdW50ZXJT
Y2FsZWRCb3JkZXJdOwogCiAgICAgaWYgKG1fd2ViUGFnZVByb3h5LT5kZWxlZ2F0ZXNTY3JvbGxp
bmcoKSkgewotICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkRXhwb3NlZFJlY3QgPSBleHBvc2VkUmVj
dCgpOwotICAgICAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS0+cGFnZVNjYWxl
RmFjdG9yKCk7Ci0gICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlLCBzY2FsZSk7
Ci0KKyAgICAgICAgRmxvYXRSZWN0IHNjYWxlZEV4cG9zZWRSZWN0ID0gdGhpcy0+c2NhbGVkRXhw
b3NlZFJlY3QoKTsKICAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRQb3Np
dGlvbjpzY2FsZWRFeHBvc2VkUmVjdC5sb2NhdGlvbigpXTsKICAgICAgICAgW21fZXhwb3NlZFJl
Y3RJbmRpY2F0b3JMYXllciBzZXRCb3VuZHM6RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2NhbGVk
RXhwb3NlZFJlY3Quc2l6ZSgpKV07CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZWVlZGVhYzZmZDY5YjVm
YzZhZjA3NzNhN2EzODdiZDc0YjY4MGEzLi4yZTVjYmE0YzViNTMyYmMyNTkyNDM4ZTAwMDgwMjdi
ZDVkNjY0YjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00NDgsNiArNDQ4LDEyIEBACiAJCTFRUTQxN0NCMTJDMDBDQ0EwMDJC
RTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hl
Y2tlckNvbXBsZXRpb24uaCAqLzsgfTsKIAkJMVpaNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRl
eHRDaGVja2VyQ29tcGxldGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQkI0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21w
bGV0aW9uLmNwcCAqLzsgfTsKIAkJMjYzMTcyQ0YxOEI0Njk0OTAwNjVCOUMzIC8qIE5hdGl2ZVdl
YlRvdWNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MzE3MkNFMThCNDY5NDkwMDY1QjlDMyAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50LmggKi87
IH07CisJCTI2ODQwNTQ0MThCODVBNjMwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
Njg0MDU0MjE4Qjg1QTYzMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5o
ICovOyB9OworCQkyNjg0MDU0OTE4Qjg1RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNo
ZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2ODQwNTQ4MThCODVGRjcwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbiAqLzsgfTsKKwkJMjY4NDA1NEMxOEI4NkMzNTAwMjJDMzhCIC8qIFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjY4NDA1NEExOEI4NjZGRjAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uY3BwICovOyB9OworCQkyNjg0MDU0RjE4Qjg2QzhFMDAyMkMzOEIgLyog
Vmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjY4NDA1NDUxOEI4NUU3RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNw
YXRjaGVyLmNwcCAqLzsgfTsKKwkJMjY4NDA1NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRh
dGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODQwNTUwMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBk
YXRlRGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTI2ODQwNTUzMThCODZF
RDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0MDU1MTE4Qjg2RUQ2MDAyMkMz
OEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oICovOyB9OwogCQkyNkY5QTgzQjE4
QTM0NjgxMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGOUE4M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdL
V2ViVmlld1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkw
RjQyNzExNzJBMEM3NDAwOTM5RkYwIC8qIENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsK
IAkJMjkzRUJFQUIxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYx
IC8qIFdLRE9NVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0yMTY0LDYgKzIxNzAsMTMgQEAKIAkJMUZCMDBBQzYxODVGNzY0NjAwMTkxNDJF
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MzE3MkNFMThCNDY5NDkwMDY1QjlDMyAv
KiBOYXRpdmVXZWJUb3VjaEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5hdGl2ZVdlYlRvdWNoRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY2
NTlBQTAxODVGQUFFRDAwNDMwM0REIC8qIEluZm8taU9TLnBsaXN0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSAi
SW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU0MjE4
Qjg1QTYzMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2ODQwNTQ1MThCODVFN0UwMDIyQzM4QiAv
KiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTI2ODQwNTQ2MThCODVFN0UwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3VXBkYXRlRGlzcGF0Y2hlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU0ODE4Qjg1RkY3MDAyMkMzOEIg
LyogVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTI2ODQwNTRBMThCODY2RkYwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyNjg0MDU1MDE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlld1Vw
ZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gIlZpZXdVcGRhdGVEaXNw
YXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTI2ODQwNTUxMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZXdVcGRhdGVEaXNwYXRjaGVy
TWVzc2FnZXMuaDsgcGF0aCA9ICJWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmgiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY5QTgzQTE4QTM0NjNGMDBBRUI4OEEgLyogV0tX
ZWJWaWV3UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGls
ZFByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENo
aWxkUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkz
RUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0RPTVRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM5NTcsNiArMzk3MCw4IEBACiAJCQkJMUFDMTMzNjUxODU2NUI1NzAwRjNFQzA1IC8qIFVzZXJE
YXRhLmNwcCAqLywKIAkJCQkxQUMxMzM2NjE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuaCAq
LywKIAkJCQlCQ0IwQjBERjEyMzA1QUIxMDBCMTM0MUUgLyogVXNlck1lc3NhZ2VDb2RlcnMuaCAq
LywKKwkJCQkyNjg0MDU0QTE4Qjg2NkZGMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5jcHAgKi8sCisJCQkJMjY4NDA1NDIxOEI4NUE2MzAwMjJDMzhCIC8qIFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uaCAqLywKIAkJCQkxQTBGMjlDOTEyMEIzNzE2MDA1M0QxQjkg
LyogVmlzaXRlZExpbmtUYWJsZS5jcHAgKi8sCiAJCQkJMUEwRjI5Q0ExMjBCMzcxNjAwNTNEMUI5
IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCAqLywKIAkJCQlCQzMyOUQ5OTE2QUNDRTk5MDAzMTZERTIg
LyogV2ViQXJjaGl2ZS5jcHAgKi8sCkBAIC01MDgxLDYgKzUwOTYsOSBAQAogCQkJCTJEODE5Qjk5
MTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcCAqLywK
IAkJCQkyRDgxOUI5QTE4NjI3NUIzMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxl
Y3Rvci5oICovLAogCQkJCTJEODE5QjlCMTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdl
b21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluICovLAorCQkJCTI2ODQwNTQ1MThCODVFN0UwMDIy
QzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAgKi8sCisJCQkJMjY4NDA1NDYxOEI4NUU3
RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLmggKi8sCisJCQkJMjY4NDA1NDgxOEI4
NUZGNzAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLm1lc3NhZ2VzLmluICovLAogCQkJ
CUJDNzJCOUY4MTFFNjQ3NkIwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAg
Ki8sCiAJCQkJQkM3MkI5RjkxMUU2NDc2QjAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFBy
b3h5LmggKi8sCiAJCQkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51
LmNwcCAqLywKQEAgLTYxMjksNiArNjE0Nyw4IEBACiAJCQkJMUFCMzFBOTUxNkJDNjg4MTAwRjZE
QkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQkyRDFCNUQ1QjE4NTg2OUM4
MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkyRDFCNUQ1QzE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVz
c2FnZXMuaCAqLywKKwkJCQkyNjg0MDU1MDE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURp
c3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTI2ODQwNTUxMThCODZFRDYwMDIy
QzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggKi8sCiAJCQkJNTEyRTM1Njgx
MzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQk1MTJFMzU2OTEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5
QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKQEAgLTY3MDMsNiArNjcyMyw3IEBACiAJCQkJNTEwNjREMzYxODk3ODFDNDAwNEIyRkVCIC8q
IFNRTGl0ZUlEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0QxMEY0Mzc4RDAw
NThDMTVBIC8qIFdlYkVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgx
ODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTI2ODQwNTUzMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRl
RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTZBNEE1RDEyMEEyQ0NE
MDBDMDVCN0YgLyogQVBJRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDMzRjBEMTEzQzUz
REQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREI5MTBG
NDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC02ODEyLDYgKzY4
MzMsNyBAQAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdl
YlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzNzIxODU2NkM3QzAw
RjNFQzA1IC8qIEFQSUZyYW1lSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyNjg0MDU0NDE4
Qjg1QTYzMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzc5NDg0MDQxNTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUUzNTFGNjE4MEY1Qzc1MDBFNTNCRTkgLyogV2ViSURCRmFj
dG9yeUJhY2tlbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJD
NyAvKiBXZWJSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzQwOCw2ICs3NDMwLDcg
QEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlF
MUQyNkE1MTE3NTk2NEQ3MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291
cmNlcyAqLywKKwkJCQkyNjg0MDU0OTE4Qjg1RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3Bh
dGNoZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJCUUxMzNGRDhBMTQyM0REN0Yw
MEZDN0JGQiAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC03ODQ4LDYgKzc4NzEsNyBAQAog
CQkJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMz
NzUgLyogSW5qZWN0ZWRCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEy
RjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTI2ODQwNTRDMThCODZDMzUwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEJFRUFDMTIwQTBBNUYw
MEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTEyOTM1RTMxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRN
ZW51Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENjdEMzBFMTVDMDhGOUEwMDg0M0FE
RiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTgwNzIsNiArODA5Niw3IEBACiAJCQkJQkM4MjgzNjUxNkIzNTRGNjAwQTI3
OEZFIC8qIFdlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTI1
QzVGMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQzgyODM5OTE2QjQ4REMwMDBBMjc4RkUgLyogV2ViQ29udGVudFNlcnZp
Y2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMjY4NDA1NEYxOEI4NkM4RTAwMjJD
MzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjlF
MjQ0MTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMxQTUwNUY5MTY4MDAyNTUwMEE5MzBFQiAvKiBXZWJDb250ZXh0Q2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMDlCOEY4MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVj
dGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgxNDUsNiArODE3MCw3IEBACiAJCQkJ
QkMwRTYwNzQxMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkMxQkUxRjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0
aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzgwMUMwOTkxNDIyOTBDNDAwRkFG
OUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjY4NDA1NTIx
OEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUIyNEFBMTMyRTA5NzIwMDA2NUEwQyAvKiBXZWJJY29u
RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2
IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2
NDEzMkVDNUI5MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAyOGNmOGUzYmIw
MzVjNjE1MTViZjg5OGFhOGI3MGQxZTA2Nzk0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKQEAgLTAs
MCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJW
aWV3VXBkYXRlRGlzcGF0Y2hlci5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAi
Vmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1Bhc3NSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdVcGRhdGVE
aXNwYXRjaGVyOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdVcGRh
dGVEaXNwYXRjaGVyKTsKK30KKworVmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNw
YXRjaGVyKCkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuVmlld1VwZGF0ZURpc3BhdGNoZXIiKSkKK3sKK30KKworVmlld1VwZGF0ZURpc3BhdGNoZXI6
On5WaWV3VXBkYXRlRGlzcGF0Y2hlcigpCit7Cit9CisKK3ZvaWQgVmlld1VwZGF0ZURpc3BhdGNo
ZXI6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sK
KyAgICBjb25uZWN0aW9uLT5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZp
ZXdVcGRhdGVEaXNwYXRjaGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUuZ2V0KCks
IHRoaXMpOworfQorCit2b2lkIFZpZXdVcGRhdGVEaXNwYXRjaGVyOjp2aXNpYmxlQ29udGVudFJl
Y3RVcGRhdGUodWludDY0X3QgcGFnZUlELCBjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvJiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKQoreworICAgIHsKKyAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YU11dGV4KTsKKyAgICAgICAgbV9sYXRlc3RVcGRhdGUuc2V0
KHBhZ2VJRCwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk7CisgICAgfQorICAgIFJ1bkxv
b3A6Om1haW4oKS0+ZGlzcGF0Y2goYmluZCgmVmlld1VwZGF0ZURpc3BhdGNoZXI6OmRpc3BhdGNo
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLCB0aGlzKSk7Cit9CisKK3ZvaWQgVmlld1VwZGF0ZURp
c3BhdGNoZXI6OmRpc3BhdGNoVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKCkKK3sKKyAgICBIYXNo
TWFwPHVpbnQ2NF90LCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvPiBsb2NhbENvcHk7Cisg
ICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhTXV0ZXgpOworICAgICAgICBs
b2NhbENvcHkuc3dhcChtX2xhdGVzdFVwZGF0ZSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBp
dGVyYXRvciA6IGxvY2FsQ29weSkgeworICAgICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IFdl
YlByb2Nlc3M6OnNoYXJlZCgpLndlYlBhZ2UoaXRlcmF0b3Iua2V5KSkKKyAgICAgICAgICAgIHdl
YlBhZ2UtPnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoaXRlcmF0b3IudmFsdWUpOworICAgIH0K
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURp
c3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRl
RGlzcGF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YzYyNGE2OWVlNzE2ZDQyYmE2NWNjZTVkNjMwZDM3
ZjQxNDFmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBWaWV3VXBkYXRlRGlzcGF0Y2hlcl9oCisjZGVmaW5lIFZpZXdVcGRhdGVEaXNw
YXRjaGVyX2gKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIlZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWV3VXBk
YXRlRGlzcGF0Y2hlciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWY8Vmlld1VwZGF0ZURpc3BhdGNo
ZXI+IGNyZWF0ZSgpOworICAgIH5WaWV3VXBkYXRlRGlzcGF0Y2hlcigpOworCisgICAgdm9pZCBp
bml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKKworcHJpdmF0ZToKKyAgICBW
aWV3VXBkYXRlRGlzcGF0Y2hlcigpOworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8mKTsKKworICAgIHZvaWQgZGlzcGF0Y2hWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGUoKTsKKworICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgTXV0
ZXggbV9kYXRhTXV0ZXg7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mbz4gbV9sYXRlc3RVcGRhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFZpZXdwb3J0VXBkYXRlRGlzcGF0Y2hlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3Bh
dGNoZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdlMmM4ZGQxODZhZDI3NmU1NThhY2M4ODBj
MjY4OGQ1MDM1OGZlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1
IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+
IFZpZXdVcGRhdGVEaXNwYXRjaGVyIHsKKyAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUodWlu
dDY0X3QgcGFnZUlELCBXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gdmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbykKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyOWVjNjIxNmY5M2ZjODY5ZDNjZTA3YmQ1YTE3NTZm
ZDYwNmQwMzg0Li4zZGE5ODJiMjZlYmFmOTU1NzFiZDY1NDcyYjFiNzM0N2MwY2JhOWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yODQs
NiArMjg0LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjZW5kaWYKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgLCBtX3Nob3VsZFJldHVybldvcmRBdFNlbGVjdGlvbihmYWxzZSkKKyAgICAsIG1f
c2NhbGVXYXNTZXRCeVVJUHJvY2VzcyhmYWxzZSkKICAgICAsIG1fdXNlckhhc0NoYW5nZWRQYWdl
U2NhbGVGYWN0b3IoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1faW5zcGVjdG9yQ2xpZW50KDApCkBA
IC0xMjU5LDYgKzEyNjAsMTIgQEAgdm9pZCBXZWJQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2Uo
dWludDY0X3QgZGlzcGxheUlEKQogCiB2b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2Nh
bGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pCiB7CisgICAgaWYgKHNjYWxlID09IHBhZ2VTY2Fs
ZUZhY3RvcigpKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV9z
Y2FsZVdhc1NldEJ5VUlQcm9jZXNzID0gZmFsc2U7CisjZW5kaWYKICAgICBQbHVnaW5WaWV3KiBw
bHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsKICAg
ICBpZiAocGx1Z2luVmlldyAmJiBwbHVnaW5WaWV3LT5oYW5kbGVzUGFnZVNjYWxlRmFjdG9yKCkp
IHsKICAgICAgICAgcGx1Z2luVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlLCBvcmlnaW4p
OwpAQCAtMjYzNiw2ICsyNjQzLDcgQEAgdm9pZCBXZWJQYWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVl
KFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyYW5zYWN0aW9uKQogICAgIGxheWVy
VHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxlRmFjdG9yKGNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3Rv
cigpKTsKICAgICBsYXllclRyYW5zYWN0aW9uLnNldFJlbmRlclRyZWVTaXplKGNvcmVQYWdlKCkt
PnJlbmRlclRyZWVTaXplKCkpOwogI2lmIFBMQVRGT1JNKElPUykKKyAgICBsYXllclRyYW5zYWN0
aW9uLnNldFNjYWxlV2FzU2V0QnlVSVByb2Nlc3Moc2NhbGVXYXNTZXRCeVVJUHJvY2VzcygpKTsK
ICAgICBsYXllclRyYW5zYWN0aW9uLnNldE1pbmltdW1TY2FsZUZhY3RvcihtaW5pbXVtUGFnZVNj
YWxlRmFjdG9yKCkpOwogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWF4aW11bVNjYWxlRmFjdG9y
KG1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CiAgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRBbGxv
d3NVc2VyU2NhbGluZyhhbGxvd3NVc2VyU2NhbGluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDE1NzZiMGVkYzQxZmQ5NGVhNzA2MTQ0ZGRj
MGVlNDI4MDEwNDE4ZGMuLmNhZTdlOTY4ZGNkODg2MmY4ODAxY2FkYTI5NmI4MTQwY2Y0MGU3NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQz
LDYgKzE0Myw3IEBAIGNsYXNzIFBhZ2VCYW5uZXI7CiBjbGFzcyBQYWdlT3ZlcmxheTsKIGNsYXNz
IFBsdWdpblZpZXc7CiBjbGFzcyBTZXNzaW9uU3RhdGU7CitjbGFzcyBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOwogY2xhc3MgV2ViQ29sb3JDaG9vc2VyOwogY2xhc3MgV2ViQ29udGV4dE1l
bnU7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwpAQCAtNjYxLDkgKzY2Miw5IEBAIHB1
YmxpYzoKICNpZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCB2
aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29u
dGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mKTsKKyAgICBib29s
IHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlV
SVByb2Nlc3M7IH0KICAgICB2b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hTY3JvbGxpbmcoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29u
dGVudE9mZnNldCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hab29taW5nKGZsb2F0KTsKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xMDk0LDYg
KzEwOTUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Xb3JkQXRTZWxlY3Rp
b247CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24gbV92aWV3cG9ydENvbmZp
Z3VyYXRpb247CisgICAgYm9vbCBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7CiAgICAgYm9vbCBt
X3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yOwogICAgIFdlYkNvcmU6OkludFNpemUgbV9i
bG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDQyZmI5NDY5
OTc1NzAyZTk3NmMzYzVjMWQzZTc3ZWE2MzY0YzY4NWMuLmQxMjIyNjE4ZDU0OWE0YjdkNmQ5ZGNk
ODM1MWE5ZmNkZjM0ZjdlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTUsNyArMzE1LDYgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAg
V2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKLSAgICBEaWRGaW5pc2hab29taW5nKGZs
b2F0IHNjYWxlKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KaW5kZXggNzE1OTU5NmNhMTY3OGZkMDczODBjMzVjMWJiMmIyODA1MzVl
NWY3Yy4uN2Q0Zjk0NmIzM2YzNmYyZDk0MDljZjY2ZjA5Njg5NjMwMTgwZWUwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OSw2ICsyOSw4IEBACiAjaW1wb3J0ICJBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oIgogI2ltcG9y
dCAiRWRpdG9yU3RhdGUuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLmgiCisjaW1wb3J0ICJMYXllclRyZWVIb3N0LmgiCisjaW1wb3J0ICJWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLmgiCiAjaW1wb3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKICNpbXBvcnQg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9ydCAiV2ViRnJhbWUuaCIKQEAgLTE2MTUs
MTQgKzE2MTcsMzAgQEAgdm9pZCBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2Vk
KCkKICAgICBzY2FsZVBhZ2Uoc2NhbGUsIG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5zY3Jv
bGxQb3NpdGlvbigpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVk
Wm9vbWluZygpCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3Qg
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
bykKIHsKLSAgICBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yID0gdHJ1ZTsKKyAgICBk
b3VibGUgYm91bmRlZFNjYWxlID0gc3RkOjptaW4obV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4
aW11bVNjYWxlKCksIHN0ZDo6bWF4KG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2Fs
ZSgpLCB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnNjYWxlKCkpKTsKKworICAgIEludFBv
aW50IHNjcm9sbFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8udW5vYnNjdXJlZFJlY3QoKS5sb2NhdGlvbigpKTsKKworICAgIEZsb2F0UmVjdCBl
eHBvc2VkUmVjdCA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZXhwb3NlZFJlY3QoKTsK
KyAgICBleHBvc2VkUmVjdC5zY2FsZShib3VuZGVkU2NhbGUpOworICAgIG1fZHJhd2luZ0FyZWEt
PnNldEV4cG9zZWRSZWN0KGV4cG9zZWRSZWN0KTsKKworICAgIGlmIChib3VuZGVkU2NhbGUgIT0g
bV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSkgeworICAgICAgICBtX3NjYWxlV2FzU2V0QnlVSVBy
b2Nlc3MgPSB0cnVlOworICAgICAgICBtX3BhZ2UtPnNldFBhZ2VTY2FsZUZhY3Rvcihib3VuZGVk
U2NhbGUsIHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEtPmxheWVy
VHJlZUhvc3QoKSkKKyAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKS0+
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKGJvdW5kZWRTY2FsZSkpOwor
ICAgIH0KKworICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxzbyB1cGRhdGUgdGhlIGZyYW1lIHZp
ZXcgZnJvbSB1bm9ic2N1cmVkIHJlY3QuIEFsdGVuYXRpdmVseSwgd2UgY2FuIGhhdmUgaXQgcHVs
bCB0aGUgdmFsdWVzIGZyb20gU2Nyb2xsVmlldy4KIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRGaW5p
c2hab29taW5nKGZsb2F0IG5ld1NjYWxlKQordm9pZCBXZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJp
Z2dlcmVkWm9vbWluZygpCiB7Ci0gICAgbV9wYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobmV3U2Nh
bGUsIG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5zY3JvbGxQb3NpdGlvbigpKTsKKyAgICBt
X3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yID0gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA4NTc5
ODBmYzI3ZmExN2YxMzg2NmUzNDkyMGMwMWI2NmEzMjI3NDVlLi4xNTc2MjhjMjIyZWI0MDRiZTA3
M2U2M2VhNjM4YTU5ZTU4YTlmMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODJkYzNmMTYx
MTlhNmJlNDBmNTgyMTRlNDI3ZTcwZTQwN2U5YzNjZi4uYmRkNzQzZTJhZjQ3MDhiYmY3MWM4ZGNl
NjhiNTJjZTlhYmIzZTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC0xNTEsNiArMTUxLDkgQEAgV2ViUHJvY2VzcyYgV2ViUHJvY2Vzczo6c2hhcmVkKCkK
IAogV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgOiBtX2V2ZW50RGlzcGF0Y2hlcihFdmVu
dERpc3BhdGNoZXI6OmNyZWF0ZSgpKQorI2lmIFBMQVRGT1JNKElPUykKKyAgICAsIG1fdmlld1Vw
ZGF0ZURpc3BhdGNoZXIoVmlld1VwZGF0ZURpc3BhdGNoZXI6OmNyZWF0ZSgpKQorI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKICAgICAsIG1faW5EaWRDbG9zZShmYWxzZSkKICAgICAsIG1fc2hvdWxk
VHJhY2tWaXNpdGVkTGlua3ModHJ1ZSkKICAgICAsIG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkK
QEAgLTIxNiw2ICsyMTksOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICBjb25uZWN0aW9uLT5zZXRTaG91bGRF
eGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKHRydWUpOwogCiAgICAgbV9ldmVudERpc3BhdGNo
ZXItPmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOworI2lmIFBMQVRGT1JNKElPUykK
KyAgICBtX3ZpZXdVcGRhdGVEaXNwYXRjaGVyLT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0
aW9uKTsKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci0+aW5pdGlhbGl6
ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCmluZGV4IDJiMWNhZWQxZmY4NWQ4MzhmZjc3OTBlZWU2NzRjY2MzYTBiY2Q3ZmQuLmI0OGI1
ZmVhNjExYjAzODc2MmUwMTY5YmM5Nzc3ZDI3NDY1OTI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgIlRleHRDaGVj
a2VyU3RhdGUuaCIKKyNpbmNsdWRlICJWaWV3VXBkYXRlRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUg
IlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9UaW1lci5oPgpAQCAtMjc5LDYgKzI4MCw5IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPEluamVjdGVkQnVuZGxlPiBtX2luamVjdGVkQnVuZGxlOwogCiAgICAgUmVmUHRyPEV2
ZW50RGlzcGF0Y2hlcj4gbV9ldmVudERpc3BhdGNoZXI7CisjaWYgUExBVEZPUk0oSU9TKQorICAg
IFJlZlB0cjxWaWV3VXBkYXRlRGlzcGF0Y2hlcj4gbV92aWV3VXBkYXRlRGlzcGF0Y2hlcjsKKyNl
bmRpZgogCiAgICAgYm9vbCBtX2luRGlkQ2xvc2U7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225226</attachid>
            <date>2014-02-25 23:31:18 -0800</date>
            <delta_ts>2014-02-25 23:38:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129354-20140225233116.patch</filename>
            <type>text/plain</type>
            <size>62421</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzdmNTg4NzYyM2NhYWUz
ODI0N2VkNjNiNzBjZTJmZmRlMGU4N2U1MS4uZTZmN2MyYzhjYzY2MTI3MTA0NGVlOWIwZDJiZDM2
MTcyNzk3ZWY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMSBAQAorMjAxNC0wMi0yNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJd
IFNwbGl0IHRoZSByZWN0cy9zY2FsZSB1cGRhdGVzIGluIDMgaW50ZXJuYWxseSBjb25zaXN0ZW50
IGdyb3VwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI5MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBEdXJp
bmcgc2NhbGluZywgdGhlIHNjYWxlIGFuZCByZWN0IG9mIFVJU2Nyb2xsVmlldywgV2ViUGFnZVBy
b3h5LCBEcmF3aW5nQXJlYVByb3h5LAorICAgICAgICBEcmF3aW5nQXJlYSBhbmQgV2ViUGFnZSB3
ZXJlIGluIGNvbXBsZXRlbHkgaW5jb25zaXN0ZW50IHN0YXRlcy4KKworICAgICAgICBTb21lIG9m
IHRob3NlIGRpc2Nvbm5lY3Qgd2VyZSB0ZW1wb3JhcnkgKGxpa2Ugd2hlbiBzZXR0aW5nIHRoZSBy
ZWN0IGFuZCBzY2FsZSBpbiB0d28gZGlmZmVyZW50CisgICAgICAgIG1lc3NhZ2VzKSwgc29tZSB3
ZXJlIGxhc3RpbmcgdGhlIHRpbWUgb2YgYSB0aWxlIHVwZGF0ZSAobGlrZSB0aGUgVUlQcm9jZXNz
IHZpZXcgb2YgdGhlIHNjYWxlKS4KKyAgICAgICAgVGhpcyB3YXMgY2F1c2luZyB2YXJpb3VzIHZp
c3VhbCBnbGl0Y2hlcy4KKworICAgICAgICBUbyBmaXggdGhpcywgYWxsIHRoZSB1cGRhdGVzIGZy
b20gdGhlIFVJUHJvY2VzcyBhcmUgZnVubmVsZWQgdGhyb3VnaCBhIHNpbmdsZSBwYXRoIGFuZCB0
aGUgdmFsdWVzCisgICAgICAgIGFyZSBzcGxpdCBpbnRvIDMgZGlmZmVyZW50IGdyb3Vwcy90eXBl
cy4KKyAgICAgICAgV2hlbiB1cGRhdGluZyB0aGUgc2NhbGUvcmVjdHMsIHRoZSBVSVByb2Nlc3Mg
c2VuZHMgdGhlIG5ldyBpbmZvcm1hdGlvbiB0byB0aGUgV2ViUHJvY2VzcyBvbiBhIHF1ZXVlCisg
ICAgICAgIHRocm91Z2ggVmlld1VwZGF0ZURpc3BhdGNoZXIuIFRoZXJlLCB0aGUgdXBkYXRlcyBh
cmUgYWNjdW11bGF0ZWQgdW50aWwgdGhlIE1haW5UaHJlYWQgaXMgYXZhaWxhYmxlLgorICAgICAg
ICBPbmNlIHRoZSBtYWluIHRocmVhZCBpcyAidW5ibG9ja2VkIiBmcm9tIHRoZSBwcmV2aW91cyBm
cmFtZSwgYWxsIHRoZSBkYXRhIGFyZSB1cGRhdGVkIGF0IG9uY2UgZnJvbQorICAgICAgICB0aGUg
bGFzdCBrbm93biBzdGF0ZSBpbiBWaWV3VXBkYXRlRGlzcGF0Y2hlci4gVGhlIG5ldyB0aWxlcyBh
cmUgY3JlYXRlZCBmb3IgdGhlIG5ldyBjb252ZXJhZ2UgaW5mb3JtYXRpb24KKyAgICAgICAgYW5k
IHRoZXkgYXJlIHNlbnQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBBdCBhbnkgcG9pbnQs
IHRoZXJlIGFyZSAzIHR5cGVzIG9mIHNjYWxlIGFuZCByZWN0cyB1c2VkIGZvciBkaWZmZXJlbnQg
cHVycG9zZToKKyAgICAgICAgLUluIHRoZSBVSVByb2Nlc3MsIHRoZXJlIGlzIHRoZSBVSVNjcm9s
bFZpZXcgc2NhbGUgYW5kIHJlY3RzIHdoaWNoIHJlcHJlc2VudCB0aGUgInRydWUiIHN0YXRlIG9y
IHdoYXQKKyAgICAgICAgIGlzIGN1cnJlbnRseSBvbiBzY3JlZW4uCisgICAgICAgICBUaGF0IGlu
Zm9ybWF0aW9uIGlzIG1pcnJvcmVkIGludG8gV2ViUGFnZVByb3h5IGZvciB0aGUgb3RoZXIgY2xh
c3NlcyBuZWVkaW5nIGl0IGxpa2UgRHJhd2luZ0FyZWFQcm94eS4KKyAgICAgICAgLUluIHRoZSBX
ZWJQcm9jZXNzLCB0aGVyZSBpcyB0aGUgbGFzdCBrbm93biBzdGF0ZS4gVGhhdCBzdGF0ZSBpcyBh
bHdheXMgbGFnZ2luZyBhIGxpdHRsZSBiZWhpbmQgdGhlICJ0cnVlIgorICAgICAgICAgc3RhdGUu
CisgICAgICAgIC1CYWNrIGluIHRoZSBVSVByb2Nlc3MsIHdlIGhhdmUgdGhlIHRpbGUgc3RhdGVz
IHRoYXQgaXMgYXR0YWNoZWQgdG8gUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uIEl0IGlzIHVz
ZWQKKyAgICAgICAgIHRvIHNldHVwIHRoZSByZW5kZXJpbmcuCisKKyAgICAgICAgV2l0aCB0aGlz
IGNoYW5nZSwgdGhlcmUgYXJlIHR3byBwYXRocyBmb3IgdXBkYXRpbmcgdGhlIHBhZ2Ugc2NhbGUg
ZmFjdG9yOgorICAgICAgICAtVGhlIFVJIGRyaXZlcyB0aGUgY2hhbmdlLCB0aGUgdXBkYXRlcyBn
b2VzIFdLV2ViVmlldy0+V0tDb250ZW50Vmlldy0+V2ViUGFnZVByb3h5LT5WaWV3VXBkYXRlRGlz
cGF0Y2hlcgorICAgICAgICAgLT5XZWJQYWdlLT5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS0+
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS0+V0tDb250ZW50Vmlldy0+V0tXZWJWaWV3
LgorICAgICAgICAtSWYgY2hhbmdlcyBpbiB0aGUgY29udGVudCBmb3JjZSBzY2FsaW5nIHBhcmFt
ZXRlcnMsIHRoZSB1cGRhdGVzIGdvZXM6IFdlYlBhZ2UtPlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhCisgICAgICAgICAtPlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHktPldLQ29udGVu
dFZpZXctPldLV2ViVmlldy4KKyAgICAgICAgVGhlIHR3byBraW5kIG9mIHVwZGF0ZXMgZnJlcXVl
bnRseSBjb25mbGljdHMgZHVyaW5nIGxvYWRpbmcuIFdlIGRpZmZlcmVudGlhdGUgdGhvc2UgdGhy
b3VnaCB0aGUgZmxhZworICAgICAgICBzY2FsZVdhc1NldEJ5VUlQcm9jZXNzIHBhc3NlZCB3aXRo
IHRoZSB1cGRhdGVzLiBJbiBjYXNlcyBvZiBjb25mbGljdHMsIHRoZSB1c2VyIGFsd2F5cyB3aW5z
LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChzdHJ1Y3Rfb3JfY2xhc3MpOgorICAgICAgICAq
IFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OlZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjpleHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm86OnVub2JzY3VyZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mbzo6c2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcj09KToK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpzY2FsZVdhc1NldEJ5VUlQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OnNl
dFNjYWxlV2FzU2V0QnlVSVByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbnRlbnRWaWV3OmRpZENvbW1pdExheWVyVHJl
ZTpXZWJLaXQ6Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEZpbmlzaFNjcm9sbGluZ10p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZFNjcm9sbDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRab29tOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
c2Nyb2xsVmlld0RpZEVuZFpvb21pbmc6d2l0aFZpZXc6YXRTY2FsZTpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9mcmFtZU9yQm91bmRzQ2hhbmdlZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0T2JzY3VyZWRJbnNldHM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
ZW5kSW50ZXJhY3RpdmVPYnNjdXJlZEluc2V0c0NoYW5nZV0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvaW9zL1dLVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF91cGRhdGVWaXNpYmxl
Q29udGVudFJlY3RzXSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Q3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlzcGxheWVkQ29udGVudFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpleHBvc2VkQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnVub2JzY3VyZWRDb250ZW50UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnVub2JzY3VyZWRSZWN0
OnNjYWxlOmluU3RhYmxlU3RhdGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkRmlu
aXNoU2Nyb2xsaW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkWm9vbVRvU2NhbGU6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyk6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzY2Fs
ZWRFeHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmluZGljYXRvckxvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yU2NhbGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKToKKyAgICAg
ICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6On5WaWV3VXBkYXRlRGlzcGF0Y2hlcik6
CisgICAgICAgIChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjp2aXNpYmxlQ29u
dGVudFJlY3RVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjYWxlUGFnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2NhbGVXYXNTZXRCeVVJUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0YXBIaWdo
bGlnaHRBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlVmlzaWJs
ZUNvbnRlbnRSZWN0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndpbGxTdGFydFVzZXJU
cmlnZ2VyZWRab29taW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OldlYlByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTQtMDItMjUgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgV2ViQ29yZTo6VmlzaXRl
ZExpbmtQcm92aWRlciB0byBXZWJDb3JlOjpWaXNpdGVkTGlua1N0b3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA1MzRkODRmZThkMDMxZTEwODc4MjRhZmRlYjc3MDM0MjcyMGEy
MTM1Li5kNjNkMzQzMzI2ZDQxYzQzYjQ3Mjc5OWM2MDdiYjcyMjc5OWQwZjg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTk3LDYgKzk3LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMg
PSBcCiAgICAgU3RvcmFnZU1hbmFnZXIgXAogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciBcCiAg
ICAgVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvciBcCisgICAgVmlld1VwZGF0ZURpc3BhdGNo
ZXIgXAogICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIFwKICAgICBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZmVjNWRkN2ZmZjc5ZDcyZThmNTI4NDQzMDYzM2M0MDkyYTJlMjJhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgorCisjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fZXhwb3NlZFJlY3Q7CisgICAg
ZW5jb2RlciA8PCBtX3Vub2JzY3VyZWRSZWN0OworICAgIGVuY29kZXIgPDwgbV9zY2FsZTsKK30K
KworYm9vbCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHJlc3VsdCkK
K3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2V4cG9zZWRSZWN0KSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdW5vYnNj
dXJlZFJlY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubV9zY2FsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzNkZGZl
MTU1YWQxMzJmNGRhYmJiNzU4ZmI3MTZlMjA0Yzk4ZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApAQCAtMCww
ICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvX2gKKyNkZWZpbmUgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mb19oCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8geworcHVibGljOgorICAgIFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oKQorICAgICAgICA6IG1fc2NhbGUoLTEpCisgICAg
eworICAgIH0KKworICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBleHBvc2VkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9i
c2N1cmVkUmVjdCwgZG91YmxlIHNjYWxlKQorICAgICAgICA6IG1fZXhwb3NlZFJlY3QoZXhwb3Nl
ZFJlY3QpCisgICAgICAgICwgbV91bm9ic2N1cmVkUmVjdCh1bm9ic2N1cmVkUmVjdCkKKyAgICAg
ICAgLCBtX3NjYWxlKHNjYWxlKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGV4cG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9leHBvc2VkUmVjdDsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3QoKSBjb25zdCB7IHJl
dHVybiBtX3Vub2JzY3VyZWRSZWN0OyB9CisgICAgZG91YmxlIHNjYWxlKCkgY29uc3QgeyByZXR1
cm4gbV9zY2FsZTsgfQorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJik7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6Rmxv
YXRSZWN0IG1fZXhwb3NlZFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJl
ZFJlY3Q7CisgICAgZG91YmxlIG1fc2NhbGU7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGEsIGNvbnN0IFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8mIGIpCit7CisgICAgcmV0dXJuIGEuc2NhbGUoKSA9PSBiLnNjYWxl
KCkgJiYgYS5leHBvc2VkUmVjdCgpID09IGIuZXhwb3NlZFJlY3QoKSAmJiBhLnVub2JzY3VyZWRS
ZWN0KCkgPT0gYi51bm9ic2N1cmVkUmVjdCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm9faApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCmlu
ZGV4IDkyOTViNGJmMmZlZDUzMDFhOTRmMDgxYTMzYTc2MTQ4ODVkMjFlYzkuLjE2ZDVmNTNkYzY5
MTJjYTY0NTRlMjU4NjNiZjkwNjNmNTdjOWI5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTE2NCw2ICsx
NjQsOSBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KICAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3Rvcihk
b3VibGUgcGFnZVNjYWxlRmFjdG9yKSB7IG1fcGFnZVNjYWxlRmFjdG9yID0gcGFnZVNjYWxlRmFj
dG9yOyB9CisKKyAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVy
biBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KKyAgICB2b2lkIHNldFNjYWxlV2FzU2V0QnlV
SVByb2Nlc3MoYm9vbCBzY2FsZVdhc1NldEJ5VUlQcm9jZXNzKSB7IG1fc2NhbGVXYXNTZXRCeVVJ
UHJvY2VzcyA9IHNjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICAKICAgICB1aW50NjRfdCBy
ZW5kZXJUcmVlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZVNpemU7IH0KICAgICB2
b2lkIHNldFJlbmRlclRyZWVTaXplKHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKSB7IG1fcmVuZGVy
VHJlZVNpemUgPSByZW5kZXJUcmVlU2l6ZTsgfQpAQCAtMTg3LDYgKzE5MCw3IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV9k
ZXN0cm95ZWRMYXllcklEczsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fY29udGVudHNTaXplOwog
ICAgIGRvdWJsZSBtX3BhZ2VTY2FsZUZhY3RvcjsKKyAgICBib29sIG1fc2NhbGVXYXNTZXRCeVVJ
UHJvY2VzczsKICAgICB1aW50NjRfdCBtX3JlbmRlclRyZWVTaXplOwogICAgIGRvdWJsZSBtX21p
bmltdW1TY2FsZUZhY3RvcjsKICAgICBkb3VibGUgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbQppbmRleCBlNjU3YjM4YmRkMThhYmZlYzUyM2UwNmQ1YWNmMTEzNTVmOThmZWRjLi42
ZDI3MWFlMmY5YWM4N2UwOWRlOTM0NDk0ZDBlNjYwNTA1ZTE5OTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0K
QEAgLTQxMCw2ICs0MTAsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjplbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBt
X2Rlc3Ryb3llZExheWVySURzOwogICAgIGVuY29kZXIgPDwgbV9jb250ZW50c1NpemU7CiAgICAg
ZW5jb2RlciA8PCBtX3BhZ2VTY2FsZUZhY3RvcjsKKyAgICBlbmNvZGVyIDw8IG1fc2NhbGVXYXNT
ZXRCeVVJUHJvY2VzczsKICAgICBlbmNvZGVyIDw8IG1fbWluaW11bVNjYWxlRmFjdG9yOwogICAg
IGVuY29kZXIgPDwgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CiAgICAgZW5jb2RlciA8PCBtX2FsbG93
c1VzZXJTY2FsaW5nOwpAQCAtNDU3LDYgKzQ1OCw5IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9wYWdlU2NhbGVGYWN0b3IpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Nj
YWxlV2FzU2V0QnlVSVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21pbmltdW1TY2FsZUZhY3RvcikpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCA5MTAzNzAwYmJhOWUxNTUzNDM1YmU3ZDg5NWYyMDRiMDdjYzViZjQ0
Li5iOGM1MTA3NTYwYjg3ZmI3MWJhYzA1OTcxNmUzZjhiY2Y3MTE5ZjA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzI2LDcgKzMy
Niw3IEBACiAgICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6bGF5ZXJUcmVlVHJh
bnNhY3Rpb24ubWluaW11bVNjYWxlRmFjdG9yKCldOwogICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhp
bXVtWm9vbVNjYWxlOmxheWVyVHJlZVRyYW5zYWN0aW9uLm1heGltdW1TY2FsZUZhY3RvcigpXTsK
ICAgICBbX3Njcm9sbFZpZXcgc2V0Wm9vbUVuYWJsZWQ6bGF5ZXJUcmVlVHJhbnNhY3Rpb24uYWxs
b3dzVXNlclNjYWxpbmcoKV07Ci0gICAgaWYgKCFbX3Njcm9sbFZpZXcgaXNab29taW5nXSAmJiAh
W19zY3JvbGxWaWV3IGlzWm9vbUJvdW5jaW5nXSkKKyAgICBpZiAoIWxheWVyVHJlZVRyYW5zYWN0
aW9uLnNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSAmJiAhW19zY3JvbGxWaWV3IGlzWm9vbWluZ10g
JiYgIVtfc2Nyb2xsVmlldyBpc1pvb21Cb3VuY2luZ10pCiAgICAgICAgIFtfc2Nyb2xsVmlldyBz
ZXRab29tU2NhbGU6bGF5ZXJUcmVlVHJhbnNhY3Rpb24ucGFnZVNjYWxlRmFjdG9yKCldOwogCiAg
ICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKQEAgLTM3NCw3ICszNzQsNyBAQAogCiAtICh2b2lk
KV9kaWRGaW5pc2hTY3JvbGxpbmcKIHsKLSAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRS
ZWN0c107CisgICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3Rh
dGU6WUVTXTsKICAgICBbX2NvbnRlbnRWaWV3IGRpZEZpbmlzaFNjcm9sbGluZ107CiB9CiAKQEAg
LTM5NywxOCArMzk3LDE4IEBACiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3Jv
bGxWaWV3ICopc2Nyb2xsVmlldwogewotICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzXTsKKyAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhTdGFibGVTdGF0
ZTpOT107CiB9CiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFpvb206KFVJU2Nyb2xsVmlldyAqKXNj
cm9sbFZpZXcKIHsKLSAgICBbc2VsZiBfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c107CisgICAg
W3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6Tk9dOwogfQog
CiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRab29taW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3IHdpdGhWaWV3OihVSVZpZXcgKil2aWV3IGF0U2NhbGU6KENHRmxvYXQpc2NhbGUKIHsKICAg
ICBBU1NFUlQoc2Nyb2xsVmlldyA9PSBfc2Nyb2xsVmlldyk7Ci0gICAgW3NlbGYgX3VwZGF0ZVZp
c2libGVDb250ZW50UmVjdHNdOworICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3Rz
V2l0aFN0YWJsZVN0YXRlOllFU107CiAgICAgW19jb250ZW50VmlldyBkaWRab29tVG9TY2FsZTpz
Y2FsZV07CiB9CiAKQEAgLTQyMCwxMCArNDIwLDEwIEBACiAgICAgICAgIFtfY29udGVudFZpZXcg
c2V0TWluaW11bUxheW91dFNpemU6Ym91bmRzLnNpemVdOwogICAgIFtfc2Nyb2xsVmlldyBzZXRG
cmFtZTpib3VuZHNdOwogICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11bVNpemU6Ym91bmRzLnNp
emVdOwotICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsKKyAgICBbc2VsZiBf
dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhTdGFibGVTdGF0ZTpZRVNdOwogfQogCi0tICh2
b2lkKV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzCistICh2b2lkKV91cGRhdGVWaXNpYmxlQ29u
dGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOihCT09MKWlzU3RhdGVTdGFibGUKIHsKICAgICBDR1Jl
Y3QgZnVsbFZpZXdSZWN0ID0gc2VsZi5ib3VuZHM7CiAgICAgQ0dSZWN0IHZpc2libGVSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpmdWxsVmlld1JlY3QgdG9WaWV3
Ol9jb250ZW50Vmlldy5nZXQoKV07CkBAIC00MzMsNyArNDMzLDcgQEAKIAogICAgIENHRmxvYXQg
c2NhbGVGYWN0b3IgPSBbX3Njcm9sbFZpZXcgem9vbVNjYWxlXTsKIAotICAgIFtfY29udGVudFZp
ZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyB1
bm9ic2N1cmVkUmVjdDp1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzIHNjYWxlOnNj
YWxlRmFjdG9yXTsKKyAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnZpc2li
bGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6dW5vYnNjdXJlZFJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3RvciBpblN0YWJsZVN0YXRlOmlzU3Rh
dGVTdGFibGVdOwogfQogCiAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0
aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KEJPT0wpYWRqdXN0U2Nyb2xs
VmlldwpAQCAtNjk2LDcgKzY5Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViQ29yZTo6TGF5b3V0TWls
ZXN0b25lcyBsYXlvdXRNaWxlc3RvbmVzKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlCiAgICAgQVNT
RVJUKG9ic2N1cmVkSW5zZXRzLmJvdHRvbSA+PSAwKTsKICAgICBBU1NFUlQob2JzY3VyZWRJbnNl
dHMucmlnaHQgPj0gMCk7CiAgICAgX29ic2N1cmVkSW5zZXRzID0gb2JzY3VyZWRJbnNldHM7Ci0g
ICAgW3NlbGYgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNdOworICAgIFtzZWxmIF91cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzV2l0aFN0YWJsZVN0YXRlOiFfaXNDaGFuZ2luZ09ic2N1cmVkSW5z
ZXRzSW50ZXJhY3RpdmVseV07CiB9CiAKIC0gKFVJQ29sb3IgKilfcGFnZUV4dGVuZGVkQmFja2dy
b3VuZENvbG9yCkBAIC03MjgsNiArNzI4LDcgQEAgc3RhdGljIGlubGluZSBXZWJDb3JlOjpMYXlv
dXRNaWxlc3RvbmVzIGxheW91dE1pbGVzdG9uZXMoX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmUKIHsK
ICAgICBBU1NFUlQoX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkpOwogICAg
IF9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5ID0gTk87CisgICAgW3NlbGYg
X3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNXaXRoU3RhYmxlU3RhdGU6WUVTXTsKIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KaW5k
ZXggZDVlY2M0NzFkOGY2NmIzNjE4ZWRmNmRhOTU1OTA1M2I5YTkxZTE1MS4uNTRhMzIxNTQ4NmMz
NzdiMmZhYWEwMTczMDc1OTkzNzlhYzhhODljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQpAQCAtMjYzLDcgKzI2Myw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKICAgICBDR0Zsb2F0IHNjYWxlRmFjdG9yID0gW19zY3JvbGxWaWV3IHpv
b21TY2FsZV07CiAKLSAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnZpc2li
bGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6dW5vYnNjdXJlZFJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3Rvcl07CisgICAgW19jb250ZW50Vmll
dyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzIHVu
b2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgc2NhbGU6c2Nh
bGVGYWN0b3IgaW5TdGFibGVTdGF0ZTpZRVNdOwogfQogCiAtICh2b2lkKV9rZXlib2FyZENoYW5n
ZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6
KEJPT0wpYWRqdXN0U2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCmluZGV4IDJkOTY1ZDY1MzY2MDMyZWE2NzY4NzNmOTA5MTdhNjA1MWVi
MDAzNDQuLmMxOTIxYzY4NDM4NTRhNzA3MWE2YzcxYTg2NzE3OGEwYWVlZDI1ZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcg
QEAgRHJhd2luZ0FyZWFQcm94eTo6RHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGUgdHlw
ZSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHIKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV93
ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zaXplKHdlYlBhZ2VQcm94eS0+dmll
d1NpemUoKSkKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLCBt
X2V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkRyYXdpbmdB
cmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQpCiAjZW5kaWYKIHsKQEAgLTYy
LDcgKzYyLDcgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRTaXplKGNvbnN0IEludFNpemUm
IHNpemUsIGNvbnN0IEludFNpemUmIGxheWVyUG9zaXRpb24KICAgICBzaXplRGlkQ2hhbmdlKCk7
CiB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIERyYXdp
bmdBcmVhUHJveHk6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlZFJlY3Qp
CiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS0+aXNWYWxpZCgpKQpAQCAtODUsNiArODUsNyBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQoKQog
ICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6
OlNldEV4cG9zZWRSZWN0KG1fZXhwb3NlZFJlY3QpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkp
OwogICAgIG1fbGFzdFNlbnRFeHBvc2VkUmVjdCA9IG1fZXhwb3NlZFJlY3Q7CiB9CisjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldEN1c3RvbUZpeGVk
UG9zaXRpb25SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QpCiB7CkBAIC05
Myw2ICs5NCw1IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eTo6c2V0Q3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QoY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uCiAKICAgICBtX3dlYlBhZ2VQcm94
eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpTZXRDdXN0b21GaXhlZFBv
c2l0aW9uUmVjdChmaXhlZFBvc2l0aW9uUmVjdCksIG1fd2ViUGFnZVByb3h5LT5wYWdlSUQoKSk7
CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCAxZDcyYzBmODViNTM5MGNhMjIwOTE5M2U5
MDgwNDQ2N2UwYmIzM2M2Li5mNTkzYmQ1ZTEyZjk3ZjVlMWI2ZTdjNzg5MWYxYzgxYTkxYzI1YThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTcz
LDE0ICs3MywxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpv
b20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQogCi0jaWYg
UExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRF
eHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICBXZWJDb3JlOjpGbG9h
dFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9zZWRSZWN0OyB9CisjZW5k
aWYKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGV4cG9zZWRSZWN0Q2hhbmdlZFRpbWVy
RmlyZWQoKTsKICAgICAKICAgICB2b2lkIHNldEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
RGVidWdJbmRpY2F0b3IoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0RlYnVnSW5kaWNhdG9y
KGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdEZWJ1Z0luZGljYXRvcigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTExMSw5ICsxMTQsMTEgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlR2VvbWV0cnkoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3
SW50cmluc2ljQ29udGVudFNpemUpIHsgfQogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFJ1bkxv
b3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHk+IG1fZXhwb3NlZFJlY3RDaGFuZ2VkVGltZXI7CiAg
ICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3NlZFJlY3Q7CiAgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IG1fbGFzdFNlbnRFeHBvc2VkUmVjdDsKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlYmVl
MmE3YzVhNDY3MDgzOGFmOTJiZTc2MzA5Y2M2ZTM0NTU2ZGIzLi5hMGY2YWY4MjJjNTg3OTBmZGVm
ZDAwYTExMGIyYjY1Y2JiODg4ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgiCkBAIC00NTEsOCArNDUyLDExIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKTsK
ICAgICB2b2lkIHZhbGlkYXRlQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBQYXNz
UmVmUHRyPFZhbGlkYXRlQ29tbWFuZENhbGxiYWNrPik7CiAjaWYgUExBVEZPUk0oSU9TKQotICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0KCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB1bm9ic2N1cmVkUmVjdCk7CisgICAgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS5zY2FsZSgpOyB9
CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUuZXhwb3NlZFJlY3QoKTsg
fQorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnVub2JzY3VyZWRS
ZWN0KCk7IH0KKworICAgIHZvaWQgdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJik7CiAgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9p
ZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbiYpOwogCkBAIC04NDcsNyArODUxLDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKLSAgICB2b2lkIGRp
ZEZpbmlzaFpvb21pbmcoZmxvYXQgbmV3U2NhbGUpOwogCiAgICAgdm9pZCB0YXBIaWdobGlnaHRB
dFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1aW50NjRfdCYgcmVxdWVzdElE
KTsKIApAQCAtMTI0MCw3ICsxMjQzLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFBMQVRGT1JN
KElPUykKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBtX3ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZFJl
Y3Q7CisgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBtX2xhc3RWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGQ1MGVkODQzYzIwMTI5
MTI2MDdmMTMwOTA2YmQ3Njk4N2RlMDM2NTMuLjVlOTdiNjMxYmJjMjYyY2M2NDZhYzBkZjUzOTEz
NGIzODY2YmY3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC02Niw3ICs2Niw3IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsKIAogLSAo
dm9pZClzZXRNaW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7CiAtICh2b2lkKXNldE1pbmltdW1MYXlv
dXRTaXplOihDR1NpemUpc2l6ZTsKLS0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVj
dCl2aXNpYmxlUmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRSZWN0IHNjYWxl
OihDR0Zsb2F0KXNjYWxlOworLSAodm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZp
c2libGVSZWN0IHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXJlZFJlY3Qgc2NhbGU6KENH
RmxvYXQpc2NhbGUgaW5TdGFibGVTdGF0ZTooQk9PTClpc1N0YWJsZVN0YXRlOwogCiAtICh2b2lk
KWRpZEZpbmlzaFNjcm9sbGluZzsKIC0gKHZvaWQpZGlkWm9vbVRvU2NhbGU6KENHRmxvYXQpc2Nh
bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5k
ZXggNDIxMGY2MTk1NTQwYmY1YjU4ZDNmZjg0YzQ3YjdjMDcyZjhmMjJhMS4uNWY4OWZmY2M1MDVh
YWRjZTAyZWZiOTE1ODBiNjcyN2IyNWYzMmUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ2LDE4ICsxNDYsMjEgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKICAgICByZXR1cm4gW3NlbGYgaXNFZGl0YWJsZV07CiB9CiAKLS0gKHZvaWQp
ZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdCB1bm9ic2N1cmVkUmVjdDoo
Q0dSZWN0KXVub2JzY3VyZWRSZWN0IHNjYWxlOihDR0Zsb2F0KXNjYWxlCistICh2b2lkKWRpZFVw
ZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVj
dCl1bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9hdClzY2FsZSBpblN0YWJsZVN0YXRlOihCT09M
KWlzU3RhYmxlU3RhdGUKIHsKLSAgICBfcGFnZS0+c2V0VW5vYnNjdXJlZENvbnRlbnRSZWN0KHVu
b2JzY3VyZWRSZWN0KTsKLSAgICBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT5z
Y3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoX3BhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkoKS0+cm9vdFNjcm9sbGluZ05vZGVJRCgpLCByb3VuZGVkSW50UG9p
bnQodW5vYnNjdXJlZFJlY3Qub3JpZ2luKSk7CisgICAgZG91YmxlIHNjYWxlTm9pc2VUaHJlc2hv
bGQgPSAwLjAwMDU7CisgICAgaWYgKCFpc1N0YWJsZVN0YXRlICYmIGFicyhzY2FsZSAtIF9wYWdl
LT5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSkgPCBzY2FsZU5vaXNlVGhyZXNob2xkKSB7CisgICAg
ICAgIC8vIFRpbnkgY2hhbmdlcyBvZiBzY2FsZSBkdXJpbmcgaW50ZXJhY3RpdmUgem9vbSBjYXVz
ZSBjb250ZW50IHRvIGp1bXAgYnkgb25lIHBpeGVsLCBjcmVhdGluZworICAgICAgICAvLyB2aXN1
YWwgbm9pc2UuIFdlIGZpbHRlciB0aG9zZSB1c2VsZXNzIHVwZGF0ZXMuCisgICAgICAgIHNjYWxl
ID0gX3BhZ2UtPmRpc3BsYXllZENvbnRlbnRTY2FsZSgpOworICAgIH0KKyAgICBfcGFnZS0+dXBk
YXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKHZpc2li
bGVSZWN0LCB1bm9ic2N1cmVkUmVjdCwgc2NhbGUpKTsKIAogICAgIGlmIChhdXRvIGRyYXdpbmdB
cmVhID0gX3BhZ2UtPmRyYXdpbmdBcmVhKCkpIHsKLSAgICAgICAgRmxvYXRSZWN0IGV4cG9zZWRS
ZWN0ID0gdmlzaWJsZVJlY3Q7Ci0gICAgICAgIGV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlKTsKLSAg
ICAgICAgZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRSZWN0KGV4cG9zZWRSZWN0KTsKKyAgICAgICAg
RmxvYXRSZWN0IGZpeGVkUG9zUmVjdCA9IFtzZWxmIGZpeGVkUG9zaXRpb25SZWN0RnJvbUV4cG9z
ZWRSZWN0OnVub2JzY3VyZWRSZWN0IHNjYWxlOnNjYWxlXTsKKyAgICAgICAgZHJhd2luZ0FyZWEt
PnNldEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGZpeGVkUG9zUmVjdCk7CisgICAgICAgIGRyYXdp
bmdBcmVhLT51cGRhdGVEZWJ1Z0luZGljYXRvcigpOwogICAgIH0KLQotICAgIFtzZWxmIF91cGRh
dGVGaXhlZFBvc2l0aW9uUmVjdF07CiB9CiAKIC0gKHZvaWQpc2V0TWluaW11bVNpemU6KENHU2l6
ZSlzaXplCkBAIC0xNzIsMTUgKzE3NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAg
cmV0dXJuIGV4cG9zZWRSZWN0OwogfQogCi0tICh2b2lkKV91cGRhdGVGaXhlZFBvc2l0aW9uUmVj
dAotewotICAgIGF1dG8gZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKTsKLSAgICBp
ZiAoIWRyYXdpbmdBcmVhKQotICAgICAgICByZXR1cm47Ci0gICAgRmxvYXRSZWN0IGZpeGVkUG9z
UmVjdCA9IFtzZWxmIGZpeGVkUG9zaXRpb25SZWN0RnJvbUV4cG9zZWRSZWN0Ol9wYWdlLT51bm9i
c2N1cmVkQ29udGVudFJlY3QoKSBzY2FsZTpfcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCldOwotICAg
IGRyYXdpbmdBcmVhLT5zZXRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChmaXhlZFBvc1JlY3QpOwot
fQotCiAtICh2b2lkKXNldE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpc2l6ZQogewogICAgIF9w
YWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShJbnRTaXplKENH
Q2VpbGluZyhzaXplLndpZHRoKSwgQ0dDZWlsaW5nKHNpemUuaGVpZ2h0KSkpOwpAQCAtMTg4LDcg
KzE4Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZvaWQpZGlkRmluaXNoU2Ny
b2xsaW5nCiB7Ci0gICAgW3NlbGYgX3VwZGF0ZUZpeGVkUG9zaXRpb25SZWN0XTsKICAgICBbc2Vs
ZiBfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nXTsKIH0KIApAQCAtMjEwLDcgKzIwMyw2IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZvaWQpZGlkWm9vbVRvU2NhbGU6KENHRmxvYXQp
c2NhbGUKIHsKLSAgICBfcGFnZS0+ZGlkRmluaXNoWm9vbWluZyhzY2FsZSk7CiAgICAgW3NlbGYg
X2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZ107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMDI2YTk2YTUwODEzZjNkZTZmZTI0
Njk3NTFhZjUyNGIwY2I1YWY4Yy4uYTlmNzIyOGNkNzBmZTNkODY4ZTI4N2M4NWI1NWU1ZTFiZjY0
OTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oIgogI2ltcG9ydCAiUGFnZUNsaWVudC5oIgorI2ltcG9ydCAiVmlld1VwZGF0ZURpc3BhdGNo
ZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZUlPUy5oIgogI2ltcG9ydCAiV2Vi
UGFnZU1lc3NhZ2VzLmgiCkBAIC0yMzAsMTQgKzIzMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
YXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2soY29uc3QgU3RyaW5nJiBiZWZvcmVUZXh0LCBj
b25zdAogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoYmVmb3Jl
VGV4dCwgbWFya2VkVGV4dCwgc2VsZWN0ZWRUZXh0LCBhZnRlclRleHQsIGxvY2F0aW9uLCBsZW5n
dGgpOwogfQogCi1jb25zdCBGbG9hdFJlY3QmIFdlYlBhZ2VQcm94eTo6dW5vYnNjdXJlZENvbnRl
bnRSZWN0KCkgY29uc3QKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8pCiB7Ci0gICAgcmV0dXJuIG1fdW5vYnNjdXJlZFJlY3Q7Ci19Ci0KLXZvaWQg
V2ViUGFnZVByb3h5OjpzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiB1
bm9ic2N1cmVkUmVjdCkKLXsKLSAgICBtX3Vub2JzY3VyZWRSZWN0ID0gdW5vYnNjdXJlZFJlY3Q7
CisgICAgaWYgKHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gPT0gbV9sYXN0VmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlKQorICAgICAgICByZXR1cm47CisgICAgbV9sYXN0VmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzsKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGUobV9wYWdlSUQsIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pLCAwKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlv
dXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCkBAIC00NTUsMTIgKzQ1NCw2IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCiAgICAg
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OldpbGxTdGFydFVzZXJUcmlnZ2VyZWRa
b29taW5nKCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaFpv
b21pbmcoZmxvYXQgbmV3U2NhbGUpCi17Ci0gICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBuZXdTY2Fs
ZTsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkRmluaXNoWm9vbWlu
ZyhuZXdTY2FsZSksIG1fcGFnZUlEKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OnRhcEhpZ2hs
aWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIHVpbnQ2
NF90JiByZXF1ZXN0SUQpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDdhYTU5ZGQ5NzhhYmU4NTJiZmRh
Zjg5YWE4YjE2YjNhNjAxMTRlZTguLmRjZGU3NGFiOWQzNWExZGMyNGEzMjNjMmM0ZWU5OWY3ZjQ1
YjkzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDExICs0OSwxNSBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVHZW9tZXRyeSgpIG92ZXJyaWRlOwogCisg
ICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNjYWxlZEV4cG9zZWRSZWN0KCkgY29uc3Q7CiAgICAgdm9p
ZCBzaG93RGVidWdJbmRpY2F0b3IoYm9vbCk7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmly
dHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJy
aWRlOworI2VuZGlmCiAKICAgICBmbG9hdCBpbmRpY2F0b3JTY2FsZShXZWJDb3JlOjpJbnRTaXpl
IGNvbnRlbnRzU2l6ZSkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURlYnVnSW5kaWNh
dG9yKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcihXZWJDb3JlOjpJ
bnRTaXplIGNvbnRlbnRzU2l6ZSwgYm9vbCByb290TGF5ZXJDaGFuZ2VkLCBmbG9hdCBzY2FsZSk7
CiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvclBvc2l0aW9uKCk7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggOWI5YzM3ZDMwOGI0YTY1NTEwMTZkMzNlOTQ1ZTFj
OWViYzNiNjRiZi4uNmQ1NmYxMGIzNTlhNzA1YmRlMzFlYTg1N2IyZjJmYjRhMmI4NWE1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OCw2ICs3OCwxOCBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUdlb21ldHJ5KCkKICAgICAgICAgc2Vu
ZFVwZGF0ZUdlb21ldHJ5KCk7CiB9CiAKK0Zsb2F0UmVjdCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OjpzY2FsZWRFeHBvc2VkUmVjdCgpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBtX3dlYlBhZ2VQcm94eS0+ZXhwb3NlZENvbnRlbnRSZWN0KCk7CisjZWxz
ZQorICAgIEZsb2F0UmVjdCBzY2FsZWRFeHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0KCk7CisgICAg
ZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHktPnBhZ2VTY2FsZUZhY3RvcigpOworICAg
IHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlLCBzY2FsZSk7CisgICAgcmV0dXJuIHNjYWxl
ZEV4cG9zZWRSZWN0OworI2VuZGlmCit9CisKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eTo6c2VuZFVwZGF0ZUdlb21ldHJ5KCkKIHsKICAgICBtX2xhc3RTZW50U2l6ZSA9IG1f
c2l6ZTsKQEAgLTEwOSwyMSArMTIxLDI4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiB9CiAK
IHN0YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwotc3RhdGljIGNvbnN0IGZs
b2F0IGluZGljYXRvclRvcEluc2V0ID0gMTAwOwogCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHIpCiB7CiAgICAgRHJhd2luZ0FyZWFQcm94eTo6c2V0RXhwb3NlZFJl
Y3Qocik7CiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOwogfQorI2VuZGlmCiAK
IEZsb2F0UG9pbnQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9j
YXRpb24oKSBjb25zdAogewogICAgIGlmIChtX3dlYlBhZ2VQcm94eS0+ZGVsZWdhdGVzU2Nyb2xs
aW5nKCkpIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIEZsb2F0UG9pbnQgdGlsZWRNYXBM
b2NhdGlvbiA9IG1fd2ViUGFnZVByb3h5LT51bm9ic2N1cmVkQ29udGVudFJlY3QoKS5sb2NhdGlv
bigpOworICAgICAgICBmbG9hdCBhYnNvbHV0ZUluc2V0ID0gaW5kaWNhdG9ySW5zZXQgLyBtX3dl
YlBhZ2VQcm94eS0+ZGlzcGxheWVkQ29udGVudFNjYWxlKCk7CisgICAgICAgIHRpbGVkTWFwTG9j
YXRpb24gKz0gRmxvYXRTaXplKGFic29sdXRlSW5zZXQsIGFic29sdXRlSW5zZXQpOworI2Vsc2UK
ICAgICAgICAgRmxvYXRQb2ludCB0aWxlZE1hcExvY2F0aW9uID0gZXhwb3NlZFJlY3QoKS5sb2Nh
dGlvbigpOwotICAgICAgICB0aWxlZE1hcExvY2F0aW9uICs9IEZsb2F0U2l6ZShpbmRpY2F0b3JJ
bnNldCwgaW5kaWNhdG9yVG9wSW5zZXQpOwotICAgICAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dl
YlBhZ2VQcm94eS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIHRpbGVkTWFwTG9jYXRpb24g
Kz0gRmxvYXRTaXplKGluZGljYXRvckluc2V0LCBpbmRpY2F0b3JJbnNldCk7CisgICAgICAgIGZs
b2F0IHNjYWxlID0gMSAvIG1fd2ViUGFnZVByb3h5LT5wYWdlU2NhbGVGYWN0b3IoKTs7CiAgICAg
ICAgIHRpbGVkTWFwTG9jYXRpb24uc2NhbGUoc2NhbGUsIHNjYWxlKTsKKyNlbmRpZgogICAgICAg
ICByZXR1cm4gdGlsZWRNYXBMb2NhdGlvbjsKICAgICB9CiAgICAgCkBAIC0xNDYsMTIgKzE2NSwx
OCBAQCBmbG9hdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjppbmRpY2F0b3JTY2Fs
ZShJbnRTaXplIGNvbnRlbnRzU2l6ZSkgY29ucwogICAgIGZsb2F0IHNjYWxlID0gMTsKICAgICBp
ZiAoIWNvbnRlbnRzU2l6ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZmxvYXQgd2lkdGhTY2FsZSA9
IHN0ZDo6bWluPGZsb2F0Pigodmlld1NpemUud2lkdGgoKSAtIDIgKiBpbmRpY2F0b3JJbnNldCkg
LyBjb250ZW50c1NpemUud2lkdGgoKSwgMC4wNSk7Ci0gICAgICAgIHNjYWxlID0gc3RkOjptaW4o
d2lkdGhTY2FsZSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZpZXdTaXplLmhlaWdodCgpIC0gaW5kaWNh
dG9yVG9wSW5zZXQgLSBpbmRpY2F0b3JJbnNldCkgLyBjb250ZW50c1NpemUuaGVpZ2h0KCkpOwor
ICAgICAgICBzY2FsZSA9IHN0ZDo6bWluKHdpZHRoU2NhbGUsIHN0YXRpY19jYXN0PGZsb2F0Pih2
aWV3U2l6ZS5oZWlnaHQoKSAtIDIgKiBpbmRpY2F0b3JJbnNldCkgLyBjb250ZW50c1NpemUuaGVp
Z2h0KCkpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gc2NhbGU7CiB9CiAKK3ZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0b3IoKQoreworICAg
IC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxzbyB1cGRhdGUgbGl2ZSBpbmZvcm1hdGlvbiBkdXJpbmcg
c2NhbGUuCisgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOworfQorCiB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKEludFNp
emUgY29udGVudHNTaXplLCBib29sIHJvb3RMYXllckNoYW5nZWQsIGZsb2F0IHNjYWxlKQogewog
ICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0aGUgbGFzdCBzdWJsYXllci4KQEAgLTE3OCwxMCArMjAz
LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0lu
ZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICAgICBbbV9leHBvc2VkUmVjdEluZGljYXRv
ckxheWVyIHNldEJvcmRlcldpZHRoOmNvdW50ZXJTY2FsZWRCb3JkZXJdOwogCiAgICAgaWYgKG1f
d2ViUGFnZVByb3h5LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgewotICAgICAgICBGbG9hdFJlY3Qg
c2NhbGVkRXhwb3NlZFJlY3QgPSBleHBvc2VkUmVjdCgpOwotICAgICAgICBmbG9hdCBzY2FsZSA9
IDEgLyBtX3dlYlBhZ2VQcm94eS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAgIHNjYWxlZEV4
cG9zZWRSZWN0LnNjYWxlKHNjYWxlLCBzY2FsZSk7Ci0KKyAgICAgICAgRmxvYXRSZWN0IHNjYWxl
ZEV4cG9zZWRSZWN0ID0gdGhpcy0+c2NhbGVkRXhwb3NlZFJlY3QoKTsKICAgICAgICAgW21fZXhw
b3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRQb3NpdGlvbjpzY2FsZWRFeHBvc2VkUmVjdC5sb2Nh
dGlvbigpXTsKICAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRCb3VuZHM6
RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2NhbGVkRXhwb3NlZFJlY3Quc2l6ZSgpKV07CiAgICAg
fSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwZWVlZGVhYzZmZDY5YjVmYzZhZjA3NzNhN2EzODdiZDc0YjY4MGEzLi4y
ZTVjYmE0YzViNTMyYmMyNTkyNDM4ZTAwMDgwMjdiZDVkNjY0YjVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDgsNiArNDQ4
LDEyIEBACiAJCTFRUTQxN0NCMTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzQx
N0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCAqLzsgfTsKIAkJ
MVpaNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQkI0MTdDOTEyQzAw
Q0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLzsgfTsKIAkJMjYzMTcy
Q0YxOEI0Njk0OTAwNjVCOUMzIC8qIE5hdGl2ZVdlYlRvdWNoRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MzE3MkNFMThCNDY5NDkwMDY1QjlD
MyAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50LmggKi87IH07CisJCTI2ODQwNTQ0MThCODVBNjMwMDIy
QzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0MDU0MjE4Qjg1QTYzMDAyMkMzOEIgLyog
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oICovOyB9OworCQkyNjg0MDU0OTE4Qjg1RkY3
MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODQwNTQ4MThCODVGRjcwMDIy
QzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJMjY4NDA1
NEMxOEI4NkMzNTAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NDA1NEExOEI4
NjZGRjAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwICovOyB9Owor
CQkyNjg0MDU0RjE4Qjg2QzhFMDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NDA1NDUxOEI4
NUU3RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCAqLzsgfTsKKwkJMjY4NDA1
NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODQw
NTUwMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCTI2ODQwNTUzMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlz
cGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyNjg0MDU1MTE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJN
ZXNzYWdlcy5oICovOyB9OwogCQkyNkY5QTgzQjE4QTM0NjgxMDBBRUI4OEEgLyogV0tXZWJWaWV3
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjZGOUE4M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0
MDA5MzlGRjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwRjQyNzExNzJBMEM3NDAwOTM5RkYwIC8qIENo
aWxkUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKIAkJMjkzRUJFQUIxNjI3RDlDOTAwNUY4OUYx
IC8qIFdLRE9NVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMTY0LDYgKzIxNzAsMTMg
QEAKIAkJMUZCMDBBQzYxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VH
cm91cEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2MzE3MkNFMThCNDY5NDkwMDY1QjlDMyAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYlRvdWNoRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY2NTlBQTAxODVGQUFFRDAwNDMwM0REIC8qIElu
Zm8taU9TLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU0MjE4Qjg1QTYzMDAyMkMzOEIgLyogVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTI2ODQwNTQ1MThCODVFN0UwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3VXBkYXRlRGlzcGF0Y2hl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2ODQwNTQ2MThCODVFN0UwMDIy
QzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWaWV3VXBkYXRlRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyNjg0MDU0ODE4Qjg1RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlld1VwZGF0ZURpc3BhdGNoZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2ODQwNTRBMThCODY2RkYw
MDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjg0MDU1MDE4Qjg2RUQ2MDAyMkMzOEIg
LyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gIlZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2ODQwNTUxMThCODZFRDYwMDIyQzM4QiAv
KiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMuaDsgcGF0aCA9ICJWaWV3VXBk
YXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NkY5QTgzQTE4QTM0NjNGMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1dlYlZpZXdQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5
MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdL
RE9NVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0RPTVRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5NTcsNiArMzk3MCw4IEBACiAJCQkJMUFD
MTMzNjUxODU2NUI1NzAwRjNFQzA1IC8qIFVzZXJEYXRhLmNwcCAqLywKIAkJCQkxQUMxMzM2NjE4
NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuaCAqLywKIAkJCQlCQ0IwQjBERjEyMzA1QUIxMDBC
MTM0MUUgLyogVXNlck1lc3NhZ2VDb2RlcnMuaCAqLywKKwkJCQkyNjg0MDU0QTE4Qjg2NkZGMDAy
MkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAgKi8sCisJCQkJMjY4NDA1
NDIxOEI4NUE2MzAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCAqLywK
IAkJCQkxQTBGMjlDOTEyMEIzNzE2MDA1M0QxQjkgLyogVmlzaXRlZExpbmtUYWJsZS5jcHAgKi8s
CiAJCQkJMUEwRjI5Q0ExMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCAqLywK
IAkJCQlCQzMyOUQ5OTE2QUNDRTk5MDAzMTZERTIgLyogV2ViQXJjaGl2ZS5jcHAgKi8sCkBAIC01
MDgxLDYgKzUwOTYsOSBAQAogCQkJCTJEODE5Qjk5MTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2Vz
dHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcCAqLywKIAkJCQkyRDgxOUI5QTE4NjI3NUIzMDAxRjAz
RDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5oICovLAogCQkJCTJEODE5QjlCMTg2
Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmlu
ICovLAorCQkJCTI2ODQwNTQ1MThCODVFN0UwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hl
ci5jcHAgKi8sCisJCQkJMjY4NDA1NDYxOEI4NUU3RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNw
YXRjaGVyLmggKi8sCisJCQkJMjY4NDA1NDgxOEI4NUZGNzAwMjJDMzhCIC8qIFZpZXdVcGRhdGVE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluICovLAogCQkJCUJDNzJCOUY4MTFFNjQ3NkIwMDFFQjRFQSAv
KiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgKi8sCiAJCQkJQkM3MkI5RjkxMUU2NDc2QjAw
MUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmggKi8sCiAJCQkJNTE4NzFCNTkxMjdD
Qjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLywKQEAgLTYxMjksNiArNjE0Nyw4
IEBACiAJCQkJMUFCMzFBOTUxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLywKIAkJCQkyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250
cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyRDFCNUQ1QzE4NTg2OUM4MDA2QzY1
OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLywKKwkJCQkyNjg0MDU1MDE4
Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTI2ODQwNTUxMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hl
ck1lc3NhZ2VzLmggKi8sCiAJCQkJNTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTJFMzU2OTEz
MEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oICov
LAogCQkJCTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTY3MDMsNiArNjcyMyw3IEBACiAJ
CQkJNTEwNjREMzYxODk3ODFDNDAwNEIyRkVCIC8qIFNRTGl0ZUlEQkN1cnNvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMzJEN0QxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkVkaXRvckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTI2ODQwNTUz
MThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogQVBJRXJyb3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDMyREI5MTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC02ODEyLDYgKzY4MzMsNyBAQAogCQkJCUJDRTBFNDI1MTY4QjdB
MjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFDMTMzNzIxODU2NkM3QzAwRjNFQzA1IC8qIEFQSUZyYW1lSGFuZGxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkyNjg0MDU0NDE4Qjg1QTYzMDAyMkMzOEIgLyogVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5NDg0MDQxNTBDMzUw
NjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUzNTFG
NjE4MEY1Qzc1MDBFNTNCRTkgLyogV2ViSURCRmFjdG9yeUJhY2tlbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzQwOCw2ICs3NDMwLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlFMUQyNkE1MTE3NTk2NEQ3MDA5NUJGRDEgLyog
V2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLywKKwkJCQkyNjg0MDU0OTE4Qjg1
RkY3MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4gaW4gUmVzb3Vy
Y2VzICovLAogCQkJCUUxMzNGRDhBMTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CkBAIC03ODQ4LDYgKzc4NzEsNyBAQAogCQkJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMzNzUgLyogSW5qZWN0ZWRCdW5kbGVNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI2ODQwNTRDMThC
ODZDMzUwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyOTM1RTMxMjg4RDk3ODAwQTRCNjk1
IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNENjdEMzBFMTVDMDhGOUEwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgwNzIsNiArODA5Niw3
IEBACiAJCQkJQkM4MjgzNjUxNkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNvbnRlbnRQcm9jZXNzTWFp
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTI1QzVGMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODM5OTE2QjQ4
REMwMDBBMjc4RkUgLyogV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMjY4NDA1NEYxOEI4NkM4RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjlFMjQ0MTEyMERBQ0EwMEExMzdFMCAvKiBXZWJD
b250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTUwNUY5MTY4MDAyNTUwMEE5MzBFQiAv
KiBXZWJDb250ZXh0Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDlCOEY4MTQ3NDYw
RjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTgxNDUsNiArODE3MCw3IEBACiAJCQkJQkMwRTYwNzQxMkQ2QkMyMDAwMTJBNzJBIC8q
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQkUxRjMx
MkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzgwMUMwOTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMjY4NDA1NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRh
dGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUIy
NEFBMTMyRTA5NzIwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQwMkY2NDEzMkVDNUI5MDBCRUFBOTYgLyogV2ViSWNv
bkRhdGFiYXNlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjAyOGNmOGUzYmIwMzVjNjE1MTViZjg5OGFhOGI3MGQxZTA2Nzk0
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9W
aWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWV3VXBkYXRlRGlzcGF0Y2hlci5oIgorCisj
aWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWY8Vmll
d1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpjcmVhdGUoKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdVcGRhdGVEaXNwYXRjaGVyKTsKK30KKworVmlld1Vw
ZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKCkKKyAgICA6IG1fcXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVmlld1VwZGF0ZURpc3BhdGNoZXIiKSkK
K3sKK30KKworVmlld1VwZGF0ZURpc3BhdGNoZXI6On5WaWV3VXBkYXRlRGlzcGF0Y2hlcigpCit7
Cit9CisKK3ZvaWQgVmlld1VwZGF0ZURpc3BhdGNoZXI6OmluaXRpYWxpemVDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBjb25uZWN0aW9uLT5hZGRXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcXVldWUuZ2V0KCksIHRoaXMpOworfQorCit2b2lkIFZpZXdVcGRh
dGVEaXNwYXRjaGVyOjp2aXNpYmxlQ29udGVudFJlY3RVcGRhdGUodWludDY0X3QgcGFnZUlELCBj
b25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKQoreworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YU11dGV4
KTsKKyAgICAgICAgbV9sYXRlc3RVcGRhdGUuc2V0KHBhZ2VJRCwgdmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mbyk7CisgICAgfQorICAgIFJ1bkxvb3A6Om1haW4oKS0+ZGlzcGF0Y2goYmluZCgm
Vmlld1VwZGF0ZURpc3BhdGNoZXI6OmRpc3BhdGNoVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLCB0
aGlzKSk7Cit9CisKK3ZvaWQgVmlld1VwZGF0ZURpc3BhdGNoZXI6OmRpc3BhdGNoVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlKCkKK3sKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvPiBsb2NhbENvcHk7CisgICAgeworICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhTXV0ZXgpOworICAgICAgICBsb2NhbENvcHkuc3dhcChtX2xhdGVzdFVwZGF0
ZSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBpdGVyYXRvciA6IGxvY2FsQ29weSkgeworICAg
ICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYlBhZ2Uo
aXRlcmF0b3Iua2V5KSkKKyAgICAgICAgICAgIHdlYlBhZ2UtPnVwZGF0ZVZpc2libGVDb250ZW50
UmVjdHMoaXRlcmF0b3IudmFsdWUpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
YzYyNGE2OWVlNzE2ZDQyYmE2NWNjZTVkNjMwZDM3ZjQxNDFmYjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIu
aApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaWV3VXBkYXRlRGlzcGF0
Y2hlcl9oCisjZGVmaW5lIFZpZXdVcGRhdGVEaXNwYXRjaGVyX2gKKworI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKKworI2luY2x1ZGUgIlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCIKKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWV3VXBkYXRlRGlzcGF0Y2hlciA6IHB1YmxpYyBJUEM6
OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IGNyZWF0ZSgpOworICAgIH5WaWV3VXBk
YXRlRGlzcGF0Y2hlcigpOworCisgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb24qKTsKKworcHJpdmF0ZToKKyAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlcigpOworICAg
IC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLgorICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mKTsKKwor
ICAgIHZvaWQgZGlzcGF0Y2hWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUoKTsKKworICAgIFJlZlB0
cjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgTXV0ZXggbV9kYXRhTXV0ZXg7CisgICAgSGFzaE1h
cDx1aW50NjRfdCwgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbz4gbV9sYXRlc3RVcGRhdGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFZpZXdwb3J0VXBkYXRl
RGlzcGF0Y2hlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTdlMmM4ZGQxODZhZDI3NmU1NThhY2M4ODBjMjY4OGQ1MDM1OGZlNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0
Y2hlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFZpZXdVcGRhdGVEaXNwYXRjaGVyIHsKKyAg
ICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUodWludDY0X3QgcGFnZUlELCBXZWJLaXQ6OlZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbykKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAy
OWVjNjIxNmY5M2ZjODY5ZDNjZTA3YmQ1YTE3NTZmZDYwNmQwMzg0Li4zZGE5ODJiMjZlYmFmOTU1
NzFiZDY1NDcyYjFiNzM0N2MwY2JhOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yODQsNiArMjg0LDcgQEAgV2ViUGFnZTo6V2ViUGFn
ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCBtX3Nob3VsZFJldHVybldv
cmRBdFNlbGVjdGlvbihmYWxzZSkKKyAgICAsIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzcyhmYWxz
ZSkKICAgICAsIG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IoZmFsc2UpCiAjZW5kaWYK
ICAgICAsIG1faW5zcGVjdG9yQ2xpZW50KDApCkBAIC0xMjU5LDYgKzEyNjAsMTIgQEAgdm9pZCBX
ZWJQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UodWludDY0X3QgZGlzcGxheUlEKQogCiB2b2lk
IFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4p
CiB7CisgICAgaWYgKHNjYWxlID09IHBhZ2VTY2FsZUZhY3RvcigpKQorICAgICAgICByZXR1cm47
CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV9zY2FsZVdhc1NldEJ5VUlQcm9jZXNzID0gZmFs
c2U7CisjZW5kaWYKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZy
YW1lKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsKICAgICBpZiAocGx1Z2luVmlldyAmJiBwbHVnaW5W
aWV3LT5oYW5kbGVzUGFnZVNjYWxlRmFjdG9yKCkpIHsKICAgICAgICAgcGx1Z2luVmlldy0+c2V0
UGFnZVNjYWxlRmFjdG9yKHNjYWxlLCBvcmlnaW4pOwpAQCAtMjYzNiw2ICsyNjQzLDcgQEAgdm9p
ZCBXZWJQYWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
JiBsYXllclRyYW5zYWN0aW9uKQogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxlRmFj
dG9yKGNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKICAgICBsYXllclRyYW5zYWN0aW9u
LnNldFJlbmRlclRyZWVTaXplKGNvcmVQYWdlKCktPnJlbmRlclRyZWVTaXplKCkpOwogI2lmIFBM
QVRGT1JNKElPUykKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldFNjYWxlV2FzU2V0QnlVSVByb2Nl
c3Moc2NhbGVXYXNTZXRCeVVJUHJvY2VzcygpKTsKICAgICBsYXllclRyYW5zYWN0aW9uLnNldE1p
bmltdW1TY2FsZUZhY3RvcihtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpOwogICAgIGxheWVyVHJh
bnNhY3Rpb24uc2V0TWF4aW11bVNjYWxlRmFjdG9yKG1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7
CiAgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRBbGxvd3NVc2VyU2NhbGluZyhhbGxvd3NVc2VyU2Nh
bGluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDE1NzZiMGVkYzQxZmQ5NGVhNzA2MTQ0ZGRjMGVlNDI4MDEwNDE4ZGMuLmNhZTdlOTY4ZGNk
ODg2MmY4ODAxY2FkYTI5NmI4MTQwY2Y0MGU3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQzLDYgKzE0Myw3IEBAIGNsYXNzIFBhZ2VCYW5u
ZXI7CiBjbGFzcyBQYWdlT3ZlcmxheTsKIGNsYXNzIFBsdWdpblZpZXc7CiBjbGFzcyBTZXNzaW9u
U3RhdGU7CitjbGFzcyBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOwogY2xhc3MgV2ViQ29s
b3JDaG9vc2VyOwogY2xhc3MgV2ViQ29udGV4dE1lbnU7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhOwpAQCAtNjYxLDkgKzY2Miw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2Vk
KCk7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8mKTsKKyAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBj
b25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICB2b2lkIHdpbGxT
dGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hTY3JvbGxpbmco
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29udGVudE9mZnNldCk7Ci0gICAgdm9pZCBkaWRG
aW5pc2hab29taW5nKGZsb2F0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKSAmJiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xMDk0LDYgKzEwOTUsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9zaG91bGRSZXR1cm5Xb3JkQXRTZWxlY3Rpb247CiAKICAgICBXZWJDb3JlOjpWaWV3cG9y
dENvbmZpZ3VyYXRpb24gbV92aWV3cG9ydENvbmZpZ3VyYXRpb247CisgICAgYm9vbCBtX3NjYWxl
V2FzU2V0QnlVSVByb2Nlc3M7CiAgICAgYm9vbCBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFj
dG9yOwogICAgIFdlYkNvcmU6OkludFNpemUgbV9ibG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDQyZmI5NDY5OTc1NzAyZTk3NmMzYzVjMWQzZTc3ZWE2MzY0
YzY4NWMuLmQxMjIyNjE4ZDU0OWE0YjdkNmQ5ZGNkODM1MWE5ZmNkZjM0ZjdlNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC0zMTUsNyArMzE1LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZl
ciB7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21p
bmcoKTsKLSAgICBEaWRGaW5pc2hab29taW5nKGZsb2F0IHNjYWxlKTsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNzE1OTU5
NmNhMTY3OGZkMDczODBjMzVjMWJiMmIyODA1MzVlNWY3Yy4uN2Q0Zjk0NmIzM2YzNmYyZDk0MDlj
ZjY2ZjA5Njg5NjMwMTgwZWUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw4IEBACiAjaW1wb3J0ICJBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbi5oIgogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIKICNpbXBvcnQg
IkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW1wb3J0ICJMYXllclRyZWVI
b3N0LmgiCisjaW1wb3J0ICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgiCiAjaW1wb3J0
ICJXZWJDaHJvbWVDbGllbnQuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2ltcG9ydCAiV2ViRnJhbWUuaCIKQEAgLTE2MTUsMTQgKzE2MTcsMzAgQEAgdm9pZCBXZWJQYWdl
Ojp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKICAgICBzY2FsZVBhZ2Uoc2NhbGUsIG1f
cGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5zY3JvbGxQb3NpdGlvbigpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCit2b2lkIFdlYlBhZ2U6OnVw
ZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
byYgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbykKIHsKLSAgICBtX3VzZXJIYXNDaGFuZ2Vk
UGFnZVNjYWxlRmFjdG9yID0gdHJ1ZTsKKyAgICBkb3VibGUgYm91bmRlZFNjYWxlID0gc3RkOjpt
aW4obV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4aW11bVNjYWxlKCksIHN0ZDo6bWF4KG1fdmll
d3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgpLCB2aXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLnNjYWxlKCkpKTsKKworICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uID0gcm91bmRl
ZEludFBvaW50KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZFJlY3QoKS5s
b2NhdGlvbigpKTsKKworICAgIEZsb2F0UmVjdCBleHBvc2VkUmVjdCA9IHZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uZXhwb3NlZFJlY3QoKTsKKyAgICBleHBvc2VkUmVjdC5zY2FsZShib3Vu
ZGVkU2NhbGUpOworICAgIG1fZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRSZWN0KGV4cG9zZWRSZWN0
KTsKKworICAgIGlmIChib3VuZGVkU2NhbGUgIT0gbV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSkg
eworICAgICAgICBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3MgPSB0cnVlOworICAgICAgICBtX3Bh
Z2UtPnNldFBhZ2VTY2FsZUZhY3Rvcihib3VuZGVkU2NhbGUsIHNjcm9sbFBvc2l0aW9uKTsKKyAg
ICAgICAgaWYgKG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKSkKKyAgICAgICAgICAgIG1f
ZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKS0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFu
Z2VkKCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVNjYWxlRmFj
dG9yRGlkQ2hhbmdlKGJvdW5kZWRTY2FsZSkpOworICAgIH0KKworICAgIC8vIEZJWE1FOiB3ZSBz
aG91bGQgYWxzbyB1cGRhdGUgdGhlIGZyYW1lIHZpZXcgZnJvbSB1bm9ic2N1cmVkIHJlY3QuIEFs
dGVuYXRpdmVseSwgd2UgY2FuIGhhdmUgaXQgcHVsbCB0aGUgdmFsdWVzIGZyb20gU2Nyb2xsVmll
dy4KIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hab29taW5nKGZsb2F0IG5ld1NjYWxlKQor
dm9pZCBXZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCiB7Ci0gICAgbV9w
YWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobmV3U2NhbGUsIG1fcGFnZS0+bWFpbkZyYW1lKCkudmll
dygpLT5zY3JvbGxQb3NpdGlvbigpKTsKKyAgICBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFj
dG9yID0gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA4NTc5ODBmYzI3ZmExN2YxMzg2NmUzNDkyMGMwMWI2
NmEzMjI3NDVlLi4xNTc2MjhjMjIyZWI0MDRiZTA3M2U2M2VhNjM4YTU5ZTU4YTlmMGRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggODJkYzNmMTYxMTlhNmJlNDBmNTgyMTRlNDI3ZTcwZTQwN2U5
YzNjZi4uYmRkNzQzZTJhZjQ3MDhiYmY3MWM4ZGNlNjhiNTJjZTlhYmIzZTUyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNTEsNiArMTUxLDkgQEAgV2Vi
UHJvY2VzcyYgV2ViUHJvY2Vzczo6c2hhcmVkKCkKIAogV2ViUHJvY2Vzczo6V2ViUHJvY2Vzcygp
CiAgICAgOiBtX2V2ZW50RGlzcGF0Y2hlcihFdmVudERpc3BhdGNoZXI6OmNyZWF0ZSgpKQorI2lm
IFBMQVRGT1JNKElPUykKKyAgICAsIG1fdmlld1VwZGF0ZURpc3BhdGNoZXIoVmlld1VwZGF0ZURp
c3BhdGNoZXI6OmNyZWF0ZSgpKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICAgICAsIG1faW5E
aWRDbG9zZShmYWxzZSkKICAgICAsIG1fc2hvdWxkVHJhY2tWaXNpdGVkTGlua3ModHJ1ZSkKICAg
ICAsIG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkKQEAgLTIxNiw2ICsyMTksOSBAQCB2b2lkIFdl
YlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
bikKICAgICBjb25uZWN0aW9uLT5zZXRTaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJl
KHRydWUpOwogCiAgICAgbV9ldmVudERpc3BhdGNoZXItPmluaXRpYWxpemVDb25uZWN0aW9uKGNv
bm5lY3Rpb24pOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBtX3ZpZXdVcGRhdGVEaXNwYXRjaGVy
LT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBtX3BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDJiMWNhZWQxZmY4NWQ4Mzhm
Zjc3OTBlZWU2NzRjY2MzYTBiY2Q3ZmQuLmI0OGI1ZmVhNjExYjAzODc2MmUwMTY5YmM5Nzc3ZDI3
NDY1OTI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlICJWaWV3
VXBkYXRlRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgpAQCAt
Mjc5LDYgKzI4MCw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlPiBtX2lu
amVjdGVkQnVuZGxlOwogCiAgICAgUmVmUHRyPEV2ZW50RGlzcGF0Y2hlcj4gbV9ldmVudERpc3Bh
dGNoZXI7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJlZlB0cjxWaWV3VXBkYXRlRGlzcGF0Y2hl
cj4gbV92aWV3VXBkYXRlRGlzcGF0Y2hlcjsKKyNlbmRpZgogCiAgICAgYm9vbCBtX2luRGlkQ2xv
c2U7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>