<?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>172156</bug_id>
          
          <creation_ts>2017-05-15 19:29:51 -0700</creation_ts>
          <short_desc>Bring Notification.idl up to spec</short_desc>
          <delta_ts>2017-05-16 20:22:44 -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>New Bugs</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>https://notifications.spec.whatwg.org/#api</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308940</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-15 19:29:51 -0700</bug_when>
    <thetext>Bring Notification.idl up to spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309183</commentid>
    <comment_count>1</comment_count>
      <attachid>310274</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-16 10:47:41 -0700</bug_when>
    <thetext>Created attachment 310274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309186</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-16 10:50:48 -0700</bug_when>
    <thetext>Attachment 310274 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebNotification.mm:138:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309319</commentid>
    <comment_count>3</comment_count>
      <attachid>310302</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-16 15:02:31 -0700</bug_when>
    <thetext>Created attachment 310302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309320</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-16 15:05:16 -0700</bug_when>
    <thetext>Attachment 310302 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebNotification.mm:138:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309353</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-16 15:56:00 -0700</bug_when>
    <thetext>BTW, it seems there are notifications tests in web-platform-tests we may want to import.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309359</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-16 16:06:54 -0700</bug_when>
    <thetext>Ok, filed https://bugs.webkit.org/show_bug.cgi?id=172196 to track that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309446</commentid>
    <comment_count>7</comment_count>
      <attachid>310302</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-16 19:54:43 -0700</bug_when>
    <thetext>Comment on attachment 310302
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309461</commentid>
    <comment_count>8</comment_count>
      <attachid>310302</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 20:22:42 -0700</bug_when>
    <thetext>Comment on attachment 310302
Patch

Clearing flags on attachment: 310302

Committed r216967: &lt;http://trac.webkit.org/changeset/216967&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309462</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 20:22:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310274</attachid>
            <date>2017-05-16 10:47:41 -0700</date>
            <delta_ts>2017-05-16 15:02:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172156-20170516104724.patch</filename>
            <type>text/plain</type>
            <size>61441</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA1LTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgTm90aWZpY2F0aW9uLmlkbCB1
