<?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>201810</bug_id>
          
          <creation_ts>2019-09-15 15:34:11 -0700</creation_ts>
          <short_desc>Create InjectedBundle SPI to better support NSSecureCoding</short_desc>
          <delta_ts>2020-04-14 12:05:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210509</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570977</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-15 15:34:11 -0700</bug_when>
    <thetext>The encoding/decoding routines used by WebKit’s InjectedBundles are based on NSCoding. While we have changed WebKit internals to use NSSecureCoding, there are a number of injected bundles that need to serialize custom classes between the InjectedBundle and the relevant WebKit UIProcess.

We need to lock down this communications channel by enforcing NSSecureCoding.

This patch creates new SPI to allow the UIProcess to specify classes that it will accept in messages from the WebContet Process (and Injected Bundle).

It adds the following property to the WKProcessPoolConfiguration:

    @property (nonatomic, copy) NSSet&lt;Class&gt; *customClassesForParameterCoder;


Clients that wish to serialize custom classes would do something like the following:

        _WKProcessPoolConfiguration *configuration = [[_WKProcessPoolConfiguration alloc] init];
        ... various setup steps ...
        // An InjectedBundle will be used:
        [configuration setInjectedBundleURL:[[NSBundle mainBundle].builtInPlugInsURL URLByAppendingPathComponent:@&quot;Example.wkbundle&quot; isDirectory:YES]];
        // So specify any custom classes for the use case:
        [configuration setCustomClassesForParameterCoder:[NSSet setWithObjects:[Example1 class], [Example2 class], [Example3 class], nil]];

If no custom classes are specified, the standard serialization primitives are supported: NSArray, NSData, NSDate, NSDictionary, NSNull, NSNumber, NSSet,
NSString, NSTimeZone, NSURL, and NSUUID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570981</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-15 15:36:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/55265713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570982</commentid>
    <comment_count>2</comment_count>
      <attachid>378827</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-15 15:43:07 -0700</bug_when>
    <thetext>Created attachment 378827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570984</commentid>
    <comment_count>3</comment_count>
      <attachid>378829</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-15 15:58:47 -0700</bug_when>
    <thetext>Created attachment 378829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570985</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-15 15:59:38 -0700</bug_when>
    <thetext>WIP patch uploaded for initial discussion of SPI design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571174</commentid>
    <comment_count>5</comment_count>
      <attachid>378829</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-09-16 10:50:45 -0700</bug_when>
    <thetext>Comment on attachment 378829
Patch

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

&gt; Source/WebKit/ChangeLog:7
&gt; +        The encoding/decoding routines used by WebKitâs InjectedBundles are based on NSCoding.

WebKitâs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571750</commentid>
    <comment_count>6</comment_count>
      <attachid>379009</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-17 17:25:37 -0700</bug_when>
    <thetext>Created attachment 379009
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571751</commentid>
    <comment_count>7</comment_count>
      <attachid>379010</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-17 17:27:25 -0700</bug_when>
    <thetext>Created attachment 379010
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571755</commentid>
    <comment_count>8</comment_count>
      <attachid>379012</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-17 17:35:13 -0700</bug_when>
    <thetext>Created attachment 379012
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571787</commentid>
    <comment_count>9</comment_count>
      <attachid>379015</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-17 20:14:41 -0700</bug_when>
    <thetext>Created attachment 379015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572157</commentid>
    <comment_count>10</comment_count>
      <attachid>379086</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-18 16:59:06 -0700</bug_when>
    <thetext>Created attachment 379086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572364</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-19 08:34:45 -0700</bug_when>
    <thetext>The WinCairo error is a bot issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572369</commentid>
    <comment_count>12</comment_count>
      <attachid>379135</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-19 08:50:59 -0700</bug_when>
    <thetext>Created attachment 379135
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572373</commentid>
    <comment_count>13</comment_count>
      <attachid>379135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-19 09:11:37 -0700</bug_when>
    <thetext>Comment on attachment 379135
Patch for landing

Clearing flags on attachment: 379135

Committed r250093: &lt;https://trac.webkit.org/changeset/250093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572374</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-19 09:11:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378827</attachid>
            <date>2019-09-15 15:43:07 -0700</date>
            <delta_ts>2019-09-15 15:58:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201810-20190915154306.patch</filename>
            <type>text/plain</type>
            <size>19075</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVmZmQ0ZTYzMTQ4Yzc0MmJj
MmUxNWY2YTlkOTA3OGQxZWVhMjJlNjQuLjdmZDZiMjhhOTBjODQwZWQ5M2MwZmQyNmQwMzVlMjk1
MWY5YTIyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTUgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bjo6Y29weSk6IENvcHkgYW55IGN1c3RvbSBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwOgorICAgICAgICAoV0tDb250ZXh0Q29u
ZmlndXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIpOiBBZGRlZC4KKyAg
ICAgICAgKFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXIpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3Jv
dXAuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tOgor
ICAgICAgICAodG9TdHJpbmdWZWN0b3IpOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzR3Jv
dXAgaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDphbmRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpdKTogUmVzdHJpY3Qgc2VyaWFs
aXphdGlvbiB0byBhbGxvd2VkIGNsYXNzZXMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uIGN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcl0pOiBB
ZGRlZC4KKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldEN1c3RvbUNs
YXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjpdKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBSZWdpc3RlciBhbnkgY3VzdG9tIGNsYXNzZXMKKyAg
ICAgICAgcHJvdmlkZWQgaW4gdGhlIGNvbmZpZ3VyYXRvbi4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjphbGxvd2VkQ2xhc3Nlc0ZvclBhcmFt
ZXRlckNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjplbGVtZW50RGlkRm9jdXMpOiBSZXN0cmlj
dCBzZXJpYWxpemF0aW9uIHRvIGFsbG93ZWQKKyAgICAgICAgY2xhc3NlcyBvbmx5LgorCiAyMDE5
LTA5LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OICgyNDUwMDYpOiBjYW4ndCBzY3JvbGwgaW4gInJlYWQgbW9yZSIgdmlldyBpbiBFdmVu
dGJyaXRlIGFwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRleCBhNGU0NDE0MzNiMzg4MzVmN2Y1
MTQ0YmY2M2FmZTFiYWMxMTE1NTE2Li5kMmViNzZkMjE0YzdjMmRiMjQ2MDdkYzcxYTM5MzU1OGE5
NDg1ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcApAQCAtNTEsNiArNTEsNyBAQCBSZWY8UHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQog
ICAgIGNvcHktPm1fY2FjaGVNb2RlbCA9IHRoaXMtPm1fY2FjaGVNb2RlbDsKICAgICBjb3B5LT5t
X2Rpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgPSB0aGlzLT5tX2Rpc2tDYWNo
ZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQ7CiAgICAgY29weS0+bV9pbmplY3RlZEJ1bmRs
ZVBhdGggPSB0aGlzLT5tX2luamVjdGVkQnVuZGxlUGF0aDsKKyAgICBjb3B5LT5tX2N1c3RvbUNs
YXNzZXNGb3JQYXJhbWV0ZXJDb2RlciA9IHRoaXMtPm1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGVyOwogICAgIGNvcHktPm1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMgPSB0aGlzLT5t
X2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwogICAgIGNvcHktPm1fYWx3YXlzUmV2YWxpZGF0
ZWRVUkxTY2hlbWVzID0gdGhpcy0+bV9hbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXM7CiAgICAg
Y29weS0+bV9hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRocyA9IHRoaXMtPm1fYWRkaXRp
b25hbFJlYWRBY2Nlc3NBbGxvd2VkUGF0aHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggNDEzNjkw
OGM3M2IzZDNjOTFkOGJjMDhjN2UzNDZmYTI5OGE4MjU4MC4uZmFhOWIzYTY3ZTM5OGJjNzBkNTQ3
MTA4ZTBiZWNmOTJlNDQ5NTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtODAsNiArODAsOSBA
QCBwdWJsaWM6CiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNv
bnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRCdW5kbGVQYXRoOyB9CiAgICAgdm9pZCBzZXRJbmplY3Rl
ZEJ1bmRsZVBhdGgoY29uc3QgV1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkgeyBtX2lu
amVjdGVkQnVuZGxlUGF0aCA9IGluamVjdGVkQnVuZGxlUGF0aDsgfQogCisgICAgY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYgY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7IH0KKyAgICB2b2lkIHNl
dEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihWZWN0b3I8V1RGOjpTdHJpbmc+JiYgY2xh
c3Nlc0ZvckNvZGVyKSB7IG1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gV1RGTW92
ZShjbGFzc2VzRm9yQ29kZXIpOyB9CisKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBj
YWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcygpIHsgcmV0dXJuIG1fY2FjaGVQYXJ0aXRpb25lZFVS
TFNjaGVtZXM7IH0KICAgICB2b2lkIHNldENhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKFZlY3Rv
cjxXVEY6OlN0cmluZz4mJiBjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcykgeyBtX2NhY2hlUGFy
dGl0aW9uZWRVUkxTY2hlbWVzID0gV1RGTW92ZShjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyk7
IH0KIApAQCAtMTU2LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpDYWNoZU1vZGVs
IG1fY2FjaGVNb2RlbCB7IFdlYktpdDo6Q2FjaGVNb2RlbDo6UHJpbWFyeVdlYkJyb3dzZXIgfTsK
IAogICAgIFdURjo6U3RyaW5nIG1faW5qZWN0ZWRCdW5kbGVQYXRoOworICAgIFZlY3RvcjxXVEY6
OlN0cmluZz4gbV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CiAgICAgVmVjdG9yPFdU
Rjo6U3RyaW5nPiBtX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwogICAgIFZlY3RvcjxXVEY6
OlN0cmluZz4gbV9hbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXM7CiAgICAgVmVjdG9yPFdURjo6
Q1N0cmluZz4gbV9hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRoczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKaW5kZXggZTI0OGZkZGViYWIzZjg1YTQyMDIwZGQ2OGUxN2M3Y2E1YmYxZmU1My4u
MzVjMmNjODI2YTQzOWFhN2VlNWZkZTFmMjVhYjdmYjQ3MjQ3YzUxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKQEAgLTc5LDYgKzc5LDE2IEBAIHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNl
dEluamVjdGVkQnVuZGxlUGF0aChXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpCiAgICAg
dG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgodG9JbXBsKGluamVj
dGVkQnVuZGxlUGF0aCktPnN0cmluZygpKTsKIH0KIAorV0tBcnJheVJlZiBXS0NvbnRleHRDb25m
aWd1cmF0aW9uQ29weUN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKCZBUEk6OkFy
cmF5OjpjcmVhdGVTdHJpbmdBcnJheSh0b0ltcGwoY29uZmlndXJhdGlvbiktPmN1c3RvbUNsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcigpKS5sZWFrUmVmKCkpOworfQorCit2b2lkIFdLQ29udGV4dENv
bmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNGb3JDb2RlcikK
K3sKKyAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0
ZXJDb2Rlcih0b0ltcGwoY2xhc3Nlc0ZvckNvZGVyKS0+dG9TdHJpbmdWZWN0b3IoKSk7Cit9CisK
IFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5TG9jYWxTdG9yYWdlRGlyZWN0
b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmgKaW5kZXggYjUzYTgyMjg5ODhiOTFiYWU5MTdjYTA2ZTEzYjQzNGJlZmE0
ZTdkNS4uMjZlZWNhMTM2NGZmZWQ0OTZiNzQwZGY3OTRkMzA0MzFlZTkyMTU4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJl
Zi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaApAQCAtNDgsNiArNDgsOSBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25m
aWd1cmF0aW9uU2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoV0tDb250ZXh0Q29uZgogV0tf
RVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5SW5qZWN0ZWRCdW5k
bGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0SW5qZWN0ZWRCdW5kbGVQYXRoKFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYgaW5qZWN0ZWRC
dW5kbGVQYXRoKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlv
bkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRp
b25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNGb3JDb2Rlcik7CisKIFdLX0VY
UE9SVCBXS1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUxvY2FsU3RvcmFnZURp
cmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pIFdLX0NfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uQ29weUxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRD
b25maWd1cmF0aW9uU2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRp
b25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KSBX
S19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvblNldExvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKaW5kZXggMTkzOGJmOWQx
MTYyMTJkNzI1NTdlY2Q5YTY1ZjMyMjg4OThiZjY2YS4uYmNjMDgzNmRkZjRiMzYxYmUwZjAzYTRk
NmJiYjg5OGQ1YTUxNWViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0tfQ0xBU1NfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFjb3MoMTAuMTAsIDEwLjE0
LjQpLCBpb3MKIEBpbnRlcmZhY2UgV0tQcm9jZXNzR3JvdXAgOiBOU09iamVjdAogCiAtIChpZClp
bml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTDsKLQorLSAoaWQpaW5p
dFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkwgYW5kQ3VzdG9tQ2xhc3Nl
c0ZvclBhcmFtZXRlckNvZGVyOihOU1NldCAqKWNsYXNzZXNGb3JDb2RlcjsKIAogI3ByYWdtYSBt
YXJrIERlbGVnYXRlcwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzR3JvdXAubW0KaW5kZXggZTBjOWNkNTEwZDUzOWYwMWM0NmZlZjI5YTZiNGYy
YTU5MjJlN2NhNi4uNWNkMTA4ZTkwNGJkZTQ1ZGJkYmRiY2IyYjMzNjYwYzg3Mjc3OWVhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91
cC5tbQpAQCAtMjA3LDYgKzIwNyw0MSBAQCAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJM
OihOU1VSTCAqKWJ1bmRsZVVSTAogICAgIHJldHVybiBzZWxmOwogfQogCitzdGF0aWMgVmVjdG9y
PFdURjo6U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU1NldCAqaW5wdXQpCit7CisgICAgVmVjdG9y
PFdURjo6U3RyaW5nPiB2ZWN0b3I7CisKKyAgICBOU1VJbnRlZ2VyIHNpemUgPSBpbnB1dC5jb3Vu
dDsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB2ZWN0b3I7CisKKyAgICB2ZWN0b3Iu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKyAgICBmb3IgKGlkIHN0cmluZyA6IGlucHV0
KSB7CisgICAgICAgIGlmIChbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0p
CisgICAgICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAgfQorICAg
IHJldHVybiB2ZWN0b3I7Cit9CisKKy0gKGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5T
VVJMICopYnVuZGxlVVJMIGFuZEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNTZXQg
KiljbGFzc2VzRm9yQ29kZXIKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICgh
c2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IEFQ
STo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKKyAgICBjb25maWd1cmF0aW9u
LT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgoYnVuZGxlVVJMID8gU3RyaW5nKGJ1bmRsZVVSTC5wYXRo
KSA6IFN0cmluZygpKTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRDdXN0b21DbGFzc2VzRm9yUGFy
YW1ldGVyQ29kZXIodG9TdHJpbmdWZWN0b3IoY2xhc3Nlc0ZvckNvZGVyKSk7CisKKyAgICBfcHJv
Y2Vzc1Bvb2wgPSBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGUoY29uZmlndXJhdGlvbik7
CisKKyAgICBzZXRVcENvbm5lY3Rpb25DbGllbnQoc2VsZiwgdG9BUEkoX3Byb2Nlc3NQb29sLmdl
dCgpKSk7CisgICAgc2V0VXBJbmplY3RlZEJ1bmRsZUNsaWVudChzZWxmLCB0b0FQSShfcHJvY2Vz
c1Bvb2wuZ2V0KCkpKTsKKyAgICBzZXRVcEhpc3RvcnlDbGllbnQoc2VsZiwgdG9BUEkoX3Byb2Nl
c3NQb29sLmdldCgpKSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAoaWQgPFdLUHJvY2Vz
c0dyb3VwRGVsZWdhdGU+KWRlbGVnYXRlCiB7CiAgICAgcmV0dXJuIF9kZWxlZ2F0ZS5nZXRBdXRv
cmVsZWFzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDdkY2E5ZWI1YzFmMTcwNjkwNGQ0YjkzMDZlYzU4NTBhZDc5NjllNWUuLmE5
YzYyYWYwYTQ1MDkwMjVhZDBjODhmZjhjMWZlMzFkYzMxOGJhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTY5OSw3ICs1Njk5LDcg
QEAgLSAodm9pZClfc2V0SW5wdXREZWxlZ2F0ZTooaWQgPF9XS0lucHV0RGVsZWdhdGU+KWlucHV0
RGVsZWdhdGUKICAgICAgICAgICAgICAgICBhdXRvIG5zRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEg
YWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6Y29uc3RfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8
Y29uc3Qgdm9pZCo+KGRhdGEtPmJ5dGVzKCkpKSBsZW5ndGg6ZGF0YS0+c2l6ZSgpIGZyZWVXaGVu
RG9uZTpOT10pOwogICAgICAgICAgICAgICAgIGF1dG8gdW5hcmNoaXZlciA9IHNlY3VyZVVuYXJj
aGl2ZXJGcm9tRGF0YShuc0RhdGEuZ2V0KCkpOwogICAgICAgICAgICAgICAgIEB0cnkgewotICAg
ICAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZD
bGFzczpbTlNPYmplY3QgY2xhc3NdIGZvcktleTpAInVzZXJPYmplY3QiXTsKKyAgICAgICAgICAg
ICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3Nlczpt
X3dlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hbGxvd2VkQ2xhc3Nlc0Zv
clBhcmFtZXRlckNvZGluZygpIGZvcktleTpAInVzZXJPYmplY3QiXTsKICAgICAgICAgICAgICAg
ICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgICAg
ICBMT0dfRVJST1IoIkZhaWxlZCB0byBkZWNvZGUgdXNlciBkYXRhOiAlQCIsIGV4Y2VwdGlvbik7
CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IGZk
ZDQxMWYzOTg5MjZjNmUyNjYwNzFkNjkwYWExYTRmNDFhMzAyODcuLjMxZmUxYWE0OWUyOGZhYmZh
ZGNiNzkzOGNhNWRiZjM2MTQ3ZmUyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
QEAgLTMyLDYgKzMyLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxO
U0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRC
dW5kbGVVUkw7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpjdXN0
b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2Vy
IG1heGltdW1Qcm9jZXNzQ291bnQgV0tfQVBJX0RFUFJFQ0FURUQoIkl0IGlzIG5vIGxvbmdlciBw
b3NzaWJsZSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyIsIG1hY29zKFdLX01BQ19U
QkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgdXNlc1NpbmdsZVdlYlByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxl
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggZGVjNTc0Y2JkZTA5ZDI0NWE2ZGZj
OWE2ZDhhODEzYWYxMDYxMTBiOC4uYzc5ZjE1ZjNmODIyZDY3MTJlNDhlMGU5YWZiZjAzOWU2NGNj
NWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bkludGVybmFsLmgiCiAKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogCiBAaW1wbGVtZW50YXRpb24gX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
CkBAIC02MCw2ICs2MSwzMSBAQCAtICh2b2lkKXNldEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAq
KWluamVjdGVkQnVuZGxlVVJMCiAgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0SW5q
ZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVuZGxlVVJMLnBhdGgpOwogfQogCistIChOU1NldDxD
bGFzcz4gKiljdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIKK3sKKyAgICBhdXRvIGNsYXNz
ZXMgPSBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXIoKTsKKyAgICBpZiAoY2xhc3Nlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBbTlNT
ZXQgc2V0XTsKKworICAgIE5TTXV0YWJsZVNldCAqcmVzdWx0ID0gW1tOU011dGFibGVTZXQgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6Y2xhc3Nlcy5zaXplKCldOworICAgIGZvciAoY29uc3QgYXV0
byYgdmFsdWUgOiBjbGFzc2VzKQorICAgICAgICBbcmVzdWx0IGFkZE9iamVjdDogb2JqY19sb29r
VXBDbGFzcyh2YWx1ZS51dGY4KCkuZGF0YSgpKV07CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CistICh2b2lkKXNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNTZXQ8Q2xhc3M+
ICopY2xhc3Nlc0ZvckNvZGVyCit7CisgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBjbGFzc2VzOwor
ICAgIGNsYXNzZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbGFzc2VzRm9yQ29kZXIuY291bnQp
OworICAgIGZvciAoaWQgY2xhc3NPYmogOiBjbGFzc2VzRm9yQ29kZXIpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNsYXNzT2JqKSkKKyAgICAgICAgICAg
IGNsYXNzZXMudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAgfQorCisgICAgX3Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdURk1v
dmUoY2xhc3NlcykpOworfQorCiAtIChOU1VJbnRlZ2VyKW1heGltdW1Qcm9jZXNzQ291bnQKIHsK
ICAgICAvLyBEZXByZWNhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggNGZjNTA5MmE3MWUzMmUzZWI0ZDJjN2U5
NDE5YzdkMjAwYmZmMmViZi4uNDE1OTlmZjg2M2M5ZWQ1MzY3MmQ5MTYzMjdhNzE0N2RmMWMxYWNi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
UGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRp
bWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgogI2ltcG9ydCA8c3lzL3BhcmFtLmg+CkBA
IC0xMjgsNiArMTI5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
KCkKIHsKICAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCk7CiAgICAgcmVnaXN0ZXJO
b3RpZmljYXRpb25PYnNlcnZlcnMoKTsKKyAgICBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGluZygpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFibGUgdG8gc2hhcmUg
Y29kZSB3aXRoIFdlYkNvcmUncyBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgKGFuZCBiZSBwbGF0Zm9y
bSBpbmRlcGVuZGVudCkuCiAgICAgLy8gUmlnaHQgbm93IGl0IGNhbm5vdCBiZWNhdXNlIFdlYktp
dDEgYW5kIFdlYktpdDIgbmVlZCB0byBiZSBhYmxlIHRvIGNvZXhpc3QgaW4gdGhlIFVJIHByb2Nl
c3MsCkBAIC01OTIsNCArNTk0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFwcGxpY2F0aW9u
SXNBYm91dFRvU3VzcGVuZCgpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5p
dGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKQoreworICAgIGNvbnN0IGF1dG8mIGN1
c3RvbUNsYXNzZXMgPSBtX2NvbmZpZ3VyYXRpb24tPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJD
b2RlcigpOworICAgIGlmIChjdXN0b21DbGFzc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIGF1dG8gbXV0YWJsZVNldCA9IGFkb3B0TlMoW2FsbG93ZWRDbGFzc2VzRm9y
UGFyYW1ldGVyQ29kaW5nKCkgbXV0YWJsZUNvcHldKTsKKworICAgIGZvciAoY29uc3QgYXV0byYg
Y3VzdG9tQ2xhc3MgOiBjdXN0b21DbGFzc2VzKSB7CisgICAgICAgIGNvbnN0IGF1dG8qIGNsYXNz
TmFtZSA9IGN1c3RvbUNsYXNzLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIENsYXNzIG9iamVjdENs
YXNzID0gb2JqY19sb29rVXBDbGFzcyhjbGFzc05hbWUpOworICAgICAgICBpZiAoIW9iamVjdENs
YXNzKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkluamVjdGVkQnVuZGxlOjpleHRlbmRD
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgLSBDbGFzcyAlcyBpcyBub3QgYSB2YWxpZCBPYmplY3Rp
dmUgQyBjbGFzcy5cbiIsIGNsYXNzTmFtZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIFttdXRhYmxlU2V0LmdldCgpIGFkZE9iamVjdDpvYmplY3RDbGFzc107Cisg
ICAgfQorCisgICAgbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgPSBtdXRhYmxlU2V0OworfQor
CitOU1NldCAqV2ViUHJvY2Vzc1Bvb2w6OmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5n
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKSB7CisgICAg
ICAgIG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gYWRvcHROUyhbTlNTZXQgc2V0V2l0aE9i
amVjdHM6W05TQXJyYXkgY2xhc3NdLCBbTlNEYXRhIGNsYXNzXSwgW05TRGF0ZSBjbGFzc10sIFtO
U0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNOdWxsIGNsYXNzXSwKKyAgICAgICAgICAgIFtOU051bWJl
ciBjbGFzc10sIFtOU1NldCBjbGFzc10sIFtOU1N0cmluZyBjbGFzc10sIFtOU1RpbWVab25lIGNs
YXNzXSwgW05TVVJMIGNsYXNzXSwgW05TVVVJRCBjbGFzc10sIG5pbF0pOworICAgIH0KKworICAg
IHJldHVybiBtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlci5nZXQoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRl
eCA5MDcwOWZkOGYxMzczZWEzMWNmN2I3ZGQ0OGYwY2E2MmQyNjNkMzE1Li42ZDBhYWU4ZTFiYWQx
MzM2NjAyODNlMTJiMjNjMTQ4Yjc3OWI1ZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTcxLDYgKzcxLDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKIE9C
SkNfQ0xBU1MgTlNNdXRhYmxlRGljdGlvbmFyeTsKIE9CSkNfQ0xBU1MgTlNPYmplY3Q7CitPQkpD
X0NMQVNTIE5TU2V0OwogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRpZgogCkBAIC0yMTIsNiAr
MjEzLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BhZ2VzVXNpbmdXZWJzaXRlRGF0YVN0b3Jl
KFdlYnNpdGVEYXRhU3RvcmUmKSBjb25zdDsKIAogICAgIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRC
dW5kbGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLT5pbmplY3RlZEJ1bmRs
ZVBhdGgoKTsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE5TU2V0ICphbGxvd2VkQ2xhc3Nl
c0ZvclBhcmFtZXRlckNvZGluZygpIGNvbnN0OworICAgIHZvaWQgaW5pdGlhbGl6ZUNsYXNzZXNG
b3JQYXJhbWV0ZXJDb2RpbmcoKTsKKyNlbmRpZgogCiAgICAgRG93bmxvYWRQcm94eSYgZG93bmxv
YWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CiAgICAgRG93
bmxvYWRQcm94eSYgcmVzdW1lRG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwg
Y29uc3QgQVBJOjpEYXRhKiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgpOwpAQCAtNzQw
LDYgKzc0NSw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRy
PE5TTXV0YWJsZURpY3Rpb25hcnk+IG1fYnVuZGxlUGFyYW1ldGVyczsKICAgICBQcm9jZXNzU3Vw
cHJlc3Npb25EaXNhYmxlZFRva2VuIG1fcGx1Z2luUHJvY2Vzc01hbmFnZXJQcm9jZXNzU3VwcHJl
c3Npb25EaXNhYmxlZFRva2VuOworICAgIG11dGFibGUgUmV0YWluUHRyPE5TU2V0PiBtX2NsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQppbmRleCBkMzkzMGI1ZTdmZDBlNjIwZmY1ZDUxODY4YTc3NTM3Y2E5ZmE0OTEwLi45Zjhi
NmYxY2Y1N2QwNmRhMjQ3MGE1MWQ0ZDk0MzQ4NDZiZDUyMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC01NDksNyArNTQ5LDcg
QEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24mIG5vZGVJbmZvcm0KICAgICAgICAgYXV0byBuc0RhdGEgPSBhZG9wdE5T
KFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dm9pZCo+KHN0
YXRpY19jYXN0PGNvbnN0IHZvaWQqPihkYXRhLT5ieXRlcygpKSkgbGVuZ3RoOmRhdGEtPnNpemUo
KSBmcmVlV2hlbkRvbmU6Tk9dKTsKICAgICAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5h
cmNoaXZlckZyb21EYXRhKG5zRGF0YS5nZXQoKSk7CiAgICAgICAgIEB0cnkgewotICAgICAgICAg
ICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TT2JqZWN0
IGNsYXNzXSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CisgICAgICAgICAgICB1c2VyT2JqZWN0ID0g
W3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzc2VzOm1fd2ViVmlldy5nZXQoKS0+X3BhZ2Ut
PnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5n
KCkgZm9yS2V5OkAidXNlck9iamVjdCJdOwogICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24g
KmV4Y2VwdGlvbikgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIHVz
ZXIgZGF0YTogJUAiLCBleGNlcHRpb24pOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378829</attachid>
            <date>2019-09-15 15:58:47 -0700</date>
            <delta_ts>2019-09-17 17:25:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201810-20190915155846.patch</filename>
            <type>text/plain</type>
            <size>19147</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxN2EyNzFmM2I1MmU0YjY3
ZDYwYTFhMjQzN2VkNWE2MjZiZWE5Y2IuLmRkYWI2YWM1MDgxNDRhZTNmOWE1NDQ5YWU1NWJiZDRl
YTk5YjAxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTUgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bjo6Y29weSk6IENvcHkgYW55IGN1c3RvbSBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwOgorICAgICAgICAoV0tDb250ZXh0Q29u
ZmlndXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIpOiBBZGRlZC4KKyAg
ICAgICAgKFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXIpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3Jv
dXAuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tOgor
ICAgICAgICAodG9TdHJpbmdWZWN0b3IpOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzR3Jv
dXAgaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDphbmRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpdKTogUmVzdHJpY3Qgc2VyaWFs
aXphdGlvbiB0byBhbGxvd2VkIGNsYXNzZXMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uIGN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcl0pOiBB
ZGRlZC4KKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldEN1c3RvbUNs
YXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjpdKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBSZWdpc3RlciBhbnkgY3VzdG9tIGNsYXNzZXMKKyAg
ICAgICAgcHJvdmlkZWQgaW4gdGhlIGNvbmZpZ3VyYXRvbi4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjphbGxvd2VkQ2xhc3Nlc0ZvclBhcmFt
ZXRlckNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjplbGVtZW50RGlkRm9jdXMpOiBSZXN0cmlj
dCBzZXJpYWxpemF0aW9uIHRvIGFsbG93ZWQKKyAgICAgICAgY2xhc3NlcyBvbmx5LgorCiAyMDE5
LTA5LTE0ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS11bV1BFXSBDaGVjayBmb3IgYSBTbmFwIHNhbmRib3ggYSBiaXQgaGFyZGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDdlNDJkZDY4YzNlZGFlZjVjOTU3N2I4NzIzMjJkMGVl
YTFiN2EwZWEuLjYyMjRlMzAyMThiNmRlMGY2MjQ2YWZmODZmMDM5NzZjMTk3YTIxZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uY3BwCkBAIC04NCw2ICs4NCw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9t
ZWRpYUNhY2hlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUNhY2hlRGlyZWN0b3J5OwogICAgIGNv
cHktPm1faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSB0aGlzLT5tX2luZGV4ZWREQkRhdGFi
YXNlRGlyZWN0b3J5OwogICAgIGNvcHktPm1faW5qZWN0ZWRCdW5kbGVQYXRoID0gdGhpcy0+bV9p
bmplY3RlZEJ1bmRsZVBhdGg7CisgICAgY29weS0+bV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXIgPSB0aGlzLT5tX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICAgICBjb3B5
LT5tX2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHRoaXMtPm1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5
OwogICAgIGNvcHktPm1fZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+
bV9kZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9tZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oCmluZGV4IGQ4YmQyZjE5MGZiZTRjZTM3MDRiYTkyNWE0NTI2YjU5Mjc1
NDdlZjUuLmIzMzc1MTYxMDdlNWZkNmQ5YjQ4ZmIzMzQ5ZjcxNGZhNzZjYzcwYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgV1RGOjpT
dHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7IH0KICAgICB2b2lkIHNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkpIHsgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogCisgICAgY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYgY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCkgY29uc3QgeyByZXR1
cm4gbV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7IH0KKyAgICB2b2lkIHNldEN1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihWZWN0b3I8V1RGOjpTdHJpbmc+JiYgY2xhc3Nlc0Zv
ckNvZGVyKSB7IG1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gV1RGTW92ZShjbGFz
c2VzRm9yQ29kZXIpOyB9CisKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjYWNoZVBh
cnRpdGlvbmVkVVJMU2NoZW1lcygpIHsgcmV0dXJuIG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVt
ZXM7IH0KICAgICB2b2lkIHNldENhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKFZlY3RvcjxXVEY6
OlN0cmluZz4mJiBjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcykgeyBtX2NhY2hlUGFydGl0aW9u
ZWRVUkxTY2hlbWVzID0gV1RGTW92ZShjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyk7IH0KIApA
QCAtMTk5LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgV1RGOjpTdHJpbmcgbV93ZWJTUUxEYXRh
YmFzZURpcmVjdG9yeTsKICAgICBXVEY6OlN0cmluZyBtX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rv
cnk7CiAgICAgV1RGOjpTdHJpbmcgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Owor
ICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7
CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwog
ICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9hbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXM7CiAg
ICAgVmVjdG9yPFdURjo6Q1N0cmluZz4gbV9hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRo
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAKaW5kZXggZTMxMGU3NDg5Y2I5YzAzMGUwNGJiYzZlZTZi
NWUzZDEzY2YwOTM5Yi4uYmQ3MmU2ZTE0M2NkODE1YjUyNzg5Yjk5YzkxN2VlOTM4YThkNzgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAKQEAgLTc5LDYgKzc5LDE2IEBAIHZvaWQgV0tDb250ZXh0
Q29uZmlndXJhdGlvblNldEluamVjdGVkQnVuZGxlUGF0aChXS0NvbnRleHRDb25maWd1cmF0aW9u
UmVmIGNvbmZpCiAgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRJbmplY3RlZEJ1bmRsZVBh
dGgodG9JbXBsKGluamVjdGVkQnVuZGxlUGF0aCktPnN0cmluZygpKTsKIH0KIAorV0tBcnJheVJl
ZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rl
cihXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJu
IHRvQVBJKCZBUEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheSh0b0ltcGwoY29uZmlndXJhdGlv
biktPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpKS5sZWFrUmVmKCkpOworfQorCit2
b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXIoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNs
YXNzZXNGb3JDb2RlcikKK3sKKyAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEN1c3RvbUNs
YXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcih0b0ltcGwoY2xhc3Nlc0ZvckNvZGVyKS0+dG9TdHJpbmdW
ZWN0b3IoKSk7Cit9CisKIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5TG9j
YWxTdG9yYWdlRGlyZWN0b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpCiB7CiAgICAgcmV0
dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKaW5kZXggYmE1Yjk3OGYxOWU1NTJkYWZlYjNi
MmEwOGU4NWEzZWE0YWM2MDI5OS4uYjczMjExM2VhMjI3YThhNTc1NzNhYmQwZTIyYWJhMjU0ZWYw
NzU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Q29uZmlndXJhdGlvblJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dENvbmZpZ3VyYXRpb25SZWYuaApAQCAtNDgsNiArNDgsOSBAQCBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoV0tD
b250ZXh0Q29uZgogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25D
b3B5SW5qZWN0ZWRCdW5kbGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJh
dGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0SW5qZWN0ZWRC
dW5kbGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJp
bmdSZWYgaW5qZWN0ZWRCdW5kbGVQYXRoKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tDb250
ZXh0Q29uZmlndXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNGb3JD
b2Rlcik7CisKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29w
eUxvY2FsU3RvcmFnZURpcmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24pIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uQ29weUxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYgbG9jYWxTdG9y
YWdlRGlyZWN0b3J5KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldExvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91
cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgK
aW5kZXggMTkzOGJmOWQxMTYyMTJkNzI1NTdlY2Q5YTY1ZjMyMjg4OThiZjY2YS4uYmNjMDgzNmRk
ZjRiMzYxYmUwZjAzYTRkNmJiYjg5OGQ1YTUxNWViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
V0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFj
b3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MKIEBpbnRlcmZhY2UgV0tQcm9jZXNzR3JvdXAgOiBOU09i
amVjdAogCiAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVS
TDsKLQorLSAoaWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkwg
YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOihOU1NldCAqKWNsYXNzZXNGb3JDb2Rl
cjsKIAogI3ByYWdtYSBtYXJrIERlbGVnYXRlcwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0KaW5kZXggZTBjOWNkNTEwZDUzOWYw
MWM0NmZlZjI5YTZiNGYyYTU5MjJlN2NhNi4uNWNkMTA4ZTkwNGJkZTQ1ZGJkYmRiY2IyYjMzNjYw
Yzg3Mjc3OWVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc0dyb3VwLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NHcm91cC5tbQpAQCAtMjA3LDYgKzIwNyw0MSBAQCAtIChpZClpbml0V2l0aElu
amVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTAogICAgIHJldHVybiBzZWxmOwogfQog
CitzdGF0aWMgVmVjdG9yPFdURjo6U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU1NldCAqaW5wdXQp
Cit7CisgICAgVmVjdG9yPFdURjo6U3RyaW5nPiB2ZWN0b3I7CisKKyAgICBOU1VJbnRlZ2VyIHNp
emUgPSBpbnB1dC5jb3VudDsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB2ZWN0b3I7
CisKKyAgICB2ZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKyAgICBmb3IgKGlk
IHN0cmluZyA6IGlucHV0KSB7CisgICAgICAgIGlmIChbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pCisgICAgICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKHN0cmlu
Zyk7CisgICAgfQorICAgIHJldHVybiB2ZWN0b3I7Cit9CisKKy0gKGlkKWluaXRXaXRoSW5qZWN0
ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMIGFuZEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RlcjooTlNTZXQgKiljbGFzc2VzRm9yQ29kZXIKK3sKKyAgICBzZWxmID0gW3N1cGVyIGlu
aXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKKyAg
ICBjb25maWd1cmF0aW9uLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgoYnVuZGxlVVJMID8gU3RyaW5n
KGJ1bmRsZVVSTC5wYXRoKSA6IFN0cmluZygpKTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRDdXN0
b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIodG9TdHJpbmdWZWN0b3IoY2xhc3Nlc0ZvckNvZGVy
KSk7CisKKyAgICBfcHJvY2Vzc1Bvb2wgPSBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGUo
Y29uZmlndXJhdGlvbik7CisKKyAgICBzZXRVcENvbm5lY3Rpb25DbGllbnQoc2VsZiwgdG9BUEko
X3Byb2Nlc3NQb29sLmdldCgpKSk7CisgICAgc2V0VXBJbmplY3RlZEJ1bmRsZUNsaWVudChzZWxm
LCB0b0FQSShfcHJvY2Vzc1Bvb2wuZ2V0KCkpKTsKKyAgICBzZXRVcEhpc3RvcnlDbGllbnQoc2Vs
ZiwgdG9BUEkoX3Byb2Nlc3NQb29sLmdldCgpKSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwog
LSAoaWQgPFdLUHJvY2Vzc0dyb3VwRGVsZWdhdGU+KWRlbGVnYXRlCiB7CiAgICAgcmV0dXJuIF9k
ZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDVmY2Y4M2RlMmE2YmU3ZTJlYjRkYzgzOTg1MDZk
MDdjMzhlMzVmZmEuLjc5ZWJkZTk4YzdhMjdmOTMwYTEyZWI3OWYxODczNjhhN2NmOTkxOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
NTY5OSw3ICs1Njk5LDcgQEAgLSAodm9pZClfc2V0SW5wdXREZWxlZ2F0ZTooaWQgPF9XS0lucHV0
RGVsZWdhdGU+KWlucHV0RGVsZWdhdGUKICAgICAgICAgICAgICAgICBhdXRvIG5zRGF0YSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6Y29uc3RfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KGRhdGEtPmJ5dGVzKCkpKSBsZW5ndGg6ZGF0YS0+
c2l6ZSgpIGZyZWVXaGVuRG9uZTpOT10pOwogICAgICAgICAgICAgICAgIGF1dG8gdW5hcmNoaXZl
ciA9IHNlY3VyZVVuYXJjaGl2ZXJGcm9tRGF0YShuc0RhdGEuZ2V0KCkpOwogICAgICAgICAgICAg
ICAgIEB0cnkgewotICAgICAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIg
ZGVjb2RlT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZvcktleTpAInVzZXJPYmplY3Qi
XTsKKyAgICAgICAgICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9i
amVjdE9mQ2xhc3NlczptX3dlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5h
bGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpIGZvcktleTpAInVzZXJPYmplY3QiXTsK
ICAgICAgICAgICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewogICAg
ICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBkZWNvZGUgdXNlciBkYXRhOiAl
QCIsIGV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCmluZGV4IGRjMjVlOTE5NWVlNGUwZWFjMDc2NzMxZDIxMTY0MDAyM2U3OGY0ZDQuLjFl
ZDBjNWUyNGJmZDliYTQ5MDIyMjMwYTk0N2MzOGZhMTQ5YTVmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNT
ZXQ8Q2xhc3M+ICpjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBOU1VJbnRlZ2VyIG1heGltdW1Qcm9jZXNzQ291bnQgV0tfQVBJX0RFUFJFQ0FURUQoIkl0
IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyIs
IG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXNlc1NpbmdsZVdlYlByb2Nlc3MgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRl
bnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggMTVjYWY2
ZmQwNTlmOTBmOTE2YzhjMTA0ZmE1NzY5OTZjMDU1OTZjYS4uMDU1OWU1ODE1OWZiOGUwN2YxZWUy
ZDM4YzJhYTA0MTc1N2I0Y2FkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbkludGVybmFsLmgiCiAKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW1wbGVtZW50YXRpb24gX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uCkBAIC02MCw2ICs2MSwzMSBAQCAtICh2b2lkKXNldEluamVjdGVkQnVu
ZGxlVVJMOihOU1VSTCAqKWluamVjdGVkQnVuZGxlVVJMCiAgICAgX3Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi0+c2V0SW5qZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVuZGxlVVJMLnBhdGgpOwog
fQogCistIChOU1NldDxDbGFzcz4gKiljdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIKK3sK
KyAgICBhdXRvIGNsYXNzZXMgPSBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5jdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXIoKTsKKyAgICBpZiAoY2xhc3Nlcy5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBbTlNTZXQgc2V0XTsKKworICAgIE5TTXV0YWJsZVNldCAqcmVzdWx0ID0gW1tO
U011dGFibGVTZXQgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y2xhc3Nlcy5zaXplKCldOworICAg
IGZvciAoY29uc3QgYXV0byYgdmFsdWUgOiBjbGFzc2VzKQorICAgICAgICBbcmVzdWx0IGFkZE9i
amVjdDogb2JqY19sb29rVXBDbGFzcyh2YWx1ZS51dGY4KCkuZGF0YSgpKV07CisKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCistICh2b2lkKXNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rl
cjooTlNTZXQ8Q2xhc3M+ICopY2xhc3Nlc0ZvckNvZGVyCit7CisgICAgVmVjdG9yPFdURjo6U3Ry
aW5nPiBjbGFzc2VzOworICAgIGNsYXNzZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbGFzc2Vz
Rm9yQ29kZXIuY291bnQpOworICAgIGZvciAoaWQgY2xhc3NPYmogOiBjbGFzc2VzRm9yQ29kZXIp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNsYXNzT2Jq
KSkKKyAgICAgICAgICAgIGNsYXNzZXMudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAgfQor
CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFt
ZXRlckNvZGVyKFdURk1vdmUoY2xhc3NlcykpOworfQorCiAtIChOU1VJbnRlZ2VyKW1heGltdW1Q
cm9jZXNzQ291bnQKIHsKICAgICAvLyBEZXByZWNhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggNGZjNTA5MmE3
MWUzMmUzZWI0ZDJjN2U5NDE5YzdkMjAwYmZmMmViZi4uNDE1OTlmZjg2M2M5ZWQ1MzY3MmQ5MTYz
MjdhNzE0N2RmMWMxYWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgogI2ltcG9ydCA8
c3lzL3BhcmFtLmg+CkBAIC0xMjgsNiArMTI5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCk7
CiAgICAgcmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKTsKKyAgICBpbml0aWFsaXplQ2xh
c3Nlc0ZvclBhcmFtZXRlckNvZGluZygpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IGFibGUgdG8gc2hhcmUgY29kZSB3aXRoIFdlYkNvcmUncyBNZW1vcnlQcmVzc3VyZUhhbmRsZXIg
KGFuZCBiZSBwbGF0Zm9ybSBpbmRlcGVuZGVudCkuCiAgICAgLy8gUmlnaHQgbm93IGl0IGNhbm5v
dCBiZWNhdXNlIFdlYktpdDEgYW5kIFdlYktpdDIgbmVlZCB0byBiZSBhYmxlIHRvIGNvZXhpc3Qg
aW4gdGhlIFVJIHByb2Nlc3MsCkBAIC01OTIsNCArNTk0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmFwcGxpY2F0aW9uSXNBYm91dFRvU3VzcGVuZCgpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQ
cm9jZXNzUG9vbDo6aW5pdGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKQoreworICAg
IGNvbnN0IGF1dG8mIGN1c3RvbUNsYXNzZXMgPSBtX2NvbmZpZ3VyYXRpb24tPmN1c3RvbUNsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcigpOworICAgIGlmIChjdXN0b21DbGFzc2VzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGF1dG8gbXV0YWJsZVNldCA9IGFkb3B0TlMoW2Fs
bG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgbXV0YWJsZUNvcHldKTsKKworICAgIGZv
ciAoY29uc3QgYXV0byYgY3VzdG9tQ2xhc3MgOiBjdXN0b21DbGFzc2VzKSB7CisgICAgICAgIGNv
bnN0IGF1dG8qIGNsYXNzTmFtZSA9IGN1c3RvbUNsYXNzLnV0ZjgoKS5kYXRhKCk7CisgICAgICAg
IENsYXNzIG9iamVjdENsYXNzID0gb2JqY19sb29rVXBDbGFzcyhjbGFzc05hbWUpOworICAgICAg
ICBpZiAoIW9iamVjdENsYXNzKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkluamVjdGVk
QnVuZGxlOjpleHRlbmRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgLSBDbGFzcyAlcyBpcyBub3Qg
YSB2YWxpZCBPYmplY3RpdmUgQyBjbGFzcy5cbiIsIGNsYXNzTmFtZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFttdXRhYmxlU2V0LmdldCgpIGFkZE9iamVjdDpv
YmplY3RDbGFzc107CisgICAgfQorCisgICAgbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgPSBt
dXRhYmxlU2V0OworfQorCitOU1NldCAqV2ViUHJvY2Vzc1Bvb2w6OmFsbG93ZWRDbGFzc2VzRm9y
UGFyYW1ldGVyQ29kaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGVyKSB7CisgICAgICAgIG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gYWRvcHROUyhb
TlNTZXQgc2V0V2l0aE9iamVjdHM6W05TQXJyYXkgY2xhc3NdLCBbTlNEYXRhIGNsYXNzXSwgW05T
RGF0ZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNOdWxsIGNsYXNzXSwKKyAgICAg
ICAgICAgIFtOU051bWJlciBjbGFzc10sIFtOU1NldCBjbGFzc10sIFtOU1N0cmluZyBjbGFzc10s
IFtOU1RpbWVab25lIGNsYXNzXSwgW05TVVJMIGNsYXNzXSwgW05TVVVJRCBjbGFzc10sIG5pbF0p
OworICAgIH0KKworICAgIHJldHVybiBtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlci5nZXQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAppbmRleCA2NDNjNDBkNjJlY2M3OGNhNTUwOWJjZGYxODEwMjVlOWQwMzcyNTdi
Li5mN2M0NjRkNTZjMTIzMGQyZWFmOGVhYThmMzEzOTYxNzliOGY5ZmVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTcxLDYgKzcxLDcgQEAKICNpZiBQTEFU
Rk9STShDT0NPQSkKIE9CSkNfQ0xBU1MgTlNNdXRhYmxlRGljdGlvbmFyeTsKIE9CSkNfQ0xBU1Mg
TlNPYmplY3Q7CitPQkpDX0NMQVNTIE5TU2V0OwogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRp
ZgogCkBAIC0yMTIsNiArMjEzLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BhZ2VzVXNpbmdX
ZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUmKSBjb25zdDsKIAogICAgIGNvbnN0IFN0
cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9u
LT5pbmplY3RlZEJ1bmRsZVBhdGgoKTsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE5TU2V0
ICphbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpIGNvbnN0OworICAgIHZvaWQgaW5p
dGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKTsKKyNlbmRpZgogCiAgICAgRG93bmxv
YWRQcm94eSYgZG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9
IHsgfSk7CiAgICAgRG93bmxvYWRQcm94eSYgcmVzdW1lRG93bmxvYWQoV2ViUGFnZVByb3h5KiBp
bml0aWF0aW5nUGFnZSwgY29uc3QgQVBJOjpEYXRhKiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcm
IHBhdGgpOwpAQCAtNzQyLDYgKzc0Nyw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG1fYnVuZGxlUGFyYW1ldGVyczsK
ICAgICBQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZFRva2VuIG1fcGx1Z2luUHJvY2Vzc01hbmFn
ZXJQcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZFRva2VuOworICAgIG11dGFibGUgUmV0YWluUHRy
PE5TU2V0PiBtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBkMzkzMGI1ZTdmZDBlNjIwZmY1ZDUxODY4YTc3NTM3
Y2E5ZmE0OTEwLi45ZjhiNmYxY2Y1N2QwNmRhMjQ3MGE1MWQ0ZDk0MzQ4NDZiZDUyMDBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC01NDksNyArNTQ5LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKGNv
bnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIG5vZGVJbmZvcm0KICAgICAgICAgYXV0byBu
c0RhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0
X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihkYXRhLT5ieXRlcygpKSkgbGVu
Z3RoOmRhdGEtPnNpemUoKSBmcmVlV2hlbkRvbmU6Tk9dKTsKICAgICAgICAgYXV0byB1bmFyY2hp
dmVyID0gc2VjdXJlVW5hcmNoaXZlckZyb21EYXRhKG5zRGF0YS5nZXQoKSk7CiAgICAgICAgIEB0
cnkgewotICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9m
Q2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CisgICAgICAgICAg
ICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzc2VzOm1fd2ViVmll
dy5nZXQoKS0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9y
UGFyYW1ldGVyQ29kaW5nKCkgZm9yS2V5OkAidXNlck9iamVjdCJdOwogICAgICAgICB9IEBjYXRj
aCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gZGVjb2RlIHVzZXIgZGF0YTogJUAiLCBleGNlcHRpb24pOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379009</attachid>
            <date>2019-09-17 17:25:37 -0700</date>
            <delta_ts>2019-09-17 17:27:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201810-20190917172536.patch</filename>
            <type>text/plain</type>
            <size>49895</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDljMjMwNzY2MTY3ZGRhNTVi
MDdmMjdiYWU1NWZjNmIzN2U3YjBkZGIuLmVkNmJiM2MxZDdjMjllOGM5MjM5ODcxOTA0NGQxODJk
OGE3YzFiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTYgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IGFueSBjdXN0b20gY2xhc3Nlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKTogQWRkZWQuCisgICAg
ICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAg
ICAgICAgKHRvU3RyaW5nVmVjdG9yKTogQWRkZWQuCisgICAgICAgICgtW1dLUHJvY2Vzc0dyb3Vw
IGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6XSk6IFJlc3RyaWN0IHNlcmlhbGl6
YXRpb24gdG8gYWxsb3dlZCBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdKTogQWRk
ZWQuCisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKTogUmVnaXN0ZXIgYW55IGN1c3RvbSBjbGFzc2VzCisgICAg
ICAgIHByb3ZpZGVkIGluIHRoZSBjb25maWd1cmF0b24uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RpbmcgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKTogUmVzdHJpY3Qg
c2VyaWFsaXphdGlvbiB0byBhbGxvd2VkCisgICAgICAgIGNsYXNzZXMgb25seS4KKwogMjAxOS0w
OS0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gSW5pdGlhbCB2aWV3IGxvYWRpbmcgaXMgc2xvdwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNw
cAppbmRleCA3ZTQyZGQ2OGMzZWRhZWY1Yzk1NzdiODcyMzIyZDBlZWExYjdhMGVhLi42MjI0ZTMw
MjE4YjZkZTBmNjI0NmFmZjg2ZjAzOTc2YzE5N2EyMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNw
cApAQCAtODQsNiArODQsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fbWVkaWFDYWNoZURpcmVjdG9y
eSA9IHRoaXMtPm1fbWVkaWFDYWNoZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX2luZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5ID0gdGhpcy0+bV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsKICAg
ICBjb3B5LT5tX2luamVjdGVkQnVuZGxlUGF0aCA9IHRoaXMtPm1faW5qZWN0ZWRCdW5kbGVQYXRo
OworICAgIGNvcHktPm1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gdGhpcy0+bV9j
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CiAgICAgY29weS0+bV9sb2NhbFN0b3JhZ2VE
aXJlY3RvcnkgPSB0aGlzLT5tX2xvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX2Rl
dmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeSA9IHRoaXMtPm1fZGV2aWNlSWRIYXNoU2Fs
dHNTdG9yYWdlRGlyZWN0b3J5OwogICAgIGNvcHktPm1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eSA9IHRoaXMtPm1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApp
bmRleCBkOGJkMmYxOTBmYmU0Y2UzNzA0YmE5MjVhNDUyNmI1OTI3NTQ3ZWY1Li5iMzM3NTE2MTA3
ZTVmZDZkOWI0OGZiMzM0OWY3MTRmYTc2Y2M3MGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0x
MTEsNiArMTExLDkgQEAgcHVibGljOgogICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5OyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5KGNvbnN0IFdURjo6U3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KSB7IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3Rvcnk7IH0KIAorICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGN1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tQ2xhc3Nl
c0ZvclBhcmFtZXRlckNvZGVyOyB9CisgICAgdm9pZCBzZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1l
dGVyQ29kZXIoVmVjdG9yPFdURjo6U3RyaW5nPiYmIGNsYXNzZXNGb3JDb2RlcikgeyBtX2N1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciA9IFdURk1vdmUoY2xhc3Nlc0ZvckNvZGVyKTsgfQor
CiAgICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVt
ZXMoKSB7IHJldHVybiBtX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOyB9CiAgICAgdm9pZCBz
ZXRDYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyhWZWN0b3I8V1RGOjpTdHJpbmc+JiYgY2FjaGVQ
YXJ0aXRpb25lZFVSTFNjaGVtZXMpIHsgbV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyA9IFdU
Rk1vdmUoY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMpOyB9CiAKQEAgLTE5OSw2ICsyMDIsNyBA
QCBwcml2YXRlOgogICAgIFdURjo6U3RyaW5nIG1fd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CiAg
ICAgV1RGOjpTdHJpbmcgbV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwogICAgIFdURjo6U3Ry
aW5nIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOwogICAgIFZlY3RvcjxXVEY6
OlN0cmluZz4gbV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzOwogICAgIFZlY3RvcjxXVEY6OkNT
dHJpbmc+IG1fYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkUGF0aHM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuY3BwCmluZGV4IGUzMTBlNzQ4OWNiOWMwMzBlMDRiYmM2ZWU2YjVlM2QxM2NmMDkzOWIuLmJk
NzJlNmUxNDNjZDgxNWI1Mjc4OWI5OWM5MTdlZTkzOGE4ZDc4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuY3BwCkBAIC03OSw2ICs3OSwxNiBAQCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRJ
bmplY3RlZEJ1bmRsZVBhdGgoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maQogICAgIHRv
SW1wbChjb25maWd1cmF0aW9uKS0+c2V0SW5qZWN0ZWRCdW5kbGVQYXRoKHRvSW1wbChpbmplY3Rl
ZEJ1bmRsZVBhdGgpLT5zdHJpbmcoKSk7CiB9CiAKK1dLQXJyYXlSZWYgV0tDb250ZXh0Q29uZmln
dXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQoreworICAgIHJldHVybiB0b0FQSSgmQVBJOjpBcnJh
eTo6Y3JlYXRlU3RyaW5nQXJyYXkodG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5jdXN0b21DbGFzc2Vz
Rm9yUGFyYW1ldGVyQ29kZXIoKSkubGVha1JlZigpKTsKK30KKwordm9pZCBXS0NvbnRleHRDb25m
aWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tBcnJheVJlZiBjbGFzc2VzRm9yQ29kZXIpCit7
CisgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXIodG9JbXBsKGNsYXNzZXNGb3JDb2RlciktPnRvU3RyaW5nVmVjdG9yKCkpOworfQorCiBX
S1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUxvY2FsU3RvcmFnZURpcmVjdG9y
eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmKQogewogICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJh
dGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oCmluZGV4IGJhNWI5NzhmMTllNTUyZGFmZWIzYjJhMDhlODVhM2VhNGFjNjAy
OTkuLmI3MzIxMTNlYTIyN2E4YTU3NTczYWJkMGUyMmFiYTI1NGVmMDc1NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0
aW9uUmVmLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmln
dXJhdGlvblNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KFdLQ29udGV4dENvbmYKIFdLX0VY
UE9SVCBXS1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUluamVjdGVkQnVuZGxl
UGF0aChXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldEluamVjdGVkQnVuZGxlUGF0aChXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLU3RyaW5nUmVmIGluamVjdGVkQnVu
ZGxlUGF0aCk7CiAKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25D
b3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbik7CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9u
U2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbiwgV0tBcnJheVJlZiBjbGFzc2VzRm9yQ29kZXIpOworCiBXS19FWFBP
UlQgV0tTdHJpbmdSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlvbkNvcHlMb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKSBXS19DX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bkNvcHlMb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29u
ZmlndXJhdGlvblNldExvY2FsU3RvcmFnZURpcmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIFdLU3RyaW5nUmVmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkgV0tf
Q19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25TZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCmluZGV4IDE5MzhiZjlkMTE2
MjEyZDcyNTU3ZWNkOWE2NWYzMjI4ODk4YmY2NmEuLjU0MTNiNzkzMmM3MTBkMGU4YTk4M2M2MGFh
OGU1NzIyMGM5NTE0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDcgKzQ4LDcgQEAgV0tfQ0xBU1NfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBp
b3MKIEBpbnRlcmZhY2UgV0tQcm9jZXNzR3JvdXAgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0
aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTDsKLQorLSAoaWQpaW5pdFdpdGhJ
bmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkwgYW5kQ3VzdG9tQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyOihOU1NldCAqKWNsYXNzZXNGb3JDb2RlcjsKIAogI3ByYWdtYSBtYXJrIERl
bGVnYXRlcwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzR3JvdXAubW0KaW5kZXggZTBjOWNkNTEwZDUzOWYwMWM0NmZlZjI5YTZiNGYyYTU5MjJl
N2NhNi4uMmJjY2JiM2RiNjliODU5MzUxNWIyYTcxNTAwMWIyNDVmNjZiYzg4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
MDcsNiArMjA3LDQxIEBAIC0gKGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICop
YnVuZGxlVVJMCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKK3N0YXRpYyBWZWN0b3I8V1RGOjpTdHJp
bmc+IHRvU3RyaW5nVmVjdG9yKE5TU2V0ICppbnB1dCkKK3sKKyAgICBWZWN0b3I8V1RGOjpTdHJp
bmc+IHZlY3RvcjsKKworICAgIE5TVUludGVnZXIgc2l6ZSA9IGlucHV0LmNvdW50OworICAgIGlm
ICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIHZlY3RvcjsKKworICAgIHZlY3Rvci5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHNpemUpOworICAgIGZvciAoaWQgY2xhc3NPYmogOiBpbnB1dCkgeworICAg
ICAgICBpZiAoYXV0byogc3RyaW5nID0gTlNTdHJpbmdGcm9tQ2xhc3MoY2xhc3NPYmopKQorICAg
ICAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZChzdHJpbmcpOworICAgIH0KKyAgICByZXR1
cm4gdmVjdG9yOworfQorCistIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAq
KWJ1bmRsZVVSTCBhbmRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0ICopY2xh
c3Nlc0ZvckNvZGVyCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBBUEk6OlBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0
SW5qZWN0ZWRCdW5kbGVQYXRoKGJ1bmRsZVVSTCA/IFN0cmluZyhidW5kbGVVUkwucGF0aCkgOiBT
dHJpbmcoKSk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGVyKHRvU3RyaW5nVmVjdG9yKGNsYXNzZXNGb3JDb2RlcikpOworCisgICAgX3Byb2Nlc3NQ
b29sID0gV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlKGNvbmZpZ3VyYXRpb24pOworCisg
ICAgc2V0VXBDb25uZWN0aW9uQ2xpZW50KHNlbGYsIHRvQVBJKF9wcm9jZXNzUG9vbC5nZXQoKSkp
OworICAgIHNldFVwSW5qZWN0ZWRCdW5kbGVDbGllbnQoc2VsZiwgdG9BUEkoX3Byb2Nlc3NQb29s
LmdldCgpKSk7CisgICAgc2V0VXBIaXN0b3J5Q2xpZW50KHNlbGYsIHRvQVBJKF9wcm9jZXNzUG9v
bC5nZXQoKSkpOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKGlkIDxXS1Byb2Nlc3NHcm91
cERlbGVnYXRlPilkZWxlZ2F0ZQogewogICAgIHJldHVybiBfZGVsZWdhdGUuZ2V0QXV0b3JlbGVh
c2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQppbmRleCA1ZmNmODNkZTJhNmJlN2UyZWI0ZGM4Mzk4NTA2ZDA3YzM4ZTM1ZmZhLi5kY2M0NWIx
OTI2OGRiMDRhODNiMzg5ZGRkMjY3ZjkyMmMzNDVjNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Njk5LDcgKzU2OTksNyBAQCAt
ICh2b2lkKV9zZXRJbnB1dERlbGVnYXRlOihpZCA8X1dLSW5wdXREZWxlZ2F0ZT4paW5wdXREZWxl
Z2F0ZQogICAgICAgICAgICAgICAgIGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlc05vQ29weTpjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjb25z
dCB2b2lkKj4oZGF0YS0+Ynl0ZXMoKSkpIGxlbmd0aDpkYXRhLT5zaXplKCkgZnJlZVdoZW5Eb25l
Ok5PXSk7CiAgICAgICAgICAgICAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZl
ckZyb21EYXRhKG5zRGF0YS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgQHRyeSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNz
OltOU09iamVjdCBjbGFzc10gZm9yS2V5OkAidXNlck9iamVjdCJdOworICAgICAgICAgICAgICAg
ICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzc2VzOm1fd2Vi
Vmlldy0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFy
YW1ldGVyQ29kaW5nKCkgZm9yS2V5OkAidXNlck9iamVjdCJdOwogICAgICAgICAgICAgICAgIH0g
QGNhdGNoIChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIGRlY29kZSB1c2VyIGRhdGE6ICVAIiwgZXhjZXB0aW9uKTsKICAg
ICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmluZGV4IDExOTczNGEwOGQ0ODViYjg0NzRiNTJjZjhh
ZGM0MjBhNzdiMTkyZWUuLjNiOWI3YmNmZDc3NmY1Zjc2Nzk4ZjllOTA3NTI5ODk0Y2M2Y2FjM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50
QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50QWN0aW9uLm1tCkBAIC0xNjYsNiArMTY2LDcgQEAgKyAoaW5zdGFuY2V0eXBlKV9lbGVtZW50
QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0bGU6KE4K
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVG9nZ2xlU2hvd0xpbmtQ
cmV2aWV3czoKICAgICAgICAgLy8gVGhpcyBhY3Rpb24gbXVzdCBzdGlsbCBleGlzdCBmb3IgY29t
cGF0aWJpbGl0eSwgYnV0IGRvZXNuJ3QgZG8gYW55dGhpbmcuCisgICAgICAgIGhhbmRsZXIgPSBu
aWw7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGVyZSBpcyBubyBzdGFu
ZGFyZCB3ZWIgZWxlbWVudCBhY3Rpb24gb2YgdHlwZSAlbGQuIiwgKGxvbmcpdHlwZV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggZGMyNWU5MTk1ZWU0ZTBlYWMwNzY3MzFkMjEx
NjQwMDIzZTc4ZjRkNC4uMWVkMGM1ZTI0YmZkOWJhNDkwMjIyMzBhOTQ3YzM4ZmExNDlhNWYzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtMzIsNiArMzIsNyBAQCBXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIE5TVVJMICppbmplY3RlZEJ1bmRsZVVSTDsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSBOU1NldDxDbGFzcz4gKmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
QHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudCBXS19B
UElfREVQUkVDQVRFRCgiSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxpbWl0IHRoZSBudW1i
ZXIgb2YgcHJvY2Vzc2VzIiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2VzU2lu
Z2xlV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmlu
ZyAqY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5tbQppbmRleCAxNWNhZjZmZDA1OWY5MGY5MTZjOGMxMDRmYTU3Njk5NmMwNTU5NmNhLi5mNDlm
OGExMGFlZGU2ZjkyNjgwODA1MDc1OTNhYzcyNmU4MGVkNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24ubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24KQEAgLTYwLDYgKzYxLDMxIEBAIC0gKHZv
aWQpc2V0SW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopaW5qZWN0ZWRCdW5kbGVVUkwKICAgICBf
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRC
dW5kbGVVUkwucGF0aCk7CiB9CiAKKy0gKE5TU2V0PENsYXNzPiAqKWN1c3RvbUNsYXNzZXNGb3JQ
YXJhbWV0ZXJDb2RlcgoreworICAgIGF1dG8gY2xhc3NlcyA9IF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpOworICAgIGlmIChjbGFzc2Vz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFtOU1NldCBzZXRdOworCisgICAgTlNNdXRhYmxl
U2V0ICpyZXN1bHQgPSBbW05TTXV0YWJsZVNldCBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjbGFz
c2VzLnNpemUoKV07CisgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IGNsYXNzZXMpCisgICAg
ICAgIFtyZXN1bHQgYWRkT2JqZWN0OiBvYmpjX2xvb2tVcENsYXNzKHZhbHVlLnV0ZjgoKS5kYXRh
KCkpXTsKKworICAgIHJldHVybiBbcmVzdWx0IGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClz
ZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0PENsYXNzPiAqKWNsYXNzZXNG
b3JDb2RlcgoreworICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gY2xhc3NlczsKKyAgICBjbGFzc2Vz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY2xhc3Nlc0ZvckNvZGVyLmNvdW50KTsKKyAgICBmb3Ig
KGlkIGNsYXNzT2JqIDogY2xhc3Nlc0ZvckNvZGVyKSB7CisgICAgICAgIGlmIChhdXRvKiBzdHJp
bmcgPSBOU1N0cmluZ0Zyb21DbGFzcyhjbGFzc09iaikpCisgICAgICAgICAgICBjbGFzc2VzLnVu
Y2hlY2tlZEFwcGVuZChzdHJpbmcpOworICAgIH0KKworICAgIF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPnNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXVEZNb3ZlKGNsYXNzZXMp
KTsKK30KKwogLSAoTlNVSW50ZWdlciltYXhpbXVtUHJvY2Vzc0NvdW50CiB7CiAgICAgLy8gRGVw
cmVjYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCmluZGV4IDRmYzUwOTJhNzFlMzJlM2ViNGQyYzdlOTQxOWM3ZDIwMGJm
ZjJlYmYuLjQyMTg1ZWJiZDc4NmRiYmI5NTYzNGI1NWJhNDgwNTkzNzkwYzI5M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9O
U0tleWVkQXJjaGl2ZXJTUEkuaD4KICNpbXBvcnQgPHN5cy9wYXJhbS5oPgpAQCAtMTI4LDYgKzEy
OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAgICAg
cmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpOwogICAgIHJlZ2lzdGVyTm90aWZpY2F0aW9u
T2JzZXJ2ZXJzKCk7CisgICAgaW5pdGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKTsK
IAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhYmxlIHRvIHNoYXJlIGNvZGUgd2l0aCBX
ZWJDb3JlJ3MgTWVtb3J5UHJlc3N1cmVIYW5kbGVyIChhbmQgYmUgcGxhdGZvcm0gaW5kZXBlbmRl
bnQpLgogICAgIC8vIFJpZ2h0IG5vdyBpdCBjYW5ub3QgYmVjYXVzZSBXZWJLaXQxIGFuZCBXZWJL
aXQyIG5lZWQgdG8gYmUgYWJsZSB0byBjb2V4aXN0IGluIHRoZSBVSSBwcm9jZXNzLApAQCAtNTky
LDQgKzU5NCwzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjphcHBsaWNhdGlvbklzQWJvdXRUb1N1
c3BlbmQoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVDbGFz
c2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkKK3sKKyAgICBjb25zdCBhdXRvJiBjdXN0b21DbGFzc2Vz
ID0gbV9jb25maWd1cmF0aW9uLT5jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoKTsKKyAg
ICBpZiAoY3VzdG9tQ2xhc3Nlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBhdXRvIG11dGFibGVTZXQgPSBhZG9wdE5TKFthbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGluZygpIG11dGFibGVDb3B5XSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGN1c3RvbUNsYXNz
IDogY3VzdG9tQ2xhc3NlcykgeworICAgICAgICBjb25zdCBhdXRvKiBjbGFzc05hbWUgPSBjdXN0
b21DbGFzcy51dGY4KCkuZGF0YSgpOworICAgICAgICBDbGFzcyBvYmplY3RDbGFzcyA9IG9iamNf
bG9va1VwQ2xhc3MoY2xhc3NOYW1lKTsKKyAgICAgICAgaWYgKCFvYmplY3RDbGFzcykgeworICAg
ICAgICAgICAgV1RGTG9nQWx3YXlzKCJJbmplY3RlZEJ1bmRsZTo6ZXh0ZW5kQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyIC0gQ2xhc3MgJXMgaXMgbm90IGEgdmFsaWQgT2JqZWN0aXZlIEMgY2xhc3Mu
XG4iLCBjbGFzc05hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBbbXV0YWJsZVNldC5nZXQoKSBhZGRPYmplY3Q6b2JqZWN0Q2xhc3NdOworICAgIH0KKworICAg
IG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gbXV0YWJsZVNldDsKK30KKworTlNTZXQgKldl
YlByb2Nlc3NQb29sOjphbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcikgeworICAgICAgICBtX2NsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlciA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpbTlNBcnJheSBjbGFz
c10sIFtOU0RhdGEgY2xhc3NdLCBbTlNEYXRlIGNsYXNzXSwgW05TRGljdGlvbmFyeSBjbGFzc10s
IFtOU051bGwgY2xhc3NdLAorICAgICAgICAgICAgW05TTnVtYmVyIGNsYXNzXSwgW05TU2V0IGNs
YXNzXSwgW05TU3RyaW5nIGNsYXNzXSwgW05TVGltZVpvbmUgY2xhc3NdLCBbTlNVUkwgY2xhc3Nd
LCBbTlNVVUlEIGNsYXNzXSwgbmlsXTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9jbGFzc2VzRm9y
UGFyYW1ldGVyQ29kZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNjQzYzQwZDYyZWNjNzhjYTU1
MDliY2RmMTgxMDI1ZTlkMDM3MjU3Yi4uYzhlYWRhODliMmNkOTlkYWY1NTNlNTVlOTNkMTQ3YjM3
NjcyNGZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NzEsNiArNzEsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU011dGFibGVE
aWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU09iamVjdDsKK09CSkNfQ0xBU1MgTlNTZXQ7CiBPQkpD
X0NMQVNTIE5TU3RyaW5nOwogI2VuZGlmCiAKQEAgLTIxMiw2ICsyMTMsMTAgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzUGFnZXNVc2luZ1dlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYp
IGNvbnN0OwogCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBjb25zdCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgTlNTZXQgKmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5n
KCkgY29uc3Q7CisgICAgdm9pZCBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygp
OworI2VuZGlmCiAKICAgICBEb3dubG9hZFByb3h5JiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGlu
aXRpYXRpbmdQYWdlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKICAgICBEb3dubG9hZFByb3h5JiByZXN1bWVE
b3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBBUEk6OkRhdGEqIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCk7CkBAIC03NDIsNiArNzQ3LDcgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFy
eT4gbV9idW5kbGVQYXJhbWV0ZXJzOwogICAgIFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9r
ZW4gbV9wbHVnaW5Qcm9jZXNzTWFuYWdlclByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW47
CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNTZXQ+IG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVy
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQzOTMwYjVl
N2ZkMGU2MjBmZjVkNTE4NjhhNzc1MzdjYTlmYTQ5MTAuLjcwZGRlOTJkMjc0ZTlhMjU5NWQzYTg4
NTJjY2RmMTk4M2ZmZjA4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NDksNyArNTQ5LDcgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIG5v
ZGVJbmZvcm0KICAgICAgICAgYXV0byBuc0RhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGNvbnN0IHZv
aWQqPihkYXRhLT5ieXRlcygpKSkgbGVuZ3RoOmRhdGEtPnNpemUoKSBmcmVlV2hlbkRvbmU6Tk9d
KTsKICAgICAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZlckZyb21EYXRhKG5z
RGF0YS5nZXQoKSk7CiAgICAgICAgIEB0cnkgewotICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1
bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmb3JLZXk6QCJ1
c2VyT2JqZWN0Il07CisgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2Rl
T2JqZWN0T2ZDbGFzc2VzOm1fd2ViVmlldy5nZXQoKS0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNz
UG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgZm9yS2V5OkAidXNlck9i
amVjdCJdOwogICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewogICAg
ICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIHVzZXIgZGF0YTogJUAiLCBleGNl
cHRpb24pOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZDMzZWJiODViZjY3MTQ4YjY5YTFiNDZiZjI3Y2QwNWExNWIzYzAyYi4u
ODVmMjkwMjM5YzhlZWE0ZmZiY2Q0MzI3ZjQ2ZDBjNmJmMmRhZTJmMCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5
LTA5LTE3ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBJbmplY3RlZEJ1bmRsZSBTUEkgdG8gYmV0dGVyIHN1cHBvcnQgTlNTZWN1cmVDb2RpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTgxMAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTUyNjU3MTM+CisKKyAgICAgICAgVGhlIGVuY29kaW5n
L2RlY29kaW5nIHJvdXRpbmVzIHVzZWQgYnkgV2ViS2l04oCZcyBJbmplY3RlZEJ1bmRsZXMgYXJl
IGJhc2VkIG9uIE5TQ29kaW5nLgorICAgICAgICBXaGlsZSB3ZSBoYXZlIGNoYW5nZWQgV2ViS2l0
IGludGVybmFscyB0byB1c2UgTlNTZWN1cmVDb2RpbmcsIHRoZXJlIGFyZSBhIG51bWJlciBvZgor
ICAgICAgICBpbmplY3RlZCBidW5kbGVzIHRoYXQgbmVlZCB0byBzZXJpYWxpemUgY3VzdG9tIGNs
YXNzZXMgYmV0d2VlbiB0aGUgSW5qZWN0ZWRCdW5kbGUgYW5kCisgICAgICAgIHRoZSByZWxldmFu
dCBXZWJLaXQgVUlQcm9jZXNzLgorCisgICAgICAgIFdlIG5lZWQgdG8gbG9jayBkb3duIHRoaXMg
Y29tbXVuaWNhdGlvbnMgY2hhbm5lbCBieSBlbmZvcmNpbmcgTlNTZWN1cmVDb2RpbmcuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjcmVhdGVzIG5ldyBTUEkgdG8gYWxsb3cgdGhlIFVJUHJvY2VzcyB0
byBzcGVjaWZ5IGNsYXNzZXMgdGhhdCBpdCB3aWxsIGFjY2VwdAorICAgICAgICBpbiBtZXNzYWdl
cyBmcm9tIHRoZSBXZWJDb250ZXQgUHJvY2VzcyAoYW5kIEluamVjdGVkIEJ1bmRsZSkuCisKKyAg
ICAgICAgSXQgYWRkcyB0aGUgZm9sbG93aW5nIHByb3BlcnR5IHRvIHRoZSBXS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjoKKworICAgICAgICAgICAgQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU2V0PENsYXNzPiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOworCisgICAgICAg
IElmIG5vIGN1c3RvbSBjbGFzc2VzIGFyZSBzcGVjaWZpZWQsIHRoZSBzdGFuZGFyZCBzZXJpYWxp
emF0aW9uIHByaW1pdGl2ZXMgYXJlIHN1cHBvcnRlZDoKKyAgICAgICAgICAgIE5TQXJyYXksIE5T
RGF0YSwgTlNEYXRlLCBOU0RpY3Rpb25hcnksIE5TTnVsbCwgTlNOdW1iZXIsIE5TU2V0LCBOU1N0
cmluZywKKyAgICAgICAgICAgIE5TVGltZVpvbmUsIE5TVVJMLCBhbmQgTlNVVUlELgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0IGRpZEdldEZvY3VzXSk6
CisgICAgICAgICgtW0Zvcm1JbnB1dERlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvckZv
Y3VzZWRFbGVtZW50Ol0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW06IEFkZGVkLgor
ICAgICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRD
cmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW0J1bmRsZUZvcm1E
ZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjp3
aWxsQmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVtZW50OmluRnJhbWU6dXNlcklzSW50ZXJhY3Rpbmc6
XSk6CisgICAgICAgICgtW0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpkaWRGb2N1c1RleHRGaWVsZDppbkZyYW1lOl0pOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVn
YXRlUHJvdG9jb2wuaDogQ29waWVkIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbToK
KyAgICAgICAgKCtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6Y29uZmlndXJlSlNDRm9yVGVzdGluZzpdKToKKyAgICAgICAg
KCtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6Y29uZmlndXJlSlNDRm9yVGVzdGluZzphbmRDdXN0b21QYXJhbWV0ZXJDbGFz
c2VzOl0pOgorCiAyMDE5LTA5LTE3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgdGhlICJTaG93IExpbmsgUHJldmlld3MiIGFuZCAiSGlkZSBMaW5rIFBy
ZXZpZXdzIiBhY3Rpb24gbWVudXMgaW4gdGhlIHByZXZpZXcgcGxhdHRlcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBmNmQwMThkZDU5NTYxOGQyNjI2MzE3ZThmZmQwMGRjZGY3NTY3NDE0Li43
NzljYjNjYzcxM2ZiYTVmOWUxZTM0Y2YxMzMyMTFmNWY5MTZkNGI5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDM5LDYgKzQzOSw4IEBACiAJCTdBNkEyQzcwMURDQ0ZBOEMwMEMwRDA4NSAv
KiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTZBMkM2RjFEQ0NGODdCMDBDMEQwODUgLyogTG9jYWxTdG9yYWdl
UXVpcmtUZXN0Lm1tICovOyB9OwogCQk3QTZBMkM3MjFEQ0NGQjUyMDBDMEQwODUgLyogTG9jYWxT
dG9yYWdlUXVpcmtFbmFibGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2QTJDNzExRENDRkIwMjAwQzBEMDg1IC8qIExvY2FsU3Rv
cmFnZVF1aXJrRW5hYmxlZC5odG1sICovOyB9OwogCQk3QTdCMEU3RjFFQUZFNEMzMDA2QUI4QUUg
LyogTGltaXRUaXRsZVNpemUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTdCMEU3RTFFQUZFNDU0MDA2QUI4QUUgLyogTGltaXRUaXRsZVNpemUubW0g
Ki87IH07CisJCTdBODlCQjY3MjMzMTY0MzIwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTg5QkI2
NTIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovOyB9OworCQk3QTg5
QkI2ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4OUJCNjYyMzMxNjM1
RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSAqLzsgfTsKIAkJN0E5MDlB
N0QxRDg3NzQ4MDAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkwOUE2RjFEODc3NDc1MDA3RTEwRjgg
LyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJN0E5MDlBN0UxRDg3NzQ4MDAwN0UxMEY4
IC8qIEZsb2F0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovOyB9
OwogCQk3QTkwOUE3RjFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRSZWN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBOTA5QTcxMUQ4Nzc0NzUwMDdF
MTBGOCAvKiBGbG9hdFJlY3QuY3BwICovOyB9OwpAQCAtMTk2MCw2ICsxOTYyLDkgQEAKIAkJN0E2
QTJDNkYxRENDRjg3QjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZVF1aXJrVGVzdC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2QTJDNzExRENDRkIwMjAwQzBEMDg1
IC8qIExvY2FsU3RvcmFnZVF1aXJrRW5hYmxlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gTG9jYWxTdG9yYWdlUXVpcmtFbmFibGVkLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdBN0IwRTdFMUVBRkU0NTQwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6ZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExpbWl0VGl0bGVTaXplLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2NTIzMzE2MzVEMDA0MkNCMUUg
LyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQnVuZGxlRm9ybURlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0lu
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlRm9ybURl
bGVnYXRlUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2OTIz
MzE2NTY1MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0E5MDlBNkYxRDg3NzQ3NTAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBZmZpbmVUcmFuc2Zvcm0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE3MDFEODc3NDc1MDA3RTEwRjgg
LyogRmxvYXRQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
bG9hdFBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5MDlBNzExRDg3
NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGbG9hdFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjczOCw2ICsyNzQzLDkgQEAKIAkJCQkzNzRCN0E1RTFERjM2RUVFMDBBQ0NCNkMgLyogQnVuZGxl
RWRpdGluZ0RlbGVnYXRlLm1tICovLAogCQkJCTM3NEI3QTVGMURGMzZFRUUwMEFDQ0I2QyAvKiBC
dW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gKi8sCiAJCQkJMzc0QjdBNjIxREYzNzM0QzAw
QUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVByb3RvY29sLmggKi8sCisJCQkJN0E4OUJC
NjUyMzMxNjM1RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZS5tbSAqLywKKwkJCQk3QTg5
QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tICovLAor
CQkJCTdBODlCQjY5MjMzMTY1NjUwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2Nv
bC5oICovLAogCQkJCUExM0VCQkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJz
Lm1tICovLAogCQkJCUExM0VCQkFFMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJz
UGx1Z0luLm1tICovLAogCQkJCTM3QTcwOUFEMUUzRUE4QjAwMENBNTk2OSAvKiBCdW5kbGVSYW5n
ZUhhbmRsZS5tbSAqLywKQEAgLTQ2MDQsNiArNDYxMiw3IEBACiAJCQkJN0NDRTdFQzUxQTQxMUE3
RTAwNDQ3QzRDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzYxQTQxMUE3RTAwNDQ3QzRDIC8qIE1lbW9y
eUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTVDMEJGODhEMURENTk2NEQwMEIwMDMyOCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIubW0g
aW4gU291cmNlcyAqLywKKwkJCQk3QTg5QkI2NzIzMzE2NDMyMDA0MkNCMUUgLyogQnVuZGxlRm9y
bURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQjcxRDBBNjRCODAwRkVCQ0Yz
IC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJG
ODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFByb3Zp
ZGVycy5tbSBpbiBTb3VyY2VzICovLApAQCAtNDg5Niw2ICs0OTA1LDcgQEAKIAkJCQkzN0U3REQ2
NzFFQTA3MUYzMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMc1BsdWdp
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc1NENFQzgxMUY2NzIyRjIwMEQwMDM5QSAvKiBBdXRv
RmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDNDI1OTQ2MjI2NkE2OEEwMDM5
QUE3QSAvKiBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbFBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTdBODlCQjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzRCN0E2MTFERjM3MUNGMDBBQ0NCNkMgLyogQnVuZGxl
RWRpdGluZ0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjAxQjg3
NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLywK
IAkJCQkzN0E3MDlBRjFFM0VBOTdFMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGVQbHVnSW4u
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyYjZk
NmQyNTNlMTE3Yzc0ZGRjN2ZkNGM3YzRlYzYyMjQ2M2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1t
CkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
CisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIgorI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKKyNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNp
bXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tGb2N1c2VkRWxlbWVudEluZm8u
aD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnB1dERlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGJvb2wg
ZGlkR2V0Rm9jdXM7CitzdGF0aWMgYm9vbCBkaWRHZXRVc2VyT2JqZWN0Oworc3RhdGljIGlkIHVz
ZXJPYmplY3Q7CisKK0BpbnRlcmZhY2UgQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0IDog
TlNPYmplY3QgPEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0CisKKy0gKHZvaWQpZGlkR2V0Rm9j
dXMKK3sKKyAgICBkaWRHZXRGb2N1cyA9IHRydWU7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBG
b3JtSW5wdXREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tJbnB1dERlbGVnYXRlPgorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gRm9ybUlucHV0RGVsZWdhdGUKKworLSAoX1dLRm9jdXNTdGFydHNJbnB1
dFNlc3Npb25Qb2xpY3kpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yRm9jdXNlZEVsZW1lbnQ6KGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KWluZm8KK3sKKyAg
ICB1c2VyT2JqZWN0ID0gaW5mby51c2VyT2JqZWN0OworICAgIGRpZEdldFVzZXJPYmplY3QgPSB0
cnVlOworICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93Owor
fQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRoVW5yZWdpc3Rl
cmVkQ3VzdG9tQ2xhc3MpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tGb3JtSW5w
dXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gcmV0
YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiJdKTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmplY3Q6QFlFUyBmb3JCdW5kbGVQYXJhbWV0
ZXI6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21DbGFzcyJdOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQ+PC9pbnB1dD48c2VsZWN0PjxvcHRpb24gc2VsZWN0
ZWQ+Zm9vPC9vcHRpb24+PG9wdGlvbj5iYXI8L29wdGlvbj48L3NlbGVjdD4iIGJhc2VVUkw6bmls
XTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAg
ICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tCdW5kbGVGb3JtRGVsZWdhdGVSZW1vdGVPYmplY3Qg
YWxsb2NdIGluaXRdKTsKKyAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9
IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3Rv
Y29sOkBwcm90b2NvbChCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbCldOworICAgIFtbd2ViVmll
dyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhwb3J0ZWRPYmplY3Q6b2JqZWN0Lmdl
dCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpIiBjb21wbGV0aW9u
SGFuZGxlcjpuaWxdOworCisgICAgdXNlck9iamVjdCA9IG5pbDsKKyAgICBkaWRHZXRVc2VyT2Jq
ZWN0ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdldEZvY3Vz
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdldFVzZXJPYmplY3QpOworCisg
ICAgRVhQRUNUX05VTEwodXNlck9iamVjdCk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nl
c3NQbHVnSW5XaXRoUmVnaXN0ZXJlZEN1c3RvbUNsYXNzKQoreworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbRm9ybUlucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IHJldGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVGb3JtRGVsZWdhdGVQ
bHVnSW4iCisgICAgICAgIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6Tk8gYW5kQ3VzdG9tUGFyYW1l
dGVyQ2xhc3NlczpbTlNTZXQgc2V0V2l0aE9iamVjdHM6W05TVW5pdENvbnZlcnRlckxpbmVhciBj
bGFzc10sIG5pbF1dKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmpl
Y3Q6QFlFUyBmb3JCdW5kbGVQYXJhbWV0ZXI6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21D
bGFzcyJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQ+PC9pbnB1
dD48c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQ+Zm9vPC9vcHRpb24+PG9wdGlvbj5iYXI8L29wdGlv
bj48L3NlbGVjdD4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlk
RmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tCdW5kbGVG
b3JtRGVsZWdhdGVSZW1vdGVPYmplY3QgYWxsb2NdIGluaXRdKTsKKyAgICBfV0tSZW1vdGVPYmpl
Y3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3Rl
T2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVGb3JtRGVsZWdhdGVQ
cm90b2NvbCldOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVy
RXhwb3J0ZWRPYmplY3Q6b2JqZWN0LmdldCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5w
dXQnKS5mb2N1cygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIAorICAgIHVzZXJPYmpl
Y3QgPSBuaWw7CisgICAgZGlkR2V0VXNlck9iamVjdCA9IGZhbHNlOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRGb2N1cyk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRHZXRVc2VyT2JqZWN0KTsKKyAgICAKKyAgICBFWFBFQ1RfVFJVRShbdXNlck9iamVj
dCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0ZXJMaW5lYXIgY2xhc3NdXSk7Cit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzMzNGI0
M2E3Yzk0YTQyY2JiZjI1NDE4NGNmMmUwMzhmMGQ0ZTZmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVn
SW4ubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIgorI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW4uaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRl
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50
ZXJmYWNlIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQ
bHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU+CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4geworICAgIFJldGFpblB0cjxX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4
dENvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+
IF9wbHVnSW5Db250cm9sbGVyOworICAgIFJldGFpblB0cjxpZCA8QnVuZGxlRm9ybURlbGVnYXRl
UHJvdG9jb2w+PiBfcmVtb3RlT2JqZWN0OworICAgIEJPT0wgX3Nob3VsZFVzZUN1c3RvbUNsYXNz
OworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRy
b2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNv
bnRleHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJvd3NlckNvbnRleHRDb250cm9sbGVy
KTsKKyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsKKyAgICBfYnJvd3NlckNvbnRleHRD
b250cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIF9wbHVnSW5Db250cm9s
bGVyID0gcGx1Z0luQ29udHJvbGxlcjsKKworICAgIGlmIChpZCBzaG91bGRBZGRDdXN0b21DbGFz
cyA9IFtwbHVnSW5Db250cm9sbGVyLnBhcmFtZXRlcnMgdmFsdWVGb3JLZXk6QCJGb3JtRGVsZWdh
dGVTaG91bGRBZGRDdXN0b21DbGFzcyJdKSB7CisgICAgICAgIEFTU0VSVChbc2hvdWxkQWRkQ3Vz
dG9tQ2xhc3MgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSk7CisgICAgICAgIF9zaG91
bGRVc2VDdXN0b21DbGFzcyA9IFsoTlNOdW1iZXIgKilzaG91bGRBZGRDdXN0b21DbGFzcyBib29s
VmFsdWVdOworICAgIH0gZWxzZQorICAgICAgICBfc2hvdWxkVXNlQ3VzdG9tQ2xhc3MgPSBOTzsK
KworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNlID0gW19XS1JlbW90ZU9i
amVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29s
KEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07CisgICAgX3JlbW90ZU9iamVjdCA9IFticm93
c2VyQ29udGV4dENvbnRyb2xsZXIuX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFBy
b3h5V2l0aEludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW19icm93c2VyQ29udGV4dENvbnRy
b2xsZXIgX3NldEZvcm1EZWxlZ2F0ZTpzZWxmXTsKK30KKworLSAoTlNPYmplY3QgPE5TU2VjdXJl
Q29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxC
ZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUg
Kilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWUgdXNlcklzSW50
ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcKK3sKKyAgICBpZiAoIV9zaG91bGRVc2VD
dXN0b21DbGFzcykKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIE5TVW5pdENvbnZlcnRlckxp
bmVhciAqa2lsb21ldGVyc1RvTWV0ZXJzID0gW1tOU1VuaXRDb252ZXJ0ZXJMaW5lYXIgYWxsb2Nd
IGluaXRXaXRoQ29lZmZpY2llbnQ6MTAwMC4wIGNvbnN0YW50OjAuMF07CisKKyAgICByZXR1cm4g
W2tpbG9tZXRlcnNUb01ldGVycyBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpX3dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkRm9jdXNUZXh0RmllbGQ6KFdLV2Vi
UHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKil0ZXh0RmllbGQgaW5GcmFtZTooV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUgKilmcmFtZQoreworICAgIC8vIFRoaXMgaXMgaGl0IGluIHRoZSBtYWNPUyBj
YXNlLgorICAgIFtfcmVtb3RlT2JqZWN0IGRpZEdldEZvY3VzXTsKK30KKworQGVuZApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVs
ZWdhdGVQcm90b2NvbC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlM2M0N2ExYmUxNTJjODU1
NWY0Mzc0MDJmYjBmMmY0MTc0ZDQ0OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sLmgKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZh
dGUuaD4KKworQHByb3RvY29sIEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sIDxOU09iamVjdD4K
KworLSAodm9pZClkaWRHZXRGb2N1czsKKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0KaW5kZXggMWNmNzE4MmVjYTgxYjhjYTY3ZTRmN2MyZDE2MDcyN2FmYTA4MDcw
Yi4uZTYzNzE5MzNlMDIxNGU4ZTE0YjViOTJhOWY2NTVmMTQ4MjY1MTUzZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0zNSw3ICszNSwxNCBAQCBURVNUKFdLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLCBDb3B5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgTlNTZXQ8Q2xhc3M+ICp0ZXN0U2V0ID0gW05T
U2V0IHNldFdpdGhPYmplY3RzOltVSUNvbG9yIGNsYXNzXSwgbmlsXTsKKyNlbHNlCisgICAgTlNT
ZXQ8Q2xhc3M+ICp0ZXN0U2V0ID0gW05TU2V0IHNldFdpdGhPYmplY3RzOltOU0NvbG9yIGNsYXNz
XSwgbmlsXTsKKyNlbmRpZgorICAgIAogICAgIFtjb25maWd1cmF0aW9uIHNldEluamVjdGVkQnVu
ZGxlVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6QCIvcGF0aC90by9pbmplY3RlZC53a2J1bmRs
ZSJdXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXI6dGVzdFNldF07CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0Q3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyOkAib3JnLndlYmtpdC5XZWJDb250ZW50LmN1c3RvbSJdOwogICAg
IFtjb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JU
ZXN0aW5nOllFU107CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0QXR0clN0eWxlRW5hYmxlZDpZRVNd
OwpAQCAtNjEsNiArNjgsNyBAQCBURVNUKFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLCBDb3B5
KQogICAgIGF1dG8gY29weSA9IGFkb3B0TlMoW2NvbmZpZ3VyYXRpb24gY29weV0pOwogCiAgICAg
RVhQRUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIGluamVjdGVkQnVuZGxlVVJMXSBpc0VxdWFsOltj
b3B5IGluamVjdGVkQnVuZGxlVVJMXV0pOworICAgIEVYUEVDVF9UUlVFKFtbY29weSBjdXN0b21D
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdIGlzRXF1YWxUb1NldDp0ZXN0U2V0XSk7CiAgICAgRVhQ
RUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIGN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRl
bnRpZmllcl0gaXNFcXVhbDpbY29weSBjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50
aWZpZXJdXSk7CiAgICAgRVhQRUNUX0VRKFtjb25maWd1cmF0aW9uIGlnbm9yZVN5bmNocm9ub3Vz
TWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nXSwgW2NvcHkgaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0c0ZvclRlc3RpbmddKTsKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24g
YXR0clN0eWxlRW5hYmxlZF0sIFtjb3B5IGF0dHJTdHlsZUVuYWJsZWRdKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKaW5kZXggZDY4
MTIwN2VkMzk4NThjYjc0ZGMwYWI0MTAzZGNiOWRlZjlkZmQ4Ni4uNWQ5NTEzYjU5ZTg3ZDE5MjJh
ZmMwMWQyOTQ2MDEzOWViNWZiZWFjOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKQEAgLTI4LDQgKzI4LDUgQEAKIEBpbnRlcmZh
Y2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoVGVzdFdlYktpdEFQSUV4dHJhcykKICsgKGluc3Rh
bmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3Ry
aW5nICopY2xhc3NOYW1lOwogKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9y
VGVzdGluZzooQk9PTCl2YWx1ZTsKKysgKGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWUgYW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczooTlNTZXQ8
Q2xhc3M+ICopcGFyYW1ldGVyQ2xhc3NlczsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbQppbmRleCA3ZGRiZDhjNDczM2Yy
YmViYWY0MDk3ZWUxZjc4NDY2YzIwMDhjYzI5Li5lZTYyY2IzYTgzN2VhY2RjMGRiZDcwMjk1ZmI5
Zjk2MGVhOGM3OTI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25FeHRyYXMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLm1tCkBAIC0zOSwxMSArMzksMTcgQEAgKyAoaW5zdGFuY2V0eXBl
KV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKilj
bGFzc05hbWUKIH0KIAogKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9yVGVz
dGluZzooQk9PTCl2YWx1ZQoreworICAgIHJldHVybiBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6Y2xhc3NOYW1lIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6dmFsdWUgYW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczpuaWxdOwor
fQorCisrIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOihCT09M
KXZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNsYXNzZXM6KE5TU2V0PENsYXNzPiAqKXBhcmFtZXRl
ckNsYXNzZXMKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uIHNldEluamVjdGVkQnVuZGxlVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJUZXN0V2ViS2l0QVBJIiB3aXRoRXh0ZW5zaW9uOkAid2ti
dW5kbGUiXV07CiAgICAgW3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDb25maWd1cmVKU0NG
b3JUZXN0aW5nOnZhbHVlXTsKLQorICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0Q3Vz
dG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOiBwYXJhbWV0ZXJDbGFzc2VzXTsKKyAgICAKICAg
ICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0
V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
W3Byb2Nlc3NQb29sIF9zZXRPYmplY3Q6Y2xhc3NOYW1lIGZvckJ1bmRsZVBhcmFtZXRlcjpUZXN0
V2ViS2l0QVBJOjpVdGlsOjpUZXN0UGx1Z0luQ2xhc3NOYW1lUGFyYW1ldGVyXTsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJj
ZS54Y3NjaGVtZSBiL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0Fs
bCBTb3VyY2UueGNzY2hlbWUKaW5kZXggZmE2ZGVlMjQzZTUzMDdkNzNmYjBiMmRmOTQ4YWEwMWJh
Yzk3YWY0OS4uMDAyYzc4NmIxMjcwNmRkNmUwMzY1MWQ0NGNmNGMyZWUwNDQ5NGI1MyAxMDA2NDQK
LS0tIGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJj
ZS54Y3NjaGVtZQkKKysrIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkKQEAgLTEzOSw4ICsxMzksNiBAQAogICAgICAgc2VsZWN0
ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2Vy
LkxMREIiCiAgICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dl
ckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKICAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFy
Z3NFbnYgPSAiWUVTIj4KLSAgICAgIDxUZXN0YWJsZXM+Ci0gICAgICA8L1Rlc3RhYmxlcz4KICAg
ICAgIDxNYWNyb0V4cGFuc2lvbj4KICAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKICAgICAg
ICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKQEAgLTE1MCw4ICsxNDgsOCBA
QAogICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VG9vbHMvTWlu
aUJyb3dzZXIvTWluaUJyb3dzZXIueGNvZGVwcm9qIj4KICAgICAgICAgIDwvQnVpbGRhYmxlUmVm
ZXJlbmNlPgogICAgICAgPC9NYWNyb0V4cGFuc2lvbj4KLSAgICAgIDxBZGRpdGlvbmFsT3B0aW9u
cz4KLSAgICAgIDwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8VGVzdGFibGVzPgorICAgICAg
PC9UZXN0YWJsZXM+CiAgICA8L1Rlc3RBY3Rpb24+CiAgICA8TGF1bmNoQWN0aW9uCiAgICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCkBAIC0xNjcsMTQgKzE2NSwxOCBAQAogICAgICAg
ICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgogICAgICAgICAgPEJ1aWxkYWJsZVJlZmVy
ZW5jZQogICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgotICAgICAg
ICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI4RDExMDcyNjA0ODZDRUI4MDBFNDcwOTAiCi0g
ICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIk1pbmlCcm93c2VyLmFwcCIKLSAgICAgICAgICAg
IEJsdWVwcmludE5hbWUgPSAiTWluaUJyb3dzZXIiCi0gICAgICAgICAgICBSZWZlcmVuY2VkQ29u
dGFpbmVyID0gImNvbnRhaW5lcjpUb29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXBy
b2oiPgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI4REQ3NkY5NjA0ODZBQTc2
MDBEOTZCNUUiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlRlc3RXZWJLaXRBUEkiCisg
ICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlRlc3RXZWJLaXRBUEkiCisgICAgICAgICAgICBS
ZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qIj4KICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgogICAg
ICAgPC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+Ci0gICAgICA8QWRkaXRpb25hbE9wdGlvbnM+
Ci0gICAgICA8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPENvbW1hbmRMaW5lQXJndW1lbnRz
PgorICAgICAgICAgPENvbW1hbmRMaW5lQXJndW1lbnQKKyAgICAgICAgICAgIGFyZ3VtZW50ID0g
Ii0tZ3Rlc3RfZmlsdGVyPVdlYktpdC5XS1dlYlByb2Nlc3NQbHVnSW4qIgorICAgICAgICAgICAg
aXNFbmFibGVkID0gIllFUyI+CisgICAgICAgICA8L0NvbW1hbmRMaW5lQXJndW1lbnQ+CisgICAg
ICA8L0NvbW1hbmRMaW5lQXJndW1lbnRzPgogICAgPC9MYXVuY2hBY3Rpb24+CiAgICA8UHJvZmls
ZUFjdGlvbgogICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCmRpZmYgLS1naXQg
YS9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgVG9vbHMueGNz
Y2hlbWUgYi9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgVG9v
bHMueGNzY2hlbWUKaW5kZXggZjE0YWRmNGExMTExMWEwY2VkMjY5ZDM4NmU3ZTI2ZTU2MGRiMjg2
YS4uZDc0ZTZkNWJkMTUzZjM0MWZlZjgxODZlMzk1N2E0ZmVhZjVjN2E3OSAxMDA2NDQKLS0tIGEv
V2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFRvb2xzLnhjc2No
ZW1lCQorKysgYi9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwg
VG9vbHMueGNzY2hlbWUJCkBAIC04Myw4ICs4Myw2IEBACiAgICAgICBzZWxlY3RlZERlYnVnZ2Vy
SWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKICAg
ICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlv
bi5MYXVuY2hlci5MTERCIgogICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZ
RVMiPgotICAgICAgPFRlc3RhYmxlcz4KLSAgICAgIDwvVGVzdGFibGVzPgogICAgICAgPE1hY3Jv
RXhwYW5zaW9uPgogICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQogICAgICAgICAgICAgQnVp
bGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgpAQCAtOTQsOCArOTIsOCBAQAogICAgICAgICAg
ICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUueGNvZGVwcm9qIj4KICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNl
PgogICAgICAgPC9NYWNyb0V4cGFuc2lvbj4KLSAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4KLSAg
ICAgIDwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8VGVzdGFibGVzPgorICAgICAgPC9UZXN0
YWJsZXM+CiAgICA8L1Rlc3RBY3Rpb24+CiAgICA8TGF1bmNoQWN0aW9uCiAgICAgICBidWlsZENv
bmZpZ3VyYXRpb24gPSAiRGVidWciCkBAIC0xMDgsNiArMTA2LDE2IEBACiAgICAgICBkZWJ1Z0Rv
Y3VtZW50VmVyc2lvbmluZyA9ICJZRVMiCiAgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAi
aW50ZXJuYWwiCiAgICAgICBhbGxvd0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgICAg
PEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2Rl
ID0gIjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRh
YmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmll
ciA9ICI4REQ3NkY5NjA0ODZBQTc2MDBEOTZCNUUiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1l
ID0gIlRlc3RXZWJLaXRBUEkiCisgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlRlc3RXZWJL
aXRBUEkiCisgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVp
bGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+CiAgICAg
ICA8TWFjcm9FeHBhbnNpb24+CiAgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCiAgICAgICAg
ICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCkBAIC0xMTcsOCArMTI1LDEyIEBA
CiAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2oiPgogICAgICAgICAgPC9CdWlsZGFi
bGVSZWZlcmVuY2U+CiAgICAgICA8L01hY3JvRXhwYW5zaW9uPgotICAgICAgPEFkZGl0aW9uYWxP
cHRpb25zPgotICAgICAgPC9BZGRpdGlvbmFsT3B0aW9ucz4KKyAgICAgIDxDb21tYW5kTGluZUFy
Z3VtZW50cz4KKyAgICAgICAgIDxDb21tYW5kTGluZUFyZ3VtZW50CisgICAgICAgICAgICBhcmd1
bWVudCA9ICItLWd0ZXN0X2ZpbHRlcj1XZWJLaXQuV0tXZWJQcm9jZXNzUGx1Z0luV2l0aFJlZ2lz
dGVyZWRDdXN0b21DbGFzcyIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAg
ICAgPC9Db21tYW5kTGluZUFyZ3VtZW50PgorICAgICAgPC9Db21tYW5kTGluZUFyZ3VtZW50cz4K
ICAgIDwvTGF1bmNoQWN0aW9uPgogICAgPFByb2ZpbGVBY3Rpb24KICAgICAgIGJ1aWxkQ29uZmln
dXJhdGlvbiA9ICJSZWxlYXNlIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379010</attachid>
            <date>2019-09-17 17:27:25 -0700</date>
            <delta_ts>2019-09-17 17:35:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201810-20190917172724.patch</filename>
            <type>text/plain</type>
            <size>45479</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDljMjMwNzY2MTY3ZGRhNTVi
MDdmMjdiYWU1NWZjNmIzN2U3YjBkZGIuLmVkNmJiM2MxZDdjMjllOGM5MjM5ODcxOTA0NGQxODJk
OGE3YzFiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTYgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IGFueSBjdXN0b20gY2xhc3Nlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKTogQWRkZWQuCisgICAg
ICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAg
ICAgICAgKHRvU3RyaW5nVmVjdG9yKTogQWRkZWQuCisgICAgICAgICgtW1dLUHJvY2Vzc0dyb3Vw
IGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6XSk6IFJlc3RyaWN0IHNlcmlhbGl6
YXRpb24gdG8gYWxsb3dlZCBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdKTogQWRk
ZWQuCisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKTogUmVnaXN0ZXIgYW55IGN1c3RvbSBjbGFzc2VzCisgICAg
ICAgIHByb3ZpZGVkIGluIHRoZSBjb25maWd1cmF0b24uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RpbmcgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKTogUmVzdHJpY3Qg
c2VyaWFsaXphdGlvbiB0byBhbGxvd2VkCisgICAgICAgIGNsYXNzZXMgb25seS4KKwogMjAxOS0w
OS0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gSW5pdGlhbCB2aWV3IGxvYWRpbmcgaXMgc2xvdwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNw
cAppbmRleCA3ZTQyZGQ2OGMzZWRhZWY1Yzk1NzdiODcyMzIyZDBlZWExYjdhMGVhLi42MjI0ZTMw
MjE4YjZkZTBmNjI0NmFmZjg2ZjAzOTc2YzE5N2EyMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNw
cApAQCAtODQsNiArODQsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fbWVkaWFDYWNoZURpcmVjdG9y
eSA9IHRoaXMtPm1fbWVkaWFDYWNoZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX2luZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5ID0gdGhpcy0+bV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsKICAg
ICBjb3B5LT5tX2luamVjdGVkQnVuZGxlUGF0aCA9IHRoaXMtPm1faW5qZWN0ZWRCdW5kbGVQYXRo
OworICAgIGNvcHktPm1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gdGhpcy0+bV9j
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CiAgICAgY29weS0+bV9sb2NhbFN0b3JhZ2VE
aXJlY3RvcnkgPSB0aGlzLT5tX2xvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX2Rl
dmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeSA9IHRoaXMtPm1fZGV2aWNlSWRIYXNoU2Fs
dHNTdG9yYWdlRGlyZWN0b3J5OwogICAgIGNvcHktPm1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eSA9IHRoaXMtPm1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApp
bmRleCBkOGJkMmYxOTBmYmU0Y2UzNzA0YmE5MjVhNDUyNmI1OTI3NTQ3ZWY1Li5iMzM3NTE2MTA3
ZTVmZDZkOWI0OGZiMzM0OWY3MTRmYTc2Y2M3MGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0x
MTEsNiArMTExLDkgQEAgcHVibGljOgogICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5OyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5KGNvbnN0IFdURjo6U3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KSB7IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3Rvcnk7IH0KIAorICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGN1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tQ2xhc3Nl
c0ZvclBhcmFtZXRlckNvZGVyOyB9CisgICAgdm9pZCBzZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1l
dGVyQ29kZXIoVmVjdG9yPFdURjo6U3RyaW5nPiYmIGNsYXNzZXNGb3JDb2RlcikgeyBtX2N1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciA9IFdURk1vdmUoY2xhc3Nlc0ZvckNvZGVyKTsgfQor
CiAgICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVt
ZXMoKSB7IHJldHVybiBtX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOyB9CiAgICAgdm9pZCBz
ZXRDYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyhWZWN0b3I8V1RGOjpTdHJpbmc+JiYgY2FjaGVQ
YXJ0aXRpb25lZFVSTFNjaGVtZXMpIHsgbV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyA9IFdU
Rk1vdmUoY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMpOyB9CiAKQEAgLTE5OSw2ICsyMDIsNyBA
QCBwcml2YXRlOgogICAgIFdURjo6U3RyaW5nIG1fd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CiAg
ICAgV1RGOjpTdHJpbmcgbV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwogICAgIFdURjo6U3Ry
aW5nIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOwogICAgIFZlY3RvcjxXVEY6
OlN0cmluZz4gbV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzOwogICAgIFZlY3RvcjxXVEY6OkNT
dHJpbmc+IG1fYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkUGF0aHM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuY3BwCmluZGV4IGUzMTBlNzQ4OWNiOWMwMzBlMDRiYmM2ZWU2YjVlM2QxM2NmMDkzOWIuLmJk
NzJlNmUxNDNjZDgxNWI1Mjc4OWI5OWM5MTdlZTkzOGE4ZDc4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuY3BwCkBAIC03OSw2ICs3OSwxNiBAQCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRJ
bmplY3RlZEJ1bmRsZVBhdGgoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maQogICAgIHRv
SW1wbChjb25maWd1cmF0aW9uKS0+c2V0SW5qZWN0ZWRCdW5kbGVQYXRoKHRvSW1wbChpbmplY3Rl
ZEJ1bmRsZVBhdGgpLT5zdHJpbmcoKSk7CiB9CiAKK1dLQXJyYXlSZWYgV0tDb250ZXh0Q29uZmln
dXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQoreworICAgIHJldHVybiB0b0FQSSgmQVBJOjpBcnJh
eTo6Y3JlYXRlU3RyaW5nQXJyYXkodG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5jdXN0b21DbGFzc2Vz
Rm9yUGFyYW1ldGVyQ29kZXIoKSkubGVha1JlZigpKTsKK30KKwordm9pZCBXS0NvbnRleHRDb25m
aWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tBcnJheVJlZiBjbGFzc2VzRm9yQ29kZXIpCit7
CisgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVy
Q29kZXIodG9JbXBsKGNsYXNzZXNGb3JDb2RlciktPnRvU3RyaW5nVmVjdG9yKCkpOworfQorCiBX
S1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUxvY2FsU3RvcmFnZURpcmVjdG9y
eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmKQogewogICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJh
dGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oCmluZGV4IGJhNWI5NzhmMTllNTUyZGFmZWIzYjJhMDhlODVhM2VhNGFjNjAy
OTkuLmI3MzIxMTNlYTIyN2E4YTU3NTczYWJkMGUyMmFiYTI1NGVmMDc1NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0
aW9uUmVmLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmln
dXJhdGlvblNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KFdLQ29udGV4dENvbmYKIFdLX0VY
UE9SVCBXS1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUluamVjdGVkQnVuZGxl
UGF0aChXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldEluamVjdGVkQnVuZGxlUGF0aChXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLU3RyaW5nUmVmIGluamVjdGVkQnVu
ZGxlUGF0aCk7CiAKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25D
b3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbik7CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9u
U2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbiwgV0tBcnJheVJlZiBjbGFzc2VzRm9yQ29kZXIpOworCiBXS19FWFBP
UlQgV0tTdHJpbmdSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlvbkNvcHlMb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKSBXS19DX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bkNvcHlMb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29u
ZmlndXJhdGlvblNldExvY2FsU3RvcmFnZURpcmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIFdLU3RyaW5nUmVmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkgV0tf
Q19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25TZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCmluZGV4IDE5MzhiZjlkMTE2
MjEyZDcyNTU3ZWNkOWE2NWYzMjI4ODk4YmY2NmEuLjU0MTNiNzkzMmM3MTBkMGU4YTk4M2M2MGFh
OGU1NzIyMGM5NTE0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDcgKzQ4LDcgQEAgV0tfQ0xBU1NfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBp
b3MKIEBpbnRlcmZhY2UgV0tQcm9jZXNzR3JvdXAgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0
aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTDsKLQorLSAoaWQpaW5pdFdpdGhJ
bmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkwgYW5kQ3VzdG9tQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyOihOU1NldCAqKWNsYXNzZXNGb3JDb2RlcjsKIAogI3ByYWdtYSBtYXJrIERl
bGVnYXRlcwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzR3JvdXAubW0KaW5kZXggZTBjOWNkNTEwZDUzOWYwMWM0NmZlZjI5YTZiNGYyYTU5MjJl
N2NhNi4uMmJjY2JiM2RiNjliODU5MzUxNWIyYTcxNTAwMWIyNDVmNjZiYzg4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
MDcsNiArMjA3LDQxIEBAIC0gKGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICop
YnVuZGxlVVJMCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKK3N0YXRpYyBWZWN0b3I8V1RGOjpTdHJp
bmc+IHRvU3RyaW5nVmVjdG9yKE5TU2V0ICppbnB1dCkKK3sKKyAgICBWZWN0b3I8V1RGOjpTdHJp
bmc+IHZlY3RvcjsKKworICAgIE5TVUludGVnZXIgc2l6ZSA9IGlucHV0LmNvdW50OworICAgIGlm
ICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIHZlY3RvcjsKKworICAgIHZlY3Rvci5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHNpemUpOworICAgIGZvciAoaWQgY2xhc3NPYmogOiBpbnB1dCkgeworICAg
ICAgICBpZiAoYXV0byogc3RyaW5nID0gTlNTdHJpbmdGcm9tQ2xhc3MoY2xhc3NPYmopKQorICAg
ICAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZChzdHJpbmcpOworICAgIH0KKyAgICByZXR1
cm4gdmVjdG9yOworfQorCistIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAq
KWJ1bmRsZVVSTCBhbmRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0ICopY2xh
c3Nlc0ZvckNvZGVyCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBBUEk6OlBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0
SW5qZWN0ZWRCdW5kbGVQYXRoKGJ1bmRsZVVSTCA/IFN0cmluZyhidW5kbGVVUkwucGF0aCkgOiBT
dHJpbmcoKSk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGVyKHRvU3RyaW5nVmVjdG9yKGNsYXNzZXNGb3JDb2RlcikpOworCisgICAgX3Byb2Nlc3NQ
b29sID0gV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlKGNvbmZpZ3VyYXRpb24pOworCisg
ICAgc2V0VXBDb25uZWN0aW9uQ2xpZW50KHNlbGYsIHRvQVBJKF9wcm9jZXNzUG9vbC5nZXQoKSkp
OworICAgIHNldFVwSW5qZWN0ZWRCdW5kbGVDbGllbnQoc2VsZiwgdG9BUEkoX3Byb2Nlc3NQb29s
LmdldCgpKSk7CisgICAgc2V0VXBIaXN0b3J5Q2xpZW50KHNlbGYsIHRvQVBJKF9wcm9jZXNzUG9v
bC5nZXQoKSkpOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKGlkIDxXS1Byb2Nlc3NHcm91
cERlbGVnYXRlPilkZWxlZ2F0ZQogewogICAgIHJldHVybiBfZGVsZWdhdGUuZ2V0QXV0b3JlbGVh
c2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQppbmRleCA1ZmNmODNkZTJhNmJlN2UyZWI0ZGM4Mzk4NTA2ZDA3YzM4ZTM1ZmZhLi5kY2M0NWIx
OTI2OGRiMDRhODNiMzg5ZGRkMjY3ZjkyMmMzNDVjNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Njk5LDcgKzU2OTksNyBAQCAt
ICh2b2lkKV9zZXRJbnB1dERlbGVnYXRlOihpZCA8X1dLSW5wdXREZWxlZ2F0ZT4paW5wdXREZWxl
Z2F0ZQogICAgICAgICAgICAgICAgIGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlc05vQ29weTpjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjb25z
dCB2b2lkKj4oZGF0YS0+Ynl0ZXMoKSkpIGxlbmd0aDpkYXRhLT5zaXplKCkgZnJlZVdoZW5Eb25l
Ok5PXSk7CiAgICAgICAgICAgICAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZl
ckZyb21EYXRhKG5zRGF0YS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgQHRyeSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNz
OltOU09iamVjdCBjbGFzc10gZm9yS2V5OkAidXNlck9iamVjdCJdOworICAgICAgICAgICAgICAg
ICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzc2VzOm1fd2Vi
Vmlldy0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFy
YW1ldGVyQ29kaW5nKCkgZm9yS2V5OkAidXNlck9iamVjdCJdOwogICAgICAgICAgICAgICAgIH0g
QGNhdGNoIChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIGRlY29kZSB1c2VyIGRhdGE6ICVAIiwgZXhjZXB0aW9uKTsKICAg
ICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmluZGV4IDExOTczNGEwOGQ0ODViYjg0NzRiNTJjZjhh
ZGM0MjBhNzdiMTkyZWUuLjNiOWI3YmNmZDc3NmY1Zjc2Nzk4ZjllOTA3NTI5ODk0Y2M2Y2FjM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50
QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50QWN0aW9uLm1tCkBAIC0xNjYsNiArMTY2LDcgQEAgKyAoaW5zdGFuY2V0eXBlKV9lbGVtZW50
QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0bGU6KE4K
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVG9nZ2xlU2hvd0xpbmtQ
cmV2aWV3czoKICAgICAgICAgLy8gVGhpcyBhY3Rpb24gbXVzdCBzdGlsbCBleGlzdCBmb3IgY29t
cGF0aWJpbGl0eSwgYnV0IGRvZXNuJ3QgZG8gYW55dGhpbmcuCisgICAgICAgIGhhbmRsZXIgPSBu
aWw7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGVyZSBpcyBubyBzdGFu
ZGFyZCB3ZWIgZWxlbWVudCBhY3Rpb24gb2YgdHlwZSAlbGQuIiwgKGxvbmcpdHlwZV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggZGMyNWU5MTk1ZWU0ZTBlYWMwNzY3MzFkMjEx
NjQwMDIzZTc4ZjRkNC4uMWVkMGM1ZTI0YmZkOWJhNDkwMjIyMzBhOTQ3YzM4ZmExNDlhNWYzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtMzIsNiArMzIsNyBAQCBXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIE5TVVJMICppbmplY3RlZEJ1bmRsZVVSTDsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSBOU1NldDxDbGFzcz4gKmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
QHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudCBXS19B
UElfREVQUkVDQVRFRCgiSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxpbWl0IHRoZSBudW1i
ZXIgb2YgcHJvY2Vzc2VzIiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2VzU2lu
Z2xlV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmlu
ZyAqY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5tbQppbmRleCAxNWNhZjZmZDA1OWY5MGY5MTZjOGMxMDRmYTU3Njk5NmMwNTU5NmNhLi5mNDlm
OGExMGFlZGU2ZjkyNjgwODA1MDc1OTNhYzcyNmU4MGVkNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24ubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24KQEAgLTYwLDYgKzYxLDMxIEBAIC0gKHZv
aWQpc2V0SW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopaW5qZWN0ZWRCdW5kbGVVUkwKICAgICBf
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRC
dW5kbGVVUkwucGF0aCk7CiB9CiAKKy0gKE5TU2V0PENsYXNzPiAqKWN1c3RvbUNsYXNzZXNGb3JQ
YXJhbWV0ZXJDb2RlcgoreworICAgIGF1dG8gY2xhc3NlcyA9IF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpOworICAgIGlmIChjbGFzc2Vz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFtOU1NldCBzZXRdOworCisgICAgTlNNdXRhYmxl
U2V0ICpyZXN1bHQgPSBbW05TTXV0YWJsZVNldCBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjbGFz
c2VzLnNpemUoKV07CisgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IGNsYXNzZXMpCisgICAg
ICAgIFtyZXN1bHQgYWRkT2JqZWN0OiBvYmpjX2xvb2tVcENsYXNzKHZhbHVlLnV0ZjgoKS5kYXRh
KCkpXTsKKworICAgIHJldHVybiBbcmVzdWx0IGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClz
ZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0PENsYXNzPiAqKWNsYXNzZXNG
b3JDb2RlcgoreworICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gY2xhc3NlczsKKyAgICBjbGFzc2Vz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY2xhc3Nlc0ZvckNvZGVyLmNvdW50KTsKKyAgICBmb3Ig
KGlkIGNsYXNzT2JqIDogY2xhc3Nlc0ZvckNvZGVyKSB7CisgICAgICAgIGlmIChhdXRvKiBzdHJp
bmcgPSBOU1N0cmluZ0Zyb21DbGFzcyhjbGFzc09iaikpCisgICAgICAgICAgICBjbGFzc2VzLnVu
Y2hlY2tlZEFwcGVuZChzdHJpbmcpOworICAgIH0KKworICAgIF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPnNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXVEZNb3ZlKGNsYXNzZXMp
KTsKK30KKwogLSAoTlNVSW50ZWdlciltYXhpbXVtUHJvY2Vzc0NvdW50CiB7CiAgICAgLy8gRGVw
cmVjYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCmluZGV4IDRmYzUwOTJhNzFlMzJlM2ViNGQyYzdlOTQxOWM3ZDIwMGJm
ZjJlYmYuLjQyMTg1ZWJiZDc4NmRiYmI5NTYzNGI1NWJhNDgwNTkzNzkwYzI5M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9O
U0tleWVkQXJjaGl2ZXJTUEkuaD4KICNpbXBvcnQgPHN5cy9wYXJhbS5oPgpAQCAtMTI4LDYgKzEy
OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAgICAg
cmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpOwogICAgIHJlZ2lzdGVyTm90aWZpY2F0aW9u
T2JzZXJ2ZXJzKCk7CisgICAgaW5pdGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKTsK
IAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhYmxlIHRvIHNoYXJlIGNvZGUgd2l0aCBX
ZWJDb3JlJ3MgTWVtb3J5UHJlc3N1cmVIYW5kbGVyIChhbmQgYmUgcGxhdGZvcm0gaW5kZXBlbmRl
bnQpLgogICAgIC8vIFJpZ2h0IG5vdyBpdCBjYW5ub3QgYmVjYXVzZSBXZWJLaXQxIGFuZCBXZWJL
aXQyIG5lZWQgdG8gYmUgYWJsZSB0byBjb2V4aXN0IGluIHRoZSBVSSBwcm9jZXNzLApAQCAtNTky
LDQgKzU5NCwzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjphcHBsaWNhdGlvbklzQWJvdXRUb1N1
c3BlbmQoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVDbGFz
c2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkKK3sKKyAgICBjb25zdCBhdXRvJiBjdXN0b21DbGFzc2Vz
ID0gbV9jb25maWd1cmF0aW9uLT5jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoKTsKKyAg
ICBpZiAoY3VzdG9tQ2xhc3Nlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBhdXRvIG11dGFibGVTZXQgPSBhZG9wdE5TKFthbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGluZygpIG11dGFibGVDb3B5XSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGN1c3RvbUNsYXNz
IDogY3VzdG9tQ2xhc3NlcykgeworICAgICAgICBjb25zdCBhdXRvKiBjbGFzc05hbWUgPSBjdXN0
b21DbGFzcy51dGY4KCkuZGF0YSgpOworICAgICAgICBDbGFzcyBvYmplY3RDbGFzcyA9IG9iamNf
bG9va1VwQ2xhc3MoY2xhc3NOYW1lKTsKKyAgICAgICAgaWYgKCFvYmplY3RDbGFzcykgeworICAg
ICAgICAgICAgV1RGTG9nQWx3YXlzKCJJbmplY3RlZEJ1bmRsZTo6ZXh0ZW5kQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyIC0gQ2xhc3MgJXMgaXMgbm90IGEgdmFsaWQgT2JqZWN0aXZlIEMgY2xhc3Mu
XG4iLCBjbGFzc05hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBbbXV0YWJsZVNldC5nZXQoKSBhZGRPYmplY3Q6b2JqZWN0Q2xhc3NdOworICAgIH0KKworICAg
IG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gbXV0YWJsZVNldDsKK30KKworTlNTZXQgKldl
YlByb2Nlc3NQb29sOjphbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcikgeworICAgICAgICBtX2NsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlciA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpbTlNBcnJheSBjbGFz
c10sIFtOU0RhdGEgY2xhc3NdLCBbTlNEYXRlIGNsYXNzXSwgW05TRGljdGlvbmFyeSBjbGFzc10s
IFtOU051bGwgY2xhc3NdLAorICAgICAgICAgICAgW05TTnVtYmVyIGNsYXNzXSwgW05TU2V0IGNs
YXNzXSwgW05TU3RyaW5nIGNsYXNzXSwgW05TVGltZVpvbmUgY2xhc3NdLCBbTlNVUkwgY2xhc3Nd
LCBbTlNVVUlEIGNsYXNzXSwgbmlsXTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9jbGFzc2VzRm9y
UGFyYW1ldGVyQ29kZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNjQzYzQwZDYyZWNjNzhjYTU1
MDliY2RmMTgxMDI1ZTlkMDM3MjU3Yi4uYzhlYWRhODliMmNkOTlkYWY1NTNlNTVlOTNkMTQ3YjM3
NjcyNGZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NzEsNiArNzEsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU011dGFibGVE
aWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU09iamVjdDsKK09CSkNfQ0xBU1MgTlNTZXQ7CiBPQkpD
X0NMQVNTIE5TU3RyaW5nOwogI2VuZGlmCiAKQEAgLTIxMiw2ICsyMTMsMTAgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzUGFnZXNVc2luZ1dlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYp
IGNvbnN0OwogCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBjb25zdCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgTlNTZXQgKmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5n
KCkgY29uc3Q7CisgICAgdm9pZCBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygp
OworI2VuZGlmCiAKICAgICBEb3dubG9hZFByb3h5JiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGlu
aXRpYXRpbmdQYWdlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKICAgICBEb3dubG9hZFByb3h5JiByZXN1bWVE
b3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBBUEk6OkRhdGEqIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCk7CkBAIC03NDIsNiArNzQ3LDcgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFy
eT4gbV9idW5kbGVQYXJhbWV0ZXJzOwogICAgIFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9r
ZW4gbV9wbHVnaW5Qcm9jZXNzTWFuYWdlclByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW47
CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNTZXQ+IG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVy
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQzOTMwYjVl
N2ZkMGU2MjBmZjVkNTE4NjhhNzc1MzdjYTlmYTQ5MTAuLjcwZGRlOTJkMjc0ZTlhMjU5NWQzYTg4
NTJjY2RmMTk4M2ZmZjA4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NDksNyArNTQ5LDcgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIG5v
ZGVJbmZvcm0KICAgICAgICAgYXV0byBuc0RhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGNvbnN0IHZv
aWQqPihkYXRhLT5ieXRlcygpKSkgbGVuZ3RoOmRhdGEtPnNpemUoKSBmcmVlV2hlbkRvbmU6Tk9d
KTsKICAgICAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZlckZyb21EYXRhKG5z
RGF0YS5nZXQoKSk7CiAgICAgICAgIEB0cnkgewotICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1
bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmb3JLZXk6QCJ1
c2VyT2JqZWN0Il07CisgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2Rl
T2JqZWN0T2ZDbGFzc2VzOm1fd2ViVmlldy5nZXQoKS0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNz
UG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgZm9yS2V5OkAidXNlck9i
amVjdCJdOwogICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewogICAg
ICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIHVzZXIgZGF0YTogJUAiLCBleGNl
cHRpb24pOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZDMzZWJiODViZjY3MTQ4YjY5YTFiNDZiZjI3Y2QwNWExNWIzYzAyYi4u
ODVmMjkwMjM5YzhlZWE0ZmZiY2Q0MzI3ZjQ2ZDBjNmJmMmRhZTJmMCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5
LTA5LTE3ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBJbmplY3RlZEJ1bmRsZSBTUEkgdG8gYmV0dGVyIHN1cHBvcnQgTlNTZWN1cmVDb2RpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTgxMAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTUyNjU3MTM+CisKKyAgICAgICAgVGhlIGVuY29kaW5n
L2RlY29kaW5nIHJvdXRpbmVzIHVzZWQgYnkgV2ViS2l04oCZcyBJbmplY3RlZEJ1bmRsZXMgYXJl
IGJhc2VkIG9uIE5TQ29kaW5nLgorICAgICAgICBXaGlsZSB3ZSBoYXZlIGNoYW5nZWQgV2ViS2l0
IGludGVybmFscyB0byB1c2UgTlNTZWN1cmVDb2RpbmcsIHRoZXJlIGFyZSBhIG51bWJlciBvZgor
ICAgICAgICBpbmplY3RlZCBidW5kbGVzIHRoYXQgbmVlZCB0byBzZXJpYWxpemUgY3VzdG9tIGNs
YXNzZXMgYmV0d2VlbiB0aGUgSW5qZWN0ZWRCdW5kbGUgYW5kCisgICAgICAgIHRoZSByZWxldmFu
dCBXZWJLaXQgVUlQcm9jZXNzLgorCisgICAgICAgIFdlIG5lZWQgdG8gbG9jayBkb3duIHRoaXMg
Y29tbXVuaWNhdGlvbnMgY2hhbm5lbCBieSBlbmZvcmNpbmcgTlNTZWN1cmVDb2RpbmcuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjcmVhdGVzIG5ldyBTUEkgdG8gYWxsb3cgdGhlIFVJUHJvY2VzcyB0
byBzcGVjaWZ5IGNsYXNzZXMgdGhhdCBpdCB3aWxsIGFjY2VwdAorICAgICAgICBpbiBtZXNzYWdl
cyBmcm9tIHRoZSBXZWJDb250ZXQgUHJvY2VzcyAoYW5kIEluamVjdGVkIEJ1bmRsZSkuCisKKyAg
ICAgICAgSXQgYWRkcyB0aGUgZm9sbG93aW5nIHByb3BlcnR5IHRvIHRoZSBXS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjoKKworICAgICAgICAgICAgQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU2V0PENsYXNzPiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOworCisgICAgICAg
IElmIG5vIGN1c3RvbSBjbGFzc2VzIGFyZSBzcGVjaWZpZWQsIHRoZSBzdGFuZGFyZCBzZXJpYWxp
emF0aW9uIHByaW1pdGl2ZXMgYXJlIHN1cHBvcnRlZDoKKyAgICAgICAgICAgIE5TQXJyYXksIE5T
RGF0YSwgTlNEYXRlLCBOU0RpY3Rpb25hcnksIE5TTnVsbCwgTlNOdW1iZXIsIE5TU2V0LCBOU1N0
cmluZywKKyAgICAgICAgICAgIE5TVGltZVpvbmUsIE5TVVJMLCBhbmQgTlNVVUlELgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0IGRpZEdldEZvY3VzXSk6
CisgICAgICAgICgtW0Zvcm1JbnB1dERlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvckZv
Y3VzZWRFbGVtZW50Ol0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW06IEFkZGVkLgor
ICAgICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRD
cmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW0J1bmRsZUZvcm1E
ZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjp3
aWxsQmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVtZW50OmluRnJhbWU6dXNlcklzSW50ZXJhY3Rpbmc6
XSk6CisgICAgICAgICgtW0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpkaWRGb2N1c1RleHRGaWVsZDppbkZyYW1lOl0pOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVn
YXRlUHJvdG9jb2wuaDogQ29waWVkIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbToK
KyAgICAgICAgKCtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6Y29uZmlndXJlSlNDRm9yVGVzdGluZzpdKToKKyAgICAgICAg
KCtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6Y29uZmlndXJlSlNDRm9yVGVzdGluZzphbmRDdXN0b21QYXJhbWV0ZXJDbGFz
c2VzOl0pOgorCiAyMDE5LTA5LTE3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgdGhlICJTaG93IExpbmsgUHJldmlld3MiIGFuZCAiSGlkZSBMaW5rIFBy
ZXZpZXdzIiBhY3Rpb24gbWVudXMgaW4gdGhlIHByZXZpZXcgcGxhdHRlcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBmNmQwMThkZDU5NTYxOGQyNjI2MzE3ZThmZmQwMGRjZGY3NTY3NDE0Li43
NzljYjNjYzcxM2ZiYTVmOWUxZTM0Y2YxMzMyMTFmNWY5MTZkNGI5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDM5LDYgKzQzOSw4IEBACiAJCTdBNkEyQzcwMURDQ0ZBOEMwMEMwRDA4NSAv
KiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTZBMkM2RjFEQ0NGODdCMDBDMEQwODUgLyogTG9jYWxTdG9yYWdl
UXVpcmtUZXN0Lm1tICovOyB9OwogCQk3QTZBMkM3MjFEQ0NGQjUyMDBDMEQwODUgLyogTG9jYWxT
dG9yYWdlUXVpcmtFbmFibGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2QTJDNzExRENDRkIwMjAwQzBEMDg1IC8qIExvY2FsU3Rv
cmFnZVF1aXJrRW5hYmxlZC5odG1sICovOyB9OwogCQk3QTdCMEU3RjFFQUZFNEMzMDA2QUI4QUUg
LyogTGltaXRUaXRsZVNpemUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTdCMEU3RTFFQUZFNDU0MDA2QUI4QUUgLyogTGltaXRUaXRsZVNpemUubW0g
Ki87IH07CisJCTdBODlCQjY3MjMzMTY0MzIwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTg5QkI2
NTIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovOyB9OworCQk3QTg5
QkI2ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4OUJCNjYyMzMxNjM1
RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSAqLzsgfTsKIAkJN0E5MDlB
N0QxRDg3NzQ4MDAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkwOUE2RjFEODc3NDc1MDA3RTEwRjgg
LyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJN0E5MDlBN0UxRDg3NzQ4MDAwN0UxMEY4
IC8qIEZsb2F0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovOyB9
OwogCQk3QTkwOUE3RjFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRSZWN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBOTA5QTcxMUQ4Nzc0NzUwMDdF
MTBGOCAvKiBGbG9hdFJlY3QuY3BwICovOyB9OwpAQCAtMTk2MCw2ICsxOTYyLDkgQEAKIAkJN0E2
QTJDNkYxRENDRjg3QjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZVF1aXJrVGVzdC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2QTJDNzExRENDRkIwMjAwQzBEMDg1
IC8qIExvY2FsU3RvcmFnZVF1aXJrRW5hYmxlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gTG9jYWxTdG9yYWdlUXVpcmtFbmFibGVkLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdBN0IwRTdFMUVBRkU0NTQwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6ZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExpbWl0VGl0bGVTaXplLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2NTIzMzE2MzVEMDA0MkNCMUUg
LyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQnVuZGxlRm9ybURlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0lu
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlRm9ybURl
bGVnYXRlUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2OTIz
MzE2NTY1MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0E5MDlBNkYxRDg3NzQ3NTAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBZmZpbmVUcmFuc2Zvcm0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE3MDFEODc3NDc1MDA3RTEwRjgg
LyogRmxvYXRQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
bG9hdFBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5MDlBNzExRDg3
NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGbG9hdFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjczOCw2ICsyNzQzLDkgQEAKIAkJCQkzNzRCN0E1RTFERjM2RUVFMDBBQ0NCNkMgLyogQnVuZGxl
RWRpdGluZ0RlbGVnYXRlLm1tICovLAogCQkJCTM3NEI3QTVGMURGMzZFRUUwMEFDQ0I2QyAvKiBC
dW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gKi8sCiAJCQkJMzc0QjdBNjIxREYzNzM0QzAw
QUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVByb3RvY29sLmggKi8sCisJCQkJN0E4OUJC
NjUyMzMxNjM1RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZS5tbSAqLywKKwkJCQk3QTg5
QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tICovLAor
CQkJCTdBODlCQjY5MjMzMTY1NjUwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2Nv
bC5oICovLAogCQkJCUExM0VCQkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJz
Lm1tICovLAogCQkJCUExM0VCQkFFMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJz
UGx1Z0luLm1tICovLAogCQkJCTM3QTcwOUFEMUUzRUE4QjAwMENBNTk2OSAvKiBCdW5kbGVSYW5n
ZUhhbmRsZS5tbSAqLywKQEAgLTQ2MDQsNiArNDYxMiw3IEBACiAJCQkJN0NDRTdFQzUxQTQxMUE3
RTAwNDQ3QzRDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzYxQTQxMUE3RTAwNDQ3QzRDIC8qIE1lbW9y
eUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTVDMEJGODhEMURENTk2NEQwMEIwMDMyOCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIubW0g
aW4gU291cmNlcyAqLywKKwkJCQk3QTg5QkI2NzIzMzE2NDMyMDA0MkNCMUUgLyogQnVuZGxlRm9y
bURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQjcxRDBBNjRCODAwRkVCQ0Yz
IC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJG
ODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFByb3Zp
ZGVycy5tbSBpbiBTb3VyY2VzICovLApAQCAtNDg5Niw2ICs0OTA1LDcgQEAKIAkJCQkzN0U3REQ2
NzFFQTA3MUYzMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMc1BsdWdp
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc1NENFQzgxMUY2NzIyRjIwMEQwMDM5QSAvKiBBdXRv
RmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDNDI1OTQ2MjI2NkE2OEEwMDM5
QUE3QSAvKiBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbFBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTdBODlCQjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzRCN0E2MTFERjM3MUNGMDBBQ0NCNkMgLyogQnVuZGxl
RWRpdGluZ0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjAxQjg3
NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLywK
IAkJCQkzN0E3MDlBRjFFM0VBOTdFMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGVQbHVnSW4u
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyYjZk
NmQyNTNlMTE3Yzc0ZGRjN2ZkNGM3YzRlYzYyMjQ2M2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1t
CkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
CisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIgorI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKKyNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNp
bXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tGb2N1c2VkRWxlbWVudEluZm8u
aD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnB1dERlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGJvb2wg
ZGlkR2V0Rm9jdXM7CitzdGF0aWMgYm9vbCBkaWRHZXRVc2VyT2JqZWN0Oworc3RhdGljIGlkIHVz
ZXJPYmplY3Q7CisKK0BpbnRlcmZhY2UgQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0IDog
TlNPYmplY3QgPEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0CisKKy0gKHZvaWQpZGlkR2V0Rm9j
dXMKK3sKKyAgICBkaWRHZXRGb2N1cyA9IHRydWU7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBG
b3JtSW5wdXREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tJbnB1dERlbGVnYXRlPgorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gRm9ybUlucHV0RGVsZWdhdGUKKworLSAoX1dLRm9jdXNTdGFydHNJbnB1
dFNlc3Npb25Qb2xpY3kpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yRm9jdXNlZEVsZW1lbnQ6KGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KWluZm8KK3sKKyAg
ICB1c2VyT2JqZWN0ID0gaW5mby51c2VyT2JqZWN0OworICAgIGRpZEdldFVzZXJPYmplY3QgPSB0
cnVlOworICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93Owor
fQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRoVW5yZWdpc3Rl
cmVkQ3VzdG9tQ2xhc3MpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tGb3JtSW5w
dXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gcmV0
YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiJdKTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmplY3Q6QFlFUyBmb3JCdW5kbGVQYXJhbWV0
ZXI6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21DbGFzcyJdOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQ+PC9pbnB1dD48c2VsZWN0PjxvcHRpb24gc2VsZWN0
ZWQ+Zm9vPC9vcHRpb24+PG9wdGlvbj5iYXI8L29wdGlvbj48L3NlbGVjdD4iIGJhc2VVUkw6bmls
XTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAg
ICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tCdW5kbGVGb3JtRGVsZWdhdGVSZW1vdGVPYmplY3Qg
YWxsb2NdIGluaXRdKTsKKyAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9
IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3Rv
Y29sOkBwcm90b2NvbChCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbCldOworICAgIFtbd2ViVmll
dyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhwb3J0ZWRPYmplY3Q6b2JqZWN0Lmdl
dCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpIiBjb21wbGV0aW9u
SGFuZGxlcjpuaWxdOworCisgICAgdXNlck9iamVjdCA9IG5pbDsKKyAgICBkaWRHZXRVc2VyT2Jq
ZWN0ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdldEZvY3Vz
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdldFVzZXJPYmplY3QpOworCisg
ICAgRVhQRUNUX05VTEwodXNlck9iamVjdCk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nl
c3NQbHVnSW5XaXRoUmVnaXN0ZXJlZEN1c3RvbUNsYXNzKQoreworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbRm9ybUlucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IHJldGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVGb3JtRGVsZWdhdGVQ
bHVnSW4iCisgICAgICAgIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6Tk8gYW5kQ3VzdG9tUGFyYW1l
dGVyQ2xhc3NlczpbTlNTZXQgc2V0V2l0aE9iamVjdHM6W05TVW5pdENvbnZlcnRlckxpbmVhciBj
bGFzc10sIG5pbF1dKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmpl
Y3Q6QFlFUyBmb3JCdW5kbGVQYXJhbWV0ZXI6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21D
bGFzcyJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQ+PC9pbnB1
dD48c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQ+Zm9vPC9vcHRpb24+PG9wdGlvbj5iYXI8L29wdGlv
bj48L3NlbGVjdD4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlk
RmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tCdW5kbGVG
b3JtRGVsZWdhdGVSZW1vdGVPYmplY3QgYWxsb2NdIGluaXRdKTsKKyAgICBfV0tSZW1vdGVPYmpl
Y3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3Rl
T2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVGb3JtRGVsZWdhdGVQ
cm90b2NvbCldOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVy
RXhwb3J0ZWRPYmplY3Q6b2JqZWN0LmdldCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5w
dXQnKS5mb2N1cygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIAorICAgIHVzZXJPYmpl
Y3QgPSBuaWw7CisgICAgZGlkR2V0VXNlck9iamVjdCA9IGZhbHNlOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRGb2N1cyk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRHZXRVc2VyT2JqZWN0KTsKKyAgICAKKyAgICBFWFBFQ1RfVFJVRShbdXNlck9iamVj
dCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0ZXJMaW5lYXIgY2xhc3NdXSk7Cit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzMzNGI0
M2E3Yzk0YTQyY2JiZjI1NDE4NGNmMmUwMzhmMGQ0ZTZmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVn
SW4ubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIgorI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW4uaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRl
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50
ZXJmYWNlIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQ
bHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU+CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4geworICAgIFJldGFpblB0cjxX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4
dENvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+
IF9wbHVnSW5Db250cm9sbGVyOworICAgIFJldGFpblB0cjxpZCA8QnVuZGxlRm9ybURlbGVnYXRl
UHJvdG9jb2w+PiBfcmVtb3RlT2JqZWN0OworICAgIEJPT0wgX3Nob3VsZFVzZUN1c3RvbUNsYXNz
OworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRy
b2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNv
bnRleHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJvd3NlckNvbnRleHRDb250cm9sbGVy
KTsKKyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsKKyAgICBfYnJvd3NlckNvbnRleHRD
b250cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIF9wbHVnSW5Db250cm9s
bGVyID0gcGx1Z0luQ29udHJvbGxlcjsKKworICAgIGlmIChpZCBzaG91bGRBZGRDdXN0b21DbGFz
cyA9IFtwbHVnSW5Db250cm9sbGVyLnBhcmFtZXRlcnMgdmFsdWVGb3JLZXk6QCJGb3JtRGVsZWdh
dGVTaG91bGRBZGRDdXN0b21DbGFzcyJdKSB7CisgICAgICAgIEFTU0VSVChbc2hvdWxkQWRkQ3Vz
dG9tQ2xhc3MgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSk7CisgICAgICAgIF9zaG91
bGRVc2VDdXN0b21DbGFzcyA9IFsoTlNOdW1iZXIgKilzaG91bGRBZGRDdXN0b21DbGFzcyBib29s
VmFsdWVdOworICAgIH0gZWxzZQorICAgICAgICBfc2hvdWxkVXNlQ3VzdG9tQ2xhc3MgPSBOTzsK
KworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNlID0gW19XS1JlbW90ZU9i
amVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29s
KEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07CisgICAgX3JlbW90ZU9iamVjdCA9IFticm93
c2VyQ29udGV4dENvbnRyb2xsZXIuX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFBy
b3h5V2l0aEludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW19icm93c2VyQ29udGV4dENvbnRy
b2xsZXIgX3NldEZvcm1EZWxlZ2F0ZTpzZWxmXTsKK30KKworLSAoTlNPYmplY3QgPE5TU2VjdXJl
Q29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxC
ZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUg
Kilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWUgdXNlcklzSW50
ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcKK3sKKyAgICBpZiAoIV9zaG91bGRVc2VD
dXN0b21DbGFzcykKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIE5TVW5pdENvbnZlcnRlckxp
bmVhciAqa2lsb21ldGVyc1RvTWV0ZXJzID0gW1tOU1VuaXRDb252ZXJ0ZXJMaW5lYXIgYWxsb2Nd
IGluaXRXaXRoQ29lZmZpY2llbnQ6MTAwMC4wIGNvbnN0YW50OjAuMF07CisKKyAgICByZXR1cm4g
W2tpbG9tZXRlcnNUb01ldGVycyBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpX3dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkRm9jdXNUZXh0RmllbGQ6KFdLV2Vi
UHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKil0ZXh0RmllbGQgaW5GcmFtZTooV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUgKilmcmFtZQoreworICAgIC8vIFRoaXMgaXMgaGl0IGluIHRoZSBtYWNPUyBj
YXNlLgorICAgIFtfcmVtb3RlT2JqZWN0IGRpZEdldEZvY3VzXTsKK30KKworQGVuZApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVs
ZWdhdGVQcm90b2NvbC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlM2M0N2ExYmUxNTJjODU1
NWY0Mzc0MDJmYjBmMmY0MTc0ZDQ0OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sLmgKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZh
dGUuaD4KKworQHByb3RvY29sIEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sIDxOU09iamVjdD4K
KworLSAodm9pZClkaWRHZXRGb2N1czsKKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0KaW5kZXggMWNmNzE4MmVjYTgxYjhjYTY3ZTRmN2MyZDE2MDcyN2FmYTA4MDcw
Yi4uZTYzNzE5MzNlMDIxNGU4ZTE0YjViOTJhOWY2NTVmMTQ4MjY1MTUzZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0zNSw3ICszNSwxNCBAQCBURVNUKFdLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLCBDb3B5KQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgTlNTZXQ8Q2xhc3M+ICp0ZXN0U2V0ID0gW05T
U2V0IHNldFdpdGhPYmplY3RzOltVSUNvbG9yIGNsYXNzXSwgbmlsXTsKKyNlbHNlCisgICAgTlNT
ZXQ8Q2xhc3M+ICp0ZXN0U2V0ID0gW05TU2V0IHNldFdpdGhPYmplY3RzOltOU0NvbG9yIGNsYXNz
XSwgbmlsXTsKKyNlbmRpZgorICAgIAogICAgIFtjb25maWd1cmF0aW9uIHNldEluamVjdGVkQnVu
ZGxlVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6QCIvcGF0aC90by9pbmplY3RlZC53a2J1bmRs
ZSJdXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXI6dGVzdFNldF07CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0Q3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyOkAib3JnLndlYmtpdC5XZWJDb250ZW50LmN1c3RvbSJdOwogICAg
IFtjb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JU
ZXN0aW5nOllFU107CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0QXR0clN0eWxlRW5hYmxlZDpZRVNd
OwpAQCAtNjEsNiArNjgsNyBAQCBURVNUKFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLCBDb3B5
KQogICAgIGF1dG8gY29weSA9IGFkb3B0TlMoW2NvbmZpZ3VyYXRpb24gY29weV0pOwogCiAgICAg
RVhQRUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIGluamVjdGVkQnVuZGxlVVJMXSBpc0VxdWFsOltj
b3B5IGluamVjdGVkQnVuZGxlVVJMXV0pOworICAgIEVYUEVDVF9UUlVFKFtbY29weSBjdXN0b21D
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdIGlzRXF1YWxUb1NldDp0ZXN0U2V0XSk7CiAgICAgRVhQ
RUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIGN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRl
bnRpZmllcl0gaXNFcXVhbDpbY29weSBjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50
aWZpZXJdXSk7CiAgICAgRVhQRUNUX0VRKFtjb25maWd1cmF0aW9uIGlnbm9yZVN5bmNocm9ub3Vz
TWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nXSwgW2NvcHkgaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0c0ZvclRlc3RpbmddKTsKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24g
YXR0clN0eWxlRW5hYmxlZF0sIFtjb3B5IGF0dHJTdHlsZUVuYWJsZWRdKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKaW5kZXggZDY4
MTIwN2VkMzk4NThjYjc0ZGMwYWI0MTAzZGNiOWRlZjlkZmQ4Ni4uNWQ5NTEzYjU5ZTg3ZDE5MjJh
ZmMwMWQyOTQ2MDEzOWViNWZiZWFjOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKQEAgLTI4LDQgKzI4LDUgQEAKIEBpbnRlcmZh
Y2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoVGVzdFdlYktpdEFQSUV4dHJhcykKICsgKGluc3Rh
bmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3Ry
aW5nICopY2xhc3NOYW1lOwogKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9y
VGVzdGluZzooQk9PTCl2YWx1ZTsKKysgKGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWUgYW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczooTlNTZXQ8
Q2xhc3M+ICopcGFyYW1ldGVyQ2xhc3NlczsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbQppbmRleCA3ZGRiZDhjNDczM2Yy
YmViYWY0MDk3ZWUxZjc4NDY2YzIwMDhjYzI5Li5lZTYyY2IzYTgzN2VhY2RjMGRiZDcwMjk1ZmI5
Zjk2MGVhOGM3OTI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25FeHRyYXMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLm1tCkBAIC0zOSwxMSArMzksMTcgQEAgKyAoaW5zdGFuY2V0eXBl
KV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKilj
bGFzc05hbWUKIH0KIAogKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9yVGVz
dGluZzooQk9PTCl2YWx1ZQoreworICAgIHJldHVybiBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6Y2xhc3NOYW1lIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6dmFsdWUgYW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczpuaWxdOwor
fQorCisrIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOihCT09M
KXZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNsYXNzZXM6KE5TU2V0PENsYXNzPiAqKXBhcmFtZXRl
ckNsYXNzZXMKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uIHNldEluamVjdGVkQnVuZGxlVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJUZXN0V2ViS2l0QVBJIiB3aXRoRXh0ZW5zaW9uOkAid2ti
dW5kbGUiXV07CiAgICAgW3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDb25maWd1cmVKU0NG
b3JUZXN0aW5nOnZhbHVlXTsKLQorICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0Q3Vz
dG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOiBwYXJhbWV0ZXJDbGFzc2VzXTsKKyAgICAKICAg
ICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0
V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
W3Byb2Nlc3NQb29sIF9zZXRPYmplY3Q6Y2xhc3NOYW1lIGZvckJ1bmRsZVBhcmFtZXRlcjpUZXN0
V2ViS2l0QVBJOjpVdGlsOjpUZXN0UGx1Z0luQ2xhc3NOYW1lUGFyYW1ldGVyXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379012</attachid>
            <date>2019-09-17 17:35:13 -0700</date>
            <delta_ts>2019-09-17 20:14:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201810-20190917173512.patch</filename>
            <type>text/plain</type>
            <size>44702</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0MjdlZWRkOWQzMWI1ZTg1
NzE5OWU3ZmY0ZjMzYWUyNmVhMTkxZDkuLjgxYjYzYjBmZWRmMDM2MWU2YzA0MTk2MjUyZDUzNjc3
NzAwZjZjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTYgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IGFueSBjdXN0b20gY2xhc3Nlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKTogQWRkZWQuCisgICAg
ICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAg
ICAgICAgKHRvU3RyaW5nVmVjdG9yKTogQWRkZWQuCisgICAgICAgICgtW1dLUHJvY2Vzc0dyb3Vw
IGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6XSk6IFJlc3RyaWN0IHNlcmlhbGl6
YXRpb24gdG8gYWxsb3dlZCBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdKTogQWRk
ZWQuCisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKTogUmVnaXN0ZXIgYW55IGN1c3RvbSBjbGFzc2VzCisgICAg
ICAgIHByb3ZpZGVkIGluIHRoZSBjb25maWd1cmF0b24uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RpbmcgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKTogUmVzdHJpY3Qg
c2VyaWFsaXphdGlvbiB0byBhbGxvd2VkCisgICAgICAgIGNsYXNzZXMgb25seS4KKwogMjAxOS0w
OS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCByZXN0YWJpbGl6YXRpb24gb2Ygbm9uLXVuaWZpZWQgYnVpbGQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uY3BwCmluZGV4IDdlNDJkZDY4YzNlZGFlZjVjOTU3N2I4NzIzMjJkMGVlYTFiN2Ew
ZWEuLjYyMjRlMzAyMThiNmRlMGY2MjQ2YWZmODZmMDM5NzZjMTk3YTIxZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uY3BwCkBAIC04NCw2ICs4NCw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9tZWRpYUNh
Y2hlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUNhY2hlRGlyZWN0b3J5OwogICAgIGNvcHktPm1f
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSB0aGlzLT5tX2luZGV4ZWREQkRhdGFiYXNlRGly
ZWN0b3J5OwogICAgIGNvcHktPm1faW5qZWN0ZWRCdW5kbGVQYXRoID0gdGhpcy0+bV9pbmplY3Rl
ZEJ1bmRsZVBhdGg7CisgICAgY29weS0+bV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIg
PSB0aGlzLT5tX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICAgICBjb3B5LT5tX2xv
Y2FsU3RvcmFnZURpcmVjdG9yeSA9IHRoaXMtPm1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwogICAg
IGNvcHktPm1fZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9kZXZp
Y2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9tZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCmluZGV4IGQ4YmQyZjE5MGZiZTRjZTM3MDRiYTkyNWE0NTI2YjU5Mjc1NDdlZjUu
LmIzMzc1MTYxMDdlNWZkNmQ5YjQ4ZmIzMzQ5ZjcxNGZhNzZjYzcwYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgV1RGOjpTdHJpbmcm
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7IH0KICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkpIHsgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogCisgICAgY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYgY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCkgY29uc3QgeyByZXR1cm4gbV9j
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7IH0KKyAgICB2b2lkIHNldEN1c3RvbUNsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcihWZWN0b3I8V1RGOjpTdHJpbmc+JiYgY2xhc3Nlc0ZvckNvZGVy
KSB7IG1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gV1RGTW92ZShjbGFzc2VzRm9y
Q29kZXIpOyB9CisKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjYWNoZVBhcnRpdGlv
bmVkVVJMU2NoZW1lcygpIHsgcmV0dXJuIG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7IH0K
ICAgICB2b2lkIHNldENhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKFZlY3RvcjxXVEY6OlN0cmlu
Zz4mJiBjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcykgeyBtX2NhY2hlUGFydGl0aW9uZWRVUkxT
Y2hlbWVzID0gV1RGTW92ZShjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyk7IH0KIApAQCAtMTk5
LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgV1RGOjpTdHJpbmcgbV93ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeTsKICAgICBXVEY6OlN0cmluZyBtX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CiAg
ICAgV1RGOjpTdHJpbmcgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIFZl
Y3RvcjxXVEY6OlN0cmluZz4gbV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CiAgICAg
VmVjdG9yPFdURjo6U3RyaW5nPiBtX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwogICAgIFZl
Y3RvcjxXVEY6OlN0cmluZz4gbV9hbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXM7CiAgICAgVmVj
dG9yPFdURjo6Q1N0cmluZz4gbV9hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRoczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5jcHAKaW5kZXggZTMxMGU3NDg5Y2I5YzAzMGUwNGJiYzZlZTZiNWUzZDEz
Y2YwOTM5Yi4uYmQ3MmU2ZTE0M2NkODE1YjUyNzg5Yjk5YzkxN2VlOTM4YThkNzgyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5jcHAKQEAgLTc5LDYgKzc5LDE2IEBAIHZvaWQgV0tDb250ZXh0Q29uZmln
dXJhdGlvblNldEluamVjdGVkQnVuZGxlUGF0aChXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNv
bmZpCiAgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgodG9J
bXBsKGluamVjdGVkQnVuZGxlUGF0aCktPnN0cmluZygpKTsKIH0KIAorV0tBcnJheVJlZiBXS0Nv
bnRleHRDb25maWd1cmF0aW9uQ29weUN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJ
KCZBUEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheSh0b0ltcGwoY29uZmlndXJhdGlvbiktPmN1
c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpKS5sZWFrUmVmKCkpOworfQorCit2b2lkIFdL
Q29udGV4dENvbmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNG
b3JDb2RlcikKK3sKKyAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEN1c3RvbUNsYXNzZXNG
b3JQYXJhbWV0ZXJDb2Rlcih0b0ltcGwoY2xhc3Nlc0ZvckNvZGVyKS0+dG9TdHJpbmdWZWN0b3Io
KSk7Cit9CisKIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5TG9jYWxTdG9y
YWdlRGlyZWN0b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpCiB7CiAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmLmgKaW5kZXggYmE1Yjk3OGYxOWU1NTJkYWZlYjNiMmEwOGU4
NWEzZWE0YWM2MDI5OS4uYjczMjExM2VhMjI3YThhNTc1NzNhYmQwZTIyYWJhMjU0ZWYwNzU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYuaApAQCAtNDgsNiArNDgsOSBAQCBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRDb25maWd1cmF0aW9uU2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoV0tDb250ZXh0
Q29uZgogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5SW5q
ZWN0ZWRCdW5kbGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0SW5qZWN0ZWRCdW5kbGVQ
YXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYg
aW5qZWN0ZWRCdW5kbGVQYXRoKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tDb250ZXh0Q29u
ZmlndXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENv
bmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNGb3JDb2Rlcik7
CisKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUxvY2Fs
U3RvcmFnZURpcmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24p
IFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uQ29weUxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRDb25maWd1cmF0aW9uU2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFdLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvblNldExvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKaW5kZXgg
MTkzOGJmOWQxMTYyMTJkNzI1NTdlY2Q5YTY1ZjMyMjg4OThiZjY2YS4uNTQxM2I3OTMyYzcxMGQw
ZThhOTgzYzYwYWE4ZTU3MjIwYzk1MTQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBXS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLUHJvY2Vzc1Bvb2wiLCBtYWNvcygxMC4xMCwg
MTAuMTQuNCksIGlvcwogQGludGVyZmFjZSBXS1Byb2Nlc3NHcm91cCA6IE5TT2JqZWN0CiAKIC0g
KGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOwotCistIChp
ZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTCBhbmRDdXN0b21D
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0ICopY2xhc3Nlc0ZvckNvZGVyOwogCiAjcHJh
Z21hIG1hcmsgRGVsZWdhdGVzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbQppbmRleCBlMGM5Y2Q1MTBkNTM5ZjAxYzQ2ZmVmMjlh
NmI0ZjJhNTkyMmU3Y2E2Li4yYmNjYmIzZGI2OWI4NTkzNTE1YjJhNzE1MDAxYjI0NWY2NmJjODg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
R3JvdXAubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c0dyb3VwLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIwNyw2ICsyMDcsNDEgQEAgLSAoaWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVS
TDooTlNVUkwgKilidW5kbGVVUkwKICAgICByZXR1cm4gc2VsZjsKIH0KIAorc3RhdGljIFZlY3Rv
cjxXVEY6OlN0cmluZz4gdG9TdHJpbmdWZWN0b3IoTlNTZXQgKmlucHV0KQoreworICAgIFZlY3Rv
cjxXVEY6OlN0cmluZz4gdmVjdG9yOworCisgICAgTlNVSW50ZWdlciBzaXplID0gaW5wdXQuY291
bnQ7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gdmVjdG9yOworCisgICAgdmVjdG9y
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSk7CisgICAgZm9yIChpZCBjbGFzc09iaiA6IGlu
cHV0KSB7CisgICAgICAgIGlmIChhdXRvKiBzdHJpbmcgPSBOU1N0cmluZ0Zyb21DbGFzcyhjbGFz
c09iaikpCisgICAgICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAg
fQorICAgIHJldHVybiB2ZWN0b3I7Cit9CisKKy0gKGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVV
Ukw6KE5TVVJMICopYnVuZGxlVVJMIGFuZEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcjoo
TlNTZXQgKiljbGFzc2VzRm9yQ29kZXIKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAg
IGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKKyAgICBjb25maWd1
cmF0aW9uLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgoYnVuZGxlVVJMID8gU3RyaW5nKGJ1bmRsZVVS
TC5wYXRoKSA6IFN0cmluZygpKTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRDdXN0b21DbGFzc2Vz
Rm9yUGFyYW1ldGVyQ29kZXIodG9TdHJpbmdWZWN0b3IoY2xhc3Nlc0ZvckNvZGVyKSk7CisKKyAg
ICBfcHJvY2Vzc1Bvb2wgPSBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGUoY29uZmlndXJh
dGlvbik7CisKKyAgICBzZXRVcENvbm5lY3Rpb25DbGllbnQoc2VsZiwgdG9BUEkoX3Byb2Nlc3NQ
b29sLmdldCgpKSk7CisgICAgc2V0VXBJbmplY3RlZEJ1bmRsZUNsaWVudChzZWxmLCB0b0FQSShf
cHJvY2Vzc1Bvb2wuZ2V0KCkpKTsKKyAgICBzZXRVcEhpc3RvcnlDbGllbnQoc2VsZiwgdG9BUEko
X3Byb2Nlc3NQb29sLmdldCgpKSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAoaWQgPFdL
UHJvY2Vzc0dyb3VwRGVsZWdhdGU+KWRlbGVnYXRlCiB7CiAgICAgcmV0dXJuIF9kZWxlZ2F0ZS5n
ZXRBdXRvcmVsZWFzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDVmY2Y4M2RlMmE2YmU3ZTJlYjRkYzgzOTg1MDZkMDdjMzhlMzVm
ZmEuLmRjYzQ1YjE5MjY4ZGIwNGE4M2IzODlkZGQyNjdmOTIyYzM0NWM2YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2OTksNyAr
NTY5OSw3IEBAIC0gKHZvaWQpX3NldElucHV0RGVsZWdhdGU6KGlkIDxfV0tJbnB1dERlbGVnYXRl
PilpbnB1dERlbGVnYXRlCiAgICAgICAgICAgICAgICAgYXV0byBuc0RhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dm9pZCo+KHN0YXRp
Y19jYXN0PGNvbnN0IHZvaWQqPihkYXRhLT5ieXRlcygpKSkgbGVuZ3RoOmRhdGEtPnNpemUoKSBm
cmVlV2hlbkRvbmU6Tk9dKTsKICAgICAgICAgICAgICAgICBhdXRvIHVuYXJjaGl2ZXIgPSBzZWN1
cmVVbmFyY2hpdmVyRnJvbURhdGEobnNEYXRhLmdldCgpKTsKICAgICAgICAgICAgICAgICBAdHJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9i
amVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CisgICAg
ICAgICAgICAgICAgICAgIHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNs
YXNzZXM6bV93ZWJWaWV3LT5fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWxsb3dlZENs
YXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CiAgICAgICAg
ICAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKICAgICAgICAgICAg
ICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIHVzZXIgZGF0YTogJUAiLCBleGNl
cHRpb24pOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApp
bmRleCBkYzI1ZTkxOTVlZTRlMGVhYzA3NjczMWQyMTE2NDAwMjNlNzhmNGQ0Li4xZWQwYzVlMjRi
ZmQ5YmE0OTAyMjIzMGE5NDdjMzhmYTE0OWE1ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCkBAIC0zMiw2ICszMiw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gOiBOU09i
amVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwgKmlu
amVjdGVkQnVuZGxlVVJMOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU2V0PENsYXNz
PiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNV
SW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50IFdLX0FQSV9ERVBSRUNBVEVEKCJJdCBpcyBubyBs
b25nZXIgcG9zc2libGUgdG8gbGltaXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMiLCBtYWNvcyhX
S19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVzZXNTaW5nbGVXZWJQcm9jZXNzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21XZWJDb250ZW50U2Vydmlj
ZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDE1Y2FmNmZkMDU5Zjkw
ZjkxNmM4YzEwNGZhNTc2OTk2YzA1NTk2Y2EuLmY0OWY4YTEwYWVkZTZmOTI2ODA4MDUwNzU5M2Fj
NzI2ZTgwZWQ0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMjYsNiAr
MjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb25JbnRlcm5hbC5oIgogCisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogQGltcGxlbWVudGF0aW9uIF9XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbgpAQCAtNjAsNiArNjEsMzEgQEAgLSAodm9pZClzZXRJbmplY3RlZEJ1bmRsZVVSTDoo
TlNVUkwgKilpbmplY3RlZEJ1bmRsZVVSTAogICAgIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24t
PnNldEluamVjdGVkQnVuZGxlUGF0aChpbmplY3RlZEJ1bmRsZVVSTC5wYXRoKTsKIH0KIAorLSAo
TlNTZXQ8Q2xhc3M+ICopY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyCit7CisgICAgYXV0
byBjbGFzc2VzID0gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+Y3VzdG9tQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyKCk7CisgICAgaWYgKGNsYXNzZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gW05TU2V0IHNldF07CisKKyAgICBOU011dGFibGVTZXQgKnJlc3VsdCA9IFtbTlNNdXRhYmxl
U2V0IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmNsYXNzZXMuc2l6ZSgpXTsKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHZhbHVlIDogY2xhc3NlcykKKyAgICAgICAgW3Jlc3VsdCBhZGRPYmplY3Q6IG9i
amNfbG9va1VwQ2xhc3ModmFsdWUudXRmOCgpLmRhdGEoKSldOworCisgICAgcmV0dXJuIFtyZXN1
bHQgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKXNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RlcjooTlNTZXQ8Q2xhc3M+ICopY2xhc3Nlc0ZvckNvZGVyCit7CisgICAgVmVjdG9yPFdU
Rjo6U3RyaW5nPiBjbGFzc2VzOworICAgIGNsYXNzZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShj
bGFzc2VzRm9yQ29kZXIuY291bnQpOworICAgIGZvciAoaWQgY2xhc3NPYmogOiBjbGFzc2VzRm9y
Q29kZXIpIHsKKyAgICAgICAgaWYgKGF1dG8qIHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNs
YXNzT2JqKSkKKyAgICAgICAgICAgIGNsYXNzZXMudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7Cisg
ICAgfQorCisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0Zv
clBhcmFtZXRlckNvZGVyKFdURk1vdmUoY2xhc3NlcykpOworfQorCiAtIChOU1VJbnRlZ2VyKW1h
eGltdW1Qcm9jZXNzQ291bnQKIHsKICAgICAvLyBEZXByZWNhdGVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggNTEw
ZWNiMDc0MGI1MGMwMGQzZGEwOTE4MmIzNjRiNDkxM2Q4YTc5MC4uMWI5ZDA0NTA2MmY4ZTcyZmE5
NWU0ZDc5NGY3ODE4YWNjM2JmZWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgogI2lt
cG9ydCA8c3lzL3BhcmFtLmg+CkBAIC0xMjgsNiArMTI5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVl
ZGVkKCk7CiAgICAgcmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKTsKKyAgICBpbml0aWFs
aXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIGFibGUgdG8gc2hhcmUgY29kZSB3aXRoIFdlYkNvcmUncyBNZW1vcnlQcmVzc3VyZUhh
bmRsZXIgKGFuZCBiZSBwbGF0Zm9ybSBpbmRlcGVuZGVudCkuCiAgICAgLy8gUmlnaHQgbm93IGl0
IGNhbm5vdCBiZWNhdXNlIFdlYktpdDEgYW5kIFdlYktpdDIgbmVlZCB0byBiZSBhYmxlIHRvIGNv
ZXhpc3QgaW4gdGhlIFVJIHByb2Nlc3MsCkBAIC01OTIsNCArNTk0LDM2IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmFwcGxpY2F0aW9uSXNBYm91dFRvU3VzcGVuZCgpCiB9CiAjZW5kaWYKIAordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKQor
eworICAgIGNvbnN0IGF1dG8mIGN1c3RvbUNsYXNzZXMgPSBtX2NvbmZpZ3VyYXRpb24tPmN1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpOworICAgIGlmIChjdXN0b21DbGFzc2VzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGF1dG8gbXV0YWJsZVNldCA9IGFkb3B0
TlMoW2FsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgbXV0YWJsZUNvcHldKTsKKwor
ICAgIGZvciAoY29uc3QgYXV0byYgY3VzdG9tQ2xhc3MgOiBjdXN0b21DbGFzc2VzKSB7CisgICAg
ICAgIGNvbnN0IGF1dG8qIGNsYXNzTmFtZSA9IGN1c3RvbUNsYXNzLnV0ZjgoKS5kYXRhKCk7Cisg
ICAgICAgIENsYXNzIG9iamVjdENsYXNzID0gb2JqY19sb29rVXBDbGFzcyhjbGFzc05hbWUpOwor
ICAgICAgICBpZiAoIW9iamVjdENsYXNzKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIklu
amVjdGVkQnVuZGxlOjpleHRlbmRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgLSBDbGFzcyAlcyBp
cyBub3QgYSB2YWxpZCBPYmplY3RpdmUgQyBjbGFzcy5cbiIsIGNsYXNzTmFtZSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFttdXRhYmxlU2V0LmdldCgpIGFkZE9i
amVjdDpvYmplY3RDbGFzc107CisgICAgfQorCisgICAgbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXIgPSBtdXRhYmxlU2V0OworfQorCitOU1NldCAqV2ViUHJvY2Vzc1Bvb2w6OmFsbG93ZWRDbGFz
c2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyKSB7CisgICAgICAgIG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gW05T
U2V0IHNldFdpdGhPYmplY3RzOltOU0FycmF5IGNsYXNzXSwgW05TRGF0YSBjbGFzc10sIFtOU0Rh
dGUgY2xhc3NdLCBbTlNEaWN0aW9uYXJ5IGNsYXNzXSwgW05TTnVsbCBjbGFzc10sCisgICAgICAg
ICAgICBbTlNOdW1iZXIgY2xhc3NdLCBbTlNTZXQgY2xhc3NdLCBbTlNTdHJpbmcgY2xhc3NdLCBb
TlNUaW1lWm9uZSBjbGFzc10sIFtOU1VSTCBjbGFzc10sIFtOU1VVSUQgY2xhc3NdLCBuaWxdOwor
ICAgIH0KKworICAgIHJldHVybiBtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlci5nZXQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCA2MmZmZTIwYjg5Y2RkYmZiZTFkYTJkZWJhZDBkYmFjOTU0MTNmY2FlLi4y
MWE5ZWUwOGI3NGY5NzhmN2NkOWYyNjNhZDQyNzhiMmFhZWE0NTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MSw2ICs3MSw3IEBACiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiBPQkpDX0NMQVNTIE5TTXV0YWJsZURpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5T
T2JqZWN0OworT0JKQ19DTEFTUyBOU1NldDsKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiAjZW5kaWYK
IApAQCAtMjEzLDYgKzIxNCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQYWdlc1VzaW5nV2Vi
c2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlJikgY29uc3Q7CiAKICAgICBjb25zdCBTdHJp
bmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi0+
aW5qZWN0ZWRCdW5kbGVQYXRoKCk7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBOU1NldCAq
YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKSBjb25zdDsKKyAgICB2b2lkIGluaXRp
YWxpemVDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCk7CisjZW5kaWYKIAogICAgIERvd25sb2Fk
UHJveHkmIGRvd25sb2FkKFdlYlBhZ2VQcm94eSogaW5pdGlhdGluZ1BhZ2UsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7
IH0pOwogICAgIERvd25sb2FkUHJveHkmIHJlc3VtZURvd25sb2FkKFdlYlBhZ2VQcm94eSogaW5p
dGlhdGluZ1BhZ2UsIGNvbnN0IEFQSTo6RGF0YSogcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBw
YXRoKTsKQEAgLTczOCw2ICs3NDMsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBtX2J1bmRsZVBhcmFtZXRlcnM7CiAg
ICAgUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRUb2tlbiBtX3BsdWdpblByb2Nlc3NNYW5hZ2Vy
UHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRUb2tlbjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxO
U1NldD4gbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KaW5kZXggZDM5MzBiNWU3ZmQwZTYyMGZmNWQ1MTg2OGE3NzUzN2Nh
OWZhNDkxMC4uNzBkZGU5MmQyNzRlOWEyNTk1ZDNhODg1MmNjZGYxOTgzZmZmMDhkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTU0OSw3ICs1NDksNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbGVtZW50RGlkRm9jdXMoY29u
c3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgbm9kZUluZm9ybQogICAgICAgICBhdXRvIG5z
RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6Y29uc3Rf
Y2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KGRhdGEtPmJ5dGVzKCkpKSBsZW5n
dGg6ZGF0YS0+c2l6ZSgpIGZyZWVXaGVuRG9uZTpOT10pOwogICAgICAgICBhdXRvIHVuYXJjaGl2
ZXIgPSBzZWN1cmVVbmFyY2hpdmVyRnJvbURhdGEobnNEYXRhLmdldCgpKTsKICAgICAgICAgQHRy
eSB7Ci0gICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZD
bGFzczpbTlNPYmplY3QgY2xhc3NdIGZvcktleTpAInVzZXJPYmplY3QiXTsKKyAgICAgICAgICAg
IHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNzZXM6bV93ZWJWaWV3
LmdldCgpLT5fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWxsb3dlZENsYXNzZXNGb3JQ
YXJhbWV0ZXJDb2RpbmcoKSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CiAgICAgICAgIH0gQGNhdGNo
IChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxl
ZCB0byBkZWNvZGUgdXNlciBkYXRhOiAlQCIsIGV4Y2VwdGlvbik7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMThmYzMwN2M5
YWRmMDlhZmE3NjQ3Mjg5NGUwZTQyMWEwYzg3N2I0Li4zYjk4ZjgxMjMwZGQxOTdjYmJhZjZiZjEx
NDNkOGUxYTIzMGMxOGQ5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTktMDktMTcgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVuZGxlIFNQSSB0
byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGluZXMgdXNlZCBi
eSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2RpbmcuCisgICAg
ICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVzZSBOU1NlY3Vy
ZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVkIGJ1bmRsZXMg
dGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRoZSBJbmplY3Rl
ZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nlc3MuCisKKyAg
ICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBjaGFubmVsIGJ5
IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNoIGNyZWF0ZXMg
bmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3NlcyB0aGF0IGl0
IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNvbnRldCBQcm9j
ZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRoZSBmb2xsb3dp
bmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgorCisgICAgICAg
ICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpjdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNsYXNzZXMgYXJl
IHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZlcyBhcmUgc3Vw
cG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5TRGljdGlvbmFy
eSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAgICAgTlNUaW1l
Wm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlk
c29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9CdW5kbGVGb3JtRGVsZWdhdGUubW06IEFkZGVkLgorICAgICAgICAoLVtCdW5kbGVGb3JtRGVs
ZWdhdGVSZW1vdGVPYmplY3QgZGlkR2V0Rm9jdXNdKToKKyAgICAgICAgKC1bRm9ybUlucHV0RGVs
ZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6XSk6CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRs
ZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbTogQWRkZWQuCisgICAgICAgICgtW0J1bmRsZUZvcm1EZWxl
Z2F0ZVBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjpdKToKKyAgICAgICAgKC1bQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luIF93ZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOndpbGxCZWdpbklucHV0U2Vzc2lvbkZvckVs
ZW1lbnQ6aW5GcmFtZTp1c2VySXNJbnRlcmFjdGluZzpdKToKKyAgICAgICAgKC1bQnVuZGxlRm9y
bURlbGVnYXRlUGx1Z0luIF93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
OmRpZEZvY3VzVGV4dEZpZWxkOmluRnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oOiBDb3BpZWQgZnJv
bSBUb29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tOgorICAgICAgICAoK1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOl0pOgorICAgICAgICAoK1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpjb25maWd1cmVKU0NG
b3JUZXN0aW5nOmFuZEN1c3RvbVBhcmFtZXRlckNsYXNzZXM6XSk6CisKIDIwMTktMDktMTcgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHJlc3VsdHMud2Vi
a2l0Lm9yZyByZXN1bHRzIGJ1YmJsZXMnIHRvb2x0aXBzIHNob3VsZCBpbmNsdWRlIFNESyBpbmZv
cm1hdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNmQwMThkZDU5NTYxOGQyNjI2MzE3
ZThmZmQwMGRjZGY3NTY3NDE0Li43NzljYjNjYzcxM2ZiYTVmOWUxZTM0Y2YxMzMyMTFmNWY5MTZk
NGI5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDM5LDYgKzQzOSw4IEBACiAJCTdBNkEy
QzcwMURDQ0ZBOEMwMEMwRDA4NSAvKiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTZBMkM2RjFEQ0NGODdCMDBD
MEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tICovOyB9OwogCQk3QTZBMkM3MjFEQ0NG
QjUyMDBDMEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtFbmFibGVkLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2QTJDNzExRENDRkIw
MjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrRW5hYmxlZC5odG1sICovOyB9OwogCQk3QTdC
MEU3RjFFQUZFNEMzMDA2QUI4QUUgLyogTGltaXRUaXRsZVNpemUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTdCMEU3RTFFQUZFNDU0MDA2QUI4QUUg
LyogTGltaXRUaXRsZVNpemUubW0gKi87IH07CisJCTdBODlCQjY3MjMzMTY0MzIwMDQyQ0IxRSAv
KiBCdW5kbGVGb3JtRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QTg5QkI2NTIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVn
YXRlLm1tICovOyB9OworCQk3QTg5QkI2ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURl
bGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0E4OUJCNjYyMzMxNjM1RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJ
bi5tbSAqLzsgfTsKIAkJN0E5MDlBN0QxRDg3NzQ4MDAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9y
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkw
OUE2RjFEODc3NDc1MDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJN0E5
MDlBN0UxRDg3NzQ4MDAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8q
IEZsb2F0UG9pbnQuY3BwICovOyB9OwogCQk3QTkwOUE3RjFEODc3NDgwMDA3RTEwRjggLyogRmxv
YXRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBOTA5QTcxMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFJlY3QuY3BwICovOyB9OwpAQCAtMTk2
MCw2ICsxOTYyLDkgQEAKIAkJN0E2QTJDNkYxRENDRjg3QjAwQzBEMDg1IC8qIExvY2FsU3RvcmFn
ZVF1aXJrVGVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExv
Y2FsU3RvcmFnZVF1aXJrVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2
QTJDNzExRENDRkIwMjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrRW5hYmxlZC5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gTG9jYWxTdG9yYWdlUXVpcmtFbmFibGVkLmh0bWw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBN0IwRTdFMUVBRkU0NTQwMDZBQjhBRSAv
KiBMaW1pdFRpdGxlU2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IExpbWl0VGl0bGVTaXplLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5
QkI2NTIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlRm9ybURlbGVnYXRlLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVu
ZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QTg5QkI2OTIzMzE2NTY1MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRl
UHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5MDlBNkYxRDg3NzQ3NTAwN0UxMEY4IC8q
IEFmZmluZVRyYW5zZm9ybS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBZmZpbmVUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkw
OUE3MDFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGbG9hdFBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0E5MDlBNzExRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVjdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG9hdFJlY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjczOCw2ICsyNzQzLDkgQEAKIAkJCQkzNzRCN0E1RTFERjM2
RUVFMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGluZ0RlbGVnYXRlLm1tICovLAogCQkJCTM3NEI3QTVG
MURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gKi8sCiAJ
CQkJMzc0QjdBNjIxREYzNzM0QzAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVByb3Rv
Y29sLmggKi8sCisJCQkJN0E4OUJCNjUyMzMxNjM1RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxl
Z2F0ZS5tbSAqLywKKwkJCQk3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURl
bGVnYXRlUGx1Z0luLm1tICovLAorCQkJCTdBODlCQjY5MjMzMTY1NjUwMDQyQ0IxRSAvKiBCdW5k
bGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oICovLAogCQkJCUExM0VCQkFDMUI4NzQzNkYwMDA5NzEx
MCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tICovLAogCQkJCUExM0VCQkFFMUI4NzQzNkYwMDA5NzEx
MCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovLAogCQkJCTM3QTcwOUFEMUUzRUE4QjAw
MENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZS5tbSAqLywKQEAgLTQ2MDQsNiArNDYxMiw3IEBA
CiAJCQkJN0NDRTdFQzUxQTQxMUE3RTAwNDQ3QzRDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhp
blJlc291cmNlTG9hZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzYxQTQx
MUE3RTAwNDQ3QzRDIC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODhEMURENTk2NEQwMEIwMDMyOCAvKiBNZW1v
cnlQcmVzc3VyZUhhbmRsZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk3QTg5QkI2NzIzMzE2NDMy
MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4
M0UwQjcxRDBBNjRCODAwRkVCQ0YzIC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JN
b3VzZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VD
MyAvKiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLApAQCAtNDg5Niw2ICs0
OTA1LDcgQEAKIAkJCQkzN0U3REQ2NzFFQTA3MUYzMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRB
Y2Nlc3NBbGxvd2VkVVJMc1BsdWdpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc1NENFQzgxMUY2
NzIyRjIwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTVDNDI1OTQ2MjI2NkE2OEEwMDM5QUE3QSAvKiBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbFBsdWdJ
bi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTdBODlCQjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5k
bGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzRCN0E2MTFERjM3
MUNGMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGluZ0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVn
SW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0E3MDlBRjFFM0VBOTdFMDBDQTU5NjkgLyogQnVu
ZGxlUmFuZ2VIYW5kbGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGUu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODEyYjZkNmQyNTNlMTE3Yzc0ZGRjN2ZkNGM3YzRlYzYyMjQ2M2Y4Ygot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QnVuZGxlRm9ybURlbGVnYXRlLm1tCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2Nv
bC5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNp
bXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIldLV2ViVmlld0NvbmZp
Z3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9f
V0tGb2N1c2VkRWxlbWVudEluZm8uaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnB1dERlbGVnYXRl
Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0
IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworc3RhdGljIGJvb2wgZGlkR2V0Rm9jdXM7CitzdGF0aWMgYm9vbCBkaWRHZXRVc2Vy
T2JqZWN0Oworc3RhdGljIGlkIHVzZXJPYmplY3Q7CisKK0BpbnRlcmZhY2UgQnVuZGxlRm9ybURl
bGVnYXRlUmVtb3RlT2JqZWN0IDogTlNPYmplY3QgPEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29s
PgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0
CisKKy0gKHZvaWQpZGlkR2V0Rm9jdXMKK3sKKyAgICBkaWRHZXRGb2N1cyA9IHRydWU7Cit9CisK
K0BlbmQKKworQGludGVyZmFjZSBGb3JtSW5wdXREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tJbnB1
dERlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gRm9ybUlucHV0RGVsZWdhdGUKKwor
LSAoX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6KGlkIDxfV0tGb2N1c2VkRWxl
bWVudEluZm8+KWluZm8KK3sKKyAgICB1c2VyT2JqZWN0ID0gaW5mby51c2VyT2JqZWN0OworICAg
IGRpZEdldFVzZXJPYmplY3QgPSB0cnVlOworICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0
U2Vzc2lvblBvbGljeUFsbG93OworfQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nl
c3NQbHVnSW5XaXRoVW5yZWdpc3RlcmVkQ3VzdG9tQ2xhc3MpCit7CisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tGb3JtSW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gcmV0YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUZvcm1EZWxlZ2F0
ZVBsdWdJbiJdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmplY3Q6
QFlFUyBmb3JCdW5kbGVQYXJhbWV0ZXI6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21DbGFz
cyJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQ+PC9pbnB1dD48
c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQ+Zm9vPC9vcHRpb24+PG9wdGlvbj5iYXI8L29wdGlvbj48
L3NlbGVjdD4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbl07CisKKyAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tCdW5kbGVGb3Jt
RGVsZWdhdGVSZW1vdGVPYmplY3QgYWxsb2NdIGluaXRdKTsKKyAgICBfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2Jq
ZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVGb3JtRGVsZWdhdGVQcm90
b2NvbCldOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhw
b3J0ZWRPYmplY3Q6b2JqZWN0LmdldCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW3dl
YlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQn
KS5mb2N1cygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworCisgICAgdXNlck9iamVjdCA9IG5p
bDsKKyAgICBkaWRHZXRVc2VyT2JqZWN0ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZEdldEZvY3VzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEdldFVzZXJPYmplY3QpOworCisgICAgRVhQRUNUX05VTEwodXNlck9iamVjdCk7Cit9CisKK1RF
U1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRoUmVnaXN0ZXJlZEN1c3RvbUNsYXNzKQor
eworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbRm9ybUlucHV0RGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHJldGFpblB0cihbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4iCisgICAgICAgIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6Tk8gYW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczpbTlNTZXQgc2V0V2l0aE9iamVjdHM6W05T
VW5pdENvbnZlcnRlckxpbmVhciBjbGFzc10sIG5pbF1dKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJvY2Vzc1Bvb2xdIF9zZXRPYmplY3Q6QFlFUyBmb3JCdW5kbGVQYXJhbWV0ZXI6QCJGb3JtRGVs
ZWdhdGVTaG91bGRBZGRDdXN0b21DbGFzcyJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBf
c2V0SW5wdXREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8aW5wdXQ+PC9pbnB1dD48c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQ+Zm9vPC9vcHRp
b24+PG9wdGlvbj5iYXI8L29wdGlvbj48L3NlbGVjdD4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2Vi
VmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBhdXRvIG9iamVj
dCA9IGFkb3B0TlMoW1tCdW5kbGVGb3JtRGVsZWdhdGVSZW1vdGVPYmplY3QgYWxsb2NdIGluaXRd
KTsKKyAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVP
YmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2Nv
bChCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbCldOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2Jq
ZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhwb3J0ZWRPYmplY3Q6b2JqZWN0LmdldCgpIGludGVyZmFj
ZTppbnRlcmZhY2VdOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OworICAgIAorICAgIHVzZXJPYmplY3QgPSBuaWw7CisgICAgZGlkR2V0VXNlck9iamVjdCA9IGZh
bHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRGb2N1cyk7CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRVc2VyT2JqZWN0KTsKKyAgICAKKyAgICBF
WFBFQ1RfVFJVRShbdXNlck9iamVjdCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0ZXJMaW5l
YXIgY2xhc3NdXSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NzMzNGI0M2E3Yzk0YTQyY2JiZjI1NDE4NGNmMmUwMzhmMGQ0ZTZmCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2Nv
bC5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dl
YlByb2Nlc3NQbHVnSW4uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9j
ZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2Ny
aXB0V29ybGQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4K
KyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiA6IE5T
T2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0
ZVByaXZhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVn
SW4geworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXI+IF9icm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdLV2ViUHJv
Y2Vzc1BsdWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5Db250cm9sbGVyOworICAgIFJldGFpblB0cjxp
ZCA8QnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2w+PiBfcmVtb3RlT2JqZWN0OworICAgIEJPT0wg
X3Nob3VsZFVzZUN1c3RvbUNsYXNzOworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdL
V2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJy
b3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJv
d3NlckNvbnRleHRDb250cm9sbGVyKTsKKyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsK
KyAgICBfYnJvd3NlckNvbnRleHRDb250cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVy
OworICAgIF9wbHVnSW5Db250cm9sbGVyID0gcGx1Z0luQ29udHJvbGxlcjsKKworICAgIGlmIChp
ZCBzaG91bGRBZGRDdXN0b21DbGFzcyA9IFtwbHVnSW5Db250cm9sbGVyLnBhcmFtZXRlcnMgdmFs
dWVGb3JLZXk6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21DbGFzcyJdKSB7CisgICAgICAg
IEFTU0VSVChbc2hvdWxkQWRkQ3VzdG9tQ2xhc3MgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xh
c3NdXSk7CisgICAgICAgIF9zaG91bGRVc2VDdXN0b21DbGFzcyA9IFsoTlNOdW1iZXIgKilzaG91
bGRBZGRDdXN0b21DbGFzcyBib29sVmFsdWVdOworICAgIH0gZWxzZQorICAgICAgICBfc2hvdWxk
VXNlQ3VzdG9tQ2xhc3MgPSBOTzsKKworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50
ZXJmYWNlID0gW19XS1JlbW90ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VX
aXRoUHJvdG9jb2w6QHByb3RvY29sKEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07CisgICAg
X3JlbW90ZU9iamVjdCA9IFticm93c2VyQ29udGV4dENvbnRyb2xsZXIuX3JlbW90ZU9iamVjdFJl
Z2lzdHJ5IHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAg
W19icm93c2VyQ29udGV4dENvbnRyb2xsZXIgX3NldEZvcm1EZWxlZ2F0ZTpzZWxmXTsKK30KKwor
LSAoTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgKiljb250cm9sbGVyIHdpbGxCZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJv
Y2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lICopZnJhbWUgdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcKK3sK
KyAgICBpZiAoIV9zaG91bGRVc2VDdXN0b21DbGFzcykKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIE5TVW5pdENvbnZlcnRlckxpbmVhciAqa2lsb21ldGVyc1RvTWV0ZXJzID0gW1tOU1VuaXRD
b252ZXJ0ZXJMaW5lYXIgYWxsb2NdIGluaXRXaXRoQ29lZmZpY2llbnQ6MTAwMC4wIGNvbnN0YW50
OjAuMF07CisKKyAgICByZXR1cm4gW2tpbG9tZXRlcnNUb01ldGVycyBhdXRvcmVsZWFzZV07Cit9
CisKKy0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlk
Rm9jdXNUZXh0RmllbGQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKil0ZXh0RmllbGQg
aW5GcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZQoreworICAgIC8vIFRoaXMg
aXMgaGl0IGluIHRoZSBtYWNPUyBjYXNlLgorICAgIFtfcmVtb3RlT2JqZWN0IGRpZEdldEZvY3Vz
XTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlM2M0N2ExYmUxNTJjODU1NWY0Mzc0MDJmYjBmMmY0MTc0ZDQ0OTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1E
ZWxlZ2F0ZVByb3RvY29sLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1Bs
dWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaD4KKworQHByb3RvY29sIEJ1bmRsZUZvcm1EZWxlZ2F0
ZVByb3RvY29sIDxOU09iamVjdD4KKworLSAodm9pZClkaWRHZXRGb2N1czsKKworQGVuZApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggMWNmNzE4MmVjYTgxYjhjYTY3
ZTRmN2MyZDE2MDcyN2FmYTA4MDcwYi4uZTYzNzE5MzNlMDIxNGU4ZTE0YjViOTJhOWY2NTVmMTQ4
MjY1MTUzZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0zNSw3
ICszNSwxNCBAQCBURVNUKFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLCBDb3B5KQogewogICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgTlNTZXQ8
Q2xhc3M+ICp0ZXN0U2V0ID0gW05TU2V0IHNldFdpdGhPYmplY3RzOltVSUNvbG9yIGNsYXNzXSwg
bmlsXTsKKyNlbHNlCisgICAgTlNTZXQ8Q2xhc3M+ICp0ZXN0U2V0ID0gW05TU2V0IHNldFdpdGhP
YmplY3RzOltOU0NvbG9yIGNsYXNzXSwgbmlsXTsKKyNlbmRpZgorICAgIAogICAgIFtjb25maWd1
cmF0aW9uIHNldEluamVjdGVkQnVuZGxlVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6QCIvcGF0
aC90by9pbmplY3RlZC53a2J1bmRsZSJdXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRDdXN0b21D
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6dGVzdFNldF07CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOkAib3JnLndlYmtpdC5XZWJD
b250ZW50LmN1c3RvbSJdOwogICAgIFtjb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3Vz
TWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nOllFU107CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
QXR0clN0eWxlRW5hYmxlZDpZRVNdOwpAQCAtNjEsNiArNjgsNyBAQCBURVNUKFdLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLCBDb3B5KQogICAgIGF1dG8gY29weSA9IGFkb3B0TlMoW2NvbmZpZ3Vy
YXRpb24gY29weV0pOwogCiAgICAgRVhQRUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIGluamVjdGVk
QnVuZGxlVVJMXSBpc0VxdWFsOltjb3B5IGluamVjdGVkQnVuZGxlVVJMXV0pOworICAgIEVYUEVD
VF9UUlVFKFtbY29weSBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdIGlzRXF1YWxUb1Nl
dDp0ZXN0U2V0XSk7CiAgICAgRVhQRUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIGN1c3RvbVdlYkNv
bnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbDpbY29weSBjdXN0b21XZWJDb250
ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXJdXSk7CiAgICAgRVhQRUNUX0VRKFtjb25maWd1cmF0
aW9uIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nXSwgW2NvcHkg
aWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmddKTsKICAgICBFWFBF
Q1RfRVEoW2NvbmZpZ3VyYXRpb24gYXR0clN0eWxlRW5hYmxlZF0sIFtjb3B5IGF0dHJTdHlsZUVu
YWJsZWRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbkV4dHJhcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uRXh0cmFzLmgKaW5kZXggZDY4MTIwN2VkMzk4NThjYjc0ZGMwYWI0MTAzZGNiOWRlZjlkZmQ4
Ni4uNWQ5NTEzYjU5ZTg3ZDE5MjJhZmMwMWQyOTQ2MDEzOWViNWZiZWFjOCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgKQEAgLTI4
LDQgKzI4LDUgQEAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoVGVzdFdlYktp
dEFQSUV4dHJhcykKICsgKGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lOwogKyAoaW5zdGFuY2V0eXBlKV90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFz
c05hbWUgY29uZmlndXJlSlNDRm9yVGVzdGluZzooQk9PTCl2YWx1ZTsKKysgKGluc3RhbmNldHlw
ZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICop
Y2xhc3NOYW1lIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWUgYW5kQ3VzdG9tUGFy
YW1ldGVyQ2xhc3NlczooTlNTZXQ8Q2xhc3M+ICopcGFyYW1ldGVyQ2xhc3NlczsKIEBlbmQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJh
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5t
bQppbmRleCA3ZGRiZDhjNDczM2YyYmViYWY0MDk3ZWUxZjc4NDY2YzIwMDhjYzI5Li5lZTYyY2Iz
YTgzN2VhY2RjMGRiZDcwMjk1ZmI5Zjk2MGVhOGM3OTI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tCkBAIC0zOSwxMSArMzks
MTcgQEAgKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNs
YXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUKIH0KIAogKyAoaW5zdGFuY2V0eXBlKV90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05h
bWUgY29uZmlndXJlSlNDRm9yVGVzdGluZzooQk9PTCl2YWx1ZQoreworICAgIHJldHVybiBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6Y2xhc3NOYW1lIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6dmFsdWUgYW5kQ3VzdG9tUGFy
YW1ldGVyQ2xhc3NlczpuaWxdOworfQorCisrIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZSBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOihCT09MKXZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNsYXNzZXM6KE5T
U2V0PENsYXNzPiAqKXBhcmFtZXRlckNsYXNzZXMKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICBbcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldEluamVjdGVkQnVuZGxl
VVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJUZXN0V2ViS2l0QVBJ
IiB3aXRoRXh0ZW5zaW9uOkAid2tidW5kbGUiXV07CiAgICAgW3Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBzZXRDb25maWd1cmVKU0NGb3JUZXN0aW5nOnZhbHVlXTsKLQorICAgIFtwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gc2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOiBwYXJhbWV0
ZXJDbGFzc2VzXTsKKyAgICAKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJv
Y2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmdldCgpXSk7CiAgICAgW3Byb2Nlc3NQb29sIF9zZXRPYmplY3Q6Y2xhc3NOYW1lIGZv
ckJ1bmRsZVBhcmFtZXRlcjpUZXN0V2ViS2l0QVBJOjpVdGlsOjpUZXN0UGx1Z0luQ2xhc3NOYW1l
UGFyYW1ldGVyXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379015</attachid>
            <date>2019-09-17 20:14:41 -0700</date>
            <delta_ts>2019-09-18 16:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201810-20190917201440.patch</filename>
            <type>text/plain</type>
            <size>47239</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlMmI4NTU3YjQ3OWI5NmE2
OWNjZGM0ZDAyZjgwOGRjYmU0YTY5OTYuLjgxY2FmYTQ1ZTI3NjRlOWUxZmM3YzA2NzU0ZTQyNTlj
NjVkYzE5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTcgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IGFueSBjdXN0b20gY2xhc3Nlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKTogQWRkZWQuCisgICAg
ICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAg
ICAgICAgKHRvU3RyaW5nVmVjdG9yKTogQWRkZWQuCisgICAgICAgICgtW1dLUHJvY2Vzc0dyb3Vw
IGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6XSk6IFJlc3RyaWN0IHNlcmlhbGl6
YXRpb24gdG8gYWxsb3dlZCBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdKTogQWRk
ZWQuCisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKTogUmVnaXN0ZXIgYW55IGN1c3RvbSBjbGFzc2VzCisgICAg
ICAgIHByb3ZpZGVkIGluIHRoZSBjb25maWd1cmF0b24uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RpbmcgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKTogUmVzdHJpY3Qg
c2VyaWFsaXphdGlvbiB0byBhbGxvd2VkCisgICAgICAgIGNsYXNzZXMgb25seS4KKwogMjAxOS0w
OS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXggZm9sbG93aW5nIHIyNDk5ODUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uY3BwCmluZGV4IDdlNDJkZDY4YzNlZGFlZjVjOTU3N2I4NzIzMjJkMGVlYTFiN2Ew
ZWEuLjYyMjRlMzAyMThiNmRlMGY2MjQ2YWZmODZmMDM5NzZjMTk3YTIxZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uY3BwCkBAIC04NCw2ICs4NCw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9tZWRpYUNh
Y2hlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUNhY2hlRGlyZWN0b3J5OwogICAgIGNvcHktPm1f
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSB0aGlzLT5tX2luZGV4ZWREQkRhdGFiYXNlRGly
ZWN0b3J5OwogICAgIGNvcHktPm1faW5qZWN0ZWRCdW5kbGVQYXRoID0gdGhpcy0+bV9pbmplY3Rl
ZEJ1bmRsZVBhdGg7CisgICAgY29weS0+bV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIg
PSB0aGlzLT5tX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICAgICBjb3B5LT5tX2xv
Y2FsU3RvcmFnZURpcmVjdG9yeSA9IHRoaXMtPm1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwogICAg
IGNvcHktPm1fZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9kZXZp
Y2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9tZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCmluZGV4IGQ4YmQyZjE5MGZiZTRjZTM3MDRiYTkyNWE0NTI2YjU5Mjc1NDdlZjUu
LmIzMzc1MTYxMDdlNWZkNmQ5YjQ4ZmIzMzQ5ZjcxNGZhNzZjYzcwYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgV1RGOjpTdHJpbmcm
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7IH0KICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkpIHsgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogCisgICAgY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYgY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCkgY29uc3QgeyByZXR1cm4gbV9j
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7IH0KKyAgICB2b2lkIHNldEN1c3RvbUNsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcihWZWN0b3I8V1RGOjpTdHJpbmc+JiYgY2xhc3Nlc0ZvckNvZGVy
KSB7IG1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gV1RGTW92ZShjbGFzc2VzRm9y
Q29kZXIpOyB9CisKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjYWNoZVBhcnRpdGlv
bmVkVVJMU2NoZW1lcygpIHsgcmV0dXJuIG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7IH0K
ICAgICB2b2lkIHNldENhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKFZlY3RvcjxXVEY6OlN0cmlu
Zz4mJiBjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcykgeyBtX2NhY2hlUGFydGl0aW9uZWRVUkxT
Y2hlbWVzID0gV1RGTW92ZShjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcyk7IH0KIApAQCAtMTk5
LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgV1RGOjpTdHJpbmcgbV93ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeTsKICAgICBXVEY6OlN0cmluZyBtX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CiAg
ICAgV1RGOjpTdHJpbmcgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIFZl
Y3RvcjxXVEY6OlN0cmluZz4gbV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CiAgICAg
VmVjdG9yPFdURjo6U3RyaW5nPiBtX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwogICAgIFZl
Y3RvcjxXVEY6OlN0cmluZz4gbV9hbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXM7CiAgICAgVmVj
dG9yPFdURjo6Q1N0cmluZz4gbV9hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRoczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5jcHAKaW5kZXggZTMxMGU3NDg5Y2I5YzAzMGUwNGJiYzZlZTZiNWUzZDEz
Y2YwOTM5Yi4uYmQ3MmU2ZTE0M2NkODE1YjUyNzg5Yjk5YzkxN2VlOTM4YThkNzgyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5jcHAKQEAgLTc5LDYgKzc5LDE2IEBAIHZvaWQgV0tDb250ZXh0Q29uZmln
dXJhdGlvblNldEluamVjdGVkQnVuZGxlUGF0aChXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNv
bmZpCiAgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgodG9J
bXBsKGluamVjdGVkQnVuZGxlUGF0aCktPnN0cmluZygpKTsKIH0KIAorV0tBcnJheVJlZiBXS0Nv
bnRleHRDb25maWd1cmF0aW9uQ29weUN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJ
KCZBUEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheSh0b0ltcGwoY29uZmlndXJhdGlvbiktPmN1
c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpKS5sZWFrUmVmKCkpOworfQorCit2b2lkIFdL
Q29udGV4dENvbmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNG
b3JDb2RlcikKK3sKKyAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEN1c3RvbUNsYXNzZXNG
b3JQYXJhbWV0ZXJDb2Rlcih0b0ltcGwoY2xhc3Nlc0ZvckNvZGVyKS0+dG9TdHJpbmdWZWN0b3Io
KSk7Cit9CisKIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5TG9jYWxTdG9y
YWdlRGlyZWN0b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpCiB7CiAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmLmgKaW5kZXggYmE1Yjk3OGYxOWU1NTJkYWZlYjNiMmEwOGU4
NWEzZWE0YWM2MDI5OS4uYjczMjExM2VhMjI3YThhNTc1NzNhYmQwZTIyYWJhMjU0ZWYwNzU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYuaApAQCAtNDgsNiArNDgsOSBAQCBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRDb25maWd1cmF0aW9uU2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoV0tDb250ZXh0
Q29uZgogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5SW5q
ZWN0ZWRCdW5kbGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0SW5qZWN0ZWRCdW5kbGVQ
YXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYg
aW5qZWN0ZWRCdW5kbGVQYXRoKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tDb250ZXh0Q29u
ZmlndXJhdGlvbkNvcHlDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENv
bmZpZ3VyYXRpb25TZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0FycmF5UmVmIGNsYXNzZXNGb3JDb2Rlcik7
CisKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0NvbnRleHRDb25maWd1cmF0aW9uQ29weUxvY2Fs
U3RvcmFnZURpcmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24p
IFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uQ29weUxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRDb25maWd1cmF0aW9uU2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFdLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tTdHJpbmdSZWYgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvblNldExvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKaW5kZXgg
MTkzOGJmOWQxMTYyMTJkNzI1NTdlY2Q5YTY1ZjMyMjg4OThiZjY2YS4uNTQxM2I3OTMyYzcxMGQw
ZThhOTgzYzYwYWE4ZTU3MjIwYzk1MTQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBXS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLUHJvY2Vzc1Bvb2wiLCBtYWNvcygxMC4xMCwg
MTAuMTQuNCksIGlvcwogQGludGVyZmFjZSBXS1Byb2Nlc3NHcm91cCA6IE5TT2JqZWN0CiAKIC0g
KGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOwotCistIChp
ZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTCBhbmRDdXN0b21D
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0ICopY2xhc3Nlc0ZvckNvZGVyOwogCiAjcHJh
Z21hIG1hcmsgRGVsZWdhdGVzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbQppbmRleCBlMGM5Y2Q1MTBkNTM5ZjAxYzQ2ZmVmMjlh
NmI0ZjJhNTkyMmU3Y2E2Li4yYmNjYmIzZGI2OWI4NTkzNTE1YjJhNzE1MDAxYjI0NWY2NmJjODg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
R3JvdXAubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c0dyb3VwLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIwNyw2ICsyMDcsNDEgQEAgLSAoaWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVS
TDooTlNVUkwgKilidW5kbGVVUkwKICAgICByZXR1cm4gc2VsZjsKIH0KIAorc3RhdGljIFZlY3Rv
cjxXVEY6OlN0cmluZz4gdG9TdHJpbmdWZWN0b3IoTlNTZXQgKmlucHV0KQoreworICAgIFZlY3Rv
cjxXVEY6OlN0cmluZz4gdmVjdG9yOworCisgICAgTlNVSW50ZWdlciBzaXplID0gaW5wdXQuY291
bnQ7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gdmVjdG9yOworCisgICAgdmVjdG9y
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSk7CisgICAgZm9yIChpZCBjbGFzc09iaiA6IGlu
cHV0KSB7CisgICAgICAgIGlmIChhdXRvKiBzdHJpbmcgPSBOU1N0cmluZ0Zyb21DbGFzcyhjbGFz
c09iaikpCisgICAgICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAg
fQorICAgIHJldHVybiB2ZWN0b3I7Cit9CisKKy0gKGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVV
Ukw6KE5TVVJMICopYnVuZGxlVVJMIGFuZEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcjoo
TlNTZXQgKiljbGFzc2VzRm9yQ29kZXIKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAg
IGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKKyAgICBjb25maWd1
cmF0aW9uLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgoYnVuZGxlVVJMID8gU3RyaW5nKGJ1bmRsZVVS
TC5wYXRoKSA6IFN0cmluZygpKTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRDdXN0b21DbGFzc2Vz
Rm9yUGFyYW1ldGVyQ29kZXIodG9TdHJpbmdWZWN0b3IoY2xhc3Nlc0ZvckNvZGVyKSk7CisKKyAg
ICBfcHJvY2Vzc1Bvb2wgPSBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGUoY29uZmlndXJh
dGlvbik7CisKKyAgICBzZXRVcENvbm5lY3Rpb25DbGllbnQoc2VsZiwgdG9BUEkoX3Byb2Nlc3NQ
b29sLmdldCgpKSk7CisgICAgc2V0VXBJbmplY3RlZEJ1bmRsZUNsaWVudChzZWxmLCB0b0FQSShf
cHJvY2Vzc1Bvb2wuZ2V0KCkpKTsKKyAgICBzZXRVcEhpc3RvcnlDbGllbnQoc2VsZiwgdG9BUEko
X3Byb2Nlc3NQb29sLmdldCgpKSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAoaWQgPFdL
UHJvY2Vzc0dyb3VwRGVsZWdhdGU+KWRlbGVnYXRlCiB7CiAgICAgcmV0dXJuIF9kZWxlZ2F0ZS5n
ZXRBdXRvcmVsZWFzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDVmY2Y4M2RlMmE2YmU3ZTJlYjRkYzgzOTg1MDZkMDdjMzhlMzVm
ZmEuLjBlMGFjNGY3MmQyNWRkNTU2OGU3ZTBmZWIyZjliMzNlOGEyZWM3MmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2OTksNyAr
NTY5OSwxMCBAQCAtICh2b2lkKV9zZXRJbnB1dERlbGVnYXRlOihpZCA8X1dLSW5wdXREZWxlZ2F0
ZT4paW5wdXREZWxlZ2F0ZQogICAgICAgICAgICAgICAgIGF1dG8gbnNEYXRhID0gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlc05vQ29weTpjb25zdF9jYXN0PHZvaWQqPihzdGF0
aWNfY2FzdDxjb25zdCB2b2lkKj4oZGF0YS0+Ynl0ZXMoKSkpIGxlbmd0aDpkYXRhLT5zaXplKCkg
ZnJlZVdoZW5Eb25lOk5PXSk7CiAgICAgICAgICAgICAgICAgYXV0byB1bmFyY2hpdmVyID0gc2Vj
dXJlVW5hcmNoaXZlckZyb21EYXRhKG5zRGF0YS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgQHRy
eSB7Ci0gICAgICAgICAgICAgICAgICAgIHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVP
YmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZm9yS2V5OkAidXNlck9iamVjdCJdOworICAg
ICAgICAgICAgICAgICAgICBpZiAoYXV0byogYWxsb3dlZENsYXNzZXMgPSBtX3dlYlZpZXctPl9w
YWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVy
IGRlY29kZU9iamVjdE9mQ2xhc3NlczphbGxvd2VkQ2xhc3NlcyBmb3JLZXk6QCJ1c2VyT2JqZWN0
Il07CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFz
c10gZm9yS2V5OkAidXNlck9iamVjdCJdOwogICAgICAgICAgICAgICAgIH0gQGNhdGNoIChOU0V4
Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGRlY29kZSB1c2VyIGRhdGE6ICVAIiwgZXhjZXB0aW9uKTsKICAgICAgICAgICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggZGMyNWU5MTk1ZWU0ZTBlYWMw
NzY3MzFkMjExNjQwMDIzZTc4ZjRkNC4uMWVkMGM1ZTI0YmZkOWJhNDkwMjIyMzBhOTQ3YzM4ZmEx
NDlhNWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtMzIsNiArMzIsNyBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TVVJMICppbmplY3RlZEJ1bmRsZVVSTDsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1NldDxDbGFzcz4gKmN1c3RvbUNsYXNzZXNGb3JQYXJh
bWV0ZXJDb2RlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3ND
b3VudCBXS19BUElfREVQUkVDQVRFRCgiSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxpbWl0
IHRoZSBudW1iZXIgb2YgcHJvY2Vzc2VzIiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCB1c2VzU2luZ2xlV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5
KSBOU1N0cmluZyAqY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5tbQppbmRleCAxNWNhZjZmZDA1OWY5MGY5MTZjOGMxMDRmYTU3Njk5NmMwNTU5
NmNhLi5mNDlmOGExMGFlZGU2ZjkyNjgwODA1MDc1OTNhYzcyNmU4MGVkNDNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKIAor
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBp
bXBsZW1lbnRhdGlvbiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24KQEAgLTYwLDYgKzYxLDMx
IEBAIC0gKHZvaWQpc2V0SW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopaW5qZWN0ZWRCdW5kbGVV
UkwKICAgICBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRJbmplY3RlZEJ1bmRsZVBhdGgo
aW5qZWN0ZWRCdW5kbGVVUkwucGF0aCk7CiB9CiAKKy0gKE5TU2V0PENsYXNzPiAqKWN1c3RvbUNs
YXNzZXNGb3JQYXJhbWV0ZXJDb2RlcgoreworICAgIGF1dG8gY2xhc3NlcyA9IF9wcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24tPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcigpOworICAgIGlm
IChjbGFzc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFtOU1NldCBzZXRdOworCisgICAg
TlNNdXRhYmxlU2V0ICpyZXN1bHQgPSBbW05TTXV0YWJsZVNldCBhbGxvY10gaW5pdFdpdGhDYXBh
Y2l0eTpjbGFzc2VzLnNpemUoKV07CisgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IGNsYXNz
ZXMpCisgICAgICAgIFtyZXN1bHQgYWRkT2JqZWN0OiBvYmpjX2xvb2tVcENsYXNzKHZhbHVlLnV0
ZjgoKS5kYXRhKCkpXTsKKworICAgIHJldHVybiBbcmVzdWx0IGF1dG9yZWxlYXNlXTsKK30KKwor
LSAodm9pZClzZXRDdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6KE5TU2V0PENsYXNzPiAq
KWNsYXNzZXNGb3JDb2RlcgoreworICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gY2xhc3NlczsKKyAg
ICBjbGFzc2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY2xhc3Nlc0ZvckNvZGVyLmNvdW50KTsK
KyAgICBmb3IgKGlkIGNsYXNzT2JqIDogY2xhc3Nlc0ZvckNvZGVyKSB7CisgICAgICAgIGlmIChh
dXRvKiBzdHJpbmcgPSBOU1N0cmluZ0Zyb21DbGFzcyhjbGFzc09iaikpCisgICAgICAgICAgICBj
bGFzc2VzLnVuY2hlY2tlZEFwcGVuZChzdHJpbmcpOworICAgIH0KKworICAgIF9wcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24tPnNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXVEZNb3Zl
KGNsYXNzZXMpKTsKK30KKwogLSAoTlNVSW50ZWdlciltYXhpbXVtUHJvY2Vzc0NvdW50CiB7CiAg
ICAgLy8gRGVwcmVjYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDUxMGVjYjA3NDBiNTBjMDBkM2RhMDkxODJi
MzY0YjQ5MTNkOGE3OTAuLjFiOWQwNDUwNjJmOGU3MmZhOTVlNGQ3OTRmNzgxOGFjYzNiZmVjMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2ltcG9ydCA8b2JqYy9ydW50aW1l
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KICNpbXBvcnQgPHN5cy9wYXJhbS5oPgpAQCAt
MTI4LDYgKzEyOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgp
CiB7CiAgICAgcmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpOwogICAgIHJlZ2lzdGVyTm90
aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7CisgICAgaW5pdGlhbGl6ZUNsYXNzZXNGb3JQYXJhbWV0ZXJD
b2RpbmcoKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhYmxlIHRvIHNoYXJlIGNv
ZGUgd2l0aCBXZWJDb3JlJ3MgTWVtb3J5UHJlc3N1cmVIYW5kbGVyIChhbmQgYmUgcGxhdGZvcm0g
aW5kZXBlbmRlbnQpLgogICAgIC8vIFJpZ2h0IG5vdyBpdCBjYW5ub3QgYmVjYXVzZSBXZWJLaXQx
IGFuZCBXZWJLaXQyIG5lZWQgdG8gYmUgYWJsZSB0byBjb2V4aXN0IGluIHRoZSBVSSBwcm9jZXNz
LApAQCAtNTkyLDQgKzU5NCwzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjphcHBsaWNhdGlvbklz
QWJvdXRUb1N1c3BlbmQoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRp
YWxpemVDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkKK3sKKyAgICBjb25zdCBhdXRvJiBjdXN0
b21DbGFzc2VzID0gbV9jb25maWd1cmF0aW9uLT5jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29k
ZXIoKTsKKyAgICBpZiAoY3VzdG9tQ2xhc3Nlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBhdXRvIG11dGFibGVTZXQgPSBhZG9wdE5TKFthbGxvd2VkQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGluZygpIG11dGFibGVDb3B5XSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGN1
c3RvbUNsYXNzIDogY3VzdG9tQ2xhc3NlcykgeworICAgICAgICBjb25zdCBhdXRvKiBjbGFzc05h
bWUgPSBjdXN0b21DbGFzcy51dGY4KCkuZGF0YSgpOworICAgICAgICBDbGFzcyBvYmplY3RDbGFz
cyA9IG9iamNfbG9va1VwQ2xhc3MoY2xhc3NOYW1lKTsKKyAgICAgICAgaWYgKCFvYmplY3RDbGFz
cykgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJJbmplY3RlZEJ1bmRsZTo6ZXh0ZW5kQ2xh
c3Nlc0ZvclBhcmFtZXRlckNvZGVyIC0gQ2xhc3MgJXMgaXMgbm90IGEgdmFsaWQgT2JqZWN0aXZl
IEMgY2xhc3MuXG4iLCBjbGFzc05hbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KworICAgICAgICBbbXV0YWJsZVNldC5nZXQoKSBhZGRPYmplY3Q6b2JqZWN0Q2xhc3NdOworICAg
IH0KKworICAgIG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyID0gbXV0YWJsZVNldDsKK30KKwor
TlNTZXQgKldlYlByb2Nlc3NQb29sOjphbGxvd2VkQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcikgeworICAgICAg
ICBtX2NsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpbTlNB
cnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdLCBbTlNEYXRlIGNsYXNzXSwgW05TRGljdGlvbmFy
eSBjbGFzc10sIFtOU051bGwgY2xhc3NdLAorICAgICAgICAgICAgW05TTnVtYmVyIGNsYXNzXSwg
W05TU2V0IGNsYXNzXSwgW05TU3RyaW5nIGNsYXNzXSwgW05TVGltZVpvbmUgY2xhc3NdLCBbTlNV
UkwgY2xhc3NdLCBbTlNVVUlEIGNsYXNzXSwgbmlsXTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9j
bGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNjJmZmUyMGI4
OWNkZGJmYmUxZGEyZGViYWQwZGJhYzk1NDEzZmNhZS4uMjFhOWVlMDhiNzRmOTc4ZjdjZDlmMjYz
YWQ0Mjc4YjJhYWVhNDU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNzEsNiArNzEsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBO
U011dGFibGVEaWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU09iamVjdDsKK09CSkNfQ0xBU1MgTlNT
ZXQ7CiBPQkpDX0NMQVNTIE5TU3RyaW5nOwogI2VuZGlmCiAKQEAgLTIxMyw2ICsyMTQsMTAgQEAg
cHVibGljOgogICAgIGJvb2wgaGFzUGFnZXNVc2luZ1dlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURh
dGFTdG9yZSYpIGNvbnN0OwogCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgo
KSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgpOyB9
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgTlNTZXQgKmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1l
dGVyQ29kaW5nKCkgY29uc3Q7CisgICAgdm9pZCBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGluZygpOworI2VuZGlmCiAKICAgICBEb3dubG9hZFByb3h5JiBkb3dubG9hZChXZWJQYWdl
UHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKICAgICBEb3dubG9hZFByb3h5
JiByZXN1bWVEb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBBUEk6
OkRhdGEqIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCk7CkBAIC03MzgsNiArNzQzLDcg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
RGljdGlvbmFyeT4gbV9idW5kbGVQYXJhbWV0ZXJzOwogICAgIFByb2Nlc3NTdXBwcmVzc2lvbkRp
c2FibGVkVG9rZW4gbV9wbHVnaW5Qcm9jZXNzTWFuYWdlclByb2Nlc3NTdXBwcmVzc2lvbkRpc2Fi
bGVkVG9rZW47CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNTZXQ+IG1fY2xhc3Nlc0ZvclBhcmFt
ZXRlckNvZGVyOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4
IGQzOTMwYjVlN2ZkMGU2MjBmZjVkNTE4NjhhNzc1MzdjYTlmYTQ5MTAuLjY5NDFiZGRlZWNmM2Jh
M2UwODJlNmY1NmU0MzU5ODA4NGRhNzRhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NDksNyArNTQ5LDExIEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uJiBub2RlSW5mb3JtCiAgICAgICAgIGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlc05vQ29weTpjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNfY2Fz
dDxjb25zdCB2b2lkKj4oZGF0YS0+Ynl0ZXMoKSkpIGxlbmd0aDpkYXRhLT5zaXplKCkgZnJlZVdo
ZW5Eb25lOk5PXSk7CiAgICAgICAgIGF1dG8gdW5hcmNoaXZlciA9IHNlY3VyZVVuYXJjaGl2ZXJG
cm9tRGF0YShuc0RhdGEuZ2V0KCkpOwogICAgICAgICBAdHJ5IHsKLSAgICAgICAgICAgIHVzZXJP
YmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10g
Zm9yS2V5OkAidXNlck9iamVjdCJdOworICAgICAgICAgICAgaWYgKGF1dG8qIGFsbG93ZWRDbGFz
c2VzID0gbV93ZWJWaWV3LmdldCgpLT5fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWxs
b3dlZENsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKSkKKyAgICAgICAgICAgICAgICB1c2VyT2Jq
ZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzc2VzOmFsbG93ZWRDbGFzc2VzIGZv
cktleTpAInVzZXJPYmplY3QiXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1
c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xh
c3NdIGZvcktleTpAInVzZXJPYmplY3QiXTsKKwogICAgICAgICB9IEBjYXRjaCAoTlNFeGNlcHRp
b24gKmV4Y2VwdGlvbikgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2Rl
IHVzZXIgZGF0YTogJUAiLCBleGNlcHRpb24pOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmUzOTMwZTgwYmIwY2NkZDBkM2U0
YTY3MDYzZmFiMDQ2OTg4ZDRjYi4uOTg5ZGMzZTJhZmZhMmFlMTIxNzU1YzJkZDM0Yjg5OTFiY2Yw
NzU1YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ2IEBACisyMDE5LTA5LTE3ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgorCisgICAgICAgIENyZWF0ZSBJbmplY3RlZEJ1bmRsZSBTUEkgdG8gYmV0dGVyIHN1
cHBvcnQgTlNTZWN1cmVDb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMTgxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTUyNjU3MTM+CisK
KyAgICAgICAgVGhlIGVuY29kaW5nL2RlY29kaW5nIHJvdXRpbmVzIHVzZWQgYnkgV2ViS2l04oCZ
cyBJbmplY3RlZEJ1bmRsZXMgYXJlIGJhc2VkIG9uIE5TQ29kaW5nLgorICAgICAgICBXaGlsZSB3
ZSBoYXZlIGNoYW5nZWQgV2ViS2l0IGludGVybmFscyB0byB1c2UgTlNTZWN1cmVDb2RpbmcsIHRo
ZXJlIGFyZSBhIG51bWJlciBvZgorICAgICAgICBpbmplY3RlZCBidW5kbGVzIHRoYXQgbmVlZCB0
byBzZXJpYWxpemUgY3VzdG9tIGNsYXNzZXMgYmV0d2VlbiB0aGUgSW5qZWN0ZWRCdW5kbGUgYW5k
CisgICAgICAgIHRoZSByZWxldmFudCBXZWJLaXQgVUlQcm9jZXNzLgorCisgICAgICAgIFdlIG5l
ZWQgdG8gbG9jayBkb3duIHRoaXMgY29tbXVuaWNhdGlvbnMgY2hhbm5lbCBieSBlbmZvcmNpbmcg
TlNTZWN1cmVDb2RpbmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVhdGVzIG5ldyBTUEkgdG8g
YWxsb3cgdGhlIFVJUHJvY2VzcyB0byBzcGVjaWZ5IGNsYXNzZXMgdGhhdCBpdCB3aWxsIGFjY2Vw
dAorICAgICAgICBpbiBtZXNzYWdlcyBmcm9tIHRoZSBXZWJDb250ZXQgUHJvY2VzcyAoYW5kIElu
amVjdGVkIEJ1bmRsZSkuCisKKyAgICAgICAgSXQgYWRkcyB0aGUgZm9sbG93aW5nIHByb3BlcnR5
IHRvIHRoZSBXS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbjoKKworICAgICAgICAgICAgQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIE5TU2V0PENsYXNzPiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFt
ZXRlckNvZGVyOworCisgICAgICAgIElmIG5vIGN1c3RvbSBjbGFzc2VzIGFyZSBzcGVjaWZpZWQs
IHRoZSBzdGFuZGFyZCBzZXJpYWxpemF0aW9uIHByaW1pdGl2ZXMgYXJlIHN1cHBvcnRlZDoKKyAg
ICAgICAgICAgIE5TQXJyYXksIE5TRGF0YSwgTlNEYXRlLCBOU0RpY3Rpb25hcnksIE5TTnVsbCwg
TlNOdW1iZXIsIE5TU2V0LCBOU1N0cmluZywKKyAgICAgICAgICAgIE5TVGltZVpvbmUsIE5TVVJM
LCBhbmQgTlNVVUlELgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9y
bURlbGVnYXRlLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bQnVuZGxlRm9ybURlbGVnYXRlUmVtb3Rl
T2JqZWN0IGRpZEdldEZvY3VzXSk6CisgICAgICAgICgtW0Zvcm1JbnB1dERlbGVnYXRlIF93ZWJW
aWV3OmRlY2lkZVBvbGljeUZvckZvY3VzZWRFbGVtZW50Ol0pOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdh
dGVQbHVnSW4ubW06IEFkZGVkLgorICAgICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4g
d2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6XSk6Cisg
ICAgICAgICgtW0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlcjp3aWxsQmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVtZW50OmluRnJh
bWU6dXNlcklzSW50ZXJhY3Rpbmc6XSk6CisgICAgICAgICgtW0J1bmRsZUZvcm1EZWxlZ2F0ZVBs
dWdJbiBfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpkaWRGb2N1c1Rl
eHRGaWVsZDppbkZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaDogQ29waWVkIGZyb20gVG9vbHMvVGVz
dFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmguCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbkV4dHJhcy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbkV4dHJhcy5tbToKKyAgICAgICAgKCtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6Y29uZmlndXJlSlNDRm9y
VGVzdGluZzpdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6Y29uZmlndXJlSlNDRm9yVGVzdGluZzph
bmRDdXN0b21QYXJhbWV0ZXJDbGFzc2VzOl0pOgorCiAyMDE5LTA5LTE3ICBGdWppaSBIaXJvbm9y
aSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dW01pbmlCcm93c2Vy
XSBSZW1vdmUgdW51c2VkIERPTURlZmF1bHRJbXBsLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmNmQwMThkZDU5NTYxOGQyNjI2MzE3ZThmZmQwMGRjZGY3NTY3NDE0Li4yNDc0ZTliYTM3
MmM0OTdlOTg2YzkwYjE4OWE4OGRhNzgzOTgyNmU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDM5LDYgKzQzOSw4IEBACiAJCTdBNkEyQzcwMURDQ0ZBOEMwMEMwRDA4NSAvKiBMb2NhbFN0
b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QTZBMkM2RjFEQ0NGODdCMDBDMEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtUZXN0
Lm1tICovOyB9OwogCQk3QTZBMkM3MjFEQ0NGQjUyMDBDMEQwODUgLyogTG9jYWxTdG9yYWdlUXVp
cmtFbmFibGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0E2QTJDNzExRENDRkIwMjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJr
RW5hYmxlZC5odG1sICovOyB9OwogCQk3QTdCMEU3RjFFQUZFNEMzMDA2QUI4QUUgLyogTGltaXRU
aXRsZVNpemUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QTdCMEU3RTFFQUZFNDU0MDA2QUI4QUUgLyogTGltaXRUaXRsZVNpemUubW0gKi87IH07CisJ
CTdBODlCQjY3MjMzMTY0MzIwMDQyQ0IxRSAvKiBOU1VuaXRBY2NlbGVyYXRpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTg5QkI2NTIzMzE2MzVE
MDA0MkNCMUUgLyogTlNVbml0QWNjZWxlcmF0aW9uLm1tICovOyB9OworCQk3QTg5QkI2ODIzMzE2
NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4OUJCNjYyMzMxNjM1RDAwNDJDQjFF
IC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSAqLzsgfTsKIAkJN0E5MDlBN0QxRDg3NzQ4
MDAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkwOUE2RjFEODc3NDc1MDA3RTEwRjggLyogQWZmaW5l
VHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJN0E5MDlBN0UxRDg3NzQ4MDAwN0UxMEY4IC8qIEZsb2F0
UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovOyB9OwogCQk3QTkw
OUE3RjFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBOTA5QTcxMUQ4Nzc0NzUwMDdFMTBGOCAvKiBG
bG9hdFJlY3QuY3BwICovOyB9OwpAQCAtMTk2MCw2ICsxOTYyLDkgQEAKIAkJN0E2QTJDNkYxREND
Rjg3QjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2QTJDNzExRENDRkIwMjAwQzBEMDg1IC8qIExvY2Fs
U3RvcmFnZVF1aXJrRW5hYmxlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gTG9j
YWxTdG9yYWdlUXVpcmtFbmFibGVkLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdBN0IwRTdFMUVBRkU0NTQwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6ZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExpbWl0VGl0bGVTaXplLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2NTIzMzE2MzVEMDA0MkNCMUUgLyogTlNVbml0
QWNjZWxlcmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TlNVbml0QWNjZWxlcmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5
QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlRm9ybURlbGVnYXRlUGx1
Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTg5QkI2OTIzMzE2NTY1MDA0
MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVu
ZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0E5MDlBNkYxRDg3NzQ3NTAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBZmZpbmVUcmFuc2Zvcm0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE3MDFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRQ
b2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG9hdFBvaW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5MDlBNzExRDg3NzQ3NTAwN0Ux
MEY4IC8qIEZsb2F0UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGbG9hdFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjczOCw2ICsy
NzQzLDggQEAKIAkJCQkzNzRCN0E1RTFERjM2RUVFMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGluZ0Rl
bGVnYXRlLm1tICovLAogCQkJCTM3NEI3QTVGMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0
aW5nRGVsZWdhdGVQbHVnSW4ubW0gKi8sCiAJCQkJMzc0QjdBNjIxREYzNzM0QzAwQUNDQjZDIC8q
IEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVByb3RvY29sLmggKi8sCisJCQkJN0E4OUJCNjYyMzMxNjM1
RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSAqLywKKwkJCQk3QTg5QkI2
OTIzMzE2NTY1MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCAqLywKIAkJ
CQlBMTNFQkJBQzFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKIAkJ
CQlBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAq
LywKIAkJCQkzN0E3MDlBRDFFM0VBOEIwMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGUubW0g
Ki8sCkBAIC0yODI4LDYgKzI4MzUsNyBAQAogCQkJCUNEMkQwRDE5MjEzNDY1NTYwMDE4Qzc4NCAv
KiBOb3dQbGF5aW5nLm1tICovLAogCQkJCTJFQ0ZGNTU0MUQ5QjEyRjgwMEI1NTM5NCAvKiBOb3dQ
bGF5aW5nQ29udHJvbHNUZXN0cy5tbSAqLywKIAkJCQlBMTBGMDQ3QzFFM0FEMjlDMDBDOTVFMTkg
LyogTlNGaWxlTWFuYWdlckV4dHJhcy5tbSAqLywKKwkJCQk3QTg5QkI2NTIzMzE2MzVEMDA0MkNC
MUUgLyogTlNVbml0QWNjZWxlcmF0aW9uLm1tICovLAogCQkJCTM3QTIyQUE1MURDQUEyNzIwMEFG
QkZDNCAvKiBPYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzQWZ0ZXJDcmFzaC5tbSAqLywK
IAkJCQlDRUE2Q0YyMjE5Q0NGNUJEMDA2NEY1QTcgLyogT3BlbkFuZENsb3NlV2luZG93Lm1tICov
LAogCQkJCUNFQkNBMTJFMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0
eVBvbGljeS5tbSAqLywKQEAgLTQ2MjcsNiArNDYzNSw3IEBACiAJCQkJMkVDRkY1NTUxRDlCMTJG
ODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTEwRjA0N0UxRTNBRDI5QzAwQzk1RTE5IC8qIE5TRmlsZU1hbmFnZXJFeHRyYXMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlGNDQyODUxRDIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxU
ZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0E4OUJCNjcyMzMxNjQzMjAwNDJDQjFFIC8q
IE5TVW5pdEFjY2VsZXJhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3QTIyQUE3MURDQUEy
NzIwMEFGQkZDNCAvKiBPYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzQWZ0ZXJDcmFzaC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTJENzAwNTk5MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3Jl
ZW5XaW5kb3cubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyNTFBNDExQUY2MDA0NDdDNEMg
LyogT3BlbkFuZENsb3NlV2luZG93Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC00ODk3LDYgKzQ5MDYs
NyBAQAogCQkJCTc1NENFQzgxMUY2NzIyRjIwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJsZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTVDNDI1OTQ2MjI2NkE2OEEwMDM5QUE3QSAvKiBCYXNpY1By
b3Bvc2VkQ3JlZGVudGlhbFBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NEI3QTYxMURG
MzcxQ0YwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNl
cyAqLywKKwkJCQk3QTg5QkI2ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRl
UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEwIC8q
IEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0E3MDlBRjFF
M0VBOTdFMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGVQbHVnSW4ubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1Qzc1NzE2MTIyMTI0QzUyMDBCOUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBsdWdJ
bi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NzMzNGI0M2E3Yzk0YTQyY2JiZjI1NDE4NGNmMmUwMzhmMGQ0ZTZmCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVG
b3JtRGVsZWdhdGVQbHVnSW4ubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIgor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nl
c3NQbHVnSW4uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1
Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorCitAaW50ZXJmYWNlIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiA6IE5TT2JqZWN0
IDxXS1dlYlByb2Nlc3NQbHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZh
dGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gewor
ICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI+
IF9icm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdLV2ViUHJvY2Vzc1Bs
dWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5Db250cm9sbGVyOworICAgIFJldGFpblB0cjxpZCA8QnVu
ZGxlRm9ybURlbGVnYXRlUHJvdG9jb2w+PiBfcmVtb3RlT2JqZWN0OworICAgIEJPT0wgX3Nob3Vs
ZFVzZUN1c3RvbUNsYXNzOworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJv
Y2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJvd3NlckNv
bnRleHRDb250cm9sbGVyKTsKKyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsKKyAgICBf
YnJvd3NlckNvbnRleHRDb250cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAg
IF9wbHVnSW5Db250cm9sbGVyID0gcGx1Z0luQ29udHJvbGxlcjsKKworICAgIGlmIChpZCBzaG91
bGRBZGRDdXN0b21DbGFzcyA9IFtwbHVnSW5Db250cm9sbGVyLnBhcmFtZXRlcnMgdmFsdWVGb3JL
ZXk6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21DbGFzcyJdKSB7CisgICAgICAgIEFTU0VS
VChbc2hvdWxkQWRkQ3VzdG9tQ2xhc3MgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSk7
CisgICAgICAgIF9zaG91bGRVc2VDdXN0b21DbGFzcyA9IFsoTlNOdW1iZXIgKilzaG91bGRBZGRD
dXN0b21DbGFzcyBib29sVmFsdWVdOworICAgIH0gZWxzZQorICAgICAgICBfc2hvdWxkVXNlQ3Vz
dG9tQ2xhc3MgPSBOTzsKKworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNl
ID0gW19XS1JlbW90ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJv
dG9jb2w6QHByb3RvY29sKEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07CisgICAgX3JlbW90
ZU9iamVjdCA9IFticm93c2VyQ29udGV4dENvbnRyb2xsZXIuX3JlbW90ZU9iamVjdFJlZ2lzdHJ5
IHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW19icm93
c2VyQ29udGV4dENvbnRyb2xsZXIgX3NldEZvcm1EZWxlZ2F0ZTpzZWxmXTsKK30KKworLSAoTlNP
YmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKilj
b250cm9sbGVyIHdpbGxCZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1Bs
dWdJbk5vZGVIYW5kbGUgKilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICop
ZnJhbWUgdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcKK3sKKyAgICBp
ZiAoIV9zaG91bGRVc2VDdXN0b21DbGFzcykKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIE5T
VW5pdENvbnZlcnRlckxpbmVhciAqa2lsb21ldGVyc1RvTWV0ZXJzID0gW1tOU1VuaXRDb252ZXJ0
ZXJMaW5lYXIgYWxsb2NdIGluaXRXaXRoQ29lZmZpY2llbnQ6MTAwMC4wIGNvbnN0YW50OjAuMF07
CisKKyAgICByZXR1cm4gW2tpbG9tZXRlcnNUb01ldGVycyBhdXRvcmVsZWFzZV07Cit9CisKKy0g
KHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkRm9jdXNU
ZXh0RmllbGQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKil0ZXh0RmllbGQgaW5GcmFt
ZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZQoreworICAgIC8vIFRoaXMgaXMgaGl0
IGluIHRoZSBtYWNPUyBjYXNlLgorICAgIFtfcmVtb3RlT2JqZWN0IGRpZEdldEZvY3VzXTsKK30K
KworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9CdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFl
M2M0N2ExYmUxNTJjODU1NWY0Mzc0MDJmYjBmMmY0MTc0ZDQ0OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0
ZVByb3RvY29sLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZv
cm1EZWxlZ2F0ZVByaXZhdGUuaD4KKworQHByb3RvY29sIEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3Rv
Y29sIDxOU09iamVjdD4KKworLSAodm9pZClkaWRHZXRGb2N1czsKKworQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OU1VuaXRBY2NlbGVyYXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05TVW5pdEFjY2Vs
ZXJhdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTMzNzE5Yzc4YzQ2YjIyY2U4N2UzYWUyNmQ3YjlmYWZl
MWUwNTFiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9OU1VuaXRBY2NlbGVyYXRpb24ubW0KQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4K
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIkJ1bmRsZUZvcm1EZWxlZ2F0
ZVByb3RvY29sLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8
V2ViS2l0L19XS0ZvY3VzZWRFbGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0lucHV0
RGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4K
KyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCitzdGF0aWMgYm9vbCBkaWRHZXRGb2N1czsKK3N0YXRpYyBib29sIGRp
ZEdldFVzZXJPYmplY3Q7CitzdGF0aWMgaWQgdXNlck9iamVjdDsKKworQGludGVyZmFjZSBCdW5k
bGVGb3JtRGVsZWdhdGVSZW1vdGVPYmplY3QgOiBOU09iamVjdCA8QnVuZGxlRm9ybURlbGVnYXRl
UHJvdG9jb2w+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBCdW5kbGVGb3JtRGVsZWdhdGVSZW1v
dGVPYmplY3QKKworLSAodm9pZClkaWRHZXRGb2N1cworeworICAgIGRpZEdldEZvY3VzID0gdHJ1
ZTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIEZvcm1JbnB1dERlbGVnYXRlIDogTlNPYmplY3Qg
PF9XS0lucHV0RGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBGb3JtSW5wdXREZWxl
Z2F0ZQorCistIChfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeSlfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JGb2N1c2VkRWxlbWVudDooaWQgPF9XS0Zv
Y3VzZWRFbGVtZW50SW5mbz4paW5mbworeworICAgIHVzZXJPYmplY3QgPSBpbmZvLnVzZXJPYmpl
Y3Q7CisgICAgZGlkR2V0VXNlck9iamVjdCA9IHRydWU7CisgICAgcmV0dXJuIF9XS0ZvY3VzU3Rh
cnRzSW5wdXRTZXNzaW9uUG9saWN5QWxsb3c7Cit9CisKK0BlbmQKKworVEVTVChXZWJLaXQsIFdL
V2ViUHJvY2Vzc1BsdWdJbldpdGhvdXRSZWdpc3RlcmVkQ3VzdG9tQ2xhc3NlcykKK3sKKyAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0Zvcm1JbnB1dERlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSByZXRhaW5QdHIoW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVuZGxl
Rm9ybURlbGVnYXRlUGx1Z0luIl0pOworICAgIFtbY29uZmlndXJhdGlvbiBwcm9jZXNzUG9vbF0g
X3NldE9iamVjdDpAWUVTIGZvckJ1bmRsZVBhcmFtZXRlcjpAIkZvcm1EZWxlZ2F0ZVNob3VsZEFk
ZEN1c3RvbUNsYXNzIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxpbnB1
dD48L2lucHV0PjxzZWxlY3Q+PG9wdGlvbiBzZWxlY3RlZD5mb288L29wdGlvbj48b3B0aW9uPmJh
cjwvb3B0aW9uPjwvc2VsZWN0PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhb
W0J1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90ZU9iamVjdCBhbGxvY10gaW5pdF0pOworICAgIF9XS1Jl
bW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNlID0gW19XS1JlbW90ZU9iamVjdEludGVyZmFj
ZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29sKEJ1bmRsZUZvcm1E
ZWxlZ2F0ZVByb3RvY29sKV07CisgICAgW1t3ZWJWaWV3IF9yZW1vdGVPYmplY3RSZWdpc3RyeV0g
cmVnaXN0ZXJFeHBvcnRlZE9iamVjdDpvYmplY3QuZ2V0KCkgaW50ZXJmYWNlOmludGVyZmFjZV07
CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCdpbnB1dCcpLmZvY3VzKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisKKyAgICB1c2Vy
T2JqZWN0ID0gbmlsOworICAgIGRpZEdldFVzZXJPYmplY3QgPSBmYWxzZTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0Rm9jdXMpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkR2V0VXNlck9iamVjdCk7CisKKyAgICAvLyBXZSBzaG91bGQgaGF2ZSBzZXJp
YWxpemVkIHRoZSBOU1VuaXRDb252ZXJ0ZXJMaW5lYXIsIHNpbmNlIHdlIGRpZCBub3QgaW5kaWNh
dGUgd2Ugd2FudGVkCisgICAgLy8gdG8gbGltaXQgc2VyaWFsaXphdGlvbi4KKyAgICBFWFBFQ1Rf
VFJVRShbdXNlck9iamVjdCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0ZXJMaW5lYXIgY2xh
c3NdXSk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRoUmVnaXN0ZXJl
ZEN1c3RvbUNsYXNzKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbRm9ybUlucHV0
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHJldGFp
blB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4iCisgICAgICAgIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6Tk8gYW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczpbTlNTZXQgc2V0
V2l0aE9iamVjdHM6W05TVW5pdENvbnZlcnRlckxpbmVhciBjbGFzc10sIG5pbF1dKTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmplY3Q6QFlFUyBmb3JCdW5kbGVQYXJh
bWV0ZXI6QCJGb3JtRGVsZWdhdGVTaG91bGRBZGRDdXN0b21DbGFzcyJdOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dl
YlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQ+PC9pbnB1dD48c2VsZWN0PjxvcHRpb24gc2Vs
ZWN0ZWQ+Zm9vPC9vcHRpb24+PG9wdGlvbj5iYXI8L29wdGlvbj48L3NlbGVjdD4iIGJhc2VVUkw6
bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisK
KyAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tCdW5kbGVGb3JtRGVsZWdhdGVSZW1vdGVPYmpl
Y3QgYWxsb2NdIGluaXRdKTsKKyAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFj
ZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFBy
b3RvY29sOkBwcm90b2NvbChCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbCldOworICAgIFtbd2Vi
VmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhwb3J0ZWRPYmplY3Q6b2JqZWN0
LmdldCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZh
U2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpIiBjb21wbGV0
aW9uSGFuZGxlcjpuaWxdOworICAgIAorICAgIHVzZXJPYmplY3QgPSBuaWw7CisgICAgZGlkR2V0
VXNlck9iamVjdCA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRH
ZXRGb2N1cyk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRVc2VyT2JqZWN0
KTsKKyAgICAKKyAgICAvLyBXZSBzaG91bGQgaGF2ZSBzZXJpYWxpemVkIHRoZSBOU1VuaXRDb252
ZXJ0ZXJMaW5lYXIsIHNpbmNlIHdlIHNwZWNpZmllZCBpdCBhcyB2YWxpZC4KKyAgICBFWFBFQ1Rf
VFJVRShbdXNlck9iamVjdCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0ZXJMaW5lYXIgY2xh
c3NdXSk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRoVW5yZWdpc3Rl
cmVkQ3VzdG9tQ2xhc3MpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tGb3JtSW5w
dXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gcmV0
YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiIKKyAgICAgICAgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpOTyBhbmRDdXN0b21QYXJhbWV0ZXJDbGFzc2VzOltOU1NldCBz
ZXRXaXRoT2JqZWN0czpbTlNVbml0QWNjZWxlcmF0aW9uIGNsYXNzXSwgbmlsXV0pOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcm9jZXNzUG9vbF0gX3NldE9iamVjdDpAWUVTIGZvckJ1bmRsZVBhcmFt
ZXRlcjpAIkZvcm1EZWxlZ2F0ZVNob3VsZEFkZEN1c3RvbUNsYXNzIl07CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2Vi
VmlldyBsb2FkSFRNTFN0cmluZzpAIjxpbnB1dD48L2lucHV0PjxzZWxlY3Q+PG9wdGlvbiBzZWxl
Y3RlZD5mb288L29wdGlvbj48b3B0aW9uPmJhcjwvb3B0aW9uPjwvc2VsZWN0PiIgYmFzZVVSTDpu
aWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKwor
ICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW0J1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90ZU9iamVj
dCBhbGxvY10gaW5pdF0pOworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNl
ID0gW19XS1JlbW90ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJv
dG9jb2w6QHByb3RvY29sKEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07CisgICAgW1t3ZWJW
aWV3IF9yZW1vdGVPYmplY3RSZWdpc3RyeV0gcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDpvYmplY3Qu
Z2V0KCkgaW50ZXJmYWNlOmludGVyZmFjZV07CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCkiIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07CisgICAgCisgICAgdXNlck9iamVjdCA9IG5pbDsKKyAgICBkaWRHZXRV
c2VyT2JqZWN0ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdl
dEZvY3VzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdldFVzZXJPYmplY3Qp
OworCisgICAgLy8gV2Ugc2hvdWxkIG5vdCBoYXZlIHNlcmlhbGl6ZWQgdGhlIE5TVW5pdENvbnZl
cnRlckxpbmVhciwgc2luY2Ugd2UgZGlkIG5vdCBzcGVjaWZ5IGl0LgorICAgIEVYUEVDVF9OVUxM
KHVzZXJPYmplY3QpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5tbQppbmRleCAxY2Y3MTgyZWNhODFiOGNhNjdlNGY3YzJkMTYwNzI3YWZhMDgwNzBiLi5lNjM3
MTkzM2UwMjE0ZThlMTRiNWI5MmE5ZjY1NWYxNDgyNjUxNTNkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24ubW0KQEAgLTM1LDcgKzM1LDE0IEBAIFRFU1QoV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24sIENvcHkpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBOU1NldDxDbGFzcz4gKnRlc3RTZXQgPSBbTlNTZXQgc2V0
V2l0aE9iamVjdHM6W1VJQ29sb3IgY2xhc3NdLCBuaWxdOworI2Vsc2UKKyAgICBOU1NldDxDbGFz
cz4gKnRlc3RTZXQgPSBbTlNTZXQgc2V0V2l0aE9iamVjdHM6W05TQ29sb3IgY2xhc3NdLCBuaWxd
OworI2VuZGlmCisgICAgCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0SW5qZWN0ZWRCdW5kbGVVUkw6
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpAIi9wYXRoL3RvL2luamVjdGVkLndrYnVuZGxlIl1dOwor
ICAgIFtjb25maWd1cmF0aW9uIHNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcjp0ZXN0
U2V0XTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRDdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRs
ZUlkZW50aWZpZXI6QCJvcmcud2Via2l0LldlYkNvbnRlbnQuY3VzdG9tIl07CiAgICAgW2NvbmZp
Z3VyYXRpb24gc2V0SWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3Rpbmc6
WUVTXTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRBdHRyU3R5bGVFbmFibGVkOllFU107CkBAIC02
MSw2ICs2OCw3IEBAIFRFU1QoV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24sIENvcHkpCiAgICAg
YXV0byBjb3B5ID0gYWRvcHROUyhbY29uZmlndXJhdGlvbiBjb3B5XSk7CiAKICAgICBFWFBFQ1Rf
VFJVRShbW2NvbmZpZ3VyYXRpb24gaW5qZWN0ZWRCdW5kbGVVUkxdIGlzRXF1YWw6W2NvcHkgaW5q
ZWN0ZWRCdW5kbGVVUkxdXSk7CisgICAgRVhQRUNUX1RSVUUoW1tjb3B5IGN1c3RvbUNsYXNzZXNG
b3JQYXJhbWV0ZXJDb2Rlcl0gaXNFcXVhbFRvU2V0OnRlc3RTZXRdKTsKICAgICBFWFBFQ1RfVFJV
RShbW2NvbmZpZ3VyYXRpb24gY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVy
XSBpc0VxdWFsOltjb3B5IGN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcl1d
KTsKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24gaWdub3JlU3luY2hyb25vdXNNZXNzYWdp
bmdUaW1lb3V0c0ZvclRlc3RpbmddLCBbY29weSBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1Rp
bWVvdXRzRm9yVGVzdGluZ10pOwogICAgIEVYUEVDVF9FUShbY29uZmlndXJhdGlvbiBhdHRyU3R5
bGVFbmFibGVkXSwgW2NvcHkgYXR0clN0eWxlRW5hYmxlZF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmggYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaAppbmRleCBkNjgxMjA3ZWQz
OTg1OGNiNzRkYzBhYjQxMDNkY2I5ZGVmOWRmZDg2Li41ZDk1MTNiNTllODdkMTkyMmFmYzAxZDI5
NDYwMTM5ZWI1ZmJlYWM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb25FeHRyYXMuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb25FeHRyYXMuaApAQCAtMjgsNCArMjgsNSBAQAogQGludGVyZmFjZSBXS1dl
YlZpZXdDb25maWd1cmF0aW9uIChUZXN0V2ViS2l0QVBJRXh0cmFzKQogKyAoaW5zdGFuY2V0eXBl
KV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKilj
bGFzc05hbWU7CiArIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZSBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OihCT09MKXZhbHVlOworKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9yVGVz
dGluZzooQk9PTCl2YWx1ZSBhbmRDdXN0b21QYXJhbWV0ZXJDbGFzc2VzOihOU1NldDxDbGFzcz4g
KilwYXJhbWV0ZXJDbGFzc2VzOwogQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tCmluZGV4IDdkZGJkOGM0NzMzZjJiZWJhZjQw
OTdlZTFmNzg0NjZjMjAwOGNjMjkuLmVlNjJjYjNhODM3ZWFjZGMwZGJkNzAyOTVmYjlmOTYwZWE4
Yzc5MjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbkV4dHJhcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25FeHRyYXMubW0KQEAgLTM5LDExICszOSwxNyBAQCArIChpbnN0YW5jZXR5cGUpX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFt
ZQogfQogCiArIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOihC
T09MKXZhbHVlCit7CisgICAgcmV0dXJuIFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpjbGFzc05hbWUgY29uZmlndXJlSlND
Rm9yVGVzdGluZzp2YWx1ZSBhbmRDdXN0b21QYXJhbWV0ZXJDbGFzc2VzOm5pbF07Cit9CisKKysg
KGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
KE5TU3RyaW5nICopY2xhc3NOYW1lIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWUg
YW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczooTlNTZXQ8Q2xhc3M+ICopcGFyYW1ldGVyQ2xhc3Nl
cwogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gc2V0SW5qZWN0ZWRCdW5kbGVVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIlRlc3RXZWJLaXRBUEkiIHdpdGhFeHRlbnNpb246QCJ3a2J1bmRsZSJd
XTsKICAgICBbcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldENvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6dmFsdWVdOwotCisgICAgW3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6IHBhcmFtZXRlckNsYXNzZXNdOworICAgIAogICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbcHJvY2Vz
c1Bvb2wgX3NldE9iamVjdDpjbGFzc05hbWUgZm9yQnVuZGxlUGFyYW1ldGVyOlRlc3RXZWJLaXRB
UEk6OlV0aWw6OlRlc3RQbHVnSW5DbGFzc05hbWVQYXJhbWV0ZXJdOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379086</attachid>
            <date>2019-09-18 16:59:06 -0700</date>
            <delta_ts>2019-09-19 08:50:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201810-20190918165905.patch</filename>
            <type>text/plain</type>
            <size>46689</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYTcwNTdhZWZjMDRiNjYx
YTNiMzU4YzBkMjNlYTY4N2IzZGIxOWYuLjllYzhmZjI0YjQ3NWIwYmU0MTQyODllNzFhMDA3YmUz
MTM5NDAxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTYgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IGFueSBjdXN0b20gY2xhc3Nlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKTogQWRkZWQuCisgICAg
ICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAg
ICAgICAgKHRvU3RyaW5nVmVjdG9yKTogQWRkZWQuCisgICAgICAgICgtW1dLUHJvY2Vzc0dyb3Vw
IGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6XSk6IFJlc3RyaWN0IHNlcmlhbGl6
YXRpb24gdG8gYWxsb3dlZCBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdKTogQWRk
ZWQuCisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKTogUmVnaXN0ZXIgYW55IGN1c3RvbSBjbGFzc2VzCisgICAg
ICAgIHByb3ZpZGVkIGluIHRoZSBjb25maWd1cmF0b24uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RpbmcgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKTogUmVzdHJpY3Qg
c2VyaWFsaXphdGlvbiB0byBhbGxvd2VkCisgICAgICAgIGNsYXNzZXMgb25seS4KKwogMjAxOS0w
OS0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0FwcGxlIFBh
eV0gVGVsbCB3ZWJzaXRlcyB3aHkgYSBzZXNzaW9uIHdhcyBjYW5jZWxsZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5jcHAKaW5kZXggN2U0MmRkNjhjM2VkYWVmNWM5NTc3Yjg3MjMyMmQwZWVhMWI3YTBlYS4u
NjIyNGUzMDIxOGI2ZGUwZjYyNDZhZmY4NmYwMzk3NmMxOTdhMjFkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4g
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX21lZGlhQ2FjaGVE
aXJlY3RvcnkgPSB0aGlzLT5tX21lZGlhQ2FjaGVEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IHRoaXMtPm1faW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnk7CiAgICAgY29weS0+bV9pbmplY3RlZEJ1bmRsZVBhdGggPSB0aGlzLT5tX2luamVjdGVkQnVu
ZGxlUGF0aDsKKyAgICBjb3B5LT5tX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciA9IHRo
aXMtPm1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOwogICAgIGNvcHktPm1fbG9jYWxT
dG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9sb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29w
eS0+bV9kZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5tX2RldmljZUlk
SGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX21lZGlhS2V5c1N0b3JhZ2VE
aXJlY3RvcnkgPSB0aGlzLT5tX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgKaW5kZXggZDhiZDJmMTkwZmJlNGNlMzcwNGJhOTI1YTQ1MjZiNTkyNzU0N2VmNS4uYjMz
NzUxNjEwN2U1ZmQ2ZDliNDhmYjMzNDlmNzE0ZmE3NmNjNzBhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aApAQCAtMTExLDYgKzExMSw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeShjb25zdCBXVEY6OlN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSkgeyBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OyB9CiAKKyAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoKSBjb25zdCB7IHJldHVybiBtX2N1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsgfQorICAgIHZvaWQgc2V0Q3VzdG9tQ2xhc3Nlc0Zv
clBhcmFtZXRlckNvZGVyKFZlY3RvcjxXVEY6OlN0cmluZz4mJiBjbGFzc2VzRm9yQ29kZXIpIHsg
bV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgPSBXVEZNb3ZlKGNsYXNzZXNGb3JDb2Rl
cik7IH0KKwogICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGNhY2hlUGFydGl0aW9uZWRV
UkxTY2hlbWVzKCkgeyByZXR1cm4gbV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsgfQogICAg
IHZvaWQgc2V0Q2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMoVmVjdG9yPFdURjo6U3RyaW5nPiYm
IGNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKSB7IG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVt
ZXMgPSBXVEZNb3ZlKGNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKTsgfQogCkBAIC0xOTksNiAr
MjAyLDcgQEAgcHJpdmF0ZToKICAgICBXVEY6OlN0cmluZyBtX3dlYlNRTERhdGFiYXNlRGlyZWN0
b3J5OwogICAgIFdURjo6U3RyaW5nIG1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKICAgICBX
VEY6OlN0cmluZyBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgVmVjdG9y
PFdURjo6U3RyaW5nPiBtX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICAgICBWZWN0
b3I8V1RGOjpTdHJpbmc+IG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7CiAgICAgVmVjdG9y
PFdURjo6U3RyaW5nPiBtX2Fsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lczsKICAgICBWZWN0b3I8
V1RGOjpDU3RyaW5nPiBtX2FkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFBhdGhzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmLmNwcAppbmRleCBlMzEwZTc0ODljYjljMDMwZTA0YmJjNmVlNmI1ZTNkMTNjZjA5
MzliLi5iZDcyZTZlMTQzY2Q4MTViNTI3ODliOTljOTE3ZWU5MzhhOGQ3ODI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVm
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmLmNwcApAQCAtNzksNiArNzksMTYgQEAgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0
aW9uU2V0SW5qZWN0ZWRCdW5kbGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmkK
ICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEluamVjdGVkQnVuZGxlUGF0aCh0b0ltcGwo
aW5qZWN0ZWRCdW5kbGVQYXRoKS0+c3RyaW5nKCkpOwogfQogCitXS0FycmF5UmVmIFdLQ29udGV4
dENvbmZpZ3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoJkFQ
STo6QXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KHRvSW1wbChjb25maWd1cmF0aW9uKS0+Y3VzdG9t
Q2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCkpLmxlYWtSZWYoKSk7Cit9CisKK3ZvaWQgV0tDb250
ZXh0Q29uZmlndXJhdGlvblNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLQXJyYXlSZWYgY2xhc3Nlc0ZvckNv
ZGVyKQoreworICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyKHRvSW1wbChjbGFzc2VzRm9yQ29kZXIpLT50b1N0cmluZ1ZlY3RvcigpKTsK
K30KKwogV0tTdHJpbmdSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlvbkNvcHlMb2NhbFN0b3JhZ2VE
aXJlY3RvcnkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZikKIHsKICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYuaAppbmRleCBiYTViOTc4ZjE5ZTU1MmRhZmViM2IyYTA4ZTg1YTNl
YTRhYzYwMjk5Li5iNzMyMTEzZWEyMjdhOGE1NzU3M2FiZDBlMjJhYmEyNTRlZjA3NTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0
aW9uUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5oCkBAIC00OCw2ICs0OCw5IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4
dENvbmZpZ3VyYXRpb25TZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeShXS0NvbnRleHRDb25m
CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlvbkNvcHlJbmplY3Rl
ZEJ1bmRsZVBhdGgoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKIFdL
X0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRJbmplY3RlZEJ1bmRsZVBhdGgo
V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1N0cmluZ1JlZiBpbmpl
Y3RlZEJ1bmRsZVBhdGgpOwogCitXS19FWFBPUlQgV0tBcnJheVJlZiBXS0NvbnRleHRDb25maWd1
cmF0aW9uQ29weUN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmln
dXJhdGlvblNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLQXJyYXlSZWYgY2xhc3Nlc0ZvckNvZGVyKTsKKwog
V0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5TG9jYWxTdG9y
YWdlRGlyZWN0b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikgV0tf
Q19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25Db3B5TG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25TZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1N0cmluZ1JlZiBsb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uU2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAppbmRleCAxOTM4
YmY5ZDExNjIxMmQ3MjU1N2VjZDlhNjVmMzIyODg5OGJmNjZhLi41NDEzYjc5MzJjNzEwZDBlOGE5
ODNjNjBhYThlNTcyMjBjOTUxNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw3ICs0OCw3IEBAIFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tQcm9jZXNzUG9vbCIsIG1hY29zKDEwLjEwLCAxMC4x
NC40KSwgaW9zCiBAaW50ZXJmYWNlIFdLUHJvY2Vzc0dyb3VwIDogTlNPYmplY3QKIAogLSAoaWQp
aW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkw7Ci0KKy0gKGlkKWlu
aXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMIGFuZEN1c3RvbUNsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNTZXQgKiljbGFzc2VzRm9yQ29kZXI7CiAKICNwcmFnbWEg
bWFyayBEZWxlZ2F0ZXMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc0dyb3VwLm1tCmluZGV4IGUwYzljZDUxMGQ1MzlmMDFjNDZmZWYyOWE2YjRm
MmE1OTIyZTdjYTYuLjJiY2NiYjNkYjY5Yjg1OTM1MTViMmE3MTUwMDFiMjQ1ZjY2YmM4ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91
cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3Jv
dXAubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjA3LDYgKzIwNyw0MSBAQCAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihO
U1VSTCAqKWJ1bmRsZVVSTAogICAgIHJldHVybiBzZWxmOwogfQogCitzdGF0aWMgVmVjdG9yPFdU
Rjo6U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU1NldCAqaW5wdXQpCit7CisgICAgVmVjdG9yPFdU
Rjo6U3RyaW5nPiB2ZWN0b3I7CisKKyAgICBOU1VJbnRlZ2VyIHNpemUgPSBpbnB1dC5jb3VudDsK
KyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB2ZWN0b3I7CisKKyAgICB2ZWN0b3IucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKyAgICBmb3IgKGlkIGNsYXNzT2JqIDogaW5wdXQp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNsYXNzT2Jq
KSkKKyAgICAgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQoc3RyaW5nKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHZlY3RvcjsKK30KKworLSAoaWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDoo
TlNVUkwgKilidW5kbGVVUkwgYW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOihOU1Nl
dCAqKWNsYXNzZXNGb3JDb2RlcgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYg
KCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOworICAgIGNvbmZpZ3VyYXRp
b24tPnNldEluamVjdGVkQnVuZGxlUGF0aChidW5kbGVVUkwgPyBTdHJpbmcoYnVuZGxlVVJMLnBh
dGgpIDogU3RyaW5nKCkpOworICAgIGNvbmZpZ3VyYXRpb24tPnNldEN1c3RvbUNsYXNzZXNGb3JQ
YXJhbWV0ZXJDb2Rlcih0b1N0cmluZ1ZlY3RvcihjbGFzc2VzRm9yQ29kZXIpKTsKKworICAgIF9w
cm9jZXNzUG9vbCA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZShjb25maWd1cmF0aW9u
KTsKKworICAgIHNldFVwQ29ubmVjdGlvbkNsaWVudChzZWxmLCB0b0FQSShfcHJvY2Vzc1Bvb2wu
Z2V0KCkpKTsKKyAgICBzZXRVcEluamVjdGVkQnVuZGxlQ2xpZW50KHNlbGYsIHRvQVBJKF9wcm9j
ZXNzUG9vbC5nZXQoKSkpOworICAgIHNldFVwSGlzdG9yeUNsaWVudChzZWxmLCB0b0FQSShfcHJv
Y2Vzc1Bvb2wuZ2V0KCkpKTsKKworICAgIHJldHVybiBzZWxmOworfQorCiAtIChpZCA8V0tQcm9j
ZXNzR3JvdXBEZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKICAgICByZXR1cm4gX2RlbGVnYXRlLmdldEF1
dG9yZWxlYXNlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggNWZjZjgzZGUyYTZiZTdlMmViNGRjODM5ODUwNmQwN2MzOGUzNWZmYS4u
MGUwYWM0ZjcyZDI1ZGQ1NTY4ZTdlMGZlYjJmOWIzM2U4YTJlYzcyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTY5OSw3ICs1Njk5
LDEwIEBAIC0gKHZvaWQpX3NldElucHV0RGVsZWdhdGU6KGlkIDxfV0tJbnB1dERlbGVnYXRlPilp
bnB1dERlbGVnYXRlCiAgICAgICAgICAgICAgICAgYXV0byBuc0RhdGEgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dm9pZCo+KHN0YXRpY19j
YXN0PGNvbnN0IHZvaWQqPihkYXRhLT5ieXRlcygpKSkgbGVuZ3RoOmRhdGEtPnNpemUoKSBmcmVl
V2hlbkRvbmU6Tk9dKTsKICAgICAgICAgICAgICAgICBhdXRvIHVuYXJjaGl2ZXIgPSBzZWN1cmVV
bmFyY2hpdmVyRnJvbURhdGEobnNEYXRhLmdldCgpKTsKICAgICAgICAgICAgICAgICBAdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVj
dE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CisgICAgICAg
ICAgICAgICAgICAgIGlmIChhdXRvKiBhbGxvd2VkQ2xhc3NlcyA9IG1fd2ViVmlldy0+X3BhZ2Ut
PnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5n
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVj
b2RlT2JqZWN0T2ZDbGFzc2VzOmFsbG93ZWRDbGFzc2VzIGZvcktleTpAInVzZXJPYmplY3QiXTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdXNlck9i
amVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBm
b3JLZXk6QCJ1c2VyT2JqZWN0Il07CiAgICAgICAgICAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0
aW9uICpleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gZGVjb2RlIHVzZXIgZGF0YTogJUAiLCBleGNlcHRpb24pOwogICAgICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCBkYzI1ZTkxOTVlZTRlMGVhYzA3Njcz
MWQyMTE2NDAwMjNlNzhmNGQ0Li4xZWQwYzVlMjRiZmQ5YmE0OTAyMjIzMGE5NDdjMzhmYTE0OWE1
ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0zMiw2ICszMiw3IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJMOworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TU2V0PENsYXNzPiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50
IFdLX0FQSV9ERVBSRUNBVEVEKCJJdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gbGltaXQgdGhl
IG51bWJlciBvZiBwcm9jZXNzZXMiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVz
ZXNTaW5nbGVXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLm1tCmluZGV4IDE1Y2FmNmZkMDU5ZjkwZjkxNmM4YzEwNGZhNTc2OTk2YzA1NTk2Y2Eu
LmY0OWY4YTEwYWVkZTZmOTI2ODA4MDUwNzU5M2FjNzI2ZTgwZWQ0M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIgogCisjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGltcGxl
bWVudGF0aW9uIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbgpAQCAtNjAsNiArNjEsMzEgQEAg
LSAodm9pZClzZXRJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilpbmplY3RlZEJ1bmRsZVVSTAog
ICAgIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldEluamVjdGVkQnVuZGxlUGF0aChpbmpl
Y3RlZEJ1bmRsZVVSTC5wYXRoKTsKIH0KIAorLSAoTlNTZXQ8Q2xhc3M+ICopY3VzdG9tQ2xhc3Nl
c0ZvclBhcmFtZXRlckNvZGVyCit7CisgICAgYXV0byBjbGFzc2VzID0gX3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi0+Y3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCk7CisgICAgaWYgKGNs
YXNzZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gW05TU2V0IHNldF07CisKKyAgICBOU011
dGFibGVTZXQgKnJlc3VsdCA9IFtbTlNNdXRhYmxlU2V0IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OmNsYXNzZXMuc2l6ZSgpXTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogY2xhc3NlcykK
KyAgICAgICAgW3Jlc3VsdCBhZGRPYmplY3Q6IG9iamNfbG9va1VwQ2xhc3ModmFsdWUudXRmOCgp
LmRhdGEoKSldOworCisgICAgcmV0dXJuIFtyZXN1bHQgYXV0b3JlbGVhc2VdOworfQorCistICh2
b2lkKXNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNTZXQ8Q2xhc3M+ICopY2xh
c3Nlc0ZvckNvZGVyCit7CisgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBjbGFzc2VzOworICAgIGNs
YXNzZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbGFzc2VzRm9yQ29kZXIuY291bnQpOworICAg
IGZvciAoaWQgY2xhc3NPYmogOiBjbGFzc2VzRm9yQ29kZXIpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNsYXNzT2JqKSkKKyAgICAgICAgICAgIGNsYXNz
ZXMudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAgfQorCisgICAgX3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdURk1vdmUoY2xh
c3NlcykpOworfQorCiAtIChOU1VJbnRlZ2VyKW1heGltdW1Qcm9jZXNzQ291bnQKIHsKICAgICAv
LyBEZXByZWNhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggNTEwZWNiMDc0MGI1MGMwMGQzZGEwOTE4MmIzNjRi
NDkxM2Q4YTc5MC4uZTdlY2M5YTdhOGZhYWIzNzFjMDI3N2IyN2E3NjM0NzhjNTRmNDE1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVi
b2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgogI2ltcG9ydCA8c3lzL3BhcmFtLmg+CkBAIC0xMjgs
NiArMTI5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsK
ICAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCk7CiAgICAgcmVnaXN0ZXJOb3RpZmlj
YXRpb25PYnNlcnZlcnMoKTsKKyAgICBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGlu
ZygpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFibGUgdG8gc2hhcmUgY29kZSB3
aXRoIFdlYkNvcmUncyBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgKGFuZCBiZSBwbGF0Zm9ybSBpbmRl
cGVuZGVudCkuCiAgICAgLy8gUmlnaHQgbm93IGl0IGNhbm5vdCBiZWNhdXNlIFdlYktpdDEgYW5k
IFdlYktpdDIgbmVlZCB0byBiZSBhYmxlIHRvIGNvZXhpc3QgaW4gdGhlIFVJIHByb2Nlc3MsCkBA
IC01OTIsNCArNTk0LDM0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFwcGxpY2F0aW9uSXNBYm91
dFRvU3VzcGVuZCgpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6
ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKQoreworICAgIGNvbnN0IGF1dG8mIGN1c3RvbUNs
YXNzZXMgPSBtX2NvbmZpZ3VyYXRpb24tPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcigp
OworICAgIGlmIChjdXN0b21DbGFzc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byBzdGFuZGFyZENsYXNzZXMgPSBbTlNTZXQgc2V0V2l0aE9iamVjdHM6W05TQXJyYXkg
Y2xhc3NdLCBbTlNEYXRhIGNsYXNzXSwgW05TRGF0ZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xh
c3NdLCBbTlNOdWxsIGNsYXNzXSwKKyAgICAgICAgW05TTnVtYmVyIGNsYXNzXSwgW05TU2V0IGNs
YXNzXSwgW05TU3RyaW5nIGNsYXNzXSwgW05TVGltZVpvbmUgY2xhc3NdLCBbTlNVUkwgY2xhc3Nd
LCBbTlNVVUlEIGNsYXNzXSwgbmlsXTsKKyAgICAKKyAgICBhdXRvIG11dGFibGVTZXQgPSBhZG9w
dE5TKFtzdGFuZGFyZENsYXNzZXMgbXV0YWJsZUNvcHldKTsKKworICAgIGZvciAoY29uc3QgYXV0
byYgY3VzdG9tQ2xhc3MgOiBjdXN0b21DbGFzc2VzKSB7CisgICAgICAgIGNvbnN0IGF1dG8qIGNs
YXNzTmFtZSA9IGN1c3RvbUNsYXNzLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIENsYXNzIG9iamVj
dENsYXNzID0gb2JqY19sb29rVXBDbGFzcyhjbGFzc05hbWUpOworICAgICAgICBpZiAoIW9iamVj
dENsYXNzKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkluamVjdGVkQnVuZGxlOjpleHRl
bmRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgLSBDbGFzcyAlcyBpcyBub3QgYSB2YWxpZCBPYmpl
Y3RpdmUgQyBjbGFzcy5cbiIsIGNsYXNzTmFtZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorCisgICAgICAgIFttdXRhYmxlU2V0LmdldCgpIGFkZE9iamVjdDpvYmplY3RDbGFzc107
CisgICAgfQorCisgICAgbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgPSBtdXRhYmxlU2V0Owor
fQorCitOU1NldCAqV2ViUHJvY2Vzc1Bvb2w6OmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29k
aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIuZ2V0
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKaW5kZXggNjJmZmUyMGI4OWNkZGJmYmUxZGEyZGViYWQwZGJhYzk1NDEz
ZmNhZS4uMjFhOWVlMDhiNzRmOTc4ZjdjZDlmMjYzYWQ0Mjc4YjJhYWVhNDU2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzEsNiArNzEsNyBAQAogI2lm
IFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU011dGFibGVEaWN0aW9uYXJ5OwogT0JKQ19D
TEFTUyBOU09iamVjdDsKK09CSkNfQ0xBU1MgTlNTZXQ7CiBPQkpDX0NMQVNTIE5TU3RyaW5nOwog
I2VuZGlmCiAKQEAgLTIxMyw2ICsyMTQsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGFnZXNV
c2luZ1dlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYpIGNvbnN0OwogCiAgICAgY29u
c3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3Vy
YXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgpOyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
TlNTZXQgKmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgY29uc3Q7CisgICAgdm9p
ZCBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpOworI2VuZGlmCiAKICAgICBE
b3dubG9hZFByb3h5JiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVu
YW1lID0geyB9KTsKICAgICBEb3dubG9hZFByb3h5JiByZXN1bWVEb3dubG9hZChXZWJQYWdlUHJv
eHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBBUEk6OkRhdGEqIHJlc3VtZURhdGEsIGNvbnN0IFN0
cmluZyYgcGF0aCk7CkBAIC03MzgsNiArNzQzLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gbV9idW5kbGVQYXJhbWV0
ZXJzOwogICAgIFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW4gbV9wbHVnaW5Qcm9jZXNz
TWFuYWdlclByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW47CisgICAgbXV0YWJsZSBSZXRh
aW5QdHI8TlNTZXQ+IG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQzOTMwYjVlN2ZkMGU2MjBmZjVkNTE4Njhh
Nzc1MzdjYTlmYTQ5MTAuLmEyNTA0NjIwOTI2MmFiMmUzZjI2ZDczNzlhYjczMTVmYmU0ZjY5Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01NDksNyArNTQ5LDEwIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmVsZW1lbnREaWRG
b2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBub2RlSW5mb3JtCiAgICAgICAg
IGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlc05vQ29w
eTpjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oZGF0YS0+Ynl0ZXMo
KSkpIGxlbmd0aDpkYXRhLT5zaXplKCkgZnJlZVdoZW5Eb25lOk5PXSk7CiAgICAgICAgIGF1dG8g
dW5hcmNoaXZlciA9IHNlY3VyZVVuYXJjaGl2ZXJGcm9tRGF0YShuc0RhdGEuZ2V0KCkpOwogICAg
ICAgICBAdHJ5IHsKLSAgICAgICAgICAgIHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVP
YmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZm9yS2V5OkAidXNlck9iamVjdCJdOworICAg
ICAgICAgICAgaWYgKGF1dG8qIGFsbG93ZWRDbGFzc2VzID0gbV93ZWJWaWV3LmdldCgpLT5fcGFn
ZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rp
bmcoKSkKKyAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2Jq
ZWN0T2ZDbGFzc2VzOmFsbG93ZWRDbGFzc2VzIGZvcktleTpAInVzZXJPYmplY3QiXTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVj
b2RlT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZvcktleTpAInVzZXJPYmplY3QiXTsK
ICAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKICAgICAgICAgICAg
IExPR19FUlJPUigiRmFpbGVkIHRvIGRlY29kZSB1c2VyIGRhdGE6ICVAIiwgZXhjZXB0aW9uKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGI0MjAzOWQwMjE4OGMzNjc0NmZkMDMzOTE1ZWNiOWJlYmY1YzAxYjguLjNmNTAxODBk
ODViYThjMTExNjM5MDEyY2MzYWI2NWRmZDY2OGM1YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxOS0wOS0xNyAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgSW5q
ZWN0ZWRCdW5kbGUgU1BJIHRvIGJldHRlciBzdXBwb3J0IE5TU2VjdXJlQ29kaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4MTAKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU1MjY1NzEzPgorCisgICAgICAgIFRoZSBlbmNvZGluZy9kZWNvZGlu
ZyByb3V0aW5lcyB1c2VkIGJ5IFdlYktpdOKAmXMgSW5qZWN0ZWRCdW5kbGVzIGFyZSBiYXNlZCBv
biBOU0NvZGluZy4KKyAgICAgICAgV2hpbGUgd2UgaGF2ZSBjaGFuZ2VkIFdlYktpdCBpbnRlcm5h
bHMgdG8gdXNlIE5TU2VjdXJlQ29kaW5nLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YKKyAgICAgICAg
aW5qZWN0ZWQgYnVuZGxlcyB0aGF0IG5lZWQgdG8gc2VyaWFsaXplIGN1c3RvbSBjbGFzc2VzIGJl
dHdlZW4gdGhlIEluamVjdGVkQnVuZGxlIGFuZAorICAgICAgICB0aGUgcmVsZXZhbnQgV2ViS2l0
IFVJUHJvY2Vzcy4KKworICAgICAgICBXZSBuZWVkIHRvIGxvY2sgZG93biB0aGlzIGNvbW11bmlj
YXRpb25zIGNoYW5uZWwgYnkgZW5mb3JjaW5nIE5TU2VjdXJlQ29kaW5nLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY3JlYXRlcyBuZXcgU1BJIHRvIGFsbG93IHRoZSBVSVByb2Nlc3MgdG8gc3BlY2lm
eSBjbGFzc2VzIHRoYXQgaXQgd2lsbCBhY2NlcHQKKyAgICAgICAgaW4gbWVzc2FnZXMgZnJvbSB0
aGUgV2ViQ29udGV0IFByb2Nlc3MgKGFuZCBJbmplY3RlZCBCdW5kbGUpLgorCisgICAgICAgIEl0
IGFkZHMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eSB0byB0aGUgV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb246CisKKyAgICAgICAgICAgIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1NldDxD
bGFzcz4gKmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKKworICAgICAgICBJZiBubyBj
dXN0b20gY2xhc3NlcyBhcmUgc3BlY2lmaWVkLCB0aGUgc3RhbmRhcmQgc2VyaWFsaXphdGlvbiBw
cmltaXRpdmVzIGFyZSBzdXBwb3J0ZWQ6CisgICAgICAgICAgICBOU0FycmF5LCBOU0RhdGEsIE5T
RGF0ZSwgTlNEaWN0aW9uYXJ5LCBOU051bGwsIE5TTnVtYmVyLCBOU1NldCwgTlNTdHJpbmcsCisg
ICAgICAgICAgICBOU1RpbWVab25lLCBOU1VSTCwgYW5kIE5TVVVJRC4KKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZS5tbTogQWRkZWQuCisgICAgICAg
ICgtW0J1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90ZU9iamVjdCBkaWRHZXRGb2N1c10pOgorICAgICAg
ICAoLVtGb3JtSW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JGb2N1c2VkRWxl
bWVudDpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luIHdlYlByb2Nlc3NQbHVnSW46ZGlkQ3JlYXRlQnJv
d3NlckNvbnRleHRDb250cm9sbGVyOl0pOgorICAgICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQ
bHVnSW4gX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6d2lsbEJlZ2lu
SW5wdXRTZXNzaW9uRm9yRWxlbWVudDppbkZyYW1lOnVzZXJJc0ludGVyYWN0aW5nOl0pOgorICAg
ICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXI6ZGlkRm9jdXNUZXh0RmllbGQ6aW5GcmFtZTpdKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVByb3Rv
Y29sLmg6IENvcGllZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbkV4dHJhcy5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW06CisgICAgICAg
ICgrW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOmNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6XSk6CisgICAgICAgICgrW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOmNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6YW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczpdKToK
KwogMjAxOS0wOS0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtXUEVdW0dUS10gVXBkYXRlIGJ1aWxkIGVudmlyb25tZW50cyB0byB1c2Ug
bGlid3BlK1dQRUJhY2tlbmQtZmRvIDEuNC4wCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2
ZDAxOGRkNTk1NjE4ZDI2MjYzMTdlOGZmZDAwZGNkZjc1Njc0MTQuLjE5NGQ1YmEzNzcwYzQ2Zjg0
YWIwMmE5MGMzOTViZmE1NjNiNzQ1YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00Mzks
NiArNDM5LDggQEAKIAkJN0E2QTJDNzAxRENDRkE4QzAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1
aXJrVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBNkEyQzZGMURDQ0Y4N0IwMEMwRDA4NSAvKiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gKi87
IH07CiAJCTdBNkEyQzcyMURDQ0ZCNTIwMEMwRDA4NSAvKiBMb2NhbFN0b3JhZ2VRdWlya0VuYWJs
ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QTZBMkM3MTFEQ0NGQjAyMDBDMEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtFbmFibGVk
Lmh0bWwgKi87IH07CiAJCTdBN0IwRTdGMUVBRkU0QzMwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBN0Iw
RTdFMUVBRkU0NTQwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6ZS5tbSAqLzsgfTsKKwkJN0E4OUJC
NjcyMzMxNjQzMjAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBODlCQjY1MjMzMTYzNUQwMDQyQ0Ix
RSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUubW0gKi87IH07CisJCTdBODlCQjY4MjMzMTY0M0EwMDQy
Q0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVu
ZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tICovOyB9OwogCQk3QTkwOUE3RDFEODc3NDgwMDA3RTEw
RjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBOTA5QTZGMUQ4Nzc0NzUwMDdFMTBGOCAvKiBBZmZpbmVUcmFuc2Zv
cm0uY3BwICovOyB9OwogCQk3QTkwOUE3RTFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRQb2ludC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkwOUE3
MDFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRQb2ludC5jcHAgKi87IH07CiAJCTdBOTA5QTdGMUQ4
Nzc0ODAwMDdFMTBGOCAvKiBGbG9hdFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E5MDlBNzExRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVj
dC5jcHAgKi87IH07CkBAIC0xOTYwLDYgKzE5NjIsOSBAQAogCQk3QTZBMkM2RjFEQ0NGODdCMDBD
MEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QTZBMkM3MTFEQ0NGQjAyMDBDMEQwODUgLyogTG9jYWxTdG9yYWdl
UXVpcmtFbmFibGVkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBMb2NhbFN0b3Jh
Z2VRdWlya0VuYWJsZWQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E3QjBF
N0UxRUFGRTQ1NDAwNkFCOEFFIC8qIExpbWl0VGl0bGVTaXplLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGltaXRUaXRsZVNpemUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdBODlCQjY1MjMzMTYzNUQwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVs
ZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVG
b3JtRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBODlCQjY2MjMz
MTYzNUQwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBODlCQjY5MjMzMTY1NjUwMDQyQ0IxRSAv
KiBCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdW5kbGVGb3Jt
RGVsZWdhdGVQcm90b2NvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE2
RjFEODc3NDc1MDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFmZmluZVRyYW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdBOTA5QTcwMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFBvaW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0UG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE3MTFEODc3NDc1MDA3RTEwRjggLyog
RmxvYXRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzM4LDYgKzI3NDMsOSBA
QAogCQkJCTM3NEI3QTVFMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUu
bW0gKi8sCiAJCQkJMzc0QjdBNUYxREYzNkVFRTAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxl
Z2F0ZVBsdWdJbi5tbSAqLywKIAkJCQkzNzRCN0E2MjFERjM3MzRDMDBBQ0NCNkMgLyogQnVuZGxl
RWRpdGluZ0RlbGVnYXRlUHJvdG9jb2wuaCAqLywKKwkJCQk3QTg5QkI2NTIzMzE2MzVEMDA0MkNC
MUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovLAorCQkJCTdBODlCQjY2MjMzMTYzNUQwMDQy
Q0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gKi8sCisJCQkJN0E4OUJCNjkyMzMx
NjU2NTAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sLmggKi8sCiAJCQkJQTEz
RUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gKi8sCiAJCQkJQTEz
RUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi8sCiAJ
CQkJMzdBNzA5QUQxRTNFQThCMDAwQ0E1OTY5IC8qIEJ1bmRsZVJhbmdlSGFuZGxlLm1tICovLApA
QCAtNDQwNSw2ICs0NDEzLDcgQEAKIAkJCQk3Q0NFN0VCNTFBNDExQTdFMDA0NDdDNEMgLyogQmFj
a0ZvcndhcmRMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM3RkVCMjAyMDdDMEYyRTAwRDIz
Mjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NEI3QTYwMURG
MzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywK
KwkJCQk3QTg5QkI2NzIzMzE2NDMyMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjExQjg3NDM4MDAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFt
ZXRlcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0E3MDlBRTFFM0VBOEIwMDBDQTU5NjkgLyog
QnVuZGxlUmFuZ2VIYW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQzFBNDExQTky
MDA0NDdDNEMgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTQ4OTcs
NiArNDkwNiw3IEBACiAJCQkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1dG9GaWxsQXZh
aWxhYmxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MjU5NDYyMjY2QTY4QTAwMzlBQTdBIC8q
IEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0
QjdBNjExREYzNzFDRjAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBp
biBTb3VyY2VzICovLAorCQkJCTdBODlCQjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5kbGVGb3Jt
RGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJCMDFCODc0MzZGMDAw
OTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3
QTcwOUFGMUUzRUE5N0UwMENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZVBsdWdJbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5Q
YWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU2YTg1NjEzNTQwNjBmYzQ3YjQwNjJkMWExNzZiNTg0OTgxZjY4NGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1E
ZWxlZ2F0ZS5tbQpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKworI2ltcG9ydCAiQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCIKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0
cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRm9jdXNlZEVs
ZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5wdXREZWxlZ2F0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8V2ViS2l0L19X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0
YXRpYyBib29sIGRpZEdldEZvY3VzOworc3RhdGljIGJvb2wgZGlkR2V0VXNlck9iamVjdDsKK3N0
YXRpYyBpZCB1c2VyT2JqZWN0OworCitAaW50ZXJmYWNlIEJ1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90
ZU9iamVjdCA6IE5TT2JqZWN0IDxCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbD4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIEJ1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90ZU9iamVjdAorCistICh2b2lk
KWRpZEdldEZvY3VzCit7CisgICAgZGlkR2V0Rm9jdXMgPSB0cnVlOworfQorCitAZW5kCisKK0Bp
bnRlcmZhY2UgRm9ybUlucHV0RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLSW5wdXREZWxlZ2F0ZT4g
eworQHB1YmxpYworICAgIFJldGFpblB0cjxpZD4gX3VzZXJPYmplY3Q7Cit9CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBGb3JtSW5wdXREZWxlZ2F0ZQorCistIChfV0tGb2N1c1N0YXJ0c0lucHV0
U2Vzc2lvblBvbGljeSlfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JGb2N1c2VkRWxlbWVudDooaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4paW5mbworeworICAg
IF91c2VyT2JqZWN0ID0gaW5mby51c2VyT2JqZWN0OworICAgIGRpZEdldFVzZXJPYmplY3QgPSB0
cnVlOworICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93Owor
fQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRob3V0UmVnaXN0
ZXJlZEN1c3RvbUNsYXNzKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbRm9ybUlu
cHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHJl
dGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4iXSk7CisgICAgW1tj
b25maWd1cmF0aW9uIHByb2Nlc3NQb29sXSBfc2V0T2JqZWN0OkBZRVMgZm9yQnVuZGxlUGFyYW1l
dGVyOkAiRm9ybURlbGVnYXRlU2hvdWxkQWRkQ3VzdG9tQ2xhc3MiXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Cisg
ICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJW
aWV3IGxvYWRIVE1MU3RyaW5nOkAiPGlucHV0PjwvaW5wdXQ+PHNlbGVjdD48b3B0aW9uIHNlbGVj
dGVkPmZvbzwvb3B0aW9uPjxvcHRpb24+YmFyPC9vcHRpb24+PC9zZWxlY3Q+IiBiYXNlVVJMOm5p
bF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisg
ICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKFtbQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0
IGFsbG9jXSBpbml0XSk7CisgICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2Ug
PSBbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQcm90
b2NvbDpAcHJvdG9jb2woQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wpXTsKKyAgICBbW3dlYlZp
ZXcgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5n
ZXQoKSBpbnRlcmZhY2U6aW50ZXJmYWNlXTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKSIgY29tcGxldGlv
bkhhbmRsZXI6bmlsXTsKKworICAgIHVzZXJPYmplY3QgPSBuaWw7CisgICAgZGlkR2V0VXNlck9i
amVjdCA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRGb2N1
cyk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRVc2VyT2JqZWN0KTsKKwor
ICAgIC8vIFdlIHNob3VsZCBoYXZlIHNlcmlhbGl6ZWQgdGhlIE5TVW5pdENvbnZlcnRlckxpbmVh
ciwgc2luY2Ugd2UgZGlkIG5vdCBpbmRpY2F0ZSB3ZSB3YW50ZWQKKyAgICAvLyB0byBsaW1pdCBz
ZXJpYWxpemF0aW9uLgorICAgIEVYUEVDVF9UUlVFKFtkZWxlZ2F0ZS0+X3VzZXJPYmplY3QgaXNL
aW5kT2ZDbGFzczpbTlNVbml0Q29udmVydGVyTGluZWFyIGNsYXNzXV0pOworfQorCitURVNUKFdl
YktpdCwgV0tXZWJQcm9jZXNzUGx1Z0luV2l0aFJlZ2lzdGVyZWRDdXN0b21DbGFzcykKK3sKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0Zvcm1JbnB1dERlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSByZXRhaW5QdHIoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVu
ZGxlRm9ybURlbGVnYXRlUGx1Z0luIgorICAgICAgICBjb25maWd1cmVKU0NGb3JUZXN0aW5nOk5P
IGFuZEN1c3RvbVBhcmFtZXRlckNsYXNzZXM6W05TU2V0IHNldFdpdGhPYmplY3RzOltOU1VuaXRD
b252ZXJ0ZXJMaW5lYXIgY2xhc3NdLCBuaWxdXSk7CisgICAgW1tjb25maWd1cmF0aW9uIHByb2Nl
c3NQb29sXSBfc2V0T2JqZWN0OkBZRVMgZm9yQnVuZGxlUGFyYW1ldGVyOkAiRm9ybURlbGVnYXRl
U2hvdWxkQWRkQ3VzdG9tQ2xhc3MiXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcgX3NldElu
cHV0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPGlucHV0PjwvaW5wdXQ+PHNlbGVjdD48b3B0aW9uIHNlbGVjdGVkPmZvbzwvb3B0aW9uPjxv
cHRpb24+YmFyPC9vcHRpb24+PC9zZWxlY3Q+IiBiYXNlVVJMOm5pbF07CisgICAgW3dlYlZpZXcg
X3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgYXV0byBvYmplY3QgPSBh
ZG9wdE5TKFtbQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0IGFsbG9jXSBpbml0XSk7Cisg
ICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woQnVu
ZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wpXTsKKyAgICBbW3dlYlZpZXcgX3JlbW90ZU9iamVjdFJl
Z2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5nZXQoKSBpbnRlcmZhY2U6aW50
ZXJmYWNlXTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAg
ICAKKyAgICB1c2VyT2JqZWN0ID0gbmlsOworICAgIGRpZEdldFVzZXJPYmplY3QgPSBmYWxzZTsK
KworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0Rm9jdXMpOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0VXNlck9iamVjdCk7CisgICAgCisgICAgRVhQRUNU
X1RSVUUoW2RlbGVnYXRlLT5fdXNlck9iamVjdCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0
ZXJMaW5lYXIgY2xhc3NdXSk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5X
aXRoVW5yZWdpc3RlcmVkQ3VzdG9tQ2xhc3MpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tGb3JtSW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb25maWd1
cmF0aW9uID0gcmV0YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiIK
KyAgICAgICAgY29uZmlndXJlSlNDRm9yVGVzdGluZzpOTyBhbmRDdXN0b21QYXJhbWV0ZXJDbGFz
c2VzOltOU1NldCBzZXRXaXRoT2JqZWN0czpbTlNVbml0QWNjZWxlcmF0aW9uIGNsYXNzXSwgbmls
XV0pOworICAgIFtbY29uZmlndXJhdGlvbiBwcm9jZXNzUG9vbF0gX3NldE9iamVjdDpAWUVTIGZv
ckJ1bmRsZVBhcmFtZXRlcjpAIkZvcm1EZWxlZ2F0ZVNob3VsZEFkZEN1c3RvbUNsYXNzIl07CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxpbnB1dD48L2lucHV0PjxzZWxlY3Q+
PG9wdGlvbiBzZWxlY3RlZD5mb288L29wdGlvbj48b3B0aW9uPmJhcjwvb3B0aW9uPjwvc2VsZWN0
PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uXTsKKworICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW0J1bmRsZUZvcm1EZWxlZ2F0
ZVJlbW90ZU9iamVjdCBhbGxvY10gaW5pdF0pOworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFj
ZSAqaW50ZXJmYWNlID0gW19XS1JlbW90ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRl
cmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29sKEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07
CisgICAgW1t3ZWJWaWV3IF9yZW1vdGVPYmplY3RSZWdpc3RyeV0gcmVnaXN0ZXJFeHBvcnRlZE9i
amVjdDpvYmplY3QuZ2V0KCkgaW50ZXJmYWNlOmludGVyZmFjZV07CisKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3Vz
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisKKyAgICB1c2VyT2JqZWN0ID0gbmlsOworICAg
IGRpZEdldFVzZXJPYmplY3QgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkR2V0Rm9jdXMpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0VXNl
ck9iamVjdCk7CisKKyAgICAvLyBXZSBzaG91bGQgbm90IGhhdmUgZGVzZXJpYWxpemVkIHRoZSBO
U1VuaXRDb252ZXJ0ZXJMaW5lYXIsIHNpbmNlIHdlIGRpZCBub3Qgc3BlY2lmeSBpdCBhcyB2YWxp
ZC4KKyAgICBFWFBFQ1RfTlVMTChkZWxlZ2F0ZS0+X3VzZXJPYmplY3QpOworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxl
Rm9ybURlbGVnYXRlUGx1Z0luLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjYTlmZGM3MjEy
YzQ5ZWFkMTFiYmU3ZTBlZGY2NDk0YjA1MTU5OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1t
CkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmg+CisjaW1wb3J0IDxXZWJL
aXQvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFj
ZSBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gOiBOU09iamVjdCA8V0tXZWJQcm9jZXNzUGx1Z0lu
LCBXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlPgorQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luIHsKKyAgICBSZXRhaW5QdHI8V0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyPiBfYnJvd3NlckNvbnRleHRDb250
cm9sbGVyOworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyPiBfcGx1
Z0luQ29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8aWQgPEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3Rv
Y29sPj4gX3JlbW90ZU9iamVjdDsKKyAgICBCT09MIF9zaG91bGRVc2VDdXN0b21DbGFzczsKK30K
KworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVy
ICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcgoreworICAgIEFTU0VSVCghX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlcik7Cisg
ICAgQVNTRVJUKCFfcGx1Z0luQ29udHJvbGxlcik7CisgICAgX2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlciA9IGJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBfcGx1Z0luQ29udHJvbGxlciA9
IHBsdWdJbkNvbnRyb2xsZXI7CisKKyAgICBpZiAoaWQgc2hvdWxkQWRkQ3VzdG9tQ2xhc3MgPSBb
cGx1Z0luQ29udHJvbGxlci5wYXJhbWV0ZXJzIHZhbHVlRm9yS2V5OkAiRm9ybURlbGVnYXRlU2hv
dWxkQWRkQ3VzdG9tQ2xhc3MiXSkgeworICAgICAgICBBU1NFUlQoW3Nob3VsZEFkZEN1c3RvbUNs
YXNzIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pOworICAgICAgICBfc2hvdWxkVXNl
Q3VzdG9tQ2xhc3MgPSBbKE5TTnVtYmVyICopc2hvdWxkQWRkQ3VzdG9tQ2xhc3MgYm9vbFZhbHVl
XTsKKyAgICB9IGVsc2UKKyAgICAgICAgX3Nob3VsZFVzZUN1c3RvbUNsYXNzID0gTk87CisKKyAg
ICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5k
bGVGb3JtRGVsZWdhdGVQcm90b2NvbCldOworICAgIF9yZW1vdGVPYmplY3QgPSBbYnJvd3NlckNv
bnRleHRDb250cm9sbGVyLl9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQcm94eVdp
dGhJbnRlcmZhY2U6aW50ZXJmYWNlXTsKKworICAgIFtfYnJvd3NlckNvbnRleHRDb250cm9sbGVy
IF9zZXRGb3JtRGVsZWdhdGU6c2VsZl07Cit9CisKKy0gKE5TT2JqZWN0IDxOU1NlY3VyZUNvZGlu
Zz4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxsQmVnaW5J
bnB1dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9k
ZSBpbkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1lIHVzZXJJc0ludGVyYWN0
aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nCit7CisgICAgaWYgKCFfc2hvdWxkVXNlQ3VzdG9t
Q2xhc3MpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBOU1VuaXRDb252ZXJ0ZXJMaW5lYXIg
KmtpbG9tZXRlcnNUb01ldGVycyA9IFtbTlNVbml0Q29udmVydGVyTGluZWFyIGFsbG9jXSBpbml0
V2l0aENvZWZmaWNpZW50OjEwMDAuMCBjb25zdGFudDowLjBdOworCisgICAgcmV0dXJuIFtraWxv
bWV0ZXJzVG9NZXRlcnMgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKV93ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEZvY3VzVGV4dEZpZWxkOihXS1dlYlByb2Nl
c3NQbHVnSW5Ob2RlSGFuZGxlICopdGV4dEZpZWxkIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lICopZnJhbWUKK3sKKyAgICBbX3JlbW90ZU9iamVjdCBkaWRHZXRGb2N1c107Cit9CisK
K0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTNj
NDdhMWJlMTUyYzg1NTVmNDM3NDAyZmIwZjJmNDE3NGQ0NDkzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQ
cm90b2NvbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Gb3Jt
RGVsZWdhdGVQcml2YXRlLmg+CisKK0Bwcm90b2NvbCBCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2Nv
bCA8TlNPYmplY3Q+CisKKy0gKHZvaWQpZGlkR2V0Rm9jdXM7CisKK0BlbmQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDFjZjcxODJlY2E4MWI4Y2E2N2U0ZjdjMmQx
NjA3MjdhZmEwODA3MGIuLmU2MzcxOTMzZTAyMTRlOGUxNGI1YjkyYTlmNjU1ZjE0ODI2NTE1M2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMzUsNyArMzUsMTQg
QEAgVEVTVChXS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiwgQ29weSkKIHsKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE5TU2V0PENsYXNzPiAq
dGVzdFNldCA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpbVUlDb2xvciBjbGFzc10sIG5pbF07Cisj
ZWxzZQorICAgIE5TU2V0PENsYXNzPiAqdGVzdFNldCA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpb
TlNDb2xvciBjbGFzc10sIG5pbF07CisjZW5kaWYKKyAgICAKICAgICBbY29uZmlndXJhdGlvbiBz
ZXRJbmplY3RlZEJ1bmRsZVVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOkAiL3BhdGgvdG8vaW5q
ZWN0ZWQud2tidW5kbGUiXV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0Q3VzdG9tQ2xhc3Nlc0Zv
clBhcmFtZXRlckNvZGVyOnRlc3RTZXRdOwogICAgIFtjb25maWd1cmF0aW9uIHNldEN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcjpAIm9yZy53ZWJraXQuV2ViQ29udGVudC5j
dXN0b20iXTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRJZ25vcmVTeW5jaHJvbm91c01lc3NhZ2lu
Z1RpbWVvdXRzRm9yVGVzdGluZzpZRVNdOwogICAgIFtjb25maWd1cmF0aW9uIHNldEF0dHJTdHls
ZUVuYWJsZWQ6WUVTXTsKQEAgLTYxLDYgKzY4LDcgQEAgVEVTVChXS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiwgQ29weSkKICAgICBhdXRvIGNvcHkgPSBhZG9wdE5TKFtjb25maWd1cmF0aW9uIGNv
cHldKTsKIAogICAgIEVYUEVDVF9UUlVFKFtbY29uZmlndXJhdGlvbiBpbmplY3RlZEJ1bmRsZVVS
TF0gaXNFcXVhbDpbY29weSBpbmplY3RlZEJ1bmRsZVVSTF1dKTsKKyAgICBFWFBFQ1RfVFJVRShb
W2NvcHkgY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyXSBpc0VxdWFsVG9TZXQ6dGVzdFNl
dF0pOwogICAgIEVYUEVDVF9UUlVFKFtbY29uZmlndXJhdGlvbiBjdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWw6W2NvcHkgY3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyXV0pOwogICAgIEVYUEVDVF9FUShbY29uZmlndXJhdGlvbiBpZ25v
cmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZ10sIFtjb3B5IGlnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nXSk7CiAgICAgRVhQRUNUX0VRKFtj
b25maWd1cmF0aW9uIGF0dHJTdHlsZUVuYWJsZWRdLCBbY29weSBhdHRyU3R5bGVFbmFibGVkXSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25F
eHRyYXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJh
cy5oCmluZGV4IGQ2ODEyMDdlZDM5ODU4Y2I3NGRjMGFiNDEwM2RjYjlkZWY5ZGZkODYuLjVkOTUx
M2I1OWU4N2QxOTIyYWZjMDFkMjk0NjAxMzllYjVmYmVhYzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oCkBAIC0yOCw0ICsyOCw1
IEBACiBAaW50ZXJmYWNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFRlc3RXZWJLaXRBUElFeHRy
YXMpCiArIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZTsKICsgKGluc3RhbmNldHlwZSlfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWU7CisrIChpbnN0YW5jZXR5cGUpX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFt
ZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOihCT09MKXZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNs
YXNzZXM6KE5TU2V0PENsYXNzPiAqKXBhcmFtZXRlckNsYXNzZXM7CiBAZW5kCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0KaW5kZXgg
N2RkYmQ4YzQ3MzNmMmJlYmFmNDA5N2VlMWY3ODQ2NmMyMDA4Y2MyOS4uZWU2MmNiM2E4MzdlYWNk
YzBkYmQ3MDI5NWZiOWY5NjBlYThjNzkyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbQpAQCAtMzksMTEgKzM5LDE3IEBAICsg
KGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
KE5TU3RyaW5nICopY2xhc3NOYW1lCiB9CiAKICsgKGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWUKK3sKKyAgICByZXR1cm4gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOmNs
YXNzTmFtZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOnZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNs
YXNzZXM6bmlsXTsKK30KKworKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9y
VGVzdGluZzooQk9PTCl2YWx1ZSBhbmRDdXN0b21QYXJhbWV0ZXJDbGFzc2VzOihOU1NldDxDbGFz
cz4gKilwYXJhbWV0ZXJDbGFzc2VzCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CiAgICAgW3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRJbmplY3RlZEJ1bmRsZVVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiVGVzdFdlYktpdEFQSSIgd2l0aEV4
dGVuc2lvbjpAIndrYnVuZGxlIl1dOwogICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0
Q29uZmlndXJlSlNDRm9yVGVzdGluZzp2YWx1ZV07Ci0KKyAgICBbcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIHNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjogcGFyYW1ldGVyQ2xhc3Nl
c107CisgICAgCiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29s
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIFtwcm9jZXNzUG9vbCBfc2V0T2JqZWN0OmNsYXNzTmFtZSBmb3JCdW5kbGVQ
YXJhbWV0ZXI6VGVzdFdlYktpdEFQSTo6VXRpbDo6VGVzdFBsdWdJbkNsYXNzTmFtZVBhcmFtZXRl
cl07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379135</attachid>
            <date>2019-09-19 08:50:59 -0700</date>
            <delta_ts>2019-09-19 09:11:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201810-20190919085058.patch</filename>
            <type>text/plain</type>
            <size>46689</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYTcwNTdhZWZjMDRiNjYx
YTNiMzU4YzBkMjNlYTY4N2IzZGIxOWYuLjllYzhmZjI0YjQ3NWIwYmU0MTQyODllNzFhMDA3YmUz
MTM5NDAxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDktMTYgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVu
ZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9ydCBOU1NlY3VyZUNvZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODEwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTI2NTcxMz4KKworICAgICAgICBUaGUgZW5jb2RpbmcvZGVjb2Rpbmcgcm91dGlu
ZXMgdXNlZCBieSBXZWJLaXTigJlzIEluamVjdGVkQnVuZGxlcyBhcmUgYmFzZWQgb24gTlNDb2Rp
bmcuCisgICAgICAgIFdoaWxlIHdlIGhhdmUgY2hhbmdlZCBXZWJLaXQgaW50ZXJuYWxzIHRvIHVz
ZSBOU1NlY3VyZUNvZGluZywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZXMgdGhhdCBuZWVkIHRvIHNlcmlhbGl6ZSBjdXN0b20gY2xhc3NlcyBiZXR3ZWVuIHRo
ZSBJbmplY3RlZEJ1bmRsZSBhbmQKKyAgICAgICAgdGhlIHJlbGV2YW50IFdlYktpdCBVSVByb2Nl
c3MuCisKKyAgICAgICAgV2UgbmVlZCB0byBsb2NrIGRvd24gdGhpcyBjb21tdW5pY2F0aW9ucyBj
aGFubmVsIGJ5IGVuZm9yY2luZyBOU1NlY3VyZUNvZGluZy4KKworICAgICAgICBUaGlzIHBhdGNo
IGNyZWF0ZXMgbmV3IFNQSSB0byBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHNwZWNpZnkgY2xhc3Nl
cyB0aGF0IGl0IHdpbGwgYWNjZXB0CisgICAgICAgIGluIG1lc3NhZ2VzIGZyb20gdGhlIFdlYkNv
bnRldCBQcm9jZXNzIChhbmQgSW5qZWN0ZWQgQnVuZGxlKS4KKworICAgICAgICBJdCBhZGRzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydHkgdG8gdGhlIFdLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOgor
CisgICAgICAgICAgICBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpj
dXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI7CisKKyAgICAgICAgSWYgbm8gY3VzdG9tIGNs
YXNzZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZl
cyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAgICAgTlNBcnJheSwgTlNEYXRhLCBOU0RhdGUsIE5T
RGljdGlvbmFyeSwgTlNOdWxsLCBOU051bWJlciwgTlNTZXQsIE5TU3RyaW5nLAorICAgICAgICAg
ICAgTlNUaW1lWm9uZSwgTlNVUkwsIGFuZCBOU1VVSUQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IGFueSBjdXN0b20gY2xhc3Nlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZp
Z3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKTogQWRkZWQuCisgICAg
ICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAg
ICAgICAgKHRvU3RyaW5nVmVjdG9yKTogQWRkZWQuCisgICAgICAgICgtW1dLUHJvY2Vzc0dyb3Vw
IGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6YW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNv
ZGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6XSk6IFJlc3RyaWN0IHNlcmlhbGl6
YXRpb24gdG8gYWxsb3dlZCBjbGFzc2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXJdKTogQWRk
ZWQuCisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRDdXN0b21DbGFz
c2VzRm9yUGFyYW1ldGVyQ29kZXI6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKTogUmVnaXN0ZXIgYW55IGN1c3RvbSBjbGFzc2VzCisgICAg
ICAgIHByb3ZpZGVkIGluIHRoZSBjb25maWd1cmF0b24uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0
ZXJDb2RpbmcgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3VzKTogUmVzdHJpY3Qg
c2VyaWFsaXphdGlvbiB0byBhbGxvd2VkCisgICAgICAgIGNsYXNzZXMgb25seS4KKwogMjAxOS0w
OS0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0FwcGxlIFBh
eV0gVGVsbCB3ZWJzaXRlcyB3aHkgYSBzZXNzaW9uIHdhcyBjYW5jZWxsZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5jcHAKaW5kZXggN2U0MmRkNjhjM2VkYWVmNWM5NTc3Yjg3MjMyMmQwZWVhMWI3YTBlYS4u
NjIyNGUzMDIxOGI2ZGUwZjYyNDZhZmY4NmYwMzk3NmMxOTdhMjFkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4g
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX21lZGlhQ2FjaGVE
aXJlY3RvcnkgPSB0aGlzLT5tX21lZGlhQ2FjaGVEaXJlY3Rvcnk7CiAgICAgY29weS0+bV9pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IHRoaXMtPm1faW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnk7CiAgICAgY29weS0+bV9pbmplY3RlZEJ1bmRsZVBhdGggPSB0aGlzLT5tX2luamVjdGVkQnVu
ZGxlUGF0aDsKKyAgICBjb3B5LT5tX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciA9IHRo
aXMtPm1fY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOwogICAgIGNvcHktPm1fbG9jYWxT
dG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9sb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29w
eS0+bV9kZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5tX2RldmljZUlk
SGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX21lZGlhS2V5c1N0b3JhZ2VE
aXJlY3RvcnkgPSB0aGlzLT5tX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgKaW5kZXggZDhiZDJmMTkwZmJlNGNlMzcwNGJhOTI1YTQ1MjZiNTkyNzU0N2VmNS4uYjMz
NzUxNjEwN2U1ZmQ2ZDliNDhmYjMzNDlmNzE0ZmE3NmNjNzBhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aApAQCAtMTExLDYgKzExMSw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeTsgfQogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeShjb25zdCBXVEY6OlN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSkgeyBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OyB9CiAKKyAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiBjdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIoKSBjb25zdCB7IHJldHVybiBtX2N1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsgfQorICAgIHZvaWQgc2V0Q3VzdG9tQ2xhc3Nlc0Zv
clBhcmFtZXRlckNvZGVyKFZlY3RvcjxXVEY6OlN0cmluZz4mJiBjbGFzc2VzRm9yQ29kZXIpIHsg
bV9jdXN0b21DbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgPSBXVEZNb3ZlKGNsYXNzZXNGb3JDb2Rl
cik7IH0KKwogICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGNhY2hlUGFydGl0aW9uZWRV
UkxTY2hlbWVzKCkgeyByZXR1cm4gbV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsgfQogICAg
IHZvaWQgc2V0Q2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMoVmVjdG9yPFdURjo6U3RyaW5nPiYm
IGNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKSB7IG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVt
ZXMgPSBXVEZNb3ZlKGNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKTsgfQogCkBAIC0xOTksNiAr
MjAyLDcgQEAgcHJpdmF0ZToKICAgICBXVEY6OlN0cmluZyBtX3dlYlNRTERhdGFiYXNlRGlyZWN0
b3J5OwogICAgIFdURjo6U3RyaW5nIG1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKICAgICBX
VEY6OlN0cmluZyBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgVmVjdG9y
PFdURjo6U3RyaW5nPiBtX2N1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKICAgICBWZWN0
b3I8V1RGOjpTdHJpbmc+IG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7CiAgICAgVmVjdG9y
PFdURjo6U3RyaW5nPiBtX2Fsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lczsKICAgICBWZWN0b3I8
V1RGOjpDU3RyaW5nPiBtX2FkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFBhdGhzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmLmNwcAppbmRleCBlMzEwZTc0ODljYjljMDMwZTA0YmJjNmVlNmI1ZTNkMTNjZjA5
MzliLi5iZDcyZTZlMTQzY2Q4MTViNTI3ODliOTljOTE3ZWU5MzhhOGQ3ODI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVm
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmLmNwcApAQCAtNzksNiArNzksMTYgQEAgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0
aW9uU2V0SW5qZWN0ZWRCdW5kbGVQYXRoKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmkK
ICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEluamVjdGVkQnVuZGxlUGF0aCh0b0ltcGwo
aW5qZWN0ZWRCdW5kbGVQYXRoKS0+c3RyaW5nKCkpOwogfQogCitXS0FycmF5UmVmIFdLQ29udGV4
dENvbmZpZ3VyYXRpb25Db3B5Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoJkFQ
STo6QXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KHRvSW1wbChjb25maWd1cmF0aW9uKS0+Y3VzdG9t
Q2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCkpLmxlYWtSZWYoKSk7Cit9CisKK3ZvaWQgV0tDb250
ZXh0Q29uZmlndXJhdGlvblNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLQXJyYXlSZWYgY2xhc3Nlc0ZvckNv
ZGVyKQoreworICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBh
cmFtZXRlckNvZGVyKHRvSW1wbChjbGFzc2VzRm9yQ29kZXIpLT50b1N0cmluZ1ZlY3RvcigpKTsK
K30KKwogV0tTdHJpbmdSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlvbkNvcHlMb2NhbFN0b3JhZ2VE
aXJlY3RvcnkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZikKIHsKICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYuaAppbmRleCBiYTViOTc4ZjE5ZTU1MmRhZmViM2IyYTA4ZTg1YTNl
YTRhYzYwMjk5Li5iNzMyMTEzZWEyMjdhOGE1NzU3M2FiZDBlMjJhYmEyNTRlZjA3NTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0
aW9uUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5oCkBAIC00OCw2ICs0OCw5IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4
dENvbmZpZ3VyYXRpb25TZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeShXS0NvbnRleHRDb25m
CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tDb250ZXh0Q29uZmlndXJhdGlvbkNvcHlJbmplY3Rl
ZEJ1bmRsZVBhdGgoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKIFdL
X0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRJbmplY3RlZEJ1bmRsZVBhdGgo
V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1N0cmluZ1JlZiBpbmpl
Y3RlZEJ1bmRsZVBhdGgpOwogCitXS19FWFBPUlQgV0tBcnJheVJlZiBXS0NvbnRleHRDb25maWd1
cmF0aW9uQ29weUN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmln
dXJhdGlvblNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcihXS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLQXJyYXlSZWYgY2xhc3Nlc0ZvckNvZGVyKTsKKwog
V0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Db3B5TG9jYWxTdG9y
YWdlRGlyZWN0b3J5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikgV0tf
Q19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25Db3B5TG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25TZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1N0cmluZ1JlZiBsb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uU2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAppbmRleCAxOTM4
YmY5ZDExNjIxMmQ3MjU1N2VjZDlhNjVmMzIyODg5OGJmNjZhLi41NDEzYjc5MzJjNzEwZDBlOGE5
ODNjNjBhYThlNTcyMjBjOTUxNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw3ICs0OCw3IEBAIFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tQcm9jZXNzUG9vbCIsIG1hY29zKDEwLjEwLCAxMC4x
NC40KSwgaW9zCiBAaW50ZXJmYWNlIFdLUHJvY2Vzc0dyb3VwIDogTlNPYmplY3QKIAogLSAoaWQp
aW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkw7Ci0KKy0gKGlkKWlu
aXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMIGFuZEN1c3RvbUNsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNTZXQgKiljbGFzc2VzRm9yQ29kZXI7CiAKICNwcmFnbWEg
bWFyayBEZWxlZ2F0ZXMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc0dyb3VwLm1tCmluZGV4IGUwYzljZDUxMGQ1MzlmMDFjNDZmZWYyOWE2YjRm
MmE1OTIyZTdjYTYuLjJiY2NiYjNkYjY5Yjg1OTM1MTViMmE3MTUwMDFiMjQ1ZjY2YmM4ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91
cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3Jv
dXAubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjA3LDYgKzIwNyw0MSBAQCAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihO
U1VSTCAqKWJ1bmRsZVVSTAogICAgIHJldHVybiBzZWxmOwogfQogCitzdGF0aWMgVmVjdG9yPFdU
Rjo6U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU1NldCAqaW5wdXQpCit7CisgICAgVmVjdG9yPFdU
Rjo6U3RyaW5nPiB2ZWN0b3I7CisKKyAgICBOU1VJbnRlZ2VyIHNpemUgPSBpbnB1dC5jb3VudDsK
KyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB2ZWN0b3I7CisKKyAgICB2ZWN0b3IucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKyAgICBmb3IgKGlkIGNsYXNzT2JqIDogaW5wdXQp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNsYXNzT2Jq
KSkKKyAgICAgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQoc3RyaW5nKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHZlY3RvcjsKK30KKworLSAoaWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDoo
TlNVUkwgKilidW5kbGVVUkwgYW5kQ3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOihOU1Nl
dCAqKWNsYXNzZXNGb3JDb2RlcgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYg
KCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOworICAgIGNvbmZpZ3VyYXRp
b24tPnNldEluamVjdGVkQnVuZGxlUGF0aChidW5kbGVVUkwgPyBTdHJpbmcoYnVuZGxlVVJMLnBh
dGgpIDogU3RyaW5nKCkpOworICAgIGNvbmZpZ3VyYXRpb24tPnNldEN1c3RvbUNsYXNzZXNGb3JQ
YXJhbWV0ZXJDb2Rlcih0b1N0cmluZ1ZlY3RvcihjbGFzc2VzRm9yQ29kZXIpKTsKKworICAgIF9w
cm9jZXNzUG9vbCA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZShjb25maWd1cmF0aW9u
KTsKKworICAgIHNldFVwQ29ubmVjdGlvbkNsaWVudChzZWxmLCB0b0FQSShfcHJvY2Vzc1Bvb2wu
Z2V0KCkpKTsKKyAgICBzZXRVcEluamVjdGVkQnVuZGxlQ2xpZW50KHNlbGYsIHRvQVBJKF9wcm9j
ZXNzUG9vbC5nZXQoKSkpOworICAgIHNldFVwSGlzdG9yeUNsaWVudChzZWxmLCB0b0FQSShfcHJv
Y2Vzc1Bvb2wuZ2V0KCkpKTsKKworICAgIHJldHVybiBzZWxmOworfQorCiAtIChpZCA8V0tQcm9j
ZXNzR3JvdXBEZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKICAgICByZXR1cm4gX2RlbGVnYXRlLmdldEF1
dG9yZWxlYXNlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggNWZjZjgzZGUyYTZiZTdlMmViNGRjODM5ODUwNmQwN2MzOGUzNWZmYS4u
MGUwYWM0ZjcyZDI1ZGQ1NTY4ZTdlMGZlYjJmOWIzM2U4YTJlYzcyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTY5OSw3ICs1Njk5
LDEwIEBAIC0gKHZvaWQpX3NldElucHV0RGVsZWdhdGU6KGlkIDxfV0tJbnB1dERlbGVnYXRlPilp
bnB1dERlbGVnYXRlCiAgICAgICAgICAgICAgICAgYXV0byBuc0RhdGEgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8dm9pZCo+KHN0YXRpY19j
YXN0PGNvbnN0IHZvaWQqPihkYXRhLT5ieXRlcygpKSkgbGVuZ3RoOmRhdGEtPnNpemUoKSBmcmVl
V2hlbkRvbmU6Tk9dKTsKICAgICAgICAgICAgICAgICBhdXRvIHVuYXJjaGl2ZXIgPSBzZWN1cmVV
bmFyY2hpdmVyRnJvbURhdGEobnNEYXRhLmdldCgpKTsKICAgICAgICAgICAgICAgICBAdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgdXNlck9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVj
dE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmb3JLZXk6QCJ1c2VyT2JqZWN0Il07CisgICAgICAg
ICAgICAgICAgICAgIGlmIChhdXRvKiBhbGxvd2VkQ2xhc3NlcyA9IG1fd2ViVmlldy0+X3BhZ2Ut
PnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5n
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVj
b2RlT2JqZWN0T2ZDbGFzc2VzOmFsbG93ZWRDbGFzc2VzIGZvcktleTpAInVzZXJPYmplY3QiXTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdXNlck9i
amVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBm
b3JLZXk6QCJ1c2VyT2JqZWN0Il07CiAgICAgICAgICAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0
aW9uICpleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gZGVjb2RlIHVzZXIgZGF0YTogJUAiLCBleGNlcHRpb24pOwogICAgICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCBkYzI1ZTkxOTVlZTRlMGVhYzA3Njcz
MWQyMTE2NDAwMjNlNzhmNGQ0Li4xZWQwYzVlMjRiZmQ5YmE0OTAyMjIzMGE5NDdjMzhmYTE0OWE1
ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0zMiw2ICszMiw3IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJMOworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TU2V0PENsYXNzPiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRl
ckNvZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50
IFdLX0FQSV9ERVBSRUNBVEVEKCJJdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gbGltaXQgdGhl
IG51bWJlciBvZiBwcm9jZXNzZXMiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVz
ZXNTaW5nbGVXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLm1tCmluZGV4IDE1Y2FmNmZkMDU5ZjkwZjkxNmM4YzEwNGZhNTc2OTk2YzA1NTk2Y2Eu
LmY0OWY4YTEwYWVkZTZmOTI2ODA4MDUwNzU5M2FjNzI2ZTgwZWQ0M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIgogCisjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGltcGxl
bWVudGF0aW9uIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbgpAQCAtNjAsNiArNjEsMzEgQEAg
LSAodm9pZClzZXRJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilpbmplY3RlZEJ1bmRsZVVSTAog
ICAgIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldEluamVjdGVkQnVuZGxlUGF0aChpbmpl
Y3RlZEJ1bmRsZVVSTC5wYXRoKTsKIH0KIAorLSAoTlNTZXQ8Q2xhc3M+ICopY3VzdG9tQ2xhc3Nl
c0ZvclBhcmFtZXRlckNvZGVyCit7CisgICAgYXV0byBjbGFzc2VzID0gX3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi0+Y3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKCk7CisgICAgaWYgKGNs
YXNzZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gW05TU2V0IHNldF07CisKKyAgICBOU011
dGFibGVTZXQgKnJlc3VsdCA9IFtbTlNNdXRhYmxlU2V0IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OmNsYXNzZXMuc2l6ZSgpXTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogY2xhc3NlcykK
KyAgICAgICAgW3Jlc3VsdCBhZGRPYmplY3Q6IG9iamNfbG9va1VwQ2xhc3ModmFsdWUudXRmOCgp
LmRhdGEoKSldOworCisgICAgcmV0dXJuIFtyZXN1bHQgYXV0b3JlbGVhc2VdOworfQorCistICh2
b2lkKXNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNTZXQ8Q2xhc3M+ICopY2xh
c3Nlc0ZvckNvZGVyCit7CisgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBjbGFzc2VzOworICAgIGNs
YXNzZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbGFzc2VzRm9yQ29kZXIuY291bnQpOworICAg
IGZvciAoaWQgY2xhc3NPYmogOiBjbGFzc2VzRm9yQ29kZXIpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHN0cmluZyA9IE5TU3RyaW5nRnJvbUNsYXNzKGNsYXNzT2JqKSkKKyAgICAgICAgICAgIGNsYXNz
ZXMudW5jaGVja2VkQXBwZW5kKHN0cmluZyk7CisgICAgfQorCisgICAgX3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi0+c2V0Q3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyKFdURk1vdmUoY2xh
c3NlcykpOworfQorCiAtIChOU1VJbnRlZ2VyKW1heGltdW1Qcm9jZXNzQ291bnQKIHsKICAgICAv
LyBEZXByZWNhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggNTEwZWNiMDc0MGI1MGMwMGQzZGEwOTE4MmIzNjRi
NDkxM2Q4YTc5MC4uZTdlY2M5YTdhOGZhYWIzNzFjMDI3N2IyN2E3NjM0NzhjNTRmNDE1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVi
b2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgogI2ltcG9ydCA8c3lzL3BhcmFtLmg+CkBAIC0xMjgs
NiArMTI5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsK
ICAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCk7CiAgICAgcmVnaXN0ZXJOb3RpZmlj
YXRpb25PYnNlcnZlcnMoKTsKKyAgICBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGlu
ZygpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFibGUgdG8gc2hhcmUgY29kZSB3
aXRoIFdlYkNvcmUncyBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgKGFuZCBiZSBwbGF0Zm9ybSBpbmRl
cGVuZGVudCkuCiAgICAgLy8gUmlnaHQgbm93IGl0IGNhbm5vdCBiZWNhdXNlIFdlYktpdDEgYW5k
IFdlYktpdDIgbmVlZCB0byBiZSBhYmxlIHRvIGNvZXhpc3QgaW4gdGhlIFVJIHByb2Nlc3MsCkBA
IC01OTIsNCArNTk0LDM0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFwcGxpY2F0aW9uSXNBYm91
dFRvU3VzcGVuZCgpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6
ZUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RpbmcoKQoreworICAgIGNvbnN0IGF1dG8mIGN1c3RvbUNs
YXNzZXMgPSBtX2NvbmZpZ3VyYXRpb24tPmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rlcigp
OworICAgIGlmIChjdXN0b21DbGFzc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byBzdGFuZGFyZENsYXNzZXMgPSBbTlNTZXQgc2V0V2l0aE9iamVjdHM6W05TQXJyYXkg
Y2xhc3NdLCBbTlNEYXRhIGNsYXNzXSwgW05TRGF0ZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xh
c3NdLCBbTlNOdWxsIGNsYXNzXSwKKyAgICAgICAgW05TTnVtYmVyIGNsYXNzXSwgW05TU2V0IGNs
YXNzXSwgW05TU3RyaW5nIGNsYXNzXSwgW05TVGltZVpvbmUgY2xhc3NdLCBbTlNVUkwgY2xhc3Nd
LCBbTlNVVUlEIGNsYXNzXSwgbmlsXTsKKyAgICAKKyAgICBhdXRvIG11dGFibGVTZXQgPSBhZG9w
dE5TKFtzdGFuZGFyZENsYXNzZXMgbXV0YWJsZUNvcHldKTsKKworICAgIGZvciAoY29uc3QgYXV0
byYgY3VzdG9tQ2xhc3MgOiBjdXN0b21DbGFzc2VzKSB7CisgICAgICAgIGNvbnN0IGF1dG8qIGNs
YXNzTmFtZSA9IGN1c3RvbUNsYXNzLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIENsYXNzIG9iamVj
dENsYXNzID0gb2JqY19sb29rVXBDbGFzcyhjbGFzc05hbWUpOworICAgICAgICBpZiAoIW9iamVj
dENsYXNzKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkluamVjdGVkQnVuZGxlOjpleHRl
bmRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgLSBDbGFzcyAlcyBpcyBub3QgYSB2YWxpZCBPYmpl
Y3RpdmUgQyBjbGFzcy5cbiIsIGNsYXNzTmFtZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorCisgICAgICAgIFttdXRhYmxlU2V0LmdldCgpIGFkZE9iamVjdDpvYmplY3RDbGFzc107
CisgICAgfQorCisgICAgbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIgPSBtdXRhYmxlU2V0Owor
fQorCitOU1NldCAqV2ViUHJvY2Vzc1Bvb2w6OmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29k
aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXIuZ2V0
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKaW5kZXggNjJmZmUyMGI4OWNkZGJmYmUxZGEyZGViYWQwZGJhYzk1NDEz
ZmNhZS4uMjFhOWVlMDhiNzRmOTc4ZjdjZDlmMjYzYWQ0Mjc4YjJhYWVhNDU2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzEsNiArNzEsNyBAQAogI2lm
IFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU011dGFibGVEaWN0aW9uYXJ5OwogT0JKQ19D
TEFTUyBOU09iamVjdDsKK09CSkNfQ0xBU1MgTlNTZXQ7CiBPQkpDX0NMQVNTIE5TU3RyaW5nOwog
I2VuZGlmCiAKQEAgLTIxMyw2ICsyMTQsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGFnZXNV
c2luZ1dlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYpIGNvbnN0OwogCiAgICAgY29u
c3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3Vy
YXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgpOyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
TlNTZXQgKmFsbG93ZWRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kaW5nKCkgY29uc3Q7CisgICAgdm9p
ZCBpbml0aWFsaXplQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGluZygpOworI2VuZGlmCiAKICAgICBE
b3dubG9hZFByb3h5JiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVu
YW1lID0geyB9KTsKICAgICBEb3dubG9hZFByb3h5JiByZXN1bWVEb3dubG9hZChXZWJQYWdlUHJv
eHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBBUEk6OkRhdGEqIHJlc3VtZURhdGEsIGNvbnN0IFN0
cmluZyYgcGF0aCk7CkBAIC03MzgsNiArNzQzLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gbV9idW5kbGVQYXJhbWV0
ZXJzOwogICAgIFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW4gbV9wbHVnaW5Qcm9jZXNz
TWFuYWdlclByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW47CisgICAgbXV0YWJsZSBSZXRh
aW5QdHI8TlNTZXQ+IG1fY2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQzOTMwYjVlN2ZkMGU2MjBmZjVkNTE4Njhh
Nzc1MzdjYTlmYTQ5MTAuLmEyNTA0NjIwOTI2MmFiMmUzZjI2ZDczNzlhYjczMTVmYmU0ZjY5Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01NDksNyArNTQ5LDEwIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmVsZW1lbnREaWRG
b2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBub2RlSW5mb3JtCiAgICAgICAg
IGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlc05vQ29w
eTpjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oZGF0YS0+Ynl0ZXMo
KSkpIGxlbmd0aDpkYXRhLT5zaXplKCkgZnJlZVdoZW5Eb25lOk5PXSk7CiAgICAgICAgIGF1dG8g
dW5hcmNoaXZlciA9IHNlY3VyZVVuYXJjaGl2ZXJGcm9tRGF0YShuc0RhdGEuZ2V0KCkpOwogICAg
ICAgICBAdHJ5IHsKLSAgICAgICAgICAgIHVzZXJPYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVP
YmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZm9yS2V5OkAidXNlck9iamVjdCJdOworICAg
ICAgICAgICAgaWYgKGF1dG8qIGFsbG93ZWRDbGFzc2VzID0gbV93ZWJWaWV3LmdldCgpLT5fcGFn
ZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWxsb3dlZENsYXNzZXNGb3JQYXJhbWV0ZXJDb2Rp
bmcoKSkKKyAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2Jq
ZWN0T2ZDbGFzc2VzOmFsbG93ZWRDbGFzc2VzIGZvcktleTpAInVzZXJPYmplY3QiXTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1c2VyT2JqZWN0ID0gW3VuYXJjaGl2ZXIgZGVj
b2RlT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZvcktleTpAInVzZXJPYmplY3QiXTsK
ICAgICAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKICAgICAgICAgICAg
IExPR19FUlJPUigiRmFpbGVkIHRvIGRlY29kZSB1c2VyIGRhdGE6ICVAIiwgZXhjZXB0aW9uKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGI0MjAzOWQwMjE4OGMzNjc0NmZkMDMzOTE1ZWNiOWJlYmY1YzAxYjguLjNmNTAxODBk
ODViYThjMTExNjM5MDEyY2MzYWI2NWRmZDY2OGM1YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxOS0wOS0xNyAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgSW5q
ZWN0ZWRCdW5kbGUgU1BJIHRvIGJldHRlciBzdXBwb3J0IE5TU2VjdXJlQ29kaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4MTAKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU1MjY1NzEzPgorCisgICAgICAgIFRoZSBlbmNvZGluZy9kZWNvZGlu
ZyByb3V0aW5lcyB1c2VkIGJ5IFdlYktpdOKAmXMgSW5qZWN0ZWRCdW5kbGVzIGFyZSBiYXNlZCBv
biBOU0NvZGluZy4KKyAgICAgICAgV2hpbGUgd2UgaGF2ZSBjaGFuZ2VkIFdlYktpdCBpbnRlcm5h
bHMgdG8gdXNlIE5TU2VjdXJlQ29kaW5nLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YKKyAgICAgICAg
aW5qZWN0ZWQgYnVuZGxlcyB0aGF0IG5lZWQgdG8gc2VyaWFsaXplIGN1c3RvbSBjbGFzc2VzIGJl
dHdlZW4gdGhlIEluamVjdGVkQnVuZGxlIGFuZAorICAgICAgICB0aGUgcmVsZXZhbnQgV2ViS2l0
IFVJUHJvY2Vzcy4KKworICAgICAgICBXZSBuZWVkIHRvIGxvY2sgZG93biB0aGlzIGNvbW11bmlj
YXRpb25zIGNoYW5uZWwgYnkgZW5mb3JjaW5nIE5TU2VjdXJlQ29kaW5nLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY3JlYXRlcyBuZXcgU1BJIHRvIGFsbG93IHRoZSBVSVByb2Nlc3MgdG8gc3BlY2lm
eSBjbGFzc2VzIHRoYXQgaXQgd2lsbCBhY2NlcHQKKyAgICAgICAgaW4gbWVzc2FnZXMgZnJvbSB0
aGUgV2ViQ29udGV0IFByb2Nlc3MgKGFuZCBJbmplY3RlZCBCdW5kbGUpLgorCisgICAgICAgIEl0
IGFkZHMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eSB0byB0aGUgV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb246CisKKyAgICAgICAgICAgIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1NldDxD
bGFzcz4gKmN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjsKKworICAgICAgICBJZiBubyBj
dXN0b20gY2xhc3NlcyBhcmUgc3BlY2lmaWVkLCB0aGUgc3RhbmRhcmQgc2VyaWFsaXphdGlvbiBw
cmltaXRpdmVzIGFyZSBzdXBwb3J0ZWQ6CisgICAgICAgICAgICBOU0FycmF5LCBOU0RhdGEsIE5T
RGF0ZSwgTlNEaWN0aW9uYXJ5LCBOU051bGwsIE5TTnVtYmVyLCBOU1NldCwgTlNTdHJpbmcsCisg
ICAgICAgICAgICBOU1RpbWVab25lLCBOU1VSTCwgYW5kIE5TVVVJRC4KKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZS5tbTogQWRkZWQuCisgICAgICAg
ICgtW0J1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90ZU9iamVjdCBkaWRHZXRGb2N1c10pOgorICAgICAg
ICAoLVtGb3JtSW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JGb2N1c2VkRWxl
bWVudDpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luIHdlYlByb2Nlc3NQbHVnSW46ZGlkQ3JlYXRlQnJv
d3NlckNvbnRleHRDb250cm9sbGVyOl0pOgorICAgICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQ
bHVnSW4gX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6d2lsbEJlZ2lu
SW5wdXRTZXNzaW9uRm9yRWxlbWVudDppbkZyYW1lOnVzZXJJc0ludGVyYWN0aW5nOl0pOgorICAg
ICAgICAoLVtCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXI6ZGlkRm9jdXNUZXh0RmllbGQ6aW5GcmFtZTpdKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZVByb3Rv
Y29sLmg6IENvcGllZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbkV4dHJhcy5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW06CisgICAgICAg
ICgrW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOmNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6XSk6CisgICAgICAgICgrW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOmNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6YW5kQ3VzdG9tUGFyYW1ldGVyQ2xhc3NlczpdKToK
KwogMjAxOS0wOS0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtXUEVdW0dUS10gVXBkYXRlIGJ1aWxkIGVudmlyb25tZW50cyB0byB1c2Ug
bGlid3BlK1dQRUJhY2tlbmQtZmRvIDEuNC4wCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2
ZDAxOGRkNTk1NjE4ZDI2MjYzMTdlOGZmZDAwZGNkZjc1Njc0MTQuLjE5NGQ1YmEzNzcwYzQ2Zjg0
YWIwMmE5MGMzOTViZmE1NjNiNzQ1YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00Mzks
NiArNDM5LDggQEAKIAkJN0E2QTJDNzAxRENDRkE4QzAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1
aXJrVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBNkEyQzZGMURDQ0Y4N0IwMEMwRDA4NSAvKiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gKi87
IH07CiAJCTdBNkEyQzcyMURDQ0ZCNTIwMEMwRDA4NSAvKiBMb2NhbFN0b3JhZ2VRdWlya0VuYWJs
ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QTZBMkM3MTFEQ0NGQjAyMDBDMEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtFbmFibGVk
Lmh0bWwgKi87IH07CiAJCTdBN0IwRTdGMUVBRkU0QzMwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBN0Iw
RTdFMUVBRkU0NTQwMDZBQjhBRSAvKiBMaW1pdFRpdGxlU2l6ZS5tbSAqLzsgfTsKKwkJN0E4OUJC
NjcyMzMxNjQzMjAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBODlCQjY1MjMzMTYzNUQwMDQyQ0Ix
RSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUubW0gKi87IH07CisJCTdBODlCQjY4MjMzMTY0M0EwMDQy
Q0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVu
ZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tICovOyB9OwogCQk3QTkwOUE3RDFEODc3NDgwMDA3RTEw
RjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBOTA5QTZGMUQ4Nzc0NzUwMDdFMTBGOCAvKiBBZmZpbmVUcmFuc2Zv
cm0uY3BwICovOyB9OwogCQk3QTkwOUE3RTFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRQb2ludC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkwOUE3
MDFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRQb2ludC5jcHAgKi87IH07CiAJCTdBOTA5QTdGMUQ4
Nzc0ODAwMDdFMTBGOCAvKiBGbG9hdFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E5MDlBNzExRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVj
dC5jcHAgKi87IH07CkBAIC0xOTYwLDYgKzE5NjIsOSBAQAogCQk3QTZBMkM2RjFEQ0NGODdCMDBD
MEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QTZBMkM3MTFEQ0NGQjAyMDBDMEQwODUgLyogTG9jYWxTdG9yYWdl
UXVpcmtFbmFibGVkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBMb2NhbFN0b3Jh
Z2VRdWlya0VuYWJsZWQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E3QjBF
N0UxRUFGRTQ1NDAwNkFCOEFFIC8qIExpbWl0VGl0bGVTaXplLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGltaXRUaXRsZVNpemUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdBODlCQjY1MjMzMTYzNUQwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVs
ZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVG
b3JtRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBODlCQjY2MjMz
MTYzNUQwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBODlCQjY5MjMzMTY1NjUwMDQyQ0IxRSAv
KiBCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdW5kbGVGb3Jt
RGVsZWdhdGVQcm90b2NvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE2
RjFEODc3NDc1MDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFmZmluZVRyYW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdBOTA5QTcwMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFBvaW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0UG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTkwOUE3MTFEODc3NDc1MDA3RTEwRjggLyog
RmxvYXRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzM4LDYgKzI3NDMsOSBA
QAogCQkJCTM3NEI3QTVFMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUu
bW0gKi8sCiAJCQkJMzc0QjdBNUYxREYzNkVFRTAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxl
Z2F0ZVBsdWdJbi5tbSAqLywKIAkJCQkzNzRCN0E2MjFERjM3MzRDMDBBQ0NCNkMgLyogQnVuZGxl
RWRpdGluZ0RlbGVnYXRlUHJvdG9jb2wuaCAqLywKKwkJCQk3QTg5QkI2NTIzMzE2MzVEMDA0MkNC
MUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tICovLAorCQkJCTdBODlCQjY2MjMzMTYzNUQwMDQy
Q0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gKi8sCisJCQkJN0E4OUJCNjkyMzMx
NjU2NTAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sLmggKi8sCiAJCQkJQTEz
RUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gKi8sCiAJCQkJQTEz
RUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi8sCiAJ
CQkJMzdBNzA5QUQxRTNFQThCMDAwQ0E1OTY5IC8qIEJ1bmRsZVJhbmdlSGFuZGxlLm1tICovLApA
QCAtNDQwNSw2ICs0NDEzLDcgQEAKIAkJCQk3Q0NFN0VCNTFBNDExQTdFMDA0NDdDNEMgLyogQmFj
a0ZvcndhcmRMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM3RkVCMjAyMDdDMEYyRTAwRDIz
Mjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NEI3QTYwMURG
MzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywK
KwkJCQk3QTg5QkI2NzIzMzE2NDMyMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjExQjg3NDM4MDAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFt
ZXRlcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0E3MDlBRTFFM0VBOEIwMDBDQTU5NjkgLyog
QnVuZGxlUmFuZ2VIYW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQzFBNDExQTky
MDA0NDdDNEMgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTQ4OTcs
NiArNDkwNiw3IEBACiAJCQkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1dG9GaWxsQXZh
aWxhYmxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MjU5NDYyMjY2QTY4QTAwMzlBQTdBIC8q
IEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0
QjdBNjExREYzNzFDRjAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBp
biBTb3VyY2VzICovLAorCQkJCTdBODlCQjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5kbGVGb3Jt
RGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJCMDFCODc0MzZGMDAw
OTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3
QTcwOUFGMUUzRUE5N0UwMENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZVBsdWdJbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5Q
YWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU2YTg1NjEzNTQwNjBmYzQ3YjQwNjJkMWExNzZiNTg0OTgxZjY4NGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1E
ZWxlZ2F0ZS5tbQpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKworI2ltcG9ydCAiQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCIKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0
cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRm9jdXNlZEVs
ZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5wdXREZWxlZ2F0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8V2ViS2l0L19X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0
YXRpYyBib29sIGRpZEdldEZvY3VzOworc3RhdGljIGJvb2wgZGlkR2V0VXNlck9iamVjdDsKK3N0
YXRpYyBpZCB1c2VyT2JqZWN0OworCitAaW50ZXJmYWNlIEJ1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90
ZU9iamVjdCA6IE5TT2JqZWN0IDxCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2NvbD4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIEJ1bmRsZUZvcm1EZWxlZ2F0ZVJlbW90ZU9iamVjdAorCistICh2b2lk
KWRpZEdldEZvY3VzCit7CisgICAgZGlkR2V0Rm9jdXMgPSB0cnVlOworfQorCitAZW5kCisKK0Bp
bnRlcmZhY2UgRm9ybUlucHV0RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLSW5wdXREZWxlZ2F0ZT4g
eworQHB1YmxpYworICAgIFJldGFpblB0cjxpZD4gX3VzZXJPYmplY3Q7Cit9CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBGb3JtSW5wdXREZWxlZ2F0ZQorCistIChfV0tGb2N1c1N0YXJ0c0lucHV0
U2Vzc2lvblBvbGljeSlfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JGb2N1c2VkRWxlbWVudDooaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4paW5mbworeworICAg
IF91c2VyT2JqZWN0ID0gaW5mby51c2VyT2JqZWN0OworICAgIGRpZEdldFVzZXJPYmplY3QgPSB0
cnVlOworICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93Owor
fQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5XaXRob3V0UmVnaXN0
ZXJlZEN1c3RvbUNsYXNzKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbRm9ybUlu
cHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHJl
dGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4iXSk7CisgICAgW1tj
b25maWd1cmF0aW9uIHByb2Nlc3NQb29sXSBfc2V0T2JqZWN0OkBZRVMgZm9yQnVuZGxlUGFyYW1l
dGVyOkAiRm9ybURlbGVnYXRlU2hvdWxkQWRkQ3VzdG9tQ2xhc3MiXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Cisg
ICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJW
aWV3IGxvYWRIVE1MU3RyaW5nOkAiPGlucHV0PjwvaW5wdXQ+PHNlbGVjdD48b3B0aW9uIHNlbGVj
dGVkPmZvbzwvb3B0aW9uPjxvcHRpb24+YmFyPC9vcHRpb24+PC9zZWxlY3Q+IiBiYXNlVVJMOm5p
bF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisg
ICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKFtbQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0
IGFsbG9jXSBpbml0XSk7CisgICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2Ug
PSBbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQcm90
b2NvbDpAcHJvdG9jb2woQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wpXTsKKyAgICBbW3dlYlZp
ZXcgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5n
ZXQoKSBpbnRlcmZhY2U6aW50ZXJmYWNlXTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKSIgY29tcGxldGlv
bkhhbmRsZXI6bmlsXTsKKworICAgIHVzZXJPYmplY3QgPSBuaWw7CisgICAgZGlkR2V0VXNlck9i
amVjdCA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRGb2N1
cyk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRVc2VyT2JqZWN0KTsKKwor
ICAgIC8vIFdlIHNob3VsZCBoYXZlIHNlcmlhbGl6ZWQgdGhlIE5TVW5pdENvbnZlcnRlckxpbmVh
ciwgc2luY2Ugd2UgZGlkIG5vdCBpbmRpY2F0ZSB3ZSB3YW50ZWQKKyAgICAvLyB0byBsaW1pdCBz
ZXJpYWxpemF0aW9uLgorICAgIEVYUEVDVF9UUlVFKFtkZWxlZ2F0ZS0+X3VzZXJPYmplY3QgaXNL
aW5kT2ZDbGFzczpbTlNVbml0Q29udmVydGVyTGluZWFyIGNsYXNzXV0pOworfQorCitURVNUKFdl
YktpdCwgV0tXZWJQcm9jZXNzUGx1Z0luV2l0aFJlZ2lzdGVyZWRDdXN0b21DbGFzcykKK3sKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0Zvcm1JbnB1dERlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSByZXRhaW5QdHIoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVu
ZGxlRm9ybURlbGVnYXRlUGx1Z0luIgorICAgICAgICBjb25maWd1cmVKU0NGb3JUZXN0aW5nOk5P
IGFuZEN1c3RvbVBhcmFtZXRlckNsYXNzZXM6W05TU2V0IHNldFdpdGhPYmplY3RzOltOU1VuaXRD
b252ZXJ0ZXJMaW5lYXIgY2xhc3NdLCBuaWxdXSk7CisgICAgW1tjb25maWd1cmF0aW9uIHByb2Nl
c3NQb29sXSBfc2V0T2JqZWN0OkBZRVMgZm9yQnVuZGxlUGFyYW1ldGVyOkAiRm9ybURlbGVnYXRl
U2hvdWxkQWRkQ3VzdG9tQ2xhc3MiXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcgX3NldElu
cHV0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPGlucHV0PjwvaW5wdXQ+PHNlbGVjdD48b3B0aW9uIHNlbGVjdGVkPmZvbzwvb3B0aW9uPjxv
cHRpb24+YmFyPC9vcHRpb24+PC9zZWxlY3Q+IiBiYXNlVVJMOm5pbF07CisgICAgW3dlYlZpZXcg
X3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgYXV0byBvYmplY3QgPSBh
ZG9wdE5TKFtbQnVuZGxlRm9ybURlbGVnYXRlUmVtb3RlT2JqZWN0IGFsbG9jXSBpbml0XSk7Cisg
ICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woQnVu
ZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wpXTsKKyAgICBbW3dlYlZpZXcgX3JlbW90ZU9iamVjdFJl
Z2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5nZXQoKSBpbnRlcmZhY2U6aW50
ZXJmYWNlXTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAg
ICAKKyAgICB1c2VyT2JqZWN0ID0gbmlsOworICAgIGRpZEdldFVzZXJPYmplY3QgPSBmYWxzZTsK
KworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0Rm9jdXMpOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0VXNlck9iamVjdCk7CisgICAgCisgICAgRVhQRUNU
X1RSVUUoW2RlbGVnYXRlLT5fdXNlck9iamVjdCBpc0tpbmRPZkNsYXNzOltOU1VuaXRDb252ZXJ0
ZXJMaW5lYXIgY2xhc3NdXSk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS1dlYlByb2Nlc3NQbHVnSW5X
aXRoVW5yZWdpc3RlcmVkQ3VzdG9tQ2xhc3MpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tGb3JtSW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBjb25maWd1
cmF0aW9uID0gcmV0YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbiIK
KyAgICAgICAgY29uZmlndXJlSlNDRm9yVGVzdGluZzpOTyBhbmRDdXN0b21QYXJhbWV0ZXJDbGFz
c2VzOltOU1NldCBzZXRXaXRoT2JqZWN0czpbTlNVbml0QWNjZWxlcmF0aW9uIGNsYXNzXSwgbmls
XV0pOworICAgIFtbY29uZmlndXJhdGlvbiBwcm9jZXNzUG9vbF0gX3NldE9iamVjdDpAWUVTIGZv
ckJ1bmRsZVBhcmFtZXRlcjpAIkZvcm1EZWxlZ2F0ZVNob3VsZEFkZEN1c3RvbUNsYXNzIl07CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxpbnB1dD48L2lucHV0PjxzZWxlY3Q+
PG9wdGlvbiBzZWxlY3RlZD5mb288L29wdGlvbj48b3B0aW9uPmJhcjwvb3B0aW9uPjwvc2VsZWN0
PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uXTsKKworICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW0J1bmRsZUZvcm1EZWxlZ2F0
ZVJlbW90ZU9iamVjdCBhbGxvY10gaW5pdF0pOworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFj
ZSAqaW50ZXJmYWNlID0gW19XS1JlbW90ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRl
cmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29sKEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3RvY29sKV07
CisgICAgW1t3ZWJWaWV3IF9yZW1vdGVPYmplY3RSZWdpc3RyeV0gcmVnaXN0ZXJFeHBvcnRlZE9i
amVjdDpvYmplY3QuZ2V0KCkgaW50ZXJmYWNlOmludGVyZmFjZV07CisKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3Vz
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisKKyAgICB1c2VyT2JqZWN0ID0gbmlsOworICAg
IGRpZEdldFVzZXJPYmplY3QgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkR2V0Rm9jdXMpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkR2V0VXNl
ck9iamVjdCk7CisKKyAgICAvLyBXZSBzaG91bGQgbm90IGhhdmUgZGVzZXJpYWxpemVkIHRoZSBO
U1VuaXRDb252ZXJ0ZXJMaW5lYXIsIHNpbmNlIHdlIGRpZCBub3Qgc3BlY2lmeSBpdCBhcyB2YWxp
ZC4KKyAgICBFWFBFQ1RfTlVMTChkZWxlZ2F0ZS0+X3VzZXJPYmplY3QpOworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxl
Rm9ybURlbGVnYXRlUGx1Z0luLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjYTlmZGM3MjEy
YzQ5ZWFkMTFiYmU3ZTBlZGY2NDk0YjA1MTU5OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1t
CkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmg+CisjaW1wb3J0IDxXZWJL
aXQvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFj
ZSBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4gOiBOU09iamVjdCA8V0tXZWJQcm9jZXNzUGx1Z0lu
LCBXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlPgorQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luIHsKKyAgICBSZXRhaW5QdHI8V0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyPiBfYnJvd3NlckNvbnRleHRDb250
cm9sbGVyOworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyPiBfcGx1
Z0luQ29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8aWQgPEJ1bmRsZUZvcm1EZWxlZ2F0ZVByb3Rv
Y29sPj4gX3JlbW90ZU9iamVjdDsKKyAgICBCT09MIF9zaG91bGRVc2VDdXN0b21DbGFzczsKK30K
KworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVy
ICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcgoreworICAgIEFTU0VSVCghX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlcik7Cisg
ICAgQVNTRVJUKCFfcGx1Z0luQ29udHJvbGxlcik7CisgICAgX2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlciA9IGJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBfcGx1Z0luQ29udHJvbGxlciA9
IHBsdWdJbkNvbnRyb2xsZXI7CisKKyAgICBpZiAoaWQgc2hvdWxkQWRkQ3VzdG9tQ2xhc3MgPSBb
cGx1Z0luQ29udHJvbGxlci5wYXJhbWV0ZXJzIHZhbHVlRm9yS2V5OkAiRm9ybURlbGVnYXRlU2hv
dWxkQWRkQ3VzdG9tQ2xhc3MiXSkgeworICAgICAgICBBU1NFUlQoW3Nob3VsZEFkZEN1c3RvbUNs
YXNzIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pOworICAgICAgICBfc2hvdWxkVXNl
Q3VzdG9tQ2xhc3MgPSBbKE5TTnVtYmVyICopc2hvdWxkQWRkQ3VzdG9tQ2xhc3MgYm9vbFZhbHVl
XTsKKyAgICB9IGVsc2UKKyAgICAgICAgX3Nob3VsZFVzZUN1c3RvbUNsYXNzID0gTk87CisKKyAg
ICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5k
bGVGb3JtRGVsZWdhdGVQcm90b2NvbCldOworICAgIF9yZW1vdGVPYmplY3QgPSBbYnJvd3NlckNv
bnRleHRDb250cm9sbGVyLl9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQcm94eVdp
dGhJbnRlcmZhY2U6aW50ZXJmYWNlXTsKKworICAgIFtfYnJvd3NlckNvbnRleHRDb250cm9sbGVy
IF9zZXRGb3JtRGVsZWdhdGU6c2VsZl07Cit9CisKKy0gKE5TT2JqZWN0IDxOU1NlY3VyZUNvZGlu
Zz4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxsQmVnaW5J
bnB1dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9k
ZSBpbkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1lIHVzZXJJc0ludGVyYWN0
aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nCit7CisgICAgaWYgKCFfc2hvdWxkVXNlQ3VzdG9t
Q2xhc3MpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBOU1VuaXRDb252ZXJ0ZXJMaW5lYXIg
KmtpbG9tZXRlcnNUb01ldGVycyA9IFtbTlNVbml0Q29udmVydGVyTGluZWFyIGFsbG9jXSBpbml0
V2l0aENvZWZmaWNpZW50OjEwMDAuMCBjb25zdGFudDowLjBdOworCisgICAgcmV0dXJuIFtraWxv
bWV0ZXJzVG9NZXRlcnMgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKV93ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEZvY3VzVGV4dEZpZWxkOihXS1dlYlByb2Nl
c3NQbHVnSW5Ob2RlSGFuZGxlICopdGV4dEZpZWxkIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lICopZnJhbWUKK3sKKyAgICBbX3JlbW90ZU9iamVjdCBkaWRHZXRGb2N1c107Cit9CisK
K0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9jb2wuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTNj
NDdhMWJlMTUyYzg1NTVmNDM3NDAyZmIwZjJmNDE3NGQ0NDkzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGVQ
cm90b2NvbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Gb3Jt
RGVsZWdhdGVQcml2YXRlLmg+CisKK0Bwcm90b2NvbCBCdW5kbGVGb3JtRGVsZWdhdGVQcm90b2Nv
bCA8TlNPYmplY3Q+CisKKy0gKHZvaWQpZGlkR2V0Rm9jdXM7CisKK0BlbmQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDFjZjcxODJlY2E4MWI4Y2E2N2U0ZjdjMmQx
NjA3MjdhZmEwODA3MGIuLmU2MzcxOTMzZTAyMTRlOGUxNGI1YjkyYTlmNjU1ZjE0ODI2NTE1M2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMzUsNyArMzUsMTQg
QEAgVEVTVChXS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiwgQ29weSkKIHsKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE5TU2V0PENsYXNzPiAq
dGVzdFNldCA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpbVUlDb2xvciBjbGFzc10sIG5pbF07Cisj
ZWxzZQorICAgIE5TU2V0PENsYXNzPiAqdGVzdFNldCA9IFtOU1NldCBzZXRXaXRoT2JqZWN0czpb
TlNDb2xvciBjbGFzc10sIG5pbF07CisjZW5kaWYKKyAgICAKICAgICBbY29uZmlndXJhdGlvbiBz
ZXRJbmplY3RlZEJ1bmRsZVVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOkAiL3BhdGgvdG8vaW5q
ZWN0ZWQud2tidW5kbGUiXV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0Q3VzdG9tQ2xhc3Nlc0Zv
clBhcmFtZXRlckNvZGVyOnRlc3RTZXRdOwogICAgIFtjb25maWd1cmF0aW9uIHNldEN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcjpAIm9yZy53ZWJraXQuV2ViQ29udGVudC5j
dXN0b20iXTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRJZ25vcmVTeW5jaHJvbm91c01lc3NhZ2lu
Z1RpbWVvdXRzRm9yVGVzdGluZzpZRVNdOwogICAgIFtjb25maWd1cmF0aW9uIHNldEF0dHJTdHls
ZUVuYWJsZWQ6WUVTXTsKQEAgLTYxLDYgKzY4LDcgQEAgVEVTVChXS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiwgQ29weSkKICAgICBhdXRvIGNvcHkgPSBhZG9wdE5TKFtjb25maWd1cmF0aW9uIGNv
cHldKTsKIAogICAgIEVYUEVDVF9UUlVFKFtbY29uZmlndXJhdGlvbiBpbmplY3RlZEJ1bmRsZVVS
TF0gaXNFcXVhbDpbY29weSBpbmplY3RlZEJ1bmRsZVVSTF1dKTsKKyAgICBFWFBFQ1RfVFJVRShb
W2NvcHkgY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyXSBpc0VxdWFsVG9TZXQ6dGVzdFNl
dF0pOwogICAgIEVYUEVDVF9UUlVFKFtbY29uZmlndXJhdGlvbiBjdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWw6W2NvcHkgY3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyXV0pOwogICAgIEVYUEVDVF9FUShbY29uZmlndXJhdGlvbiBpZ25v
cmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZ10sIFtjb3B5IGlnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nXSk7CiAgICAgRVhQRUNUX0VRKFtj
b25maWd1cmF0aW9uIGF0dHJTdHlsZUVuYWJsZWRdLCBbY29weSBhdHRyU3R5bGVFbmFibGVkXSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25F
eHRyYXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJh
cy5oCmluZGV4IGQ2ODEyMDdlZDM5ODU4Y2I3NGRjMGFiNDEwM2RjYjlkZWY5ZGZkODYuLjVkOTUx
M2I1OWU4N2QxOTIyYWZjMDFkMjk0NjAxMzllYjVmYmVhYzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oCkBAIC0yOCw0ICsyOCw1
IEBACiBAaW50ZXJmYWNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFRlc3RXZWJLaXRBUElFeHRy
YXMpCiArIChpbnN0YW5jZXR5cGUpX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFtZTsKICsgKGluc3RhbmNldHlwZSlfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWU7CisrIChpbnN0YW5jZXR5cGUpX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOihOU1N0cmluZyAqKWNsYXNzTmFt
ZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOihCT09MKXZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNs
YXNzZXM6KE5TU2V0PENsYXNzPiAqKXBhcmFtZXRlckNsYXNzZXM7CiBAZW5kCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0KaW5kZXgg
N2RkYmQ4YzQ3MzNmMmJlYmFmNDA5N2VlMWY3ODQ2NmMyMDA4Y2MyOS4uZWU2MmNiM2E4MzdlYWNk
YzBkYmQ3MDI5NWZiOWY5NjBlYThjNzkyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbQpAQCAtMzksMTEgKzM5LDE3IEBAICsg
KGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
KE5TU3RyaW5nICopY2xhc3NOYW1lCiB9CiAKICsgKGluc3RhbmNldHlwZSlfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6KE5TU3RyaW5nICopY2xhc3NOYW1lIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6KEJPT0wpdmFsdWUKK3sKKyAgICByZXR1cm4gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOmNs
YXNzTmFtZSBjb25maWd1cmVKU0NGb3JUZXN0aW5nOnZhbHVlIGFuZEN1c3RvbVBhcmFtZXRlckNs
YXNzZXM6bmlsXTsKK30KKworKyAoaW5zdGFuY2V0eXBlKV90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUgY29uZmlndXJlSlNDRm9y
VGVzdGluZzooQk9PTCl2YWx1ZSBhbmRDdXN0b21QYXJhbWV0ZXJDbGFzc2VzOihOU1NldDxDbGFz
cz4gKilwYXJhbWV0ZXJDbGFzc2VzCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CiAgICAgW3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRJbmplY3RlZEJ1bmRsZVVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiVGVzdFdlYktpdEFQSSIgd2l0aEV4
dGVuc2lvbjpAIndrYnVuZGxlIl1dOwogICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0
Q29uZmlndXJlSlNDRm9yVGVzdGluZzp2YWx1ZV07Ci0KKyAgICBbcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIHNldEN1c3RvbUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlcjogcGFyYW1ldGVyQ2xhc3Nl
c107CisgICAgCiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29s
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIFtwcm9jZXNzUG9vbCBfc2V0T2JqZWN0OmNsYXNzTmFtZSBmb3JCdW5kbGVQ
YXJhbWV0ZXI6VGVzdFdlYktpdEFQSTo6VXRpbDo6VGVzdFBsdWdJbkNsYXNzTmFtZVBhcmFtZXRl
cl07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>