cCB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzIxNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQg
bmV3IGZpbGVzLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOb3RpZmljYXRpb246OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50Lmg6Cisg
ICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAg
QnJpbmcgdXAgdG8gc3BlYywgcmVwbGFjaW5nIERPTVN0cmluZ3Mgd2l0aCBlbnVtcyB3aGVyZSBh
cHByb3ByaWF0ZSBhbmQgYWRkaW5nCisgICAgICAgIGFkZGl0aW9uYWwgcmVhZG9ubHkgcHJvcGVy
dGllcyB0byBOb3RpZmljYXRpb24gdG8gbWlycm9yIG9wdGlvbnMgcHJvdmlkZWQKKyAgICAgICAg
aW4gY29uc3RydWN0aW9uLgorCiAyMDE3LTA1LTE2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBHTENvbnRleHRFR0w6OmNyZWF0ZVdQRUNvbnRl
eHQoKSBzaG91bGQgZmFsbCBiYWNrIHRvIHBidWZmZXItYmFzZWQgY29udGV4dHMgd2hlbiBvZmZz
Y3JlZW4gdGFyZ2V0IHByb3ZpZGVzIG5vIG5hdGl2ZSB3aW5kb3cKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAyMTY5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMjYwLDYgKzI2MCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29u
dGVudFV0aWxzLmlkbAogCiAgICAgTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5p
ZGwKKyAgICBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGwK
ICAgICBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LmlkbAogCiAgICAgTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5RXZlbnQuaWRsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxNjkzNSkKKysrIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw2
ICsyMDMsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1RyYWNrRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRs
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uY3BwCShyZXZpc2lvbiAyMTY5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzksMTggKzM5LDM2IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNs
aWVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0Fs
bG93ZWRJbmRpY2F0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Ob3RpZmljYXRpb246
Ok5vdGlmaWNhdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGl0bGUpCitS
ZWY8Tm90aWZpY2F0aW9uPiBOb3RpZmljYXRpb246OmNyZWF0ZShEb2N1bWVudCYgY29udGV4dCwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBhdXRv
IG5vdGlmaWNhdGlvbiA9IGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uKGNvbnRleHQsIHRpdGxl
LCBvcHRpb25zKSk7CisgICAgbm90aWZpY2F0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBy
ZXR1cm4gbm90aWZpY2F0aW9uOworfQorCitOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE9wdGlvbnMmIG9wdGlv
bnMpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3VtZW50KQogICAgICwgbV90aXRsZSh0aXRs
ZSkKKyAgICAsIG1fZGlyZWN0aW9uKG9wdGlvbnMuZGlyKQorICAgICwgbV9sYW5nKG9wdGlvbnMu
bGFuZykKKyAgICAsIG1fYm9keShvcHRpb25zLmJvZHkpCisgICAgLCBtX3RhZyhvcHRpb25zLnRh
ZykKICAgICAsIG1fc3RhdGUoSWRsZSkKICAgICAsIG1fdGFza1RpbWVyKHN0ZDo6bWFrZV91bmlx
dWU8VGltZXI+KFt0aGlzXSAoKSB7IHNob3coKTsgfSkpCiB7CisgICAgaWYgKCFvcHRpb25zLmlj
b24uaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gaWNvblVSTCA9IGRvY3VtZW50LmNvbXBsZXRl
VVJMKG9wdGlvbnMuaWNvbik7CisgICAgICAgIGlmIChpY29uVVJMLmlzVmFsaWQoKSkKKyAgICAg
ICAgICAgIG1faWNvbiA9IGljb25VUkw7CisgICAgfQorCiAgICAgbV90YXNrVGltZXItPnN0YXJ0
T25lU2hvdCgwX3MpOwogfQogCkBAIC01OCwzOSArNzYsNyBAQCBOb3RpZmljYXRpb246On5Ob3Rp
ZmljYXRpb24oKSAKIHsKIH0KIAotc3RhdGljIFN0cmluZyBkaXJlY3Rpb25TdHJpbmcoTm90aWZp
Y2F0aW9uOjpEaXJlY3Rpb24gZGlyZWN0aW9uKQotewotICAgIC8vIEZJWE1FOiBTdG9yaW5nIHRo
aXMgYXMgYSBzdHJpbmcgaXMgbm90IHRoZSByaWdodCB3YXkgdG8gZG8gaXQuCi0gICAgLy8gRklY
TUU6IFNlZW1zIGhpZ2hseSB1bmxpa2VseSB0aGF0IHRoaXMgZG9lcyB0aGUgcmlnaHQgdGhpbmcg
Zm9yIEF1dG8uCi0gICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKLSAgICBjYXNlIE5vdGlmaWNhdGlv
bjo6RGlyZWN0aW9uOjpBdXRvOgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhdXRvIik7
Ci0gICAgY2FzZSBOb3RpZmljYXRpb246OkRpcmVjdGlvbjo6THRyOgotICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJsdHIiKTsKLSAgICBjYXNlIE5vdGlmaWNhdGlvbjo6RGlyZWN0aW9uOjpS
dGw6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInJ0bCIpOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1SZWY8Tm90aWZpY2F0aW9u
PiBOb3RpZmljYXRpb246OmNyZWF0ZShEb2N1bWVudCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucykKLXsKLSAgICBhdXRvIG5vdGlmaWNhdGlvbiA9
IGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uKGNvbnRleHQsIHRpdGxlKSk7Ci0gICAgbm90aWZp
Y2F0aW9uLT5tX2JvZHkgPSBvcHRpb25zLmJvZHk7Ci0gICAgbm90aWZpY2F0aW9uLT5tX3RhZyA9
IG9wdGlvbnMudGFnOwotICAgIG5vdGlmaWNhdGlvbi0+bV9sYW5nID0gb3B0aW9ucy5sYW5nOwot
ICAgIG5vdGlmaWNhdGlvbi0+bV9kaXJlY3Rpb24gPSBkaXJlY3Rpb25TdHJpbmcob3B0aW9ucy5k
aXIpOwotICAgIGlmICghb3B0aW9ucy5pY29uLmlzRW1wdHkoKSkgewotICAgICAgICBhdXRvIGlj
b25VUkwgPSBjb250ZXh0LmNvbXBsZXRlVVJMKG9wdGlvbnMuaWNvbik7Ci0gICAgICAgIGlmIChp
Y29uVVJMLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIG5vdGlmaWNhdGlvbi0+bV9pY29uID0gaWNv
blVSTDsKLSAgICB9Ci0gICAgbm90aWZpY2F0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICBy
ZXR1cm4gbm90aWZpY2F0aW9uOwotfQotCi12b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpIAordm9p
ZCBOb3RpZmljYXRpb246OnNob3coKQogewogICAgIC8vIHByZXZlbnQgZG91YmxlLXNob3dpbmcK
ICAgICBpZiAobV9zdGF0ZSAhPSBJZGxlKQpAQCAtMTAyLDcgKzg4LDcgQEAgdm9pZCBOb3RpZmlj
YXRpb246OnNob3coKSAKIAogICAgIGF1dG8mIGNsaWVudCA9IE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSktPmNsaWVudCgpOwogCi0gICAgaWYgKGNsaWVudC5jaGVja1Blcm1pc3Np
b24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb25BbGxvd2VkKSB7CisgICAgaWYgKGNsaWVudC5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSAhPSBQZXJtaXNzaW9uOjpHcmFudGVkKSB7CiAgICAgICAgIGRpc3Bh
dGNoRXJyb3JFdmVudCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc4LDIzICsxNjQs
OSBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6ZGlzcGF0Y2hFcnJvckV2ZW50KCkKICAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOwogfQogCi1TdHJpbmcgTm90aWZpY2F0aW9uOjpwZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1
bWVudCkKLXsKLSAgICByZXR1cm4gcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25Db250cm9s
bGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSktPmNsaWVudCgpLmNoZWNrUGVybWlzc2lvbigmZG9j
dW1lbnQpKTsKLX0KLQotU3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbikKK2F1dG8gTm90aWZpY2F0aW9u
OjpwZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCkgLT4gUGVybWlzc2lvbgogewotICAgIHN3
aXRjaCAocGVybWlzc2lvbikgewotICAgIGNhc2UgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uQWxsb3dlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZ3JhbnRlZCIpOwotICAg
IGNhc2UgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOgotICAgICAgICByZXR1
cm4gQVNDSUlMaXRlcmFsKCJkZW5pZWQiKTsKLSAgICBjYXNlIE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbk5vdEFsbG93ZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImRlZmF1
bHQiKTsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsK
KyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkp
LT5jbGllbnQoKS5jaGVja1Blcm1pc3Npb24oJmRvY3VtZW50KTsKIH0KIAogdm9pZCBOb3RpZmlj
YXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPE5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgJKHJldmlz
aW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsOCBAQAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJO
b3RpZmljYXRpb25EaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9u
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJXcml0
aW5nTW9kZS5oIgpAQCAtNDksNyArNTAsOSBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2s7CiBjbGFzcyBOb3RpZmljYXRpb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxO
b3RpZmljYXRpb24+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZW51bSBjbGFzcyBEaXJlY3Rpb24geyBBdXRvLCBMdHIsIFJ0bCB9OworICAgIHVzaW5nIFBl
cm1pc3Npb24gPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOworICAgIHVzaW5nIERpcmVjdGlvbiA9
IE5vdGlmaWNhdGlvbkRpcmVjdGlvbjsKKwogICAgIHN0cnVjdCBPcHRpb25zIHsKICAgICAgICAg
RGlyZWN0aW9uIGRpcjsKICAgICAgICAgU3RyaW5nIGxhbmc7CkBAIC02NCwyMSArNjcsMTQgQEAg
cHVibGljOgogICAgIHZvaWQgc2hvdygpOwogICAgIHZvaWQgY2xvc2UoKTsKIAotICAgIGNvbnN0
IFVSTCYgaWNvblVSTCgpIGNvbnN0IHsgcmV0dXJuIG1faWNvbjsgfQogICAgIGNvbnN0IFN0cmlu
ZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CisgICAgRGlyZWN0aW9uIGRpcigp
IGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uOyB9CiAgICAgY29uc3QgU3RyaW5nJiBib2R5KCkg
Y29uc3QgeyByZXR1cm4gbV9ib2R5OyB9CiAgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9sYW5nOyB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIGRpcigpIGNvbnN0IHsgcmV0
dXJuIG1fZGlyZWN0aW9uOyB9Ci0gICAgdm9pZCBzZXREaXIoY29uc3QgU3RyaW5nJiBkaXIpIHsg
bV9kaXJlY3Rpb24gPSBkaXI7IH0KLQotICAgIGNvbnN0IFN0cmluZyYgcmVwbGFjZUlkKCkgY29u
c3QgeyByZXR1cm4gbV90YWc7IH0KLSAgICB2b2lkIHNldFJlcGxhY2VJZChjb25zdCBTdHJpbmcm
IHJlcGxhY2VJZCkgeyBtX3RhZyA9IHJlcGxhY2VJZDsgfQotCiAgICAgY29uc3QgU3RyaW5nJiB0
YWcoKSBjb25zdCB7IHJldHVybiBtX3RhZzsgfQotICAgIHZvaWQgc2V0VGFnKGNvbnN0IFN0cmlu
ZyYgdGFnKSB7IG1fdGFnID0gdGFnOyB9CisgICAgY29uc3QgVVJMJiBpY29uKCkgY29uc3QgeyBy
ZXR1cm4gbV9pY29uOyB9CiAKLSAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fZGlyZWN0aW9uID09ICJydGwiID8gUlRMIDogTFRSOyB9CisgICAgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbiA9PSBEaXJlY3Rpb246
OlJ0bCA/IFJUTCA6IExUUjsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaENs
aWNrRXZlbnQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoQ2xvc2VFdmVudCgp
OwpAQCAtODcsOCArODMsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZp
bmFsaXplKCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHBlcm1pc3Npb24oRG9jdW1lbnQmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uKTsKKyAgICBzdGF0aWMgUGVybWlzc2lvbiBwZXJtaXNzaW9u
KERvY3VtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQm
LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKTsKIAogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQpAQCAt
OTcsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKIHBy
aXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7
CisgICAgTm90aWZpY2F0aW9uKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
T3B0aW9ucyYpOwogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBOb3RpZmljYXRpb25FdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KIApAQCAtMTA5LDEyICsxMDQsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IGZpbmFsIHsgZGVyZWYoKTsgfQogCi0gICAgVVJMIG1faWNvbjsKICAgICBTdHJpbmcgbV90aXRs
ZTsKLSAgICBTdHJpbmcgbV9ib2R5OwotICAgIFN0cmluZyBtX2RpcmVjdGlvbjsKKyAgICBEaXJl
Y3Rpb24gbV9kaXJlY3Rpb247CiAgICAgU3RyaW5nIG1fbGFuZzsKKyAgICBTdHJpbmcgbV9ib2R5
OwogICAgIFN0cmluZyBtX3RhZzsKKyAgICBVUkwgbV9pY29uOwogCiAgICAgZW51bSBTdGF0ZSB7
IElkbGUsIFNob3dpbmcsIENsb3NlZCB9OwogICAgIFN0YXRlIG1fc3RhdGUgeyBJZGxlIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmlkbAkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDI3
ICszNiwzOSBAQAogICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0aXRsZSwgb3B0aW9uYWwgTm90
aWZpY2F0aW9uT3B0aW9ucyBvcHRpb25zKSwKICAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPURvY3Vt
ZW50LAogXSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIDogRXZlbnRUYXJnZXQgewotICAgIHZvaWQg
c2hvdygpOwotICAgIHZvaWQgY2xvc2UoKTsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRp
YyByZWFkb25seSBhdHRyaWJ1dGUgTm90aWZpY2F0aW9uUGVybWlzc2lvbiBwZXJtaXNzaW9uOwor
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24ob3B0
aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPyBkZXByZWNhdGVkQ2FsbGJhY2sp
OyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZTxOb3RpZmljYXRpb25QZXJt
aXNzaW9uPi4KIAotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgcGVybWlzc2lvbjsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRp
YyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjaz8gY2FsbGJhY2spOworICAgIC8vIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBtYXhBY3Rpb25zOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNs
aWNrOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vdGlm
aWNhdGlvbkRpcmVjdGlvbiBkaXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBs
YW5nOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYm9keTsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhZzsKKyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgVVNW
U3RyaW5nIGltYWdlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaWNvbjsKKyAg
ICAvLyByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGJhZGdlOworICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgc291bmQ7CisgICAgLy8gW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTx1bnNpZ25lZCBsb25nPiB2aWJyYXRlOworICAgIC8vIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01UaW1lU3RhbXAgdGltZXN0YW1wOworICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHJlbm90aWZ5OworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIHNpbGVudDsKKyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiByZXF1aXJl
SW50ZXJhY3Rpb247CisgICAgLy8gW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkg
ZGF0YTsKKyAgICAvLyBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5
PE5vdGlmaWNhdGlvbkFjdGlvbj4gYWN0aW9uczsKKworICAgIHZvaWQgY2xvc2UoKTsKKworICAg
IC8vIExlZ2FjeS4gTm90IGluIHRoZSBzcGVjaWZpY2F0aW9uLgorICAgIHZvaWQgc2hvdygpOwor
CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNsb3NlOwogICAgIFtJbXBsZW1lbnRlZEFz
PW9uc2hvd10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmRpc3BsYXk7CiAgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbnNob3c7Ci0KLSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhZzsKLX07
Ci0KLVsKLSAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TCi1dIGVudW0gTm90aWZpY2F0aW9u
RGlyZWN0aW9uIHsKLSAgICAiYXV0byIsCi0gICAgImx0ciIsCi0gICAgInJ0bCIKIH07CiAKIFsK
QEAgLTY2LDUgKzc4LDIzIEBACiAgICAgRE9NU3RyaW5nIGxhbmcgPSAiIjsKICAgICBET01TdHJp
bmcgYm9keSA9ICIiOwogICAgIERPTVN0cmluZyB0YWcgPSAiIjsKLSAgICBET01TdHJpbmcgaWNv
bjsKKyAgICAvLyBVU1ZTdHJpbmcgaW1hZ2U7CisgICAgVVNWU3RyaW5nIGljb247CisgICAgLy8g
VVNWU3RyaW5nIGJhZGdlOworICAgIC8vIFVTVlN0cmluZyBzb3VuZDsKKyAgICAvLyBWaWJyYXRl
UGF0dGVybiB2aWJyYXRlOworICAgIC8vIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7CisgICAgLy8g
Ym9vbGVhbiByZW5vdGlmeSA9IGZhbHNlOworICAgIC8vIGJvb2xlYW4gc2lsZW50ID0gZmFsc2U7
CisgICAgLy8gYm9vbGVhbiByZXF1aXJlSW50ZXJhY3Rpb24gPSBmYWxzZTsKKyAgICAvLyBhbnkg
ZGF0YSA9IG51bGw7CisgICAgLy8gc2VxdWVuY2U8Tm90aWZpY2F0aW9uQWN0aW9uPiBhY3Rpb25z
ID0gW107Cit9OworCitbCisgICAgQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUworXSBlbnVtIE5v
dGlmaWNhdGlvbkRpcmVjdGlvbiB7CisgICAgImF1dG8iLAorICAgICJsdHIiLAorICAgICJydGwi
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDE1ICs0MCwxMCBAQCBjbGFzcyBOb3RpZmljYXRpb247
CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBQYWdlOwogY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFZvaWRDYWxsYmFjazsKIAogY2xhc3Mg
Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBlbnVtIFBlcm1pc3Npb24gewotICAg
ICAgICBQZXJtaXNzaW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25z
Ci0gICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3QgeWV0IGFsbG93
ZWQKLSAgICAgICAgUGVybWlzc2lvbkRlbmllZCAvLyBVc2VyIGhhcyBleHBsaWNpdGx5IGRlbmll
ZCBwZXJtaXNzaW9uCi0gICAgfTsKKyAgICB1c2luZyBQZXJtaXNzaW9uID0gTm90aWZpY2F0aW9u
UGVybWlzc2lvbjsKIAogICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUgc2hv
d24uCiAgICAgdmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uKikgPSAwOwpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25EaXJlY3Rpb24uaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9uIHsKKyAgICBBdXRv
LAorICAgIEx0ciwKKyAgICBSdGwKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b24uaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb24geworICAgIERlZmF1bHQsCisgICAgRGVu
aWVkLAorICAgIEdyYW50ZWQKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
bi5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywKK10g
ZW51bSBOb3RpZmljYXRpb25QZXJtaXNzaW9uIHsKKyAgICAiZGVmYXVsdCIsCisgICAgImRlbmll
ZCIsCisgICAgImdyYW50ZWQiCit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2suaAkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIAor
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtMzUsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVm
Q291bnRlZDxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2soKSB7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlRXZlbnQoY29uc3QgU3RyaW5nJiBwZXJtaXNzaW9uKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGhhbmRsZUV2ZW50KE5vdGlmaWNhdGlvbjo6UGVybWlzc2lvbikgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjay5pZGwJKHJldmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw1ICsyNSw0IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1O
T1RJRklDQVRJT05TLAotXSBjYWxsYmFjayBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2sg
PSB2b2lkIChET01TdHJpbmcgcGVybWlzc2lvbik7Ci0KK10gY2FsbGJhY2sgTm90aWZpY2F0aW9u
UGVybWlzc2lvbkNhbGxiYWNrID0gdm9pZCAoTm90aWZpY2F0aW9uUGVybWlzc2lvbiBwZXJtaXNz
aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzIxMiw2ICszMjEy
LDEwIEBACiAJCTdDQzAxRDBCMUU0QTdCMDQwMEU1MjlDQyAvKiBKU0RPTUNvbnN0cnVjdG9yQmFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzBD
RUYyRjFFNEE1OEFEMDA4REVCODAgLyogSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwICovOyB9Owog
CQk3Q0MwMUQwQzFFNEE3QjA0MDBFNTI5Q0MgLyogSlNET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzBD
RUYzMDFFNEE1OEYxMDA4REVCODAgLyogSlNET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudC5jcHAg
Ki87IH07CiAJCTdDQzI4OURGMUFBMEZFNUQwMDlBOUNFMyAvKiBVUkxSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRTM5MzgxNzk3NDI3
NDAwMUQ3NTgwIC8qIFVSTFJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0NDMkRERkIxRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNh
dGlvblBlcm1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDQzJEREY4MUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0ND
MkRFMDAxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0MyRERGRTFFQzk1
QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcCAqLzsgfTsKKwkJN0ND
MkRFMDExRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDMkRERkYxRUM5NUE0
NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oICovOyB9OworCQk3Q0MyREUw
MzFFQ0EwNEE1MDAyN0I3NzQgLyogTm90aWZpY2F0aW9uRGlyZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0MyREUwMjFFQ0EwNEE1MDAyN0I3
NzQgLyogTm90aWZpY2F0aW9uRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVw
aG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0M1NjRCNjE4QkFCRUE2MDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVyRGV0
ZWN0b3IuaCAqLzsgfTsKIAkJN0NDNTY0QkExOEJBQzcyMDAwMUI5NjUyIC8qIFRlbGVwaG9uZU51
bWJlckRldGVjdG9yQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NDNTY0QjkxOEJBQzcyMDAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRl
dGVjdG9yQ29jb2EuY3BwICovOyB9OwogCQk3Q0M2OTk0MDE5MUVDNUY1MDBBRjIyNzAgLyogSlNX
ZWJLaXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NDNjk5M0UxOTFFQzVGNTAwQUYyMjcwIC8qIEpTV2ViS2l0TmFtZXNwYWNlLmNw
cCAqLzsgfTsKQEAgLTExMjMwLDYgKzExMjM0LDExIEBACiAJCTdDOURCRkVDMUE5QzQ5QjEwMDBE
NkIyNSAvKiBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0I1Q0EzRDFFNTI1QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeUV4
cHJlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0I1Q0EzRTFFNTI1
QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUV4cHJlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0NDMkRERjgxRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1p
c3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3Q0MyRERGQTFFQzk0MTVBMDAyN0I3NzQgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQzJEREZFMUVDOTVBNDQwMDI3Qjc3NCAvKiBK
U05vdGlmaWNhdGlvblBlcm1pc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0NDMkRERkYxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVy
bWlzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05vdGlmaWNhdGlv
blBlcm1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NDMkRFMDIxRUNB
MDRBNTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvbkRpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
b3RpZmljYXRpb25EaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0ND
NTY0QjYxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzU2NEI5MThCQUM3MjAwMDFCOTY1MiAvKiBU
ZWxlcGhvbmVOdW1iZXJEZXRlY3RvckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRlbGVwaG9uZU51bWJlckRldGVjdG9yQ29jb2EuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3Q0M2OTkzRTE5MUVDNUY1MDBBRjIyNzAgLyogSlNXZWJLaXRO
YW1lc3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJL
aXROYW1lc3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0NzAsNiAr
MTc0NzksOSBAQAogCQkJCTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25D
bGllbnQuaCAqLywKIAkJCQkzMTI4Q0E2NzE0NzMzMTUyMDA3NEM3MkEgLyogTm90aWZpY2F0aW9u
Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJMzEyOENBNkExNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuaCAqLywKKwkJCQk3Q0MyREUwMjFFQ0EwNEE1MDAyN0I3NzQgLyog
Tm90aWZpY2F0aW9uRGlyZWN0aW9uLmggKi8sCisJCQkJN0NDMkRERjgxRUM5NDE1QTAwMjdCNzc0
IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCAqLywKKwkJCQk3Q0MyRERGQTFFQzk0MTVBMDAy
N0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGwgKi8sCiAJCQkJMzFFQzFEQUMxNEZG
MjZFQTAwQzk0NjYyIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oICovLAogCQkJ
CTMxRUMxRDUwMTRGRUZEMDgwMEM5NDY2MiAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2suaWRsICovLAogCQkJKTsKQEAgLTE3NDgxLDYgKzE3NDkzLDggQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTMzNTAzQzlGMTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5jcHAgKi8s
CiAJCQkJMzM1MDNDQTAxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmggKi8sCisJ
CQkJN0NDMkRERkUxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5j
cHAgKi8sCisJCQkJN0NDMkRERkYxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVy
bWlzc2lvbi5oICovLAogCQkJCTMxRUMxRTI2MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNh
dGlvblBlcm1pc3Npb25DYWxsYmFjay5jcHAgKi8sCiAJCQkJMzFFQzFFMjcxNEZGNjBFRTAwQzk0
NjYyIC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmggKi8sCiAJCQkpOwpAQCAt
MjczODgsNiArMjc0MDIsNyBAQAogCQkJCTUxMjZFNkJDMEEyRTNCMTIwMDVDMjlGQSAvKiBJY29u
RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjk1Mzk4MTMyOUEzQzgwMEI5MkQwNCAv
KiBJY29uRGF0YWJhc2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxRUNCRTBDOTFDOTA0
MDBEQzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3Q0My
REUwMzFFQ0EwNEE1MDAyN0I3NzQgLyogTm90aWZpY2F0aW9uRGlyZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTNGMTQ1NDBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFFMUVDQzEwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNzE0RUE4MUNGNEU0QjEwMDQ3MjNDNCAvKiBJREJBY3RpdmVE
T01PYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NjMsNiArMjc3NzgsNyBAQAogCQkJCThF
NEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDBGMDE1MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJFM0JDMENCMTE3RDNFMDgwMEI5NDA5QSAvKiBKU0ZpbGVFcnJvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJN0NDMkRFMDExRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVy
bWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1RjExMjJFMUU4NzAwM0FBQkRBIC8q
IEpTRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMEYwMTcwRTBBMTg5NTAw
RkQwNEUzIC8qIEpTRmlsZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFOTRGNDNDMTE5MjA3
REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0ODEsNiAr
Mjk0OTcsNyBAQAogCQkJCTQzNjcwOEVFMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWFy
a2VyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDcwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR01hc2tFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3Q0MyRERGQjFFQzk0MTVB
MDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDgwNkU1N0ExMjg5MzA0NTAwN0NFRDMyIC8qIFNWR01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDhDQTNENDQxMjg5NEEzODAwRkZGMjYwIC8qIFNWR01hdHJpeFRlYXJPZmYuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMTY5NSw2ICszMTcxMiw3IEBACiAJCQkJODM2RDAzMkYxREE4
QTEzQTAwRkZEOTZCIC8qIEpTRXZlbnRJbml0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcw
RDY5MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTBGRUYzNzJCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0NDMkRFMDAxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9u
UGVybWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkE3MDMzMjVDOUQwQjZDRENCQzRE
NzcgLyogSlNFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwOTAyMDBFOTFC
OEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMzE0QUNFQjEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTctMDUtMTUg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBCcmluZyBOb3RpZmljYXRp
b24uaWRsIHVwIHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MjE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXS05vdGlmaWNhdGlv
bkNvcHlEaXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb246OmRpcik6CisgICAgICAgICogVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzaG93Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU5v
dGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgorICAgICAgICBV
cGRhdGUgZm9yIGVudW0gdnMgU3RyaW5nIHVzYWdlLgorCiAyMDE3LTA1LTE2ICBUaW1vdGh5IEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIGFkanVzdCB3aGljaCBlZGdlcyBhcmUgYWZmZWN0ZWQgYnkgc2FmZSBhcmVhIGluc2V0
cwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGF5
bWVudEhlYWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgpAQCAtNzI0LDYgKzcy
NSwxNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok5lCiAgICAgPjsK
IH07CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLAor
ICAgICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb246OkF1dG8sCisgICAgICAgIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbjo6THRyLAorICAgICAgICBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EaXJlY3Rpb246OlJ0bAorICAgID47Cit9OworI2VuZGlmCisKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
SW5kZXhlZERCOjpHZXRBbGxUeXBlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lv
biAyMTY5MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTc5NCw3ICs1Nzk0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3ROb3RpZmljYXRpb25QZQogICAgICAgICByZXF1ZXN0LT5kZW55KCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywg
Y29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmln
aW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQordm9pZCBXZWJQYWdlUHJveHk6OnNo
b3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBj
b25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxh
bmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKIHsKICAgICBtX3Byb2Nlc3MtPnBy
b2Nlc3NQb29sKCkuc3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCktPnNo
b3codGhpcywgdGl0bGUsIGJvZHksIGljb25VUkwsIHRhZywgbGFuZywgZGlyLCBvcmlnaW5TdHJp
bmcsIG5vdGlmaWNhdGlvbklEKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHJldmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTczLDYgKzE3Myw3IEBAIHN0cnVj
dCBXaW5kb3dGZWF0dXJlczsKIAogZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50OwogZW51bSBjbGFz
cyBIYXNJbnNlY3VyZUNvbnRlbnQ7CitlbnVtIGNsYXNzIE5vdGlmaWNhdGlvbkRpcmVjdGlvbjsK
IGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWU+IGNsYXNzIEJv
eEV4dGVudDsKQEAgLTEzMzQsNyArMTMzNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKik7CiAKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZyk7Ci0gICAgdm9p
ZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9k
eSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5n
JiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3Qg
U3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkws
IGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKTsKICAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCk7CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2
NF90PiYgbm90aWZpY2F0aW9uSURzKTsKICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMTY5MzUpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0yNzQsNyArMjc0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAog
ICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24odWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKLSAgICBT
aG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJM
LCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywgU3RyaW5nIGRpciwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIFNob3dOb3RpZmljYXRpb24oU3Ry
aW5nIHRpdGxlLCBTdHJpbmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmlu
ZyBsYW5nLCBlbnVtIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICBDYW5jZWxOb3Rp
ZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAgQ2xlYXJOb3RpZmljYXRpb25z
KFZlY3Rvcjx1aW50NjRfdD4gbm90aWZpY2F0aW9uSURzKQogICAgIERpZERlc3Ryb3lOb3RpZmlj
YXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5jcHAJKHJldmlzaW9uIDIxNjkzNSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlv
bkRpcmVjdGlvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC02NCw3ICs2Niwx
NCBAQCBXS1N0cmluZ1JlZiBXS05vdGlmaWNhdGlvbkNvcHlMYW5nKFdLTm90CiAKIFdLU3RyaW5n
UmVmIFdLTm90aWZpY2F0aW9uQ29weURpcihXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24p
CiB7Ci0gICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChub3RpZmljYXRpb24pLT5kaXIoKSk7
CisgICAgc3dpdGNoICh0b0ltcGwobm90aWZpY2F0aW9uKS0+ZGlyKCkpIHsKKyAgICBjYXNlIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbjo6QXV0bzoKKyAgICAgICAgcmV0dXJuIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhdXRvIik7CisgICAgY2FzZSBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EaXJlY3Rpb246Okx0cjoKKyAgICAgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJsdHIiKTsKKyAgICBjYXNlIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVj
dGlvbjo6UnRsOgorICAgICAgICByZXR1cm4gV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
InJ0bCIpOworICAgIH0KIH0KIAogV0tTZWN1cml0eU9yaWdpblJlZiBXS05vdGlmaWNhdGlvbkdl
dFNlY3VyaXR5T3JpZ2luKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uLmNwcAkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViTm90aWZpY2F0aW9u
OjpXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5
LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcm
IGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCitXZWJOb3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihj
b25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNv
blVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklEKQogICAgIDogbV90aXRsZSh0aXRsZSkKICAgICAsIG1fYm9keShi
b2R5KQogICAgICwgbV9pY29uVVJMKGljb25VUkwpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaAkocmV2
aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDExICszMSwxNSBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAor
bmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247Cit9
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJOb3RpZmljYXRpb24gOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpOb3RpZmljYXRpb24+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYg
dGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBT
dHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIHN0YXRp
YyBSZWY8V2ViTm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBj
b25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9k
eSwgaWNvblVSTCwgdGFnLCBsYW5nLCBkaXIsIG9yaWdpblN0cmluZywgbm90aWZpY2F0aW9uSUQp
KTsKICAgICB9CkBAIC00NSwyMCArNDksMjAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYg
aWNvblVSTCgpIGNvbnN0IHsgcmV0dXJuIG1faWNvblVSTDsgfQogICAgIGNvbnN0IFN0cmluZyYg
dGFnKCkgY29uc3QgeyByZXR1cm4gbV90YWc7IH0KICAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBj
b25zdCB7IHJldHVybiBtX2xhbmc7IH0KLSAgICBjb25zdCBTdHJpbmcmIGRpcigpIGNvbnN0IHsg
cmV0dXJuIG1fZGlyOyB9CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpcigp
IGNvbnN0IHsgcmV0dXJuIG1fZGlyOyB9CiAgICAgQVBJOjpTZWN1cml0eU9yaWdpbiogb3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KICAgICAKICAgICB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KIAogcHJp
dmF0ZToKLSAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3Ry
aW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25z
dCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0
cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIFdlYk5vdGlmaWNhdGlvbihjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVS
TCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOwogCiAgICAgU3RyaW5nIG1fdGl0bGU7CiAgICAgU3RyaW5nIG1fYm9keTsK
ICAgICBTdHJpbmcgbV9pY29uVVJMOwogICAgIFN0cmluZyBtX3RhZzsKICAgICBTdHJpbmcgbV9s
YW5nOwotICAgIFN0cmluZyBtX2RpcjsKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rp
b24gbV9kaXI7CiAgICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwogICAg
IHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAyMTY5MzUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5Ojpwb3B1bGEKICAgICB9CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5OjpzaG93KFdlYlBhZ2VQcm94eSogd2ViUGFnZSwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmlu
ZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgdWludDY0X3QgcGFnZU5vdGlmaWNhdGlvbklEKQordm9pZCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3coV2ViUGFnZVByb3h5KiB3ZWJQYWdlLCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVS
TCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uRGlyZWN0aW9uIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90
IHBhZ2VOb3RpZmljYXRpb25JRCkKIHsKICAgICB1aW50NjRfdCBnbG9iYWxOb3RpZmljYXRpb25J
RCA9IGdlbmVyYXRlR2xvYmFsTm90aWZpY2F0aW9uSUQoKTsKICAgICBSZWZQdHI8V2ViTm90aWZp
Y2F0aW9uPiBub3RpZmljYXRpb24gPSBXZWJOb3RpZmljYXRpb246OmNyZWF0ZSh0aXRsZSwgYm9k
eSwgaWNvblVSTCwgdGFnLCBsYW5nLCBkaXIsIG9yaWdpblN0cmluZywgZ2xvYmFsTm90aWZpY2F0
aW9uSUQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgJKHJl
dmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIE5vdGlmaWNhdGlv
bkRpcmVjdGlvbjsKK30KKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwpAQCAtNTQsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFs
aXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlckJhc2UqKTsKICAgICB2b2lk
IHBvcHVsYXRlQ29weU9mTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoSGFzaE1hcDxTdHJpbmcsIGJv
b2w+Jik7CiAKLSAgICB2b2lkIHNob3coV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmlu
ZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgdWludDY0X3QgcGFnZU5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lk
IHNob3coV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJp
bmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBv
cmlnaW5TdHJpbmcsIHVpbnQ2NF90IHBhZ2VOb3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBjYW5j
ZWwoV2ViUGFnZVByb3h5KiwgdWludDY0X3QgcGFnZU5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhXZWJQYWdlUHJveHkqKTsKICAgICB2b2lkIGNsZWFyTm90aWZp
Y2F0aW9ucyhXZWJQYWdlUHJveHkqLCBjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBwYWdlTm90aWZp
Y2F0aW9uSURzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCShyZXZpc2lvbiAyMTY5MzUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsMTAgKzcxLDEwIEBAIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm8KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKIHZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVl
c3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKLSAgICBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b24gcGVybWlzc2lvbiA9IHBlcm1pc3Npb25MZXZlbChvcmlnaW4pOwotICAgIGlmIChwZXJtaXNz
aW9uICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQpIHsKKyAgICBh
dXRvIHBlcm1pc3Npb24gPSBwZXJtaXNzaW9uTGV2ZWwob3JpZ2luKTsKKyAgICBpZiAocGVybWlz
c2lvbiAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlZmF1bHQpIHsKICAgICAg
ICAgaWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5vdGlm
aWNhdGlvbjo6cGVybWlzc2lvblN0cmluZyhwZXJtaXNzaW9uKSk7CisgICAgICAgICAgICBjYWxs
YmFjay0+aGFuZGxlRXZlbnQocGVybWlzc2lvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTExNCwxMiArMTE0LDEyIEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBOb3Rp
ZmljYXQKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBpZiAoIW1fcGFnZS0+Y29y
ZVBhZ2UoKS0+c2V0dGluZ3MoKS5ub3RpZmljYXRpb25zRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICByZXR1cm4g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQ7CiAgICAgCiAgICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdl
cj4oKS0+cG9saWN5Rm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKHNlY3VyaXR5T3JpZ2luKTsKLSAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uRGVuaWVkOworICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b246OkRlbmllZDsKICNlbmRpZgogfQogCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZQogICAgIGlmICghY2FsbGJhY2spCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uOjpw
ZXJtaXNzaW9uU3RyaW5nKGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25B
bGxvd2VkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkKSk7CisgICAgY2Fs
bGJhY2stPmhhbmRsZUV2ZW50KGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0SUQpOwogICAgIFVOVVNFRF9QQVJBTShhbGxv
d2VkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAJKHJldmlzaW9u
IDIxNjkzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDE3ICsxMDUsMTcg
QEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaQogewogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4gTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAgICAgICAgcmV0dXJuIE5vdGlm
aWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVmYXVsdDsKIAogICAgIEFTU0VSVCghb3JpZ2lu
LT5pc1VuaXF1ZSgpKTsKICAgICBhdXRvIGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdp
bi0+dG9SYXdTdHJpbmcoKSk7CiAgICAgaWYgKGl0ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkp
Ci0gICAgICAgIHJldHVybiBpdC0+dmFsdWUgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25BbGxvd2VkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAg
ICByZXR1cm4gaXQtPnZhbHVlID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFu
dGVkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQ7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShvcmlnaW4pOwogI2VuZGlmCiAgICAgCi0gICAgcmV0dXJuIE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgcmV0dXJuIE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbjo6RGVmYXVsdDsKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKQpAQCAtMTUwLDcgKzE1MCw3
IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmkKICAgICBhdXRvIGl0
ID0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBpdC0+dmFs
dWUuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNh
dGlvbi0+aWNvblVSTCgpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRp
b24tPmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlv
bklEKSwgcGFnZS0+cGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uKG5v
dGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNhdGlvbi0+
aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24tPmxhbmco
KSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklEKSwgcGFn
ZS0+cGFnZUlEKCkpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAJ
KHJldmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyAr
OTAsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzCiBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1p
c3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpZiAoIWNvbnRl
eHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbjo6RGVuaWVkOwogICAgIHJldHVybiBtX3BhZ2UtPm5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5wZXJtaXNzaW9uTGV2ZWwoY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQu
aAkocmV2aXNpb24gMjE2OTM1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyAr
NTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJt
aXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKICAgICBi
b29sIGhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopIGNvbnN0IG92ZXJyaWRlOwotICAgIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92
ZXJyaWRlOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVj
a1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwog
ICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMTY5MzUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyNyBAQAorMjAxNy0wNS0xNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQu
b3JnPgorCisgICAgICAgIEJyaW5nIE5vdGlmaWNhdGlvbi5pZGwgdXAgdG8gc3BlYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQubW06CisgICAgICAgIChnZW5lcmF0ZU5vdGlmaWNhdGlvbklEKToK
KyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6c2hvdyk6CisgICAgICAgIChXZWJOb3Rp
ZmljYXRpb25DbGllbnQ6OmNhbmNlbCk6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25DbGllbnQ6
OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5v
dGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZCk6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25DbGll
bnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
aGFzUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25D
bGllbnQ6OmNoZWNrUGVybWlzc2lvbik6CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGlj
eUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3Rl
bmVyIGRlbnldKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5tbToKKyAgICAg
ICAgKC1bV2ViTm90aWZpY2F0aW9uIGljb25VUkxdKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0
aW9uIGRpcl0pOgorICAgICAgICBTaW1wbGlmeSAjaWZkZWZzIGFuZCB1cGRhdGUgZm9yIGVudW0g
dnMgU3RyaW5nIHVzYWdlLgorCiAyMDE3LTA1LTE1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGRlbGV0ZSBhc3luY2hyb25vdXNs
eSBkZWNvZGVkIGZyYW1lcyBmb3IgbGFyZ2UgaW1hZ2VzIGlmIHRoZWlyIGNsaWVudHMgYXJlIGlu
IHRoZSB2aWV3cG9ydApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDIxNjkzNSkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywyMSArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVu
dC5oPgotCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKICNpbXBvcnQgPFdlYkNvcmUvTm90
aWZpY2F0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogI2lt
cG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBOb3Rp
ZmljYXRpb247Ci1jbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7Ci1jbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwotY2xhc3MgVm9pZENhbGxiYWNrOwotfQogCiBAY2xhc3Mg
V2ViTm90aWZpY2F0aW9uOwogQGNsYXNzIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyOwpA
QCAtNDgsMTAgKzQwLDggQEAgcHVibGljOgogICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJW
aWV3ICopOwogICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KIAot
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzLgog
ICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRp
b24qKTsKLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmlj
YXRpb24qKSBvdmVycmlkZTsKQEAgLTU5LDI0ICs0OSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y2xlYXJOb3RpZmljYXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVy
cmlkZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3Rp
ZmljYXRpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQoKSBvdmVycmlkZTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBSZWZQdHI8
V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSBvdmVycmlkZTsKLSNl
bmRpZgogICAgIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZSB7IH0KICAgICBib29sIGhhc1BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVj
a1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwog
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViTm90aWZpY2F0aW9uUG9saWN5TGlz
dGVuZXIgKik7Ci0jZW5kaWYKIAogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKLSNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKICAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb24+
LCBSZXRhaW5QdHI8V2ViTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25NYXA7CiAgICAgCiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
PiwgVmVjdG9yPFJldGFpblB0cjxXZWJOb3RpZmljYXRpb24+Pj4gTm90aWZpY2F0aW9uQ29udGV4
dE1hcDsKICAgICBOb3RpZmljYXRpb25Db250ZXh0TWFwIG1fbm90aWZpY2F0aW9uQ29udGV4dE1h
cDsKIAogICAgIGJvb2wgbV9ldmVyUmVxdWVzdGVkUGVybWlzc2lvbiB7IGZhbHNlIH07Ci0jZW5k
aWYKIH07CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQkocmV2aXNpb24gMjE2OTM1
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJXZWJOb3Rp
ZmljYXRpb25DbGllbnQuaCIKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorCiAjaW1wb3J0
ICJXZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oIgogI2ltcG9ydCAiV2ViTm90aWZp
Y2F0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIgpAQCAt
MzUsMjYgKzM2LDIxIEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAj
aW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2VuZGlmCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBAaW50ZXJmYWNlIFdl
Yk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGlj
eUxpc3RlbmVyPgogewogICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+
IF9jYWxsYmFjazsKIH0KIC0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6KFJlZlB0cjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpY2FsbGJhY2s7CiBAZW5kCi0jZW5kaWYKIAotI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTm90aWZpY2F0aW9u
SUQoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVOb3RpZmljYXRpb25JRCA9IDE7CiAg
ICAgcmV0dXJuIHVuaXF1ZU5vdGlmaWNhdGlvbklEKys7CiB9Ci0jZW5kaWYKIAogV2ViTm90aWZp
Y2F0aW9uQ2xpZW50OjpXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqd2ViVmlldykKICAg
ICA6IG1fd2ViVmlldyh3ZWJWaWV3KQpAQCAtNjMsNyArNTksNiBAQCBXZWJOb3RpZmljYXRpb25D
bGllbnQ6OldlYk5vdGlmaWNhdGlvbkNsCiAKIGJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpz
aG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogewotI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQogICAgIGlmICghW21fd2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKQEAgLTc2LDI4ICs3MSwxOSBAQCBib29sIFdlYk5vdGlmaWNhdGlv
bkNsaWVudDo6c2hvdyhOb3RpZmljCiAKICAgICBbW21fd2ViVmlldyBfbm90aWZpY2F0aW9uUHJv
dmlkZXJdIHNob3dOb3RpZmljYXRpb246d2ViTm90aWZpY2F0aW9uLmdldCgpIGZyb21XZWJWaWV3
Om1fd2ViVmlld107CiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShu
b3RpZmljYXRpb24pOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogewot
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIFdlYk5vdGlmaWNhdGlvbiAqd2ViTm90aWZp
Y2F0aW9uID0gbV9ub3RpZmljYXRpb25NYXAuZ2V0KG5vdGlmaWNhdGlvbikuZ2V0KCk7CiAgICAg
aWYgKCF3ZWJOb3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIFtbbV93ZWJWaWV3
IF9ub3RpZmljYXRpb25Qcm92aWRlcl0gY2FuY2VsTm90aWZpY2F0aW9uOndlYk5vdGlmaWNhdGlv
bl07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwotI2VuZGlmCiB9CiAK
IHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjbGVhck5vdGlmaWNhdGlvbnMoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAg
ICBhdXRvIGl0ID0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmZpbmQoY29udGV4dCk7CiAgICAg
aWYgKGl0ID09IG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMTE0LDE0ICsxMDAsMTAgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNsZWFy
Tm90aWZpYwogCiAgICAgW1ttX3dlYlZpZXcgX25vdGlmaWNhdGlvblByb3ZpZGVyXSBjbGVhck5v
dGlmaWNhdGlvbnM6bnNJRHNdOwogICAgIG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5yZW1vdmUo
aXQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbikKIHsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAg
ICBSZXRhaW5QdHI8V2ViTm90aWZpY2F0aW9uPiB3ZWJOb3RpZmljYXRpb24gPSBtX25vdGlmaWNh
dGlvbk1hcC50YWtlKG5vdGlmaWNhdGlvbik7CiAgICAgaWYgKCF3ZWJOb3RpZmljYXRpb24pCiAg
ICAgICAgIHJldHVybjsKQEAgLTEzNSw5ICsxMTcsNiBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNs
aWVudDo6bm90aWZpY2F0aW9uCiAgICAgICAgIG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5yZW1v
dmUoaXQpOwogCiAgICAgW1ttX3dlYlZpZXcgX25vdGlmaWNhdGlvblByb3ZpZGVyXSBub3RpZmlj
YXRpb25EZXN0cm95ZWQ6d2ViTm90aWZpY2F0aW9uLmdldCgpXTsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKG5vdGlmaWNhdGlvbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25D
bGllbnQ6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQpAQCAtMTQ1LDcgKzEyNCw2
IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb24KICAgICBkZWxldGUg
dGhpczsKIH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogdm9pZCBXZWJOb3RpZmljYXRp
b25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lcikKIHsKICAgICBTRUwg
c2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25S
ZXF1ZXN0RnJvbU9yaWdpbjpsaXN0ZW5lcjopOwpAQCAtMTYwLDIwICsxMzgsMTQgQEAgdm9pZCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaQogICAgIAogICAgIFt3ZWJPcmlnaW4g
cmVsZWFzZV07CiB9Ci0jZW5kaWYKIAogYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Omhhc1Bl
bmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGNvbnN0CiB7
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgLy8gV2Uga25vdyBwZXJtaXNzaW9uIHdh
cyByZXF1ZXN0ZWQgYnV0IHdlIGRvbid0IGtub3cgaWYgdGhlIGNsaWVudCByZXNwb25kZWQuIElu
IHRoaXMgY2FzZSwgd2UgcGxheSBpdAogICAgIC8vIHNhZmUgYW5kIHByZXN1bWUgdGhlcmUgaXMg
b25lIHBlbmRpbmcgc28gdGhhdCBBY3RpdmVET01PYmplY3RzIGRvbid0IGdldCBzdXNwZW5kZWQu
CiAgICAgcmV0dXJuIG1fZXZlclJlcXVlc3RlZFBlcm1pc3Npb247Ci0jZWxzZQotICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgogfQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiB2b2lkIFdl
Yk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBj
YWxsYmFjaykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC0xODIsMzYg
KzE1NCwyOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pCiAgICAg
W2xpc3RlbmVyIHJlbGVhc2VdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9Ci0j
ZW5kaWYKIAogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNs
aWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0
LT5pc0RvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb25EZW5pZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b246OkRlbmllZDsKICAgICBpZiAoIVtbbV93ZWJWaWV3IHByZWZlcmVuY2VzXSBub3RpZmljYXRp
b25zRW5hYmxlZF0pCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25EZW5pZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246
OkRlbmllZDsKICAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0
eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOmNvbnRleHQtPnNl
Y3VyaXR5T3JpZ2luKCldOwogICAgIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24gcGVybWlzc2lv
biA9IFtbbV93ZWJWaWV3IF9ub3RpZmljYXRpb25Qcm92aWRlcl0gcG9saWN5Rm9yT3JpZ2luOndl
Yk9yaWdpbl07CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKICAgICBzd2l0Y2ggKHBlcm1pc3Np
b24pIHsKICAgICAgICAgY2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQWxsb3dlZDoKLSAg
ICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkOwor
ICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6R3JhbnRl
ZDsKICAgICAgICAgY2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVuaWVkOgotICAgICAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAg
ICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZDsKICAg
ICAgICAgY2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uTm90QWxsb3dlZDoKLSAgICAgICAg
ICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAg
ICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVmYXVsdDsK
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbjo6RGVmYXVsdDsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0KTsKLSAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVu
aWVkOwotI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLQogdWludDY0X3Qg
V2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiB7CiAgICAgcmV0dXJuIFttX25vdGlmaWNhdGlv
bk1hcC5nZXQobm90aWZpY2F0aW9uKS5nZXQoKSBub3RpZmljYXRpb25JRF07CkBAIC0yMzEsMTMg
KzE5NSwxMyBAQCAtIChpZClpbml0V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0CiAtICh2
b2lkKWFsbG93CiB7CiAgICAgaWYgKF9jYWxsYmFjaykKLSAgICAgICAgX2NhbGxiYWNrLT5oYW5k
bGVFdmVudChOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uQWxsb3dlZCkpOworICAgICAgICBfY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5v
dGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6R3JhbnRlZCk7CiB9CiAKIC0gKHZvaWQpZGVu
eQogewogICAgIGlmIChfY2FsbGJhY2spCi0gICAgICAgIF9jYWxsYmFjay0+aGFuZGxlRXZlbnQo
Tm90aWZpY2F0aW9uOjpwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbkRlbmllZCkpOworICAgICAgICBfY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTI1NCw0ICsyMTgsNSBAQCAtIChCT09MKXNob3VsZENsZWFyQ2FjaGUKICNlbmRpZgogCiBAZW5k
CisKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRp
b24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJOb3RpZmlj
YXRpb24ubW0JKHJldmlzaW9uIDIxNjkzNSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViTm90aWZpY2F0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgLSAo
TlNTdHJpbmcgKil0YWcKIC0gKE5TU3RyaW5nICopaWNvblVSTAogewogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotICAgIHJldHVybiBjb3JlKHNlbGYpLT5pY29uVVJMKCk7CisgICAgcmV0dXJu
IGNvcmUoc2VsZiktPmljb24oKTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgpAQCAt
MTM0LDcgKzEzNCwxNCBAQCAtIChOU1N0cmluZyAqKWxhbmcKIC0gKE5TU3RyaW5nICopZGlyCiB7
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgcmV0dXJuIGNvcmUoc2VsZiktPmRpcigp
OworICAgIHN3aXRjaCAoY29yZShzZWxmKS0+ZGlyKCkpIHsKKyAgICAgICAgY2FzZSBOb3RpZmlj
YXRpb246OkRpcmVjdGlvbjo6QXV0bzoKKyAgICAgICAgICAgIHJldHVybiBAImF1dG8iOworICAg
ICAgICBjYXNlIE5vdGlmaWNhdGlvbjo6RGlyZWN0aW9uOjpMdHI6CisgICAgICAgICAgICByZXR1
cm4gQCJsdHIiOworICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbjo6RGlyZWN0aW9uOjpSdGw6Cisg
ICAgICAgICAgICByZXR1cm4gQCJydGwiOworICAgIH0KICNlbHNlCiAgICAgcmV0dXJuIG5pbDsK
ICNlbmRpZgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE2OTM1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDUtMTUgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBCcmluZyBOb3RpZmljYXRpb24uaWRsIHVw
IHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MjE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24uaHRt
bDogQWRkZWQuCisgICAgICAgIEFkZCB0ZXN0IGZvciBiYXNpYyBOb3RpZmljYXRpb24gQVBJIGZ1
bmN0aW9uYWxpdHkuCisKIDIwMTctMDUtMTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhZGp1c3Qgd2hpY2ggZWRn
ZXMgYXJlIGFmZmVjdGVkIGJ5IHNhZmUgYXJlYSBpbnNldHMKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24t
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNiBAQAorCitQQVNTIFRoZSBOb3RpZmljYXRpb24gY29uc3RydWN0b3IgcmVxdWlyZXMg
YXQgbGVhc3Qgb25lIGFyZ3VtZW50LiAKK1BBU1MgVGhlIE5vdGlmaWNhdGlvbiBvYmplY3QgaW5p
dGlhbGl6ZXMgaXRzIHByb3BlcnRpZXMgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMgZnJvbSB0aGUg
Tm90aWZpY2F0aW9uT3B0aW9ucyBkaWN0aW9uYXJ5IGlmIGl0IGlzIG5vdCBwcm92aWRlZC4gCitQ
QVNTIFRoZSBOb3RpZmljYXRpb24gb2JqZWN0IGluaXRpYWxpemVzIGl0cyBwcm9wZXJ0aWVzIHRv
IHRoZSB2YWx1ZXMgZnJvbSBOb3RpZmljYXRpb25PcHRpb25zIGRpY3Rpb25hcnkgaWYgaXQgaXMg
cHJvdmlkZWQuIAorUEFTUyBUaGUgTm90aWZpY2F0aW9uT3B0aW9ucyBkaWN0aW9uYXJ5IG9ubHkg
YWNjZXB0cyB2YWxpZCBOb3RpZmljYXRpb25EaXJlY3Rpb24gdmFsdWVzLiAKKwpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b24uaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNh
dGlvbnMvbm90aWZpY2F0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CisgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9u
KCkgeyBuZXcgTm90aWZpY2F0aW9uKCk7IH0pOworfSwgIlRoZSBOb3RpZmljYXRpb24gY29uc3Ry
dWN0b3IgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICAgIGxldCBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKCJ0ZXN0IHRpdGxl
Iik7CisgICAgCisgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhub3RpZmljYXRpb24sICJOb3RpZmlj
YXRpb24iKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi50aXRsZSwgInRlc3QgdGl0
bGUiKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi5kaXIsICJhdXRvIik7CisgICAg
YXNzZXJ0X2VxdWFscyhub3RpZmljYXRpb24ubGFuZywgIiIpOworICAgIGFzc2VydF9lcXVhbHMo
bm90aWZpY2F0aW9uLmJvZHksICIiKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi50
YWcsICIiKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi5pY29uLCAiIik7Cit9LCAi
VGhlIE5vdGlmaWNhdGlvbiBvYmplY3QgaW5pdGlhbGl6ZXMgaXRzIHByb3BlcnRpZXMgdG8gdGhl
aXIgZGVmYXVsdCB2YWx1ZXMgZnJvbSB0aGUgTm90aWZpY2F0aW9uT3B0aW9ucyBkaWN0aW9uYXJ5
IGlmIGl0IGlzIG5vdCBwcm92aWRlZC4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBsZXQg
bm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbigidGVzdCB0aXRsZSIsIHsKKyAgICAgICAg
ZGlyOiAibHRyIiwKKyAgICAgICAgbGFuZzogImVuIiwKKyAgICAgICAgYm9keTogInRlc3QgYm9k
eSIsCisgICAgICAgIHRhZzogInRlc3QgdGFnIiwKKyAgICAgICAgaWNvbjogImZvby5wbmciCisg
ICAgfSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi50aXRsZSwgInRlc3QgdGl0
bGUiKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi5kaXIsICJsdHIiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbi5sYW5nLCAiZW4iKTsKKyAgICBhc3NlcnRfZXF1YWxz
KG5vdGlmaWNhdGlvbi5ib2R5LCAidGVzdCBib2R5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhub3Rp
ZmljYXRpb24udGFnLCAidGVzdCB0YWciKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlv
bi5pY29uLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL25vdGlmaWNhdGlvbnMvZm9vLnBuZyIpOwor
fSwgIlRoZSBOb3RpZmljYXRpb24gb2JqZWN0IGluaXRpYWxpemVzIGl0cyBwcm9wZXJ0aWVzIHRv
IHRoZSB2YWx1ZXMgZnJvbSBOb3RpZmljYXRpb25PcHRpb25zIGRpY3Rpb25hcnkgaWYgaXQgaXMg
cHJvdmlkZWQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgbGV0IG5vdGlmaWNhdGlvbjEg
PSBuZXcgTm90aWZpY2F0aW9uKCJ0ZXN0IHRpdGxlIiwgeyBkaXI6ICJhdXRvIiB9KTsKKyAgICBh
c3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbjEuZGlyLCAiYXV0byIpOworCisgICAgbGV0IG5vdGlm
aWNhdGlvbjIgPSBuZXcgTm90aWZpY2F0aW9uKCJ0ZXN0IHRpdGxlIiwgeyBkaXI6ICJsdHIiIH0p
OworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uMi5kaXIsICJsdHIiKTsKKworICAgIGxl
dCBub3RpZmljYXRpb24zID0gbmV3IE5vdGlmaWNhdGlvbigidGVzdCB0aXRsZSIsIHsgZGlyOiAi
cnRsIiB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNhdGlvbjMuZGlyLCAicnRsIik7CisK
KyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IG5ldyBOb3Rp
ZmljYXRpb24oInRlc3QgdGl0bGUiLCB7IGRpcjogImZvbyIgfSkgfSk7Cit9LCAiVGhlIE5vdGlm
aWNhdGlvbk9wdGlvbnMgZGljdGlvbmFyeSBvbmx5IGFjY2VwdHMgdmFsaWQgTm90aWZpY2F0aW9u
RGlyZWN0aW9uIHZhbHVlcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310302</attachid>
            <date>2017-05-16 15:02:31 -0700</date>
            <delta_ts>2017-05-16 20:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172156-20170516150212.patch</filename>
            <type>text/plain</type>
            <size>61380</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNjk0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA1LTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgTm90aWZpY2F0aW9uLmlkbCB1
cCB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzIxNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQg
bmV3IGZpbGVzLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOb3RpZmljYXRpb246OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50Lmg6Cisg
ICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAg
QnJpbmcgdXAgdG8gc3BlYywgcmVwbGFjaW5nIERPTVN0cmluZ3Mgd2l0aCBlbnVtcyB3aGVyZSBh
cHByb3ByaWF0ZSBhbmQgYWRkaW5nCisgICAgICAgIGFkZGl0aW9uYWwgcmVhZG9ubHkgcHJvcGVy
dGllcyB0byBOb3RpZmljYXRpb24gdG8gbWlycm9yIG9wdGlvbnMgcHJvdmlkZWQKKyAgICAgICAg
aW4gY29uc3RydWN0aW9uLgorCiAyMDE3LTA1LTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Ugc2hvdWxkIHN1
cHBvcnQgc2lua1dhbnRzIGZvciByb3RhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJl
dmlzaW9uIDIxNjk0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0yNjAsNiArMjYwLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
ICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMu
aWRsCiAKICAgICBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAorICAgIE1v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbAogICAgIE1vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsCiAKICAg
ICBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlFdmVudC5pZGwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjE2OTQ4KQorKysgU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjAzLDYgKzIwMyw3IEBA
IEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVHJhY2tFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5pZGwgXApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbi5jcHAJKHJldmlzaW9uIDIxNjk0OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxOCArMzks
MzYgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAj
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIldpbmRvd0ZvY3VzQWxsb3dlZEluZGlj
YXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0
aW9uKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK1JlZjxOb3RpZmlj
YXRpb24+IE5vdGlmaWNhdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBPcHRpb25zJiBvcHRpb25zKQoreworICAgIGF1dG8gbm90aWZpY2F0
aW9uID0gYWRvcHRSZWYoKm5ldyBOb3RpZmljYXRpb24oY29udGV4dCwgdGl0bGUsIG9wdGlvbnMp
KTsKKyAgICBub3RpZmljYXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBub3Rp
ZmljYXRpb247Cit9CisKK05vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucykKICAgICA6
IEFjdGl2ZURPTU9iamVjdCgmZG9jdW1lbnQpCiAgICAgLCBtX3RpdGxlKHRpdGxlKQorICAgICwg
bV9kaXJlY3Rpb24ob3B0aW9ucy5kaXIpCisgICAgLCBtX2xhbmcob3B0aW9ucy5sYW5nKQorICAg
ICwgbV9ib2R5KG9wdGlvbnMuYm9keSkKKyAgICAsIG1fdGFnKG9wdGlvbnMudGFnKQogICAgICwg
bV9zdGF0ZShJZGxlKQogICAgICwgbV90YXNrVGltZXIoc3RkOjptYWtlX3VuaXF1ZTxUaW1lcj4o
W3RoaXNdICgpIHsgc2hvdygpOyB9KSkKIHsKKyAgICBpZiAoIW9wdGlvbnMuaWNvbi5pc0VtcHR5
KCkpIHsKKyAgICAgICAgYXV0byBpY29uVVJMID0gZG9jdW1lbnQuY29tcGxldGVVUkwob3B0aW9u
cy5pY29uKTsKKyAgICAgICAgaWYgKGljb25VUkwuaXNWYWxpZCgpKQorICAgICAgICAgICAgbV9p
Y29uID0gaWNvblVSTDsKKyAgICB9CisKICAgICBtX3Rhc2tUaW1lci0+c3RhcnRPbmVTaG90KDBf
cyk7CiB9CiAKQEAgLTU4LDM5ICs3Niw3IEBAIE5vdGlmaWNhdGlvbjo6fk5vdGlmaWNhdGlvbigp
IAogewogfQogCi1zdGF0aWMgU3RyaW5nIGRpcmVjdGlvblN0cmluZyhOb3RpZmljYXRpb246OkRp
cmVjdGlvbiBkaXJlY3Rpb24pCi17Ci0gICAgLy8gRklYTUU6IFN0b3JpbmcgdGhpcyBhcyBhIHN0
cmluZyBpcyBub3QgdGhlIHJpZ2h0IHdheSB0byBkbyBpdC4KLSAgICAvLyBGSVhNRTogU2VlbXMg
aGlnaGx5IHVubGlrZWx5IHRoYXQgdGhpcyBkb2VzIHRoZSByaWdodCB0aGluZyBmb3IgQXV0by4K
LSAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewotICAgIGNhc2UgTm90aWZpY2F0aW9uOjpEaXJlY3Rp
b246OkF1dG86Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImF1dG8iKTsKLSAgICBjYXNl
IE5vdGlmaWNhdGlvbjo6RGlyZWN0aW9uOjpMdHI6Ci0gICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoImx0ciIpOwotICAgIGNhc2UgTm90aWZpY2F0aW9uOjpEaXJlY3Rpb246OlJ0bDoKLSAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgicnRsIik7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLVJlZjxOb3RpZmljYXRpb24+IE5vdGlmaWNh
dGlvbjo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBPcHRpb25zJiBvcHRpb25zKQotewotICAgIGF1dG8gbm90aWZpY2F0aW9uID0gYWRvcHRSZWYo
Km5ldyBOb3RpZmljYXRpb24oY29udGV4dCwgdGl0bGUpKTsKLSAgICBub3RpZmljYXRpb24tPm1f
Ym9keSA9IG9wdGlvbnMuYm9keTsKLSAgICBub3RpZmljYXRpb24tPm1fdGFnID0gb3B0aW9ucy50
YWc7Ci0gICAgbm90aWZpY2F0aW9uLT5tX2xhbmcgPSBvcHRpb25zLmxhbmc7Ci0gICAgbm90aWZp
Y2F0aW9uLT5tX2RpcmVjdGlvbiA9IGRpcmVjdGlvblN0cmluZyhvcHRpb25zLmRpcik7Ci0gICAg
aWYgKCFvcHRpb25zLmljb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gaWNvblVSTCA9IGNv
bnRleHQuY29tcGxldGVVUkwob3B0aW9ucy5pY29uKTsKLSAgICAgICAgaWYgKGljb25VUkwuaXNW
YWxpZCgpKQotICAgICAgICAgICAgbm90aWZpY2F0aW9uLT5tX2ljb24gPSBpY29uVVJMOwotICAg
IH0KLSAgICBub3RpZmljYXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwotICAgIHJldHVybiBub3Rp
ZmljYXRpb247Ci19Ci0KLXZvaWQgTm90aWZpY2F0aW9uOjpzaG93KCkgCit2b2lkIE5vdGlmaWNh
dGlvbjo6c2hvdygpCiB7CiAgICAgLy8gcHJldmVudCBkb3VibGUtc2hvd2luZwogICAgIGlmICht
X3N0YXRlICE9IElkbGUpCkBAIC0xMDIsNyArODgsNyBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6c2hv
dygpIAogCiAgICAgYXV0byYgY2xpZW50ID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKS0+Y2xpZW50KCk7CiAKLSAgICBpZiAoY2xpZW50LmNoZWNrUGVybWlzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQpIHsKKyAgICBpZiAoY2xpZW50LmNoZWNrUGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpICE9IFBlcm1pc3Npb246OkdyYW50ZWQpIHsKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2
ZW50KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzgsMjMgKzE2NCw5IEBAIHZvaWQg
Tm90aWZpY2F0aW9uOjpkaXNwYXRjaEVycm9yRXZlbnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAK
LVN0cmluZyBOb3RpZmljYXRpb246OnBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50KQotewot
ICAgIHJldHVybiBwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20o
ZG9jdW1lbnQucGFnZSgpKS0+Y2xpZW50KCkuY2hlY2tQZXJtaXNzaW9uKCZkb2N1bWVudCkpOwot
fQotCi1TdHJpbmcgTm90aWZpY2F0aW9uOjpwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uKQorYXV0byBOb3RpZmljYXRpb246OnBlcm1pc3Np
b24oRG9jdW1lbnQmIGRvY3VtZW50KSAtPiBQZXJtaXNzaW9uCiB7Ci0gICAgc3dpdGNoIChwZXJt
aXNzaW9uKSB7Ci0gICAgY2FzZSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2Vk
OgotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJncmFudGVkIik7Ci0gICAgY2FzZSBOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ6Ci0gICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImRlbmllZCIpOwotICAgIGNhc2UgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
Tm90QWxsb3dlZDoKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZGVmYXVsdCIpOwotICAg
IH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OworICAgIHJldHVy
biBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSktPmNsaWVudCgp
LmNoZWNrUGVybWlzc2lvbigmZG9jdW1lbnQpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvbjo6cmVx
dWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAkocmV2aXNpb24gMjE2OTQ4
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw4IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlv
bkRpcmVjdGlvbi5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCIKICNpbmNs
dWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIldyaXRpbmdNb2RlLmgi
CkBAIC00OSw3ICs1MCw5IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjazsK
IGNsYXNzIE5vdGlmaWNhdGlvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlv
bj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBlbnVtIGNs
YXNzIERpcmVjdGlvbiB7IEF1dG8sIEx0ciwgUnRsIH07CisgICAgdXNpbmcgUGVybWlzc2lvbiA9
IE5vdGlmaWNhdGlvblBlcm1pc3Npb247CisgICAgdXNpbmcgRGlyZWN0aW9uID0gTm90aWZpY2F0
aW9uRGlyZWN0aW9uOworCiAgICAgc3RydWN0IE9wdGlvbnMgewogICAgICAgICBEaXJlY3Rpb24g
ZGlyOwogICAgICAgICBTdHJpbmcgbGFuZzsKQEAgLTY0LDIxICs2NywxNCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzaG93KCk7CiAgICAgdm9pZCBjbG9zZSgpOwogCi0gICAgY29uc3QgVVJMJiBpY29u
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9pY29uOyB9CiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KKyAgICBEaXJlY3Rpb24gZGlyKCkgY29uc3QgeyBy
ZXR1cm4gbV9kaXJlY3Rpb247IH0KICAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJl
dHVybiBtX2JvZHk7IH0KICAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBt
X2xhbmc7IH0KLQotICAgIGNvbnN0IFN0cmluZyYgZGlyKCkgY29uc3QgeyByZXR1cm4gbV9kaXJl
Y3Rpb247IH0KLSAgICB2b2lkIHNldERpcihjb25zdCBTdHJpbmcmIGRpcikgeyBtX2RpcmVjdGlv
biA9IGRpcjsgfQotCi0gICAgY29uc3QgU3RyaW5nJiByZXBsYWNlSWQoKSBjb25zdCB7IHJldHVy
biBtX3RhZzsgfQotICAgIHZvaWQgc2V0UmVwbGFjZUlkKGNvbnN0IFN0cmluZyYgcmVwbGFjZUlk
KSB7IG1fdGFnID0gcmVwbGFjZUlkOyB9Ci0KICAgICBjb25zdCBTdHJpbmcmIHRhZygpIGNvbnN0
IHsgcmV0dXJuIG1fdGFnOyB9Ci0gICAgdm9pZCBzZXRUYWcoY29uc3QgU3RyaW5nJiB0YWcpIHsg
bV90YWcgPSB0YWc7IH0KKyAgICBjb25zdCBVUkwmIGljb24oKSBjb25zdCB7IHJldHVybiBtX2lj
b247IH0KIAotICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9k
aXJlY3Rpb24gPT0gInJ0bCIgPyBSVEwgOiBMVFI7IH0KKyAgICBUZXh0RGlyZWN0aW9uIGRpcmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uID09IERpcmVjdGlvbjo6UnRsID8gUlRM
IDogTFRSOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoQ2xpY2tFdmVudCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hDbG9zZUV2ZW50KCk7CkBAIC04Nyw4
ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluYWxpemUoKTsK
IAotICAgIHN0YXRpYyBTdHJpbmcgcGVybWlzc2lvbihEb2N1bWVudCYpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBTdHJpbmcgcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb24pOworICAgIHN0YXRpYyBQZXJtaXNzaW9uIHBlcm1pc3Npb24oRG9jdW1lbnQm
KTsKICAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOwogCiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC05Nyw3ICs5Miw3
IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJpdmF0ZToKLSAg
ICBOb3RpZmljYXRpb24oRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBOb3Rp
ZmljYXRpb24oRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBPcHRpb25zJik7
CiAKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIE5vdGlmaWNhdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQog
CkBAIC0xMDksMTIgKzEwNCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9CiAKLSAgICBVUkwgbV9pY29uOwogICAgIFN0cmluZyBtX3RpdGxlOwotICAgIFN0
cmluZyBtX2JvZHk7Ci0gICAgU3RyaW5nIG1fZGlyZWN0aW9uOworICAgIERpcmVjdGlvbiBtX2Rp
cmVjdGlvbjsKICAgICBTdHJpbmcgbV9sYW5nOworICAgIFN0cmluZyBtX2JvZHk7CiAgICAgU3Ry
aW5nIG1fdGFnOworICAgIFVSTCBtX2ljb247CiAKICAgICBlbnVtIFN0YXRlIHsgSWRsZSwgU2hv
d2luZywgQ2xvc2VkIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7IElkbGUgfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aWRsCShyZXZpc2lvbiAyMTY5NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsMjcgKzM2LDM5IEBA
CiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHRpdGxlLCBvcHRpb25hbCBOb3RpZmljYXRpb25P
cHRpb25zIG9wdGlvbnMpLAogICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQsCiBdIGlu
dGVyZmFjZSBOb3RpZmljYXRpb24gOiBFdmVudFRhcmdldCB7Ci0gICAgdm9pZCBzaG93KCk7Ci0g
ICAgdm9pZCBjbG9zZSgpOworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5
IGF0dHJpYnV0ZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBlcm1pc3Npb247CisgICAgW0NhbGxX
aXRoPURvY3VtZW50XSBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s/IGRlcHJlY2F0ZWRDYWxsYmFjayk7IC8vIEZJWE1F
OiBUaGlzIHNob3VsZCByZXR1cm4gYSBQcm9taXNlPE5vdGlmaWNhdGlvblBlcm1pc3Npb24+Lgog
Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBwZXJtaXNzaW9uOwotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHZvaWQgcmVx
dWVzdFBlcm1pc3Npb24ob3B0aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPyBj
YWxsYmFjayk7CisgICAgLy8gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IG1heEFjdGlvbnM7CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY2xpY2s7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB0aXRsZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgTm90aWZpY2F0aW9uRGly
ZWN0aW9uIGRpcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBib2R5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdGFnOworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaW1h
Z2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBpY29uOworICAgIC8vIHJlYWRv
bmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgYmFkZ2U7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IFVTVlN0cmluZyBzb3VuZDsKKyAgICAvLyBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IEZyb3plbkFycmF5PHVuc2lnbmVkIGxvbmc+IHZpYnJhdGU7CisgICAgLy8gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gcmVub3RpZnk7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc2ls
ZW50OworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHJlcXVpcmVJbnRlcmFjdGlv
bjsKKyAgICAvLyBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOworICAg
IC8vIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8Tm90aWZpY2F0
aW9uQWN0aW9uPiBhY3Rpb25zOworCisgICAgdm9pZCBjbG9zZSgpOworCisgICAgLy8gTGVnYWN5
LiBOb3QgaW4gdGhlIHNwZWNpZmljYXRpb24uCisgICAgdm9pZCBzaG93KCk7CisKICAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uY2xvc2U7CiAgICAgW0ltcGxlbWVudGVkQXM9b25zaG93XSBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGlzcGxheTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uc2hvdzsKLQotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdGFnOwotfTsKLQotWwotICAg
IENvbmRpdGlvbmFsPU5PVElGSUNBVElPTlMKLV0gZW51bSBOb3RpZmljYXRpb25EaXJlY3Rpb24g
ewotICAgICJhdXRvIiwKLSAgICAibHRyIiwKLSAgICAicnRsIgogfTsKIAogWwpAQCAtNjYsNSAr
NzgsMjMgQEAKICAgICBET01TdHJpbmcgbGFuZyA9ICIiOwogICAgIERPTVN0cmluZyBib2R5ID0g
IiI7CiAgICAgRE9NU3RyaW5nIHRhZyA9ICIiOwotICAgIERPTVN0cmluZyBpY29uOworICAgIC8v
IFVTVlN0cmluZyBpbWFnZTsKKyAgICBVU1ZTdHJpbmcgaWNvbjsKKyAgICAvLyBVU1ZTdHJpbmcg
YmFkZ2U7CisgICAgLy8gVVNWU3RyaW5nIHNvdW5kOworICAgIC8vIFZpYnJhdGVQYXR0ZXJuIHZp
YnJhdGU7CisgICAgLy8gRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsKKyAgICAvLyBib29sZWFuIHJl
bm90aWZ5ID0gZmFsc2U7CisgICAgLy8gYm9vbGVhbiBzaWxlbnQgPSBmYWxzZTsKKyAgICAvLyBi
b29sZWFuIHJlcXVpcmVJbnRlcmFjdGlvbiA9IGZhbHNlOworICAgIC8vIGFueSBkYXRhID0gbnVs
bDsKKyAgICAvLyBzZXF1ZW5jZTxOb3RpZmljYXRpb25BY3Rpb24+IGFjdGlvbnMgPSBbXTsKK307
CisKK1sKKyAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TCitdIGVudW0gTm90aWZpY2F0aW9u
RGlyZWN0aW9uIHsKKyAgICAiYXV0byIsCisgICAgImx0ciIsCisgICAgInJ0bCIKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAyMTY5NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOb3RpZmljYXRp
b25QZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzksMTUgKzQwLDEwIEBAIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNzIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwotY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBOb3RpZmljYXRp
b25DbGllbnQgewogcHVibGljOgotICAgIGVudW0gUGVybWlzc2lvbiB7Ci0gICAgICAgIFBlcm1p
c3Npb25BbGxvd2VkLCAvLyBVc2VyIGhhcyBhbGxvd2VkIG5vdGlmaWNhdGlvbnMKLSAgICAgICAg
UGVybWlzc2lvbk5vdEFsbG93ZWQsIC8vIFVzZXIgaGFzIG5vdCB5ZXQgYWxsb3dlZAotICAgICAg
ICBQZXJtaXNzaW9uRGVuaWVkIC8vIFVzZXIgaGFzIGV4cGxpY2l0bHkgZGVuaWVkIHBlcm1pc3Np
b24KLSAgICB9OworICAgIHVzaW5nIFBlcm1pc3Npb24gPSBOb3RpZmljYXRpb25QZXJtaXNzaW9u
OwogCiAgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiBiZSBzaG93bi4KICAgICB2
aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24qKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkRp
cmVjdGlvbi5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24geworICAgIEF1dG8sCisgICAgTHRy
LAorICAgIFJ0bAorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
Tm90aWZpY2F0aW9uUGVybWlzc2lvbiB7CisgICAgRGVmYXVsdCwKKyAgICBEZW5pZWQsCisgICAg
R3JhbnRlZAorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLAorXSBlbnVtIE5vdGlm
aWNhdGlvblBlcm1pc3Npb24geworICAgICJkZWZhdWx0IiwKKyAgICAiZGVuaWVkIiwKKyAgICAi
Z3JhbnRlZCIKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
ay5oCShyZXZpc2lvbiAyMTY5NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCisjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCkBAIC0zNSw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfk5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVFdmVudChjb25zdCBTdHJpbmcmIHBlcm1pc3Npb24pID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uOjpQZXJtaXNzaW9uKSA9IDA7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrLmlkbAkocmV2aXNpb24gMjE2OTQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDUgKzI1LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPU5PVElGSUNBVElP
TlMsCi1dIGNhbGxiYWNrIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayA9IHZvaWQgKERP
TVN0cmluZyBwZXJtaXNzaW9uKTsKLQorXSBjYWxsYmFjayBOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2sgPSB2b2lkIChOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBlcm1pc3Npb24pOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjE2OTQ4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjEyLDYgKzMyMTIsMTAgQEAKIAkJ
N0NDMDFEMEIxRTRBN0IwNDAwRTUyOUNDIC8qIEpTRE9NQ29uc3RydWN0b3JCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMENFRjJGMUU0QTU4
QUQwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yQmFzZS5jcHAgKi87IH07CiAJCTdDQzAxRDBD
MUU0QTdCMDQwMEU1MjlDQyAvKiBKU0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMENFRjMwMUU0QTU4
RjEwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmNwcCAqLzsgfTsKIAkJ
N0NDMjg5REYxQUEwRkU1RDAwOUE5Q0UzIC8qIFVSTFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzODE3OTc0Mjc0MDAxRDc1ODAg
LyogVVJMUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk3Q0MyRERGQjFFQzk0MTVBMDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlz
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0ND
MkRERjgxRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Q0MyREUwMDFFQzk1
QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQzJEREZFMUVDOTVBNDQwMDI3Qjc3
NCAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb24uY3BwICovOyB9OworCQk3Q0MyREUwMTFFQzk1
QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0MyRERGRjFFQzk1QTQ0MDAyN0I3NzQg
LyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggKi87IH07CisJCTdDQzJERTAzMUVDQTA0QTUw
MDI3Qjc3NCAvKiBOb3RpZmljYXRpb25EaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQzJERTAyMUVDQTA0QTUwMDI3Qjc3NCAvKiBOb3Rp
ZmljYXRpb25EaXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3Q0M1NjRCODE4QkFCRUE2MDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVy
RGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDQzU2NEI2MThCQUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oICov
OyB9OwogCQk3Q0M1NjRCQTE4QkFDNzIwMDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVyRGV0ZWN0
b3JDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0M1NjRCOTE4QkFDNzIwMDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVyRGV0ZWN0b3JDb2Nv
YS5jcHAgKi87IH07CiAJCTdDQzY5OTQwMTkxRUM1RjUwMEFGMjI3MCAvKiBKU1dlYktpdE5hbWVz
cGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0M2OTkzRTE5MUVDNUY1MDBBRjIyNzAgLyogSlNXZWJLaXROYW1lc3BhY2UuY3BwICovOyB9OwpA
QCAtMTEyMzAsNiArMTEyMzQsMTEgQEAKIAkJN0M5REJGRUMxQTlDNDlCMTAwMEQ2QjI1IC8qIEpT
SFRNTEF0dGFjaG1lbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTSFRNTEF0dGFjaG1lbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDQjVDQTNEMUU1MjVDNkMwMEZBRUYxMyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjVDQTNFMUU1MjVDNkMwMEZBRUYx
MyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3Q0MyRERGODFFQzk0MTVBMDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTdDQzJEREZBMUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0NDMkRERkUxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0
aW9uUGVybWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U05vdGlmaWNhdGlvblBlcm1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3Q0MyRERGRjFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm90aWZpY2F0aW9uUGVybWlzc2lv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0MyREUwMjFFQ0EwNEE1MDAyN0I3
NzQgLyogTm90aWZpY2F0aW9uRGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlv
bkRpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0M1NjRCNjE4QkFC
RUE2MDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVyRGV0ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGVsZXBob25lTnVtYmVyRGV0ZWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0NDNTY0QjkxOEJBQzcyMDAwMUI5NjUyIC8qIFRlbGVwaG9uZU51
bWJlckRldGVjdG9yQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGVsZXBob25lTnVtYmVyRGV0ZWN0b3JDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDQzY5OTNFMTkxRUM1RjUwMEFGMjI3MCAvKiBKU1dlYktpdE5hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdE5hbWVzcGFj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzQ3MCw2ICsxNzQ3OSw5IEBA
CiAJCQkJMzM1MDNDOTkxMDE3OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbkNsaWVudC5oICov
LAogCQkJCTMxMjhDQTY3MTQ3MzMxNTIwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVy
LmNwcCAqLywKIAkJCQkzMTI4Q0E2QTE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29u
dHJvbGxlci5oICovLAorCQkJCTdDQzJERTAyMUVDQTA0QTUwMDI3Qjc3NCAvKiBOb3RpZmljYXRp
b25EaXJlY3Rpb24uaCAqLywKKwkJCQk3Q0MyRERGODFFQzk0MTVBMDAyN0I3NzQgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvbi5oICovLAorCQkJCTdDQzJEREZBMUVDOTQxNUEwMDI3Qjc3NCAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbCAqLywKIAkJCQkzMUVDMURBQzE0RkYyNkVBMDBDOTQ2
NjIgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmggKi8sCiAJCQkJMzFFQzFENTAx
NEZFRkQwODAwQzk0NjYyIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwgKi8s
CiAJCQkpOwpAQCAtMTc0ODEsNiArMTc0OTMsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMzM1
MDNDOUYxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmNwcCAqLywKIAkJCQkzMzUw
M0NBMDEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uaCAqLywKKwkJCQk3Q0MyRERG
RTFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcCAqLywKKwkJ
CQk3Q0MyRERGRjFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmgg
Ki8sCiAJCQkJMzFFQzFFMjYxNEZGNjBFRTAwQzk0NjYyIC8qIEpTTm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrLmNwcCAqLywKIAkJCQkzMUVDMUUyNzE0RkY2MEVFMDBDOTQ2NjIgLyogSlNO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLywKIAkJCSk7CkBAIC0yNzM4OCw2ICsy
NzQwMiw3IEBACiAJCQkJNTEyNkU2QkMwQTJFM0IxMjAwNUMyOUZBIC8qIEljb25EYXRhYmFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2OTUzOTgxMzI5QTNDODAwQjkyRDA0IC8qIEljb25EYXRh
YmFzZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFFQ0JFMEM5MUM5MDQwMERDMjU1QiAv
KiBJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDQzJERTAzMUVDQTA0
QTUwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25EaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxM0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUUxRUNDMTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE3MTRFQTgxQ0Y0RTRCMTAwNDcyM0M0IC8qIElEQkFjdGl2ZURPTU9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzc2Myw2ICsyNzc3OCw3IEBACiAJCQkJOEU0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
MEYwMTUwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUz
QkMwQ0IxMTdEM0UwODAwQjk0MDlBIC8qIEpTRmlsZUVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3Q0MyREUwMTFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGMTEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAwRjAxNzBFMEExODk1MDBGRDA0RTMgLyog
SlNGaWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU5NEY0M0MxMTkyMDdEQTAwQjdGNzVE
IC8qIEpTRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTQ4MSw2ICsyOTQ5Nyw3IEBA
CiAJCQkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTQ0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWFz
a0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDQzJEREZCMUVDOTQxNUEwMDI3Qjc3NCAv
KiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODA2RTU3QTEy
ODkzMDQ1MDA3Q0VEMzIgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOENBM0Q0
NDEyODk0QTM4MDBGRkYyNjAgLyogU1ZHTWF0cml4VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNjk1LDYgKzMxNzEyLDcgQEAKIAkJCQk4MzZEMDMyRjFEQThBMTNBMDBGRkQ5
NkIgLyogSlNFdmVudEluaXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENjkwOUVCMEM3
QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMEZF
RjM3MkI0N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3Q0MyREUwMDFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2
ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjA5MDIwMEU5MUI4RUMwMDBDNjhC
NSAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMTRBQ0VC
MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTY5NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNyBAQAorMjAxNy0wNS0xNSAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEJyaW5nIE5vdGlmaWNhdGlvbi5pZGwgdXAg
dG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcyMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLTm90aWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdLTm90aWZpY2F0aW9uQ29weURpcik6
CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbjo6ZGlyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3cpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dO
b3RpZmljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6cGVybWlzc2lvbkxldmVsKToKKyAgICAgICAgKFdlYktpdDo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZp
Y2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6CisgICAgICAgIFVwZGF0ZSBmb3Ig
ZW51bSB2cyBTdHJpbmcgdXNhZ2UuCisKIDIwMTctMDUtMTYgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnVzZWQgbGFtYmRhcyBpbiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgJKHJldmlzaW9uIDIxNjk0OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya0xvYWRNZXRyaWNzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFw
T2Zmc2V0c0luZm8uaD4KQEAgLTcyNCw2ICs3MjUsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpOZQogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbj4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwK
KyAgICAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uOjpBdXRvLAorICAgICAgICBX
ZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb246Okx0ciwKKyAgICAgICAgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uRGlyZWN0aW9uOjpSdGwKKyAgICA+OworfTsKKwogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbmRleGVk
REI6OkdldEFsbFR5cGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIxNjk0
OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01Nzk0LDcgKzU3OTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlCiAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBT
dHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmlu
ZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd05vdGlm
aWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0
cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJp
bmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogewogICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4oKS0+c2hvdyh0aGlz
LCB0aXRsZSwgYm9keSwgaWNvblVSTCwgdGFnLCBsYW5nLCBkaXIsIG9yaWdpblN0cmluZywgbm90
aWZpY2F0aW9uSUQpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAkocmV2aXNpb24gMjE2OTQ4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDcgQEAgc3RydWN0IFdpbmRv
d0ZlYXR1cmVzOwogCiBlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7CiBlbnVtIGNsYXNzIEhhc0lu
c2VjdXJlQ29udGVudDsKK2VudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9uOwogZW51bSBj
bGFzcyBTaG91bGRTYW1wbGU7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgQm94RXh0ZW50
OwpAQCAtMTMzNCw3ICsxMzM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0q
KTsKIAogICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKTsKLSAgICB2b2lkIHNob3dO
b3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25z
dCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcs
IGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3Qg
U3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGly
ZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwogICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBu
b3RpZmljYXRpb25JRHMpOwogICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIxNjk0OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTI3NCw3ICsyNzQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBO
b3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1
aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQotICAgIFNob3dOb3Rp
ZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmlu
ZyB0YWcsIFN0cmluZyBsYW5nLCBTdHJpbmcgZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0
bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcs
IGVudW0gV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIENhbmNlbE5vdGlmaWNhdGlv
bih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9y
PHVpbnQ2NF90PiBub3RpZmljYXRpb25JRHMpCiAgICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS05vdGlmaWNhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcAkocmV2aXNpb24gMjE2OTQ4KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNyArMjgsOSBAQAogCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUg
IldlYk5vdGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0
aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTY0LDcgKzY2LDE0IEBAIFdL
U3RyaW5nUmVmIFdLTm90aWZpY2F0aW9uQ29weUxhbmcoV0tOb3QKIAogV0tTdHJpbmdSZWYgV0tO
b3RpZmljYXRpb25Db3B5RGlyKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKIHsKLSAg
ICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKG5vdGlmaWNhdGlvbiktPmRpcigpKTsKKyAgICBz
d2l0Y2ggKHRvSW1wbChub3RpZmljYXRpb24pLT5kaXIoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uRGlyZWN0aW9uOjpBdXRvOgorICAgICAgICByZXR1cm4gV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoImF1dG8iKTsKKyAgICBjYXNlIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkRpcmVjdGlvbjo6THRyOgorICAgICAgICByZXR1cm4gV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoImx0ciIpOworICAgIGNhc2UgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uOjpS
dGw6CisgICAgICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygicnRsIik7
CisgICAgfQogfQogCiBXS1NlY3VyaXR5T3JpZ2luUmVmIFdLTm90aWZpY2F0aW9uR2V0U2VjdXJp
dHlPcmlnaW4oV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb24uY3BwCShyZXZpc2lvbiAyMTY5NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJOb3RpZmljYXRpb246OldlYk5v
dGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0
IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywg
Y29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKK1dlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0aW9uKGNvbnN0IFN0
cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBj
b25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRp
b25EaXJlY3Rpb24gZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCiAgICAgOiBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9ib2R5KGJvZHkpCiAg
ICAgLCBtX2ljb25VUkwoaWNvblVSTCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCShyZXZpc2lvbiAy
MTY5NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDE1IEBACiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIE5vdGlmaWNhdGlvbkRpcmVjdGlvbjsKK30KKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUEk6Ok9i
amVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok5vdGlmaWNhdGlvbj4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8V2ViTm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYg
dGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcm
IG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgc3RhdGljIFJlZjxX
ZWJOb3RpZmljYXRpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcm
IGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0
cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTm90aWZpY2F0aW9uKHRpdGxlLCBib2R5LCBpY29u
VVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2luU3RyaW5nLCBub3RpZmljYXRpb25JRCkpOwogICAg
IH0KQEAgLTQ1LDIwICs0OSwyMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBpY29uVVJM
KCkgY29uc3QgeyByZXR1cm4gbV9pY29uVVJMOyB9CiAgICAgY29uc3QgU3RyaW5nJiB0YWcoKSBj
b25zdCB7IHJldHVybiBtX3RhZzsgfQogICAgIGNvbnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsg
cmV0dXJuIG1fbGFuZzsgfQotICAgIGNvbnN0IFN0cmluZyYgZGlyKCkgY29uc3QgeyByZXR1cm4g
bV9kaXI7IH0KKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyKCkgY29uc3Qg
eyByZXR1cm4gbV9kaXI7IH0KICAgICBBUEk6OlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25z
dCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQogICAgIAogICAgIHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25JRDsgfQogCiBwcml2YXRlOgot
ICAgIFdlYk5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJv
ZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgbGFuZywgY29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1
aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgV2ViTm90aWZpY2F0aW9uKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25z
dCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25E
aXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CiAKICAgICBTdHJpbmcgbV90aXRsZTsKICAgICBTdHJpbmcgbV9ib2R5OwogICAgIFN0
cmluZyBtX2ljb25VUkw7CiAgICAgU3RyaW5nIG1fdGFnOwogICAgIFN0cmluZyBtX2xhbmc7Ci0g
ICAgU3RyaW5nIG1fZGlyOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBtX2Rp
cjsKICAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CiAgICAgdWludDY0
X3QgbV9ub3RpZmljYXRpb25JRDsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDIxNjk0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OnBvcHVsYQogICAgIH0KIH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OnNob3coV2ViUGFnZVByb3h5KiB3ZWJQYWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcs
IGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luU3RyaW5nLCB1aW50NjRfdCBwYWdlTm90aWZpY2F0aW9uSUQpCit2b2lkIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6c2hvdyhXZWJQYWdlUHJveHkqIHdlYlBhZ2UsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25z
dCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25E
aXJlY3Rpb24gZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3QgcGFnZU5v
dGlmaWNhdGlvbklEKQogewogICAgIHVpbnQ2NF90IGdsb2JhbE5vdGlmaWNhdGlvbklEID0gZ2Vu
ZXJhdGVHbG9iYWxOb3RpZmljYXRpb25JRCgpOwogICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+
IG5vdGlmaWNhdGlvbiA9IFdlYk5vdGlmaWNhdGlvbjo6Y3JlYXRlKHRpdGxlLCBib2R5LCBpY29u
VVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2luU3RyaW5nLCBnbG9iYWxOb3RpZmljYXRpb25JRCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaAkocmV2aXNpb24g
MjE2OTQ4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0
aW9uOworfQorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEFycmF5OwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CkBAIC01NCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVQcm92
aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyQmFzZSopOwogICAgIHZvaWQgcG9wdWxh
dGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPFN0cmluZywgYm9vbD4mKTsK
IAotICAgIHZvaWQgc2hvdyhXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcs
IGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luU3RyaW5nLCB1aW50NjRfdCBwYWdlTm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgc2hvdyhX
ZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNv
bnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFu
ZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0
cmluZywgdWludDY0X3QgcGFnZU5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGNhbmNlbChXZWJQ
YWdlUHJveHkqLCB1aW50NjRfdCBwYWdlTm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQgY2xlYXJO
b3RpZmljYXRpb25zKFdlYlBhZ2VQcm94eSopOwogICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25z
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIHBhZ2VOb3RpZmljYXRpb25J
RHMpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAJKHJldmlzaW9uIDIxNjk0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMCArNzEsMTAgQEAgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpObwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogdm9p
ZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1
cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
PiYmIGNhbGxiYWNrKQogewotICAgIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJt
aXNzaW9uID0gcGVybWlzc2lvbkxldmVsKG9yaWdpbik7Ci0gICAgaWYgKHBlcm1pc3Npb24gIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZCkgeworICAgIGF1dG8gcGVy
bWlzc2lvbiA9IHBlcm1pc3Npb25MZXZlbChvcmlnaW4pOworICAgIGlmIChwZXJtaXNzaW9uICE9
IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVmYXVsdCkgewogICAgICAgICBpZiAo
Y2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9u
OjpwZXJtaXNzaW9uU3RyaW5nKHBlcm1pc3Npb24pKTsKKyAgICAgICAgICAgIGNhbGxiYWNrLT5o
YW5kbGVFdmVudChwZXJtaXNzaW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE0
LDEyICsxMTQsMTIgQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIE5vdGlmaWNhdAog
ewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGlmICghbV9wYWdlLT5jb3JlUGFnZSgp
LT5zZXR0aW5ncygpLm5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZDsKICAgICAKICAgICByZXR1cm4gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5w
b2xpY3lGb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
c2VjdXJpdHlPcmlnaW4pOwotICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25EZW5pZWQ7CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVu
aWVkOwogI2VuZGlmCiB9CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlCiAgICAgaWYgKCFjYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwogICAgIAotICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChOb3RpZmljYXRpb246OnBlcm1pc3Np
b25TdHJpbmcoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQg
OiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQpKTsKKyAgICBjYWxsYmFjay0+
aGFuZGxlRXZlbnQoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6R3Jh
bnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHJlcXVlc3RJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gMjE2OTQ4
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpCiB7CiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiAgICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uOjpEZWZhdWx0OwogCiAgICAgQVNTRVJUKCFvcmlnaW4tPmlzVW5p
cXVlKCkpOwogICAgIGF1dG8gaXQgPSBtX3Blcm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50b1Jh
d1N0cmluZygpKTsKICAgICBpZiAoaXQgIT0gbV9wZXJtaXNzaW9uc01hcC5lbmQoKSkKLSAgICAg
ICAgcmV0dXJuIGl0LT52YWx1ZSA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAgIHJldHVy
biBpdC0+dmFsdWUgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZDsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKG9yaWdpbik7CiAjZW5kaWYKICAgICAKLSAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uOjpEZWZhdWx0OwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpCkBAIC0xNTAsNyArMTUwLDcgQEAgYm9v
bCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaQogICAgIGF1dG8gaXQgPSBtX25v
dGlmaWNhdGlvbkNvbnRleHRNYXAuYWRkKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBWZWN0b3I8dWludDY0X3Q+KCkpLml0ZXJhdG9yOwogICAgIGl0LT52YWx1ZS5hcHBl
bmQobm90aWZpY2F0aW9uSUQpOwogCi0gICAgbV9wcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5p
Y29uVVJMKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFu
ZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBw
YWdlLT5wYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0
aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCku
c3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3Rp
ZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdl
SUQoKSk7CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmlj
YXRpb24pOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNp
b24gMjE2OTQ4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBA
IHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXMKIE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIGlmICghY29udGV4dCB8fCAh
Y29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uOjpEZW5pZWQ7CiAgICAgcmV0dXJuIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCktPnBlcm1pc3Npb25MZXZlbChjb250ZXh0LT5zZWN1cml0eU9y
aWdpbigpKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCShyZXZp
c2lvbiAyMTY5NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxs
YmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24o
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIGJvb2wgaGFz
UGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNo
ZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7
CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgV2ViUGFnZSogbV9wYWdlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIx
Njk0OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI3IEBACisyMDE3LTA1LTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQnJpbmcgTm90aWZpY2F0aW9uLmlkbCB1cCB0byBzcGVjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxNTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5tbToKKyAgICAgICAgKGdlbmVyYXRlTm90aWZpY2F0aW9uSUQpOgorICAgICAg
ICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93KToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlv
bkNsaWVudDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2xlYXJO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0
aW9uT2JqZWN0RGVzdHJveWVkKToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVx
dWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpoYXNQZW5k
aW5nUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
Y2hlY2tQZXJtaXNzaW9uKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVu
ZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgZGVu
eV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1tOgorICAgICAgICAoLVtX
ZWJOb3RpZmljYXRpb24gaWNvblVSTF0pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb24gZGly
XSk6CisgICAgICAgIFNpbXBsaWZ5ICNpZmRlZnMgYW5kIHVwZGF0ZSBmb3IgZW51bSB2cyBTdHJp
bmcgdXNhZ2UuCisKIDIwMTctMDUtMTUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZGVsZXRlIGFzeW5jaHJvbm91c2x5IGRlY29k
ZWQgZnJhbWVzIGZvciBsYXJnZSBpbWFnZXMgaWYgdGhlaXIgY2xpZW50cyBhcmUgaW4gdGhlIHZp
ZXdwb3J0CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmlj
YXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAkocmV2aXNpb24gMjE2OTQ4KQorKysgU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDIxICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+Ci0K
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKwogI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRp
b24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW1wb3J0IDx3
dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE5vdGlmaWNhdGlv
bjsKLWNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjazsKLWNsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7Ci1jbGFzcyBWb2lkQ2FsbGJhY2s7Ci19CiAKIEBjbGFzcyBXZWJOb3Rp
ZmljYXRpb247CiBAY2xhc3MgV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXI7CkBAIC00OCwx
MCArNDAsOCBAQCBwdWJsaWM6CiAgICAgV2ViTm90aWZpY2F0aW9uQ2xpZW50KFdlYlZpZXcgKik7
CiAgICAgV2ViVmlldyAqd2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmlldzsgfQogCi0jaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCiAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMuCiAgICAgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOwot
I2VuZGlmCiAKIHByaXZhdGU6CiAgICAgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiop
IG92ZXJyaWRlOwpAQCAtNTksMjQgKzQ5LDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhck5v
dGlmaWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwog
ICAgIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biopIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
IG92ZXJyaWRlOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxXZWJDb3Jl
OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotI2VuZGlmCiAg
ICAgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopIG92ZXJyaWRlIHsgfQogICAgIGJvb2wgaGFzUGVuZGluZ1Blcm1pc3Npb25S
ZXF1ZXN0cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAKLSNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAq
KTsKLSNlbmRpZgogCiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQogICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4sIFJldGFp
blB0cjxXZWJOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbk1hcDsKICAgICAKICAgICB0eXBl
ZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+LCBWZWN0
b3I8UmV0YWluUHRyPFdlYk5vdGlmaWNhdGlvbj4+PiBOb3RpZmljYXRpb25Db250ZXh0TWFwOwog
ICAgIE5vdGlmaWNhdGlvbkNvbnRleHRNYXAgbV9ub3RpZmljYXRpb25Db250ZXh0TWFwOwogCiAg
ICAgYm9vbCBtX2V2ZXJSZXF1ZXN0ZWRQZXJtaXNzaW9uIHsgZmFsc2UgfTsKLSNlbmRpZgogfTsK
KworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCShyZXZpc2lvbiAyMTY5NDgpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgIldlYk5vdGlmaWNhdGlv
bkNsaWVudC5oIgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKICNpbXBvcnQgIldlYkRl
bGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgiCiAjaW1wb3J0ICJXZWJOb3RpZmljYXRpb25J
bnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgiCkBAIC0zNSwyNiAr
MzYsMjEgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+Ci0jZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIEBpbnRlcmZhY2UgV2ViTm90aWZp
Y2F0aW9uUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVu
ZXI+CiB7CiAgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4gX2NhbGxi
YWNrOwogfQogLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4mJiljYWxsYmFjazsKIEBlbmQKLSNlbmRpZgogCi0jaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVOb3RpZmljYXRpb25JRCgpCiB7
CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZU5vdGlmaWNhdGlvbklEID0gMTsKICAgICByZXR1
cm4gdW5pcXVlTm90aWZpY2F0aW9uSUQrKzsKIH0KLSNlbmRpZgogCiBXZWJOb3RpZmljYXRpb25D
bGllbnQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogbV93
ZWJWaWV3KHdlYlZpZXcpCkBAIC02Myw3ICs1OSw2IEBAIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
V2ViTm90aWZpY2F0aW9uQ2wKIAogYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnNob3coTm90
aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiB7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAg
ICAgaWYgKCFbbV93ZWJWaWV3IF9ub3RpZmljYXRpb25Qcm92aWRlcl0pCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApAQCAtNzYsMjggKzcxLDE5IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpzaG93KE5vdGlmaWMKIAogICAgIFtbbV93ZWJWaWV3IF9ub3RpZmljYXRpb25Qcm92aWRlcl0g
c2hvd05vdGlmaWNhdGlvbjp3ZWJOb3RpZmljYXRpb24uZ2V0KCkgZnJvbVdlYlZpZXc6bV93ZWJW
aWV3XTsKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNh
dGlvbik7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiB7Ci0jaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCiAgICAgV2ViTm90aWZpY2F0aW9uICp3ZWJOb3RpZmljYXRpb24g
PSBtX25vdGlmaWNhdGlvbk1hcC5nZXQobm90aWZpY2F0aW9uKS5nZXQoKTsKICAgICBpZiAoIXdl
Yk5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgW1ttX3dlYlZpZXcgX25vdGlm
aWNhdGlvblByb3ZpZGVyXSBjYW5jZWxOb3RpZmljYXRpb246d2ViTm90aWZpY2F0aW9uXTsKLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OmNsZWFyTm90aWZpY2F0aW9ucyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQogewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGF1dG8g
aXQgPSBtX25vdGlmaWNhdGlvbkNvbnRleHRNYXAuZmluZChjb250ZXh0KTsKICAgICBpZiAoaXQg
PT0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CkBAIC0x
MTQsMTQgKzEwMCwxMCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2xlYXJOb3RpZmlj
CiAKICAgICBbW21fd2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdIGNsZWFyTm90aWZpY2F0
aW9uczpuc0lEc107CiAgICAgbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLnJlbW92ZShpdCk7Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQogewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIFJldGFp
blB0cjxXZWJOb3RpZmljYXRpb24+IHdlYk5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uTWFw
LnRha2Uobm90aWZpY2F0aW9uKTsKICAgICBpZiAoIXdlYk5vdGlmaWNhdGlvbikKICAgICAgICAg
cmV0dXJuOwpAQCAtMTM1LDkgKzExNyw2IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpu
b3RpZmljYXRpb24KICAgICAgICAgbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLnJlbW92ZShpdCk7
CiAKICAgICBbW21fd2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdIG5vdGlmaWNhdGlvbkRl
c3Ryb3llZDp3ZWJOb3RpZmljYXRpb24uZ2V0KCldOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCkBAIC0xNDUsNyArMTI0LDYgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbgogICAgIGRlbGV0ZSB0aGlzOwog
fQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV2Vi
Tm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgKmxpc3RlbmVyKQogewogICAgIFNFTCBzZWxlY3Rv
ciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblJlcXVlc3RG
cm9tT3JpZ2luOmxpc3RlbmVyOik7CkBAIC0xNjAsMjAgKzEzOCwxNCBAQCB2b2lkIFdlYk5vdGlm
aWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pCiAgICAgCiAgICAgW3dlYk9yaWdpbiByZWxlYXNl
XTsKIH0KLSNlbmRpZgogCiBib29sIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6aGFzUGVuZGluZ1Bl
cm1pc3Npb25SZXF1ZXN0cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3QKIHsKLSNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAvLyBXZSBrbm93IHBlcm1pc3Npb24gd2FzIHJlcXVl
c3RlZCBidXQgd2UgZG9uJ3Qga25vdyBpZiB0aGUgY2xpZW50IHJlc3BvbmRlZC4gSW4gdGhpcyBj
YXNlLCB3ZSBwbGF5IGl0CiAgICAgLy8gc2FmZSBhbmQgcHJlc3VtZSB0aGVyZSBpcyBvbmUgcGVu
ZGluZyBzbyB0aGF0IEFjdGl2ZURPTU9iamVjdHMgZG9uJ3QgZ2V0IHN1c3BlbmRlZC4KICAgICBy
ZXR1cm4gbV9ldmVyUmVxdWVzdGVkUGVybWlzc2lvbjsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OwotI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIHZvaWQgV2ViTm90aWZp
Y2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNr
KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTE4MiwzNiArMTU0LDI4
IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWkKICAgICBbbGlzdGVu
ZXIgcmVsZWFzZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KLSNlbmRpZgog
CiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpj
aGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKLSNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9j
dW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRl
bmllZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVu
aWVkOwogICAgIGlmICghW1ttX3dlYlZpZXcgcHJlZmVyZW5jZXNdIG5vdGlmaWNhdGlvbnNFbmFi
bGVkXSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmll
ZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVk
OwogICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2lu
IGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46Y29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKV07CiAgICAgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbiBwZXJtaXNzaW9uID0gW1tt
X3dlYlZpZXcgX25vdGlmaWNhdGlvblByb3ZpZGVyXSBwb2xpY3lGb3JPcmlnaW46d2ViT3JpZ2lu
XTsKICAgICBbd2ViT3JpZ2luIHJlbGVhc2VdOwogICAgIHN3aXRjaCAocGVybWlzc2lvbikgewog
ICAgICAgICBjYXNlIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25BbGxvd2VkOgotICAgICAgICAg
ICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQ7CisgICAgICAg
ICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkOwogICAg
ICAgICBjYXNlIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25EZW5pZWQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICAgICAg
cmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkOwogICAgICAgICBj
YXNlIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25Ob3RBbGxvd2VkOgotICAgICAgICAgICAgcmV0
dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgICAgICAg
ICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZWZhdWx0OwogICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbk5vdEFsbG93ZWQ7CisgICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uOjpEZWZhdWx0OwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHQpOwotICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7Ci0j
ZW5kaWYKIH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotCiB1aW50NjRfdCBXZWJOb3Rp
ZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmlj
YXRpb24qIG5vdGlmaWNhdGlvbikKIHsKICAgICByZXR1cm4gW21fbm90aWZpY2F0aW9uTWFwLmdl
dChub3RpZmljYXRpb24pLmdldCgpIG5vdGlmaWNhdGlvbklEXTsKQEAgLTIzMSwxMyArMTk1LDEz
IEBAIC0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6KFJlZlB0cjxOb3RpZmljYXQKIC0gKHZvaWQpYWxs
b3cKIHsKICAgICBpZiAoX2NhbGxiYWNrKQotICAgICAgICBfY2FsbGJhY2stPmhhbmRsZUV2ZW50
KE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb25BbGxvd2VkKSk7CisgICAgICAgIF9jYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkKTsKIH0KIAogLSAodm9pZClkZW55CiB7CiAg
ICAgaWYgKF9jYWxsYmFjaykKLSAgICAgICAgX2NhbGxiYWNrLT5oYW5kbGVFdmVudChOb3RpZmlj
YXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVu
aWVkKSk7CisgICAgICAgIF9jYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjU0LDQg
KzIxOCw1IEBAIC0gKEJPT0wpc2hvdWxkQ2xlYXJDYWNoZQogI2VuZGlmCiAKIEBlbmQKKwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5t
bQkocmV2aXNpb24gMjE2OTQ4KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJOb3Rp
ZmljYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsxMTYsNyBAQCAtIChOU1N0cmlu
ZyAqKXRhZwogLSAoTlNTdHJpbmcgKilpY29uVVJMCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi0gICAgcmV0dXJuIGNvcmUoc2VsZiktPmljb25VUkwoKTsKKyAgICByZXR1cm4gY29yZShz
ZWxmKS0+aWNvbigpOwogI2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2VuZGlmCkBAIC0xMzQsNyAr
MTM0LDE0IEBAIC0gKE5TU3RyaW5nICopbGFuZwogLSAoTlNTdHJpbmcgKilkaXIKIHsKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICByZXR1cm4gY29yZShzZWxmKS0+ZGlyKCk7CisgICAg
c3dpdGNoIChjb3JlKHNlbGYpLT5kaXIoKSkgeworICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbjo6
RGlyZWN0aW9uOjpBdXRvOgorICAgICAgICAgICAgcmV0dXJuIEAiYXV0byI7CisgICAgICAgIGNh
c2UgTm90aWZpY2F0aW9uOjpEaXJlY3Rpb246Okx0cjoKKyAgICAgICAgICAgIHJldHVybiBAImx0
ciI7CisgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uOjpEaXJlY3Rpb246OlJ0bDoKKyAgICAgICAg
ICAgIHJldHVybiBAInJ0bCI7CisgICAgfQogI2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2VuZGlm
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMTY5NDgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNS0xNSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgorCisgICAgICAgIEJyaW5nIE5vdGlmaWNhdGlvbi5pZGwgdXAgdG8gc3Bl
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTU2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgQWRkIHRlc3QgZm9yIGJhc2ljIE5vdGlmaWNhdGlvbiBBUEkgZnVuY3Rpb25h
bGl0eS4KKwogMjAxNy0wNS0xNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxMjUxMyk6IExhc3RSZXNvcnQgaXMgcGxhdGZv
cm0tZGVwZW5kZW50LCBzbyBpdHMgc2VtYW50aWNzIHNob3VsZCBub3QgYmUgcmVxdWlyZWQgdG8g
cGVyZm9ybSBmb250IGxvYWRpbmcgY29ycmVjdGx5LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL25vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2IEBACisKK1BBU1MgVGhlIE5vdGlmaWNhdGlvbiBjb25zdHJ1Y3RvciByZXF1aXJlcyBhdCBs
ZWFzdCBvbmUgYXJndW1lbnQuIAorUEFTUyBUaGUgTm90aWZpY2F0aW9uIG9iamVjdCBpbml0aWFs
aXplcyBpdHMgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcyBmcm9tIHRoZSBOb3Rp
ZmljYXRpb25PcHRpb25zIGRpY3Rpb25hcnkgaWYgaXQgaXMgbm90IHByb3ZpZGVkLiAKK1BBU1Mg
VGhlIE5vdGlmaWNhdGlvbiBvYmplY3QgaW5pdGlhbGl6ZXMgaXRzIHByb3BlcnRpZXMgdG8gdGhl
IHZhbHVlcyBmcm9tIE5vdGlmaWNhdGlvbk9wdGlvbnMgZGljdGlvbmFyeSBpZiBpdCBpcyBwcm92
aWRlZC4gCitQQVNTIFRoZSBOb3RpZmljYXRpb25PcHRpb25zIGRpY3Rpb25hcnkgb25seSBhY2Nl
cHRzIHZhbGlkIE5vdGlmaWNhdGlvbkRpcmVjdGlvbiB2YWx1ZXMuIAorCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9ub3RpZmljYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKyAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHNjcmlwdD4KKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7
IG5ldyBOb3RpZmljYXRpb24oKTsgfSk7Cit9LCAiVGhlIE5vdGlmaWNhdGlvbiBjb25zdHJ1Y3Rv
ciByZXF1aXJlcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgbGV0IG5vdGlmaWNhdGlvbiA9IG5ldyBOb3RpZmljYXRpb24oInRlc3QgdGl0bGUiKTsK
KyAgICAKKyAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKG5vdGlmaWNhdGlvbiwgIk5vdGlmaWNhdGlv
biIpOworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLnRpdGxlLCAidGVzdCB0aXRsZSIp
OworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLmRpciwgImF1dG8iKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKG5vdGlmaWNhdGlvbi5sYW5nLCAiIik7CisgICAgYXNzZXJ0X2VxdWFscyhub3Rp
ZmljYXRpb24uYm9keSwgIiIpOworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLnRhZywg
IiIpOworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLmljb24sICIiKTsKK30sICJUaGUg
Tm90aWZpY2F0aW9uIG9iamVjdCBpbml0aWFsaXplcyBpdHMgcHJvcGVydGllcyB0byB0aGVpciBk
ZWZhdWx0IHZhbHVlcyBmcm9tIHRoZSBOb3RpZmljYXRpb25PcHRpb25zIGRpY3Rpb25hcnkgaWYg
aXQgaXMgbm90IHByb3ZpZGVkLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGxldCBub3Rp
ZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKCJ0ZXN0IHRpdGxlIiwgeworICAgICAgICBkaXI6
ICJsdHIiLAorICAgICAgICBsYW5nOiAiZW4iLAorICAgICAgICBib2R5OiAidGVzdCBib2R5IiwK
KyAgICAgICAgdGFnOiAidGVzdCB0YWciLAorICAgICAgICBpY29uOiAiZm9vLnBuZyIKKyAgICB9
KTsKKworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLnRpdGxlLCAidGVzdCB0aXRsZSIp
OworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLmRpciwgImx0ciIpOworICAgIGFzc2Vy
dF9lcXVhbHMobm90aWZpY2F0aW9uLmxhbmcsICJlbiIpOworICAgIGFzc2VydF9lcXVhbHMobm90
aWZpY2F0aW9uLmJvZHksICJ0ZXN0IGJvZHkiKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5vdGlmaWNh
dGlvbi50YWcsICJ0ZXN0IHRhZyIpOworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uLmlj
b24sICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbm90aWZpY2F0aW9ucy9mb28ucG5nIik7Cit9LCAi
VGhlIE5vdGlmaWNhdGlvbiBvYmplY3QgaW5pdGlhbGl6ZXMgaXRzIHByb3BlcnRpZXMgdG8gdGhl
IHZhbHVlcyBmcm9tIE5vdGlmaWNhdGlvbk9wdGlvbnMgZGljdGlvbmFyeSBpZiBpdCBpcyBwcm92
aWRlZC4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBsZXQgbm90aWZpY2F0aW9uMSA9IG5l
dyBOb3RpZmljYXRpb24oInRlc3QgdGl0bGUiLCB7IGRpcjogImF1dG8iIH0pOworICAgIGFzc2Vy
dF9lcXVhbHMobm90aWZpY2F0aW9uMS5kaXIsICJhdXRvIik7CisKKyAgICBsZXQgbm90aWZpY2F0
aW9uMiA9IG5ldyBOb3RpZmljYXRpb24oInRlc3QgdGl0bGUiLCB7IGRpcjogImx0ciIgfSk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhub3RpZmljYXRpb24yLmRpciwgImx0ciIpOworCisgICAgbGV0IG5v
dGlmaWNhdGlvbjMgPSBuZXcgTm90aWZpY2F0aW9uKCJ0ZXN0IHRpdGxlIiwgeyBkaXI6ICJydGwi
IH0pOworICAgIGFzc2VydF9lcXVhbHMobm90aWZpY2F0aW9uMy5kaXIsICJydGwiKTsKKworICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgbmV3IE5vdGlmaWNh
dGlvbigidGVzdCB0aXRsZSIsIHsgZGlyOiAiZm9vIiB9KSB9KTsKK30sICJUaGUgTm90aWZpY2F0
aW9uT3B0aW9ucyBkaWN0aW9uYXJ5IG9ubHkgYWNjZXB0cyB2YWxpZCBOb3RpZmljYXRpb25EaXJl
Y3Rpb24gdmFsdWVzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>