<?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>185270</bug_id>
          
          <creation_ts>2018-05-03 14:48:37 -0700</creation_ts>
          <short_desc>Make it easy to log compile times for all optimizing tiers</short_desc>
          <delta_ts>2018-05-03 17:43:19 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1420354</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-03 14:48:37 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420356</commentid>
    <comment_count>1</comment_count>
      <attachid>339471</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-03 14:52:40 -0700</bug_when>
    <thetext>Created attachment 339471
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420358</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-03 14:54:12 -0700</bug_when>
    <thetext>Attachment 339471 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/CompilerTimingScope.cpp:58:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 10 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>1420361</commentid>
    <comment_count>3</comment_count>
      <attachid>339471</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-05-03 15:00:11 -0700</bug_when>
    <thetext>Comment on attachment 339471
the patch

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

r=me.

&gt; Source/JavaScriptCore/Sources.txt:710
&gt; +runtime/CompilerTimingScope.cpp

This is kinda unrelated but I kinda feel like we should have a utilities directory or something. CompilerTimingScope doesn&apos;t feel very runtimey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420370</commentid>
    <comment_count>4</comment_count>
      <attachid>339471</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-05-03 15:12:22 -0700</bug_when>
    <thetext>Comment on attachment 339471
the patch

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

&gt;&gt; Source/JavaScriptCore/Sources.txt:710
&gt;&gt; +runtime/CompilerTimingScope.cpp
&gt; 
&gt; This is kinda unrelated but I kinda feel like we should have a utilities directory or something. CompilerTimingScope doesn&apos;t feel very runtimey.

Use the tools directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420392</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-03 16:05:08 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #4)
&gt; Comment on attachment 339471 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339471&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/Sources.txt:710
&gt; &gt;&gt; +runtime/CompilerTimingScope.cpp
&gt; &gt; 
&gt; &gt; This is kinda unrelated but I kinda feel like we should have a utilities directory or something. CompilerTimingScope doesn&apos;t feel very runtimey.
&gt; 
&gt; Use the tools directory.

Will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420399</commentid>
    <comment_count>6</comment_count>
      <attachid>339481</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-03 16:08:00 -0700</bug_when>
    <thetext>Created attachment 339481
patch for landing, I think

Moved the new files to tools/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420400</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-03 16:10:59 -0700</bug_when>
    <thetext>Attachment 339481 did not pass style-queue:


ERROR: Source/JavaScriptCore/tools/CompilerTimingScope.cpp:58:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 10 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>1420483</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-03 17:42:14 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/231338/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420484</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-03 17:43:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/39961963&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339471</attachid>
            <date>2018-05-03 14:52:40 -0700</date>
            <delta_ts>2018-05-03 16:08:00 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25737</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMxMzI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE4LTA1LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TWFrZSBpdCBlYXN5IHRvIGxvZyBjb21waWxlIHRpbWVzIGZvciBhbGwgb3B0aW1pemluZyB0aWVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1Mjcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAg
ICBUaGlzIG1ha2VzIC0tbG9nUGhhc2VUaW1lcz10cnVlIGVuYWJsZSBsb2dnaW5nIG9mIHBoYXNl
IHRpbWVzIGZvciBERkcgYW5kIEIzIHVzaW5nIGEgY29tbW9uCisgICAgICAgIGhlbHBlciBjbGFz
cywgQ29tcGlsZXJUaW1pbmdTY29wZS4gVGhpcyB1c2VkIHRvIGJlIGNhbGxlZCBCMzo6VGltaW5n
U2NvcGUgYW5kIG9ubHkgQjMgdXNlZAorICAgICAgICBpdC4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgc2hvdWxkIGhlbHAgdXMgcmVkdWNlIGNvbXBpbGUgdGltZXMgYnkgdGVsbGluZyB1cyB3aGVy
ZSB0byBsb29rLiBTbywgZmFyLCBpdCBsb29rcyBsaWtlCisgICAgICAgIENGQSBpcyB0aGUgd29y
c3QuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGIzL0IzQ29tbW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6QjM6OnNob3VsZE1lYXN1cmVQaGFzZVRpbWluZyk6IERlbGV0ZWQuCisgICAg
ICAgICogYjMvQjNDb21tb24uaDoKKyAgICAgICAgKiBiMy9CM1RpbWluZ1Njb3BlLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBiMy9CM1RpbWluZ1Njb3BlLmg6CisgICAgICAgIChKU0M6OkIzOjpU
aW1pbmdTY29wZTo6VGltaW5nU2NvcGUpOgorICAgICAgICAqIGRmZy9ERkdQaGFzZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OnJ1bkFuZExvZyk6CisgICAgICAgICogZGZnL0RGR1BsYW4uY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZCk6CisgICAgICAgICogcnVu
dGltZS9Db21waWxlclRpbWluZ1Njb3BlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbXBp
bGVyVGltaW5nU2NvcGU6OkNvbXBpbGVyVGltaW5nU2NvcGUpOgorICAgICAgICAoSlNDOjpDb21w
aWxlclRpbWluZ1Njb3BlOjp+Q29tcGlsZXJUaW1pbmdTY29wZSk6CisgICAgICAgICogcnVudGlt
ZS9Db21waWxlclRpbWluZ1Njb3BlLmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5jcHA6CisgICAgICAgIChKU0M6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMpOgorICAgICAg
ICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE4LTA1LTAzICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvbnRlbnQgY3Jhc2ggbG9hZGluZyBwYWdl
IG9uIHNlYXMudXBlbm4uZWR1IEAgSmF2YVNjcmlwdENvcmU6IHZtRW50cnlUb0phdmFTY3JpcHQK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDcg
KzE1OSw2IEBAIGIzL0IzU3RhY2ttYXBWYWx1ZS5jcHAKIGIzL0IzU3RhY2tTbG90LmNwcAogYjMv
QjNTd2l0Y2hDYXNlLmNwcAogYjMvQjNTd2l0Y2hWYWx1ZS5jcHAKLWIzL0IzVGltaW5nU2NvcGUu
Y3BwCiBiMy9CM1R5cGUuY3BwCiBiMy9CM1Vwc2lsb25WYWx1ZS5jcHAKIGIzL0IzVXNlQ291bnRz
LmNwcApAQCAtNzA4LDYgKzcwNyw3IEBAIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0
aW9ucy5jcHAKIHJ1bnRpbWUvQ29tcGlsYXRpb25SZXN1bHQuY3BwCitydW50aW1lL0NvbXBpbGVy
VGltaW5nU2NvcGUuY3BwCiBydW50aW1lL0NvbXBsZXRpb24uY3BwCiBydW50aW1lL0NvbmZpZ0Zp
bGUuY3BwCiBydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjMxMzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTQyMiw2ICs0MjIsNyBAQAogCQkwRjdERjE0NjFFMkJFRjZBMDA5NTk1MUIgLyogQmxvY2tEaXJl
Y3RvcnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjdERjE0NTFFMkJFRjY4MDA5NTk1MUIgLyogQmxvY2tEaXJlY3RvcnlJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3Rjk4
OEMxRDk1OTZDODAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3Rjk4OEExRDk1
OTZDMzAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5oICovOyB9Owog
CQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgwMjNFOTE2MTM4MzIzMDBBMEJBNDUg
LyogQnlWYWxJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMEY4MThBMTUyMDlCOTlBQTAwQTY2RDlCIC8qIENvbXBpbGVyVGltaW5nU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODE4QTEz
MjA5Qjk5QTUwMEE2NkQ5QiAvKiBDb21waWxlclRpbWluZ1Njb3BlLmggKi87IH07CiAJCTBGODMz
NUI4MTYzOUMxRUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgzMzVCNTE2MzlDMUUzMDAx
NDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODM2NEI3MTY0QjBDMTEwMDUzMzI5QSAvKiBE
RkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODM2NEI1MTY0QjBDMEUwMDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rpb24u
aCAqLzsgfTsKIAkJMEY4NkEyNkYxRDZGN0IzMzAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NkEyNkUxRDZGN0Iz
MTAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oICovOyB9OwpAQCAtMjI3Miw3ICsyMjczLDYgQEAKIAkJ
MEY0NTcwMzcxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFpckVsaW1pbmF0ZURlYWRDb2RlLmg7IHBhdGgg
PSBiMy9haXIvQWlyRWxpbWluYXRlRGVhZENvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY0NTcwM0ExQkU0NUYwQTAwNjJBNjI5IC8qIEFpclJlcG9ydFVzZWRSZWdpc3RlcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWlyUmVwb3J0VXNlZFJl
Z2lzdGVycy5jcHA7IHBhdGggPSBiMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDU3MDNCMUJFNDVGMEEwMDYyQTYyOSAvKiBB
aXJSZXBvcnRVc2VkUmVnaXN0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEFpclJlcG9ydFVzZWRSZWdpc3RlcnMuaDsgcGF0aCA9IGIzL2Fpci9BaXJSZXBvcnRVc2VkUmVn
aXN0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNDU3MDNFMUJFNTg0Q0Ew
MDYyQTYyOSAvKiBCM1RpbWluZ1Njb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEIzVGltaW5nU2NvcGUuY3BwOyBwYXRoID0gYjMvQjNUaW1pbmdTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDU3MDNGMUJFNTg0Q0EwMDYyQTYyOSAv
KiBCM1RpbWluZ1Njb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzVGlt
aW5nU2NvcGUuaDsgcGF0aCA9IGIzL0IzVGltaW5nU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NjgwN0YxNEJBNTcyNzAwQkZFMjcyIC8qIEpJVEV4Y2VwdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklURXhjZXB0aW9ucy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDY4MDgwMTRCQTU3MjcwMEJGRTI3MiAv
KiBKSVRFeGNlcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVEV4
Y2VwdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0ODAsNiArMjQ4MCw4
IEBACiAJCTBGN0Y5ODg5MUQ5NTk2QzMwMEY0RjEyRSAvKiBERkdTdG9yZUJhcnJpZXJDbHVzdGVy
aW5nUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHU3Rv
cmVCYXJyaWVyQ2x1c3RlcmluZ1BoYXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdTdG9yZUJhcnJpZXJD
bHVzdGVyaW5nUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdGOTg4
QTFEOTU5NkMzMDBGNEYxMkUgLyogREZHU3RvcmVCYXJyaWVyQ2x1c3RlcmluZ1BoYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQ
aGFzZS5oOyBwYXRoID0gZGZnL0RGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjgwMjNFOTE2MTM4MzIzMDBBMEJBNDUgLyogQnlW
YWxJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5VmFsSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjgxOEExMzIwOUI5OUE1MDBBNjZEOUIgLyog
Q29tcGlsZXJUaW1pbmdTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b21waWxlclRpbWluZ1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGODE4
QTE0MjA5Qjk5QTUwMEE2NkQ5QiAvKiBDb21waWxlclRpbWluZ1Njb3BlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbXBpbGVyVGltaW5nU2NvcGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjgzMzVCNDE2MzlDMUUzMDAxNDQzQjUgLyogQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY4MzM1QjUxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlBbGxvY2F0aW9uUHJvZmls
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjgzNjRCNTE2NEIwQzBFMDA1MzMy
OUEgLyogREZHQnJhbmNoRGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR0JyYW5jaERpcmVjdGlvbi5oOyBwYXRoID0gZGZnL0RGR0JyYW5jaERpcmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTIxMCw3ICs1MjEyLDYgQEAKIAkJCQkw
RkVDODRFRTFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmggKi8sCiAJCQkJMEZFQzg0
RUYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuY3BwICovLAogCQkJCTBGRUM4NEYw
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N3aXRjaFZhbHVlLmggKi8sCi0JCQkJMEY0NTcwM0UxQkU1
ODRDQTAwNjJBNjI5IC8qIEIzVGltaW5nU2NvcGUuY3BwICovLAogCQkJCTBGNDU3MDNGMUJFNTg0
Q0EwMDYyQTYyOSAvKiBCM1RpbWluZ1Njb3BlLmggKi8sCiAJCQkJMEZFQzg0RjExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzVHlwZS5jcHAgKi8sCiAJCQkJMEZFQzg0RjIxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzVHlwZS5oICovLApAQCAtNjQ2Nyw2ICs2NDY4LDggQEAKIAkJCQk2NTUzQTMzMDE3QTFGMUVF
MDA4Q0Y2RjMgLyogQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5oICovLAogCQkJCUE3RTVBM0E1
MTc5NzQzMkQwMEU4OTNDMCAvKiBDb21waWxhdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJQTdFNUEz
QTYxNzk3NDMyRDAwRTg5M0MwIC8qIENvbXBpbGF0aW9uUmVzdWx0LmggKi8sCisJCQkJMEY4MThB
MTQyMDlCOTlBNTAwQTY2RDlCIC8qIENvbXBpbGVyVGltaW5nU2NvcGUuY3BwICovLAorCQkJCTBG
ODE4QTEzMjA5Qjk5QTUwMEE2NkQ5QiAvKiBDb21waWxlclRpbWluZ1Njb3BlLmggKi8sCiAJCQkJ
OTY5QTA5MjIwRUQxRTA5QzAwRjFGNjgxIC8qIENvbXBsZXRpb24uY3BwICovLAogCQkJCUY1QkIy
QkM1MDMwRjc3MjEwMUZDRkUxRCAvKiBDb21wbGV0aW9uLmggKi8sCiAJCQkJMEZEQjJDRTkxNzQ4
OTZDNzAwN0IzQzFCIC8qIENvbmN1cnJlbnRKU0xvY2suaCAqLywKQEAgLTY1OTUsOSArNjU5OCw5
IEBACiAJCQkJRTE3ODYzM0YwRDlCRUMwMDAwRDc0RTc1IC8qIEluaXRpYWxpemVUaHJlYWRpbmcu
aCAqLywKIAkJCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcCAqLywKIAkJCQlFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8sCisJCQkJQTdBOEFGMkIxN0FEQjVGMzAw
NUFCMTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUE3QThBRjJDMTdBREI1RjMwMDVBQjE3NCAv
KiBJbnQxNkFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkQxN0FEQjVGMzAwNUFCMTc0IC8qIEludDMy
QXJyYXkuaCAqLywKLQkJCQlBN0E4QUYyQjE3QURCNUYzMDA1QUIxNzQgLyogSW50OEFycmF5Lmgg
Ki8sCiAJCQkJQkM5QkI5NUIwRTE5NjgwNjAwREY4ODU1IC8qIEludGVybmFsRnVuY3Rpb24uY3Bw
ICovLAogCQkJCUJDMTE2NjdBMEUxOTlDMDUwMDgwNjZERCAvKiBJbnRlcm5hbEZ1bmN0aW9uLmgg
Ki8sCiAJCQkJQTFCOUUyMzMxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5jcHAgKi8s
CkBAIC02NzA1LDkgKzY3MDgsOSBAQAogCQkJCUJDNzU2RkM2MEUyMDMxQjIwMERFN0QxMiAvKiBK
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgKi8sCiAJCQkJQkM3NTZGQzcwRTIwMzFCMjAwREU3
RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggKi8sCiAJCQkJNzlCODE5OTIxREQyNUNG
NTAwRERDNzE0IC8qIEpTR2xvYmFsT2JqZWN0SW5saW5lcy5oICovLAorCQkJCTBGMkI2NkM5MTdC
NkI1QUIwMEE3QUUzRiAvKiBKU0ludDhBcnJheS5oICovLAogCQkJCTBGMkI2NkNBMTdCNkI1QUIw
MEE3QUUzRiAvKiBKU0ludDE2QXJyYXkuaCAqLywKIAkJCQkwRjJCNjZDQjE3QjZCNUFCMDBBN0FF
M0YgLyogSlNJbnQzMkFycmF5LmggKi8sCi0JCQkJMEYyQjY2QzkxN0I2QjVBQjAwQTdBRTNGIC8q
IEpTSW50OEFycmF5LmggKi8sCiAJCQkJRTMzRjUwN0UxQjg0MjlBNDAwNDEzODU2IC8qIEpTSW50
ZXJuYWxQcm9taXNlLmNwcCAqLywKIAkJCQlFMzNGNTA3RjFCODQyOUE0MDA0MTM4NTYgLyogSlNJ
bnRlcm5hbFByb21pc2UuaCAqLywKIAkJCQlFMzNGNTA3NjFCODQyMjU3MDA0MTM4NTYgLyogSlNJ
bnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5jcHAgKi8sCkBAIC02Nzk2LDEwICs2Nzk5LDEwIEBA
CiAJCQkJNTNGMjU2RTExQjg3RTI4MDAwQjRCNzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5
cGUuY3BwICovLAogCQkJCTUzOTE3RTdDMUI3OTExMDYwMDBFQkQzMyAvKiBKU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmggKi8sCiAJCQkJNjUwN0QyOTcwRTg3MUU0QTAwRDdEODk2IC8qIEpTVHlw
ZUluZm8uaCAqLywKLQkJCQkwRjJCNjZENDE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MTZBcnJh
eS5oICovLAotCQkJCTBGMkI2NkQ1MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1VpbnQzMkFycmF5Lmgg
Ki8sCiAJCQkJMEYyQjY2RDIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhBcnJheS5oICovLAog
CQkJCTBGMkI2NkQzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5LmggKi8s
CisJCQkJMEYyQjY2RDQxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2QXJyYXkuaCAqLywKKwkJ
CQkwRjJCNjZENTE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5oICovLAogCQkJCUE3
Q0EzQUUxMTdEQTQxQUUwMDY1MzhBRiAvKiBKU1dlYWtNYXAuY3BwICovLAogCQkJCUE3Q0EzQUUy
MTdEQTQxQUUwMDY1MzhBRiAvKiBKU1dlYWtNYXAuaCAqLywKIAkJCQk3MDlGQjg2MTFBRTMzNUM2
MDAzOUQwNjkgLyogSlNXZWFrU2V0LmNwcCAqLywKQEAgLTcwMDgsMTEgKzcwMTEsMTEgQEAKIAkJ
CQkwRjJENERFMDE5ODMyRDkxMDA3RDRCMTkgLyogVHlwZVByb2ZpbGVyTG9nLmggKi8sCiAJCQkJ
MEYyRDRERTMxOTgzMkQ5MTAwN0Q0QjE5IC8qIFR5cGVTZXQuY3BwICovLAogCQkJCTBGMkQ0REU0
MTk4MzJEOTEwMDdENEIxOSAvKiBUeXBlU2V0LmggKi8sCisJCQkJQTdBOEFGMzAxN0FEQjVGMzAw
NUFCMTc0IC8qIFVpbnQ4QXJyYXkuaCAqLywKKwkJCQlBN0E4QUYzMTE3QURCNUYzMDA1QUIxNzQg
LyogVWludDhDbGFtcGVkQXJyYXkuaCAqLywKIAkJCQlBN0E4QUYzMjE3QURCNUYzMDA1QUIxNzQg
LyogVWludDE2QXJyYXkuaCAqLywKIAkJCQk4NjY3MzlEMTEzQkZERTcxMDAyM0Q4N0MgLyogVWlu
dDE2V2l0aEZyYWN0aW9uLmggKi8sCiAJCQkJQTdBOEFGMzMxN0FEQjVGMzAwNUFCMTc0IC8qIFVp
bnQzMkFycmF5LmggKi8sCi0JCQkJQTdBOEFGMzAxN0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQ4QXJy
YXkuaCAqLywKLQkJCQlBN0E4QUYzMTE3QURCNUYzMDA1QUIxNzQgLyogVWludDhDbGFtcGVkQXJy
YXkuaCAqLywKIAkJCQkwRkUwNTAyMzFBQTkwOTU2MDBEMzNCMzMgLyogVmFyT2Zmc2V0LmNwcCAq
LywKIAkJCQkwRkUwNTAyNDFBQTkwOTU2MDBEMzNCMzMgLyogVmFyT2Zmc2V0LmggKi8sCiAJCQkJ
RTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCAqLywKQEAgLTg2MjMsNiArODYyNiw3
IEBACiAJCQkJQTc0MTAxN0YxNzlEQUY4MDAwMkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZh
bFNsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJGQ0NGRDE4QTYwMDcw
MDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDQTNGQTEz
MkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4
MThBMTUyMDlCOTlBQTAwQTY2RDlCIC8qIENvbXBpbGVyVGltaW5nU2NvcGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMUUzQTY3MTUzQTIxRTIwMDBGOTQ1NiAvKiBERkdTaWxlbnRSZWdpc3RlclNh
dmVQbGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIxRDE2RDAyRjMwMDA1NUE1REIgLyog
REZHU2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjJFNUEzMURBNjQ0
MzkwMDZFNzcwOSAvKiBERkdTbmlwcGV0UGFyYW1zLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmNwcAkocmV2aXNpb24gMjMxMzI4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUs
MTEgKzY1LDYgQEAgYm9vbCBzaG91bGRTYXZlSVJCZWZvcmVQaGFzZSgpCiAgICAgcmV0dXJuIE9w
dGlvbnM6OnZlcmJvc2VWYWxpZGF0aW9uRmFpbHVyZSgpOwogfQogCi1ib29sIHNob3VsZE1lYXN1
cmVQaGFzZVRpbWluZygpCi17Ci0gICAgcmV0dXJuIE9wdGlvbnM6OmxvZ0IzUGhhc2VUaW1lcygp
OwotfQotCiBzdGQ6Om9wdGlvbmFsPEdQUlJlZz4gcGlubmVkRXh0ZW5kZWRPZmZzZXRBZGRyUmVn
aXN0ZXIoKQogewogI2lmIENQVShBUk02NCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bW1vbi5oCShyZXZpc2lvbiAyMzEzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQCBib29sIHNob3VsZER1bXBJ
UkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wg
c2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CiBib29sIHNob3VsZFNhdmVJUkJlZm9yZVBo
YXNlKCk7Ci1ib29sIHNob3VsZE1lYXN1cmVQaGFzZVRpbWluZygpOwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBCaXRzVHlwZSwgdHlwZW5hbWUgSW5wdXRUeXBlPgogaW5saW5lIGJvb2wgaXNJZGVudGlj
YWwoSW5wdXRUeXBlIGxlZnQsIElucHV0VHlwZSByaWdodCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1RpbWluZ1Njb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNUaW1pbmdTY29wZS5jcHAJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1RpbWluZ1Njb3BlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgot
Ci0jaWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzQ29tbW9uLmgiCi0jaW5jbHVkZSA8
d3RmL0RhdGFMb2cuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+Ci0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1uYW1lc3BhY2Ugewot
Ci1jbGFzcyBTdGF0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RhdGUpOwotICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFN0YXRlKCkgeyB9Ci0gICAgCi0g
ICAgU2Vjb25kcyBhZGRUb1RvdGFsKGNvbnN0IGNoYXIqIG5hbWUsIFNlY29uZHMgZHVyYXRpb24p
Ci0gICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxvY2spOwotICAgICAgICBy
ZXR1cm4gdG90YWxzLmFkZChuYW1lLCBTZWNvbmRzKDApKS5pdGVyYXRvci0+dmFsdWUgKz0gZHVy
YXRpb247Ci0gICAgfQotICAgIAotcHJpdmF0ZToKLSAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBT
ZWNvbmRzPiB0b3RhbHM7Ci0gICAgTG9jayBsb2NrOwotfTsKLQotU3RhdGUmIHN0YXRlKCkKLXsK
LSAgICBzdGF0aWMgQXRvbWljPFN0YXRlKj4gc19zdGF0ZTsKLSAgICByZXR1cm4gZW5zdXJlUG9p
bnRlcihzX3N0YXRlLCBbXSB7IHJldHVybiBuZXcgU3RhdGUoKTsgfSk7Ci19Ci0KLX0gLy8gYW5v
bnltb3VzIG5hbWVzcGFjZQotCi1UaW1pbmdTY29wZTo6VGltaW5nU2NvcGUoY29uc3QgY2hhciog
bmFtZSkKLSAgICA6IG1fbmFtZShuYW1lKQotewotICAgIGlmIChzaG91bGRNZWFzdXJlUGhhc2VU
aW1pbmcoKSkKLSAgICAgICAgbV9iZWZvcmUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLX0KLQot
VGltaW5nU2NvcGU6On5UaW1pbmdTY29wZSgpCi17Ci0gICAgaWYgKHNob3VsZE1lYXN1cmVQaGFz
ZVRpbWluZygpKSB7Ci0gICAgICAgIFNlY29uZHMgZHVyYXRpb24gPSBNb25vdG9uaWNUaW1lOjpu
b3coKSAtIG1fYmVmb3JlOwotICAgICAgICBkYXRhTG9nKAotICAgICAgICAgICAgIltCM10gIiwg
bV9uYW1lLCAiIHRvb2s6ICIsIGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpLCAiIG1zICIsCi0gICAg
ICAgICAgICAiKHRvdGFsOiAiLCBzdGF0ZSgpLmFkZFRvVG90YWwobV9uYW1lLCBkdXJhdGlvbiku
bWlsbGlzZWNvbmRzKCksICIgbXMpLlxuIik7Ci0gICAgfQotfQotCi19IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1RpbWluZ1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVGltaW5nU2NvcGUuaAkocmV2aXNpb24gMjMxMzI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVGltaW5nU2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
MjAgKzI3LDE2IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSA8d3RmL01vbm90
b25pY1RpbWUuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlICJDb21w
aWxlclRpbWluZ1Njb3BlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1j
bGFzcyBUaW1pbmdTY29wZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGltaW5nU2NvcGUp
OworY2xhc3MgVGltaW5nU2NvcGUgOiBwdWJsaWMgQ29tcGlsZXJUaW1pbmdTY29wZSB7CiBwdWJs
aWM6Ci0gICAgVGltaW5nU2NvcGUoY29uc3QgY2hhciogbmFtZSk7Ci0gICAgflRpbWluZ1Njb3Bl
KCk7Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgY2hhciogbV9uYW1lOwotICAgIE1vbm90b25pY1Rp
bWUgbV9iZWZvcmU7CisgICAgVGltaW5nU2NvcGUoY29uc3QgY2hhciogbmFtZSkKKyAgICAgICAg
OiBDb21waWxlclRpbWluZ1Njb3BlKCJCMyIsIG5hbWUpCisgICAgeworICAgIH0KIH07CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQaGFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhh
c2UuaAkocmV2aXNpb24gMjMxMzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
aGFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShE
RkdfSklUKQogCisjaW5jbHVkZSAiQ29tcGlsZXJUaW1pbmdTY29wZS5oIgogI2luY2x1ZGUgIkRG
R0NvbW1vbi5oIgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAKQEAgLTc2LDE3ICs3NywxMCBAQCBw
cml2YXRlOgogdGVtcGxhdGU8dHlwZW5hbWUgUGhhc2VUeXBlPgogYm9vbCBydW5BbmRMb2coUGhh
c2VUeXBlJiBwaGFzZSkKIHsKLSAgICBNb25vdG9uaWNUaW1lIGJlZm9yZSB7IH07Ci0KLSAgICBp
ZiAoVU5MSUtFTFkoT3B0aW9uczo6cmVwb3J0REZHUGhhc2VUaW1lcygpKSkKLSAgICAgICAgYmVm
b3JlID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0KKyAgICBDb21waWxlclRpbWluZ1Njb3BlIHRp
bWluZ1Njb3BlKCJERkciLCBwaGFzZS5uYW1lKCkpOworICAgIAogICAgIGJvb2wgcmVzdWx0ID0g
cGhhc2UucnVuKCk7CiAKLSAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6cmVwb3J0REZHUGhhc2VU
aW1lcygpKSkgewotICAgICAgICBNb25vdG9uaWNUaW1lIGFmdGVyID0gTW9ub3RvbmljVGltZTo6
bm93KCk7Ci0gICAgICAgIGRhdGFMb2dGKCJQaGFzZSAlcyB0b29rICUuNGYgbXNcbiIsIHBoYXNl
Lm5hbWUoKSwgKGFmdGVyIC0gYmVmb3JlKS5taWxsaXNlY29uZHMoKSk7Ci0gICAgfQogICAgIGlm
IChyZXN1bHQgJiYgbG9nQ29tcGlsYXRpb25DaGFuZ2VzKHBoYXNlLmdyYXBoKCkubV9wbGFuLm1v
ZGUpKQogICAgICAgICBkYXRhTG9nRigiUGhhc2UgJXMgY2hhbmdlZCB0aGUgSVIuXG4iLCBwaGFz
ZS5uYW1lKCkpOwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lk
IFBsYW46OmNvbXBpbGVJblRocmVhZChUaHJlYWREYXRhKiB0CiAgICAgCiAgICAgQ29tcGlsYXRp
b25TY29wZSBjb21waWxhdGlvblNjb3BlOwogCi0gICAgaWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdl
cyhtb2RlKSB8fCBPcHRpb25zOjpyZXBvcnRERkdQaGFzZVRpbWVzKCkpCisgICAgaWYgKGxvZ0Nv
bXBpbGF0aW9uQ2hhbmdlcyhtb2RlKSB8fCBPcHRpb25zOjpsb2dQaGFzZVRpbWVzKCkpCiAgICAg
ICAgIGRhdGFMb2coIkRGRyhQbGFuKSBjb21waWxpbmcgIiwgKmNvZGVCbG9jaywgIiB3aXRoICIs
IG1vZGUsICIsIG51bWJlciBvZiBpbnN0cnVjdGlvbnMgPSAiLCBjb2RlQmxvY2stPmluc3RydWN0
aW9uQ291bnQoKSwgIlxuIik7CiAKICAgICBDb21waWxhdGlvblBhdGggcGF0aCA9IGNvbXBpbGVJ
blRocmVhZEltcGwoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBp
bGVyVGltaW5nU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbXBpbGVyVGltaW5nU2NvcGUuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBpbGVyVGltaW5nU2NvcGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcGlsZXJU
aW1pbmdTY29wZS5oIgorCisjaW5jbHVkZSAiT3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9EYXRh
TG9nLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgor
CituYW1lc3BhY2UgSlNDIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgQ29tcGlsZXJUaW1pbmdT
Y29wZVN0YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21waWxlclRpbWluZ1Njb3Bl
U3RhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIENvbXBp
bGVyVGltaW5nU2NvcGVTdGF0ZSgpIHsgfQorICAgIAorICAgIFNlY29uZHMgYWRkVG9Ub3RhbChj
b25zdCBjaGFyKiBjb21waWxlck5hbWUsIGNvbnN0IGNoYXIqIG5hbWUsIFNlY29uZHMgZHVyYXRp
b24pCisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxvY2spOworICAgICAg
ICByZXR1cm4gdG90YWxzLmFkZChzdGQ6Om1ha2VfcGFpcihjb21waWxlck5hbWUsIG5hbWUpLCBT
ZWNvbmRzKDApKS5pdGVyYXRvci0+dmFsdWUgKz0gZHVyYXRpb247CisgICAgfQorICAgIAorcHJp
dmF0ZToKKyAgICBIYXNoTWFwPHN0ZDo6cGFpcjxjb25zdCBjaGFyKiwgY29uc3QgY2hhcio+LCBT
ZWNvbmRzPiB0b3RhbHM7CisgICAgTG9jayBsb2NrOworfTsKKworQ29tcGlsZXJUaW1pbmdTY29w
ZVN0YXRlJiBjb21waWxlclRpbWluZ1Njb3BlU3RhdGUoKQoreworICAgIHN0YXRpYyBBdG9taWM8
Q29tcGlsZXJUaW1pbmdTY29wZVN0YXRlKj4gc19zdGF0ZTsKKyAgICByZXR1cm4gZW5zdXJlUG9p
bnRlcihzX3N0YXRlLCBbXSB7IHJldHVybiBuZXcgQ29tcGlsZXJUaW1pbmdTY29wZVN0YXRlKCk7
IH0pOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworQ29tcGlsZXJUaW1pbmdTY29w
ZTo6Q29tcGlsZXJUaW1pbmdTY29wZShjb25zdCBjaGFyKiBjb21waWxlck5hbWUsIGNvbnN0IGNo
YXIqIG5hbWUpCisgICAgOiBtX2NvbXBpbGVyTmFtZShjb21waWxlck5hbWUpCisgICAgLCBtX25h
bWUobmFtZSkKK3sKKyAgICBpZiAoT3B0aW9uczo6bG9nUGhhc2VUaW1lcygpKQorICAgICAgICBt
X2JlZm9yZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworfQorCitDb21waWxlclRpbWluZ1Njb3Bl
Ojp+Q29tcGlsZXJUaW1pbmdTY29wZSgpCit7CisgICAgaWYgKE9wdGlvbnM6OmxvZ1BoYXNlVGlt
ZXMoKSkgeworICAgICAgICBTZWNvbmRzIGR1cmF0aW9uID0gTW9ub3RvbmljVGltZTo6bm93KCkg
LSBtX2JlZm9yZTsKKyAgICAgICAgZGF0YUxvZygKKyAgICAgICAgICAgICJbIiwgbV9jb21waWxl
ck5hbWUsICJdICIsIG1fbmFtZSwgIiB0b29rOiAiLCBkdXJhdGlvbi5taWxsaXNlY29uZHMoKSwg
IiBtcyAiLAorICAgICAgICAgICAgIih0b3RhbDogIiwgY29tcGlsZXJUaW1pbmdTY29wZVN0YXRl
KCkuYWRkVG9Ub3RhbChtX2NvbXBpbGVyTmFtZSwgbV9uYW1lLCBkdXJhdGlvbikubWlsbGlzZWNv
bmRzKCksCisgICAgICAgICAgICAiIG1zKS5cbiIpOworICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGlsZXJU
aW1pbmdTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBpbGVyVGltaW5nU2NvcGUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21waWxlclRpbWluZ1Njb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIEZJWE1F
OiBXZSBzaG91bGQgZmluZCBzb21lIHdheSBvZiByZWNvbmNpbGluZyB0aGUgZGlmZmVyZW5jZXMg
YmV0d2VlbiBXVEY6OlRpbWluZ1Njb3BlIGFuZCB0aGlzIGNsYXNzLiBUaGUgZGlmZmVyZW5jZXMK
Ky8vIGFyZToKKy8vIC0gQ29tcGlsZXJUaW1pbmdTY29wZSBrbm93cyB0byBvbmx5IGRvIHdvcmsg
d2hlbiAtLWxvZ1BoYXNlVGltZXM9dHJ1ZSwgd2hpbGUgVGltaW5nU2NvcGUgaXMgdW5jb25kaXRp
b25hbC4KKy8vIC0gQ29tcGlsZXJUaW1pbmdTY29wZSByZXBvcnRzIHRvdGFscyBvbiBldmVyeSBy
dW4sIHdoaWxlIFRpbWluZ1Njb3BlIHJlcG9ydHMgYXZlcmFnZXMgcGVyaW9kaWNhbGx5LgorCitj
bGFzcyBDb21waWxlclRpbWluZ1Njb3BlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21w
aWxlclRpbWluZ1Njb3BlKTsKK3B1YmxpYzoKKyAgICBDb21waWxlclRpbWluZ1Njb3BlKGNvbnN0
IGNoYXIqIGNvbXBpbGVyTmFtZSwgY29uc3QgY2hhciogbmFtZSk7CisgICAgfkNvbXBpbGVyVGlt
aW5nU2NvcGUoKTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBjaGFyKiBtX2NvbXBpbGVyTmFtZTsK
KyAgICBjb25zdCBjaGFyKiBtX25hbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2JlZm9yZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMjMxMzI4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyNiw3ICs0MjYsNyBA
QCBzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCkKICAgICAgICAgfHwgT3B0
aW9uczo6cmVwb3J0QmFzZWxpbmVDb21waWxlVGltZXMoKQogICAgICAgICB8fCBPcHRpb25zOjpy
ZXBvcnRERkdDb21waWxlVGltZXMoKQogICAgICAgICB8fCBPcHRpb25zOjpyZXBvcnRGVExDb21w
aWxlVGltZXMoKQotICAgICAgICB8fCBPcHRpb25zOjpyZXBvcnRERkdQaGFzZVRpbWVzKCkKKyAg
ICAgICAgfHwgT3B0aW9uczo6bG9nUGhhc2VUaW1lcygpCiAgICAgICAgIHx8IE9wdGlvbnM6OnZl
cmJvc2VDRkEoKQogICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlREZHRmFpbHVyZSgpCiAgICAg
ICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExGYWlsdXJlKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMzEzMjgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNSw3ICsy
MDUsNiBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluCiAgICAgdihi
b29sLCByZXBvcnRCYXNlbGluZUNvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpT
IGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBCYXNlbGluZUpJVCBj
b21waWxlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0REZHQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9y
bWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRv
IERGRyBhbmQgRlRMIGNvbXBpbGUiKSBcCiAgICAgdihib29sLCByZXBvcnRGVExDb21waWxlVGlt
ZXMsIGZhbHNlLCBOb3JtYWwsICJkdW1wcyBKUyBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0
aW1lIGl0IHRvb2sgdG8gRlRMIGNvbXBpbGUiKSBcCi0gICAgdihib29sLCByZXBvcnRERkdQaGFz
ZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIHRp
bWUgaXMgdG9vayBmb3IgZWFjaCBERkcgcGhhc2UiKSBcCiAgICAgdihib29sLCByZXBvcnRUb3Rh
bENvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgcmVw
b3J0UGFyc2VUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9uIHNpZ25hdHVy
ZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBwYXJzZSIpIFwKICAgICB2KGJvb2wsIHJlcG9ydEJ5
dGVjb2RlQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2ln
bmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIGJ5dGVjb2RlIGNvbXBpbGUiKSBcCkBAIC00
MzQsNyArNDMzLDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbgog
ICAgIHYodW5zaWduZWQsIGZpcmVPU1JFeGl0RnV6ekF0LCAwLCBOb3JtYWwsIG51bGxwdHIpIFwK
ICAgICB2KHVuc2lnbmVkLCBmaXJlT1NSRXhpdEZ1enpBdE9yQWZ0ZXIsIDAsIE5vcm1hbCwgbnVs
bHB0cikgXAogICAgIFwKLSAgICB2KGJvb2wsIGxvZ0IzUGhhc2VUaW1lcywgZmFsc2UsIE5vcm1h
bCwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgbG9nUGhhc2VUaW1lcywgZmFsc2UsIE5vcm1hbCwg
bnVsbHB0cikgXAogICAgIHYoZG91YmxlLCByYXJlQmxvY2tQZW5hbHR5LCAwLjAwMSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihib29sLCBhaXJMaW5lYXJTY2FuVmVyYm9zZSwgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgYWlyTGluZWFyU2NhblNwaWxsc0V2ZXJ5dGhp
bmcsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwK
</data>
<flag name="review"
          id="357715"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339481</attachid>
            <date>2018-05-03 16:08:00 -0700</date>
            <delta_ts>2018-05-03 16:08:00 -0700</delta_ts>
            <desc>patch for landing, I think</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>26001</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMxMzI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE4LTA1LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TWFrZSBpdCBlYXN5IHRvIGxvZyBjb21waWxlIHRpbWVzIGZvciBhbGwgb3B0aW1pemluZyB0aWVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1Mjcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBtYWtlcyAtLWxvZ1BoYXNlVGltZXM9dHJ1ZSBlbmFibGUgbG9nZ2luZyBvZiBwaGFzZSB0
aW1lcyBmb3IgREZHIGFuZCBCMyB1c2luZyBhIGNvbW1vbgorICAgICAgICBoZWxwZXIgY2xhc3Ms
IENvbXBpbGVyVGltaW5nU2NvcGUuIFRoaXMgdXNlZCB0byBiZSBjYWxsZWQgQjM6OlRpbWluZ1Nj
b3BlIGFuZCBvbmx5IEIzIHVzZWQKKyAgICAgICAgaXQuCisgICAgICAgIAorICAgICAgICBUaGlz
IHNob3VsZCBoZWxwIHVzIHJlZHVjZSBjb21waWxlIHRpbWVzIGJ5IHRlbGxpbmcgdXMgd2hlcmUg
dG8gbG9vay4gU28sIGZhciwgaXQgbG9va3MgbGlrZQorICAgICAgICBDRkEgaXMgdGhlIHdvcnN0
LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBiMy9CM0NvbW1vbi5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpzaG91bGRNZWFzdXJlUGhhc2VUaW1pbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIGIzL0IzQ29tbW9uLmg6CisgICAgICAgICogYjMvQjNUaW1pbmdTY29wZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogYjMvQjNUaW1pbmdTY29wZS5oOgorICAgICAgICAoSlNDOjpCMzo6VGlt
aW5nU2NvcGU6OlRpbWluZ1Njb3BlKToKKyAgICAgICAgKiBkZmcvREZHUGhhc2UuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpydW5BbmRMb2cpOgorICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQpOgorICAgICAgICAqIHRvb2xz
L0NvbXBpbGVyVGltaW5nU2NvcGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6Q29tcGlsZXJU
aW1pbmdTY29wZTo6Q29tcGlsZXJUaW1pbmdTY29wZSk6CisgICAgICAgIChKU0M6OkNvbXBpbGVy
VGltaW5nU2NvcGU6On5Db21waWxlclRpbWluZ1Njb3BlKToKKyAgICAgICAgKiB0b29scy9Db21w
aWxlclRpbWluZ1Njb3BlLmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6
CisgICAgICAgIChKU0M6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMpOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE4LTA1LTAzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvbnRlbnQgY3Jhc2ggbG9hZGluZyBwYWdlIG9uIHNl
YXMudXBlbm4uZWR1IEAgSmF2YVNjcmlwdENvcmU6IHZtRW50cnlUb0phdmFTY3JpcHQKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDcgKzE1OSw2
IEBAIGIzL0IzU3RhY2ttYXBWYWx1ZS5jcHAKIGIzL0IzU3RhY2tTbG90LmNwcAogYjMvQjNTd2l0
Y2hDYXNlLmNwcAogYjMvQjNTd2l0Y2hWYWx1ZS5jcHAKLWIzL0IzVGltaW5nU2NvcGUuY3BwCiBi
My9CM1R5cGUuY3BwCiBiMy9CM1Vwc2lsb25WYWx1ZS5jcHAKIGIzL0IzVXNlQ291bnRzLmNwcApA
QCAtNzA4LDYgKzcwNyw3IEBAIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCiBydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5j
cHAKIHJ1bnRpbWUvQ29tcGlsYXRpb25SZXN1bHQuY3BwCit0b29scy9Db21waWxlclRpbWluZ1Nj
b3BlLmNwcAogcnVudGltZS9Db21wbGV0aW9uLmNwcAogcnVudGltZS9Db25maWdGaWxlLmNwcAog
cnVudGltZS9Db25zb2xlQ2xpZW50LmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMTgsNiAr
MzE4LDcgQEAKIAkJMEY0RDhDNzUxRkM3QTk3RDAwMUQzMkFDIC8qIENvbnN0cmFpbnRQYXJhbGxl
bGlzbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
RDhDNzMxRkM3QTk3NDAwMUQzMkFDIC8qIENvbnN0cmFpbnRQYXJhbGxlbGlzbS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNEQ4Qzc4MUZDQTND
RkEwMDFEMzJBQyAvKiBTaW1wbGVNYXJraW5nQ29uc3RyYWludC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RDhDNzcxRkNBM0NGMzAwMUQzMkFDIC8q
IFNpbXBsZU1hcmtpbmdDb25zdHJhaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0REUxQ0YxQzRDMUI1NDAwNEQ2QzExIC8qIEFpckZpeE9i
dmlvdXNTcGlsbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNERFMUNEMUM0QzFCNTQwMDRENkMxMSAvKiBBaXJGaXhPYnZpb3VzU3BpbGxzLmggKi87
IH07CisJCTBGNEYxMUU4MjA5QkNEQUIwMDcwOTY1NCAvKiBDb21waWxlclRpbWluZ1Njb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRGMTFFNjIw
OUJDREExMDA3MDk2NTQgLyogQ29tcGlsZXJUaW1pbmdTY29wZS5oICovOyB9OwogCQkwRjRGMjlF
MDE4QjZBRDFDMDA1N0JDMTUgLyogREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEYy
OURFMThCNkFEMUMwMDU3QkMxNSAvKiBERkdTdGF0aWNFeGVjdXRpb25Db3VudEVzdGltYXRpb25Q
aGFzZS5oICovOyB9OwogCQkwRjRGODI4ODFFMkZGREUwMDA3NTE4NEMgLyogSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0RjgyODYxRTJGRkREQjAwNzUxODRDIC8qIEpTU2VnbWVudGVk
VmFyaWFibGVPYmplY3RIZWFwQ2VsbFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjRGODI4QzFFMzFCOTc2MDA3NTE4NEMgLyogU3RvY2hh
c3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEY4MjhBMUUzMUI5NzEwMDc1MTg0QyAvKiBTdG9jaGFz
dGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oICovOyB9OwpAQCAtMjI3Miw3ICsyMjczLDYg
QEAKIAkJMEY0NTcwMzcxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFpckVsaW1pbmF0ZURlYWRDb2RlLmg7
IHBhdGggPSBiMy9haXIvQWlyRWxpbWluYXRlRGVhZENvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NTcwM0ExQkU0NUYwQTAwNjJBNjI5IC8qIEFpclJlcG9ydFVzZWRSZWdp
c3RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWlyUmVwb3J0
VXNlZFJlZ2lzdGVycy5jcHA7IHBhdGggPSBiMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDU3MDNCMUJFNDVGMEEwMDYyQTYy
OSAvKiBBaXJSZXBvcnRVc2VkUmVnaXN0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEFpclJlcG9ydFVzZWRSZWdpc3RlcnMuaDsgcGF0aCA9IGIzL2Fpci9BaXJSZXBvcnRV
c2VkUmVnaXN0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNDU3MDNFMUJF
NTg0Q0EwMDYyQTYyOSAvKiBCM1RpbWluZ1Njb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEIzVGltaW5nU2NvcGUuY3BwOyBwYXRoID0gYjMvQjNUaW1pbmdTY29w
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDU3MDNGMUJFNTg0Q0EwMDYy
QTYyOSAvKiBCM1RpbWluZ1Njb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEIzVGltaW5nU2NvcGUuaDsgcGF0aCA9IGIzL0IzVGltaW5nU2NvcGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NjgwN0YxNEJBNTcyNzAwQkZFMjcyIC8qIEpJVEV4Y2VwdGlv
bnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklURXhjZXB0aW9u
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDY4MDgwMTRCQTU3MjcwMEJG
RTI3MiAvKiBKSVRFeGNlcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpJVEV4Y2VwdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMDgsNiAr
MjMwOCw4IEBACiAJCTBGNERFMUNDMUM0QzFCNTQwMDRENkMxMSAvKiBBaXJGaXhPYnZpb3VzU3Bp
bGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeE9idmlv
dXNTcGlsbHMuY3BwOyBwYXRoID0gYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjRERTFDRDFDNEMxQjU0MDA0RDZDMTEgLyogQWly
Rml4T2J2aW91c1NwaWxscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBaXJG
aXhPYnZpb3VzU3BpbGxzLmg7IHBhdGggPSBiMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjRERTFEMDFDNEQ3NjRCMDA0RDZDMTEgLyog
QjNPcmlnaW5EdW1wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIz
T3JpZ2luRHVtcC5jcHA7IHBhdGggPSBiMy9CM09yaWdpbkR1bXAuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwRjRGMTFFNjIwOUJDREExMDA3MDk2NTQgLyogQ29tcGlsZXJUaW1p
bmdTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21waWxlclRpbWlu
Z1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNEYxMUU3MjA5QkNEQTEw
MDcwOTY1NCAvKiBDb21waWxlclRpbWluZ1Njb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbXBpbGVyVGltaW5nU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjRGMjlERDE4QjZBRDFDMDA1N0JDMTUgLyogREZHU3RhdGljRXhlY3V0
aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuY3BwOyBwYXRo
ID0gZGZnL0RGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBoYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RjI5REUxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0
YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBoYXNlLmg7IHBh
dGggPSBkZmcvREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RjgyODUxRTJGRkREQjAwNzUxODRDIC8qIEpTU2Vn
bWVudGVkVmFyaWFibGVPYmplY3RIZWFwQ2VsbFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdEhlYXBDZWxsVHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjEwLDcgKzUyMTIsNiBAQAogCQkJ
CTBGRUM4NEVFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N3aXRjaENhc2UuaCAqLywKIAkJCQkwRkVD
ODRFRjFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hWYWx1ZS5jcHAgKi8sCiAJCQkJMEZFQzg0
RjAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuaCAqLywKLQkJCQkwRjQ1NzAzRTFC
RTU4NENBMDA2MkE2MjkgLyogQjNUaW1pbmdTY29wZS5jcHAgKi8sCiAJCQkJMEY0NTcwM0YxQkU1
ODRDQTAwNjJBNjI5IC8qIEIzVGltaW5nU2NvcGUuaCAqLywKIAkJCQkwRkVDODRGMTFCREFDREFD
MDA4MEZGNzQgLyogQjNUeXBlLmNwcCAqLywKIAkJCQkwRkVDODRGMjFCREFDREFDMDA4MEZGNzQg
LyogQjNUeXBlLmggKi8sCkBAIC02NTk1LDkgKzY1OTYsOSBAQAogCQkJCUUxNzg2MzNGMEQ5QkVD
MDAwMEQ3NEU3NSAvKiBJbml0aWFsaXplVGhyZWFkaW5nLmggKi8sCiAJCQkJRTM1RTAzNUQxQjdB
QjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgKi8sCiAJ
CQkJRTM1RTAzNUUxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdC5oICovLAorCQkJCUE3QThBRjJCMTdBREI1RjMwMDVBQjE3NCAvKiBJbnQ4QXJyYXkuaCAq
LywKIAkJCQlBN0E4QUYyQzE3QURCNUYzMDA1QUIxNzQgLyogSW50MTZBcnJheS5oICovLAogCQkJ
CUE3QThBRjJEMTdBREI1RjMwMDVBQjE3NCAvKiBJbnQzMkFycmF5LmggKi8sCi0JCQkJQTdBOEFG
MkIxN0FEQjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUJDOUJCOTVCMEUxOTY4
MDYwMERGODg1NSAvKiBJbnRlcm5hbEZ1bmN0aW9uLmNwcCAqLywKIAkJCQlCQzExNjY3QTBFMTk5
QzA1MDA4MDY2REQgLyogSW50ZXJuYWxGdW5jdGlvbi5oICovLAogCQkJCUExQjlFMjMzMUI0RTBE
NjcwMEJDN0ZFRCAvKiBJbnRsQ29sbGF0b3IuY3BwICovLApAQCAtNjcwNSw5ICs2NzA2LDkgQEAK
IAkJCQlCQzc1NkZDNjBFMjAzMUIyMDBERTdEMTIgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwICovLAogCQkJCUJDNzU2RkM3MEUyMDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oICovLAogCQkJCTc5QjgxOTkyMUREMjVDRjUwMEREQzcxNCAvKiBKU0dsb2JhbE9i
amVjdElubGluZXMuaCAqLywKKwkJCQkwRjJCNjZDOTE3QjZCNUFCMDBBN0FFM0YgLyogSlNJbnQ4
QXJyYXkuaCAqLywKIAkJCQkwRjJCNjZDQTE3QjZCNUFCMDBBN0FFM0YgLyogSlNJbnQxNkFycmF5
LmggKi8sCiAJCQkJMEYyQjY2Q0IxN0I2QjVBQjAwQTdBRTNGIC8qIEpTSW50MzJBcnJheS5oICov
LAotCQkJCTBGMkI2NkM5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0ludDhBcnJheS5oICovLAogCQkJ
CUUzM0Y1MDdFMUI4NDI5QTQwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZS5jcHAgKi8sCiAJ
CQkJRTMzRjUwN0YxQjg0MjlBNDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlLmggKi8sCiAJ
CQkJRTMzRjUwNzYxQjg0MjI1NzAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IuY3BwICovLApAQCAtNjc5NiwxMCArNjc5NywxMCBAQAogCQkJCTUzRjI1NkUxMUI4N0UyODAw
MEI0Qjc2OCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCAqLywKIAkJCQk1MzkxN0U3
QzFCNzkxMTA2MDAwRUJEMzMgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oICovLAogCQkJ
CTY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggKi8sCi0JCQkJMEYyQjY2
RDQxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2QXJyYXkuaCAqLywKLQkJCQkwRjJCNjZENTE3
QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5oICovLAogCQkJCTBGMkI2NkQyMTdCNkI1
QUIwMEE3QUUzRiAvKiBKU1VpbnQ4QXJyYXkuaCAqLywKIAkJCQkwRjJCNjZEMzE3QjZCNUFCMDBB
N0FFM0YgLyogSlNVaW50OENsYW1wZWRBcnJheS5oICovLAorCQkJCTBGMkI2NkQ0MTdCNkI1QUIw
MEE3QUUzRiAvKiBKU1VpbnQxNkFycmF5LmggKi8sCisJCQkJMEYyQjY2RDUxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTVWludDMyQXJyYXkuaCAqLywKIAkJCQlBN0NBM0FFMTE3REE0MUFFMDA2NTM4QUYg
LyogSlNXZWFrTWFwLmNwcCAqLywKIAkJCQlBN0NBM0FFMjE3REE0MUFFMDA2NTM4QUYgLyogSlNX
ZWFrTWFwLmggKi8sCiAJCQkJNzA5RkI4NjExQUUzMzVDNjAwMzlEMDY5IC8qIEpTV2Vha1NldC5j
cHAgKi8sCkBAIC03MDA4LDExICs3MDA5LDExIEBACiAJCQkJMEYyRDRERTAxOTgzMkQ5MTAwN0Q0
QjE5IC8qIFR5cGVQcm9maWxlckxvZy5oICovLAogCQkJCTBGMkQ0REUzMTk4MzJEOTEwMDdENEIx
OSAvKiBUeXBlU2V0LmNwcCAqLywKIAkJCQkwRjJENERFNDE5ODMyRDkxMDA3RDRCMTkgLyogVHlw
ZVNldC5oICovLAorCQkJCUE3QThBRjMwMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50OEFycmF5Lmgg
Ki8sCisJCQkJQTdBOEFGMzExN0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQ4Q2xhbXBlZEFycmF5Lmgg
Ki8sCiAJCQkJQTdBOEFGMzIxN0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQxNkFycmF5LmggKi8sCiAJ
CQkJODY2NzM5RDExM0JGREU3MTAwMjNEODdDIC8qIFVpbnQxNldpdGhGcmFjdGlvbi5oICovLAog
CQkJCUE3QThBRjMzMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50MzJBcnJheS5oICovLAotCQkJCUE3
QThBRjMwMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50OEFycmF5LmggKi8sCi0JCQkJQTdBOEFGMzEx
N0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQ4Q2xhbXBlZEFycmF5LmggKi8sCiAJCQkJMEZFMDUwMjMx
QUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNldC5jcHAgKi8sCiAJCQkJMEZFMDUwMjQxQUE5MDk1
NjAwRDMzQjMzIC8qIFZhck9mZnNldC5oICovLAogCQkJCUUxOEUzQTU3MERGOTI3OEMwMEQ5MEIz
NCAvKiBWTS5jcHAgKi8sCkBAIC03MDUzLDYgKzcwNTQsOCBAQAogCQkJCTg2QjU4MjJGMTREMjM3
M0IwMEE5QzMwNiAvKiBDb2RlUHJvZmlsZS5oICovLAogCQkJCTg2MDNDRUYyMTRDNzU0NjQwMEFF
NTlFMyAvKiBDb2RlUHJvZmlsaW5nLmNwcCAqLywKIAkJCQk4NjAzQ0VGMzE0Qzc1NDY0MDBBRTU5
RTMgLyogQ29kZVByb2ZpbGluZy5oICovLAorCQkJCTBGNEYxMUU3MjA5QkNEQTEwMDcwOTY1NCAv
KiBDb21waWxlclRpbWluZ1Njb3BlLmNwcCAqLywKKwkJCQkwRjRGMTFFNjIwOUJDREExMDA3MDk2
NTQgLyogQ29tcGlsZXJUaW1pbmdTY29wZS5oICovLAogCQkJCUZFNEJGRjI5MUFENDc2RTcwMDA4
OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgKi8sCiAJCQkJRkU0QkZGMkExQUQ0NzZFNzAw
MDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmggKi8sCiAJCQkJRkVBMEM0MDAxQ0REN0QwRTAw
NDgxOTkxIC8qIEZ1bmN0aW9uV2hpdGVsaXN0LmNwcCAqLywKQEAgLTg3NzUsNiArODc3OCw3IEBA
CiAJCQkJMEYyQjY2QUMxN0I2QjUzRjAwQTdBRTNGIC8qIEdDSW5jb21pbmdSZWZDb3VudGVkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZBRDE3QjZCNTQ1MDBBN0FFM0YgLyogR0NJbmNvbWlu
Z1JlZkNvdW50ZWRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZBRTE3QjZCNTQ1
MDBBN0FFM0YgLyogR0NJbmNvbWluZ1JlZkNvdW50ZWRTZXQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNEYxMUU4MjA5QkNEQUIwMDcwOTY1NCAvKiBDb21waWxlclRpbWluZ1Njb3BlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjJCNjZBRjE3QjZCNTQ1MDBBN0FFM0YgLyogR0NJbmNvbWluZ1JlZkNv
dW50ZWRTZXRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFCQ0RFNzE4RUYyOTQyMDAw
MDIwOTYgLyogR0NMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk3MTUzMTFFQjI4QkVF
MDBBMTY0NUQgLyogR0NSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29tbW9uLmNwcAkocmV2aXNpb24gMjMxMzI4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29tbW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTEgKzY1LDYg
QEAgYm9vbCBzaG91bGRTYXZlSVJCZWZvcmVQaGFzZSgpCiAgICAgcmV0dXJuIE9wdGlvbnM6OnZl
cmJvc2VWYWxpZGF0aW9uRmFpbHVyZSgpOwogfQogCi1ib29sIHNob3VsZE1lYXN1cmVQaGFzZVRp
bWluZygpCi17Ci0gICAgcmV0dXJuIE9wdGlvbnM6OmxvZ0IzUGhhc2VUaW1lcygpOwotfQotCiBz
dGQ6Om9wdGlvbmFsPEdQUlJlZz4gcGlubmVkRXh0ZW5kZWRPZmZzZXRBZGRyUmVnaXN0ZXIoKQog
ewogI2lmIENQVShBUk02NCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1v
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShy
ZXZpc2lvbiAyMzEzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQCBib29sIHNob3VsZER1bXBJUkF0RWFjaFBo
YXNlKEIzQ29tcGxpdGF0CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFs
aWRhdGVJUkF0RWFjaFBoYXNlKCk7CiBib29sIHNob3VsZFNhdmVJUkJlZm9yZVBoYXNlKCk7Ci1i
b29sIHNob3VsZE1lYXN1cmVQaGFzZVRpbWluZygpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCaXRz
VHlwZSwgdHlwZW5hbWUgSW5wdXRUeXBlPgogaW5saW5lIGJvb2wgaXNJZGVudGljYWwoSW5wdXRU
eXBlIGxlZnQsIElucHV0VHlwZSByaWdodCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1RpbWluZ1Njb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNUaW1pbmdTY29wZS5jcHAJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1RpbWluZ1Njb3BlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDg1ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgotCi0jaWYgRU5B
QkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzQ29tbW9uLmgiCi0jaW5jbHVkZSA8d3RmL0RhdGFM
b2cuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0K
LW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBT
dGF0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RhdGUpOwotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFN0YXRlKCkgeyB9Ci0gICAgCi0gICAgU2Vjb25k
cyBhZGRUb1RvdGFsKGNvbnN0IGNoYXIqIG5hbWUsIFNlY29uZHMgZHVyYXRpb24pCi0gICAgewot
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxvY2spOwotICAgICAgICByZXR1cm4gdG90
YWxzLmFkZChuYW1lLCBTZWNvbmRzKDApKS5pdGVyYXRvci0+dmFsdWUgKz0gZHVyYXRpb247Ci0g
ICAgfQotICAgIAotcHJpdmF0ZToKLSAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBTZWNvbmRzPiB0
b3RhbHM7Ci0gICAgTG9jayBsb2NrOwotfTsKLQotU3RhdGUmIHN0YXRlKCkKLXsKLSAgICBzdGF0
aWMgQXRvbWljPFN0YXRlKj4gc19zdGF0ZTsKLSAgICByZXR1cm4gZW5zdXJlUG9pbnRlcihzX3N0
YXRlLCBbXSB7IHJldHVybiBuZXcgU3RhdGUoKTsgfSk7Ci19Ci0KLX0gLy8gYW5vbnltb3VzIG5h
bWVzcGFjZQotCi1UaW1pbmdTY29wZTo6VGltaW5nU2NvcGUoY29uc3QgY2hhciogbmFtZSkKLSAg
ICA6IG1fbmFtZShuYW1lKQotewotICAgIGlmIChzaG91bGRNZWFzdXJlUGhhc2VUaW1pbmcoKSkK
LSAgICAgICAgbV9iZWZvcmUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLX0KLQotVGltaW5nU2Nv
cGU6On5UaW1pbmdTY29wZSgpCi17Ci0gICAgaWYgKHNob3VsZE1lYXN1cmVQaGFzZVRpbWluZygp
KSB7Ci0gICAgICAgIFNlY29uZHMgZHVyYXRpb24gPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1f
YmVmb3JlOwotICAgICAgICBkYXRhTG9nKAotICAgICAgICAgICAgIltCM10gIiwgbV9uYW1lLCAi
IHRvb2s6ICIsIGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpLCAiIG1zICIsCi0gICAgICAgICAgICAi
KHRvdGFsOiAiLCBzdGF0ZSgpLmFkZFRvVG90YWwobV9uYW1lLCBkdXJhdGlvbikubWlsbGlzZWNv
bmRzKCksICIgbXMpLlxuIik7Ci0gICAgfQotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
LQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1RpbWluZ1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVGltaW5nU2NvcGUuaAkocmV2aXNpb24gMjMxMzI4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVGltaW5nU2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjAgKzI3LDE2
IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUu
aD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlICJDb21waWxlclRpbWlu
Z1Njb3BlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBUaW1p
bmdTY29wZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGltaW5nU2NvcGUpOworY2xhc3Mg
VGltaW5nU2NvcGUgOiBwdWJsaWMgQ29tcGlsZXJUaW1pbmdTY29wZSB7CiBwdWJsaWM6Ci0gICAg
VGltaW5nU2NvcGUoY29uc3QgY2hhciogbmFtZSk7Ci0gICAgflRpbWluZ1Njb3BlKCk7Ci0KLXBy
aXZhdGU6Ci0gICAgY29uc3QgY2hhciogbV9uYW1lOwotICAgIE1vbm90b25pY1RpbWUgbV9iZWZv
cmU7CisgICAgVGltaW5nU2NvcGUoY29uc3QgY2hhciogbmFtZSkKKyAgICAgICAgOiBDb21waWxl
clRpbWluZ1Njb3BlKCJCMyIsIG5hbWUpCisgICAgeworICAgIH0KIH07CiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQaGFzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhc2UuaAkocmV2
aXNpb24gMjMxMzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQaGFzZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQog
CisjaW5jbHVkZSAiQ29tcGlsZXJUaW1pbmdTY29wZS5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5o
IgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAKQEAgLTc2LDE3ICs3NywxMCBAQCBwcml2YXRlOgog
dGVtcGxhdGU8dHlwZW5hbWUgUGhhc2VUeXBlPgogYm9vbCBydW5BbmRMb2coUGhhc2VUeXBlJiBw
aGFzZSkKIHsKLSAgICBNb25vdG9uaWNUaW1lIGJlZm9yZSB7IH07Ci0KLSAgICBpZiAoVU5MSUtF
TFkoT3B0aW9uczo6cmVwb3J0REZHUGhhc2VUaW1lcygpKSkKLSAgICAgICAgYmVmb3JlID0gTW9u
b3RvbmljVGltZTo6bm93KCk7Ci0KKyAgICBDb21waWxlclRpbWluZ1Njb3BlIHRpbWluZ1Njb3Bl
KCJERkciLCBwaGFzZS5uYW1lKCkpOworICAgIAogICAgIGJvb2wgcmVzdWx0ID0gcGhhc2UucnVu
KCk7CiAKLSAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6cmVwb3J0REZHUGhhc2VUaW1lcygpKSkg
ewotICAgICAgICBNb25vdG9uaWNUaW1lIGFmdGVyID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0g
ICAgICAgIGRhdGFMb2dGKCJQaGFzZSAlcyB0b29rICUuNGYgbXNcbiIsIHBoYXNlLm5hbWUoKSwg
KGFmdGVyIC0gYmVmb3JlKS5taWxsaXNlY29uZHMoKSk7Ci0gICAgfQogICAgIGlmIChyZXN1bHQg
JiYgbG9nQ29tcGlsYXRpb25DaGFuZ2VzKHBoYXNlLmdyYXBoKCkubV9wbGFuLm1vZGUpKQogICAg
ICAgICBkYXRhTG9nRigiUGhhc2UgJXMgY2hhbmdlZCB0aGUgSVIuXG4iLCBwaGFzZS5uYW1lKCkp
OwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5jcHAJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIFBsYW46OmNv
bXBpbGVJblRocmVhZChUaHJlYWREYXRhKiB0CiAgICAgCiAgICAgQ29tcGlsYXRpb25TY29wZSBj
b21waWxhdGlvblNjb3BlOwogCi0gICAgaWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdlcyhtb2RlKSB8
fCBPcHRpb25zOjpyZXBvcnRERkdQaGFzZVRpbWVzKCkpCisgICAgaWYgKGxvZ0NvbXBpbGF0aW9u
Q2hhbmdlcyhtb2RlKSB8fCBPcHRpb25zOjpsb2dQaGFzZVRpbWVzKCkpCiAgICAgICAgIGRhdGFM
b2coIkRGRyhQbGFuKSBjb21waWxpbmcgIiwgKmNvZGVCbG9jaywgIiB3aXRoICIsIG1vZGUsICIs
IG51bWJlciBvZiBpbnN0cnVjdGlvbnMgPSAiLCBjb2RlQmxvY2stPmluc3RydWN0aW9uQ291bnQo
KSwgIlxuIik7CiAKICAgICBDb21waWxhdGlvblBhdGggcGF0aCA9IGNvbXBpbGVJblRocmVhZElt
cGwoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShy
ZXZpc2lvbiAyMzEzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI2LDcgKzQyNiw3IEBAIHN0YXRpYyB2b2lkIHJlY29t
cHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAgICAgICB8fCBPcHRpb25zOjpyZXBvcnRCYXNlbGlu
ZUNvbXBpbGVUaW1lcygpCiAgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydERGR0NvbXBpbGVUaW1l
cygpCiAgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpCi0gICAgICAg
IHx8IE9wdGlvbnM6OnJlcG9ydERGR1BoYXNlVGltZXMoKQorICAgICAgICB8fCBPcHRpb25zOjps
b2dQaGFzZVRpbWVzKCkKICAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpCiAgICAgICAg
IHx8IE9wdGlvbnM6OnZlcmJvc2VERkdGYWlsdXJlKCkKICAgICAgICAgfHwgT3B0aW9uczo6dmVy
Ym9zZUZUTEZhaWx1cmUoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgJKHJldmlzaW9uIDIzMTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA1LDcgKzIwNSw2IEBAIGNvbnN0ZXhwciBi
b29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW4KICAgICB2KGJvb2wsIHJlcG9ydEJhc2VsaW5l
Q29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0dXJl
IGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIEJhc2VsaW5lSklUIGNvbXBpbGUiKSBcCiAgICAgdihi
b29sLCByZXBvcnRERkdDb21waWxlVGltZXMsIGZhbHNlLCBOb3JtYWwsICJkdW1wcyBKUyBmdW5j
dGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8gREZHIGFuZCBGVEwgY29tcGls
ZSIpIFwKICAgICB2KGJvb2wsIHJlcG9ydEZUTENvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwg
ImR1bXBzIEpTIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBGVEwg
Y29tcGlsZSIpIFwKLSAgICB2KGJvb2wsIHJlcG9ydERGR1BoYXNlVGltZXMsIGZhbHNlLCBOb3Jt
YWwsICJkdW1wcyBKUyBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgdGltZSBpcyB0b29rIGZvciBlYWNo
IERGRyBwaGFzZSIpIFwKICAgICB2KGJvb2wsIHJlcG9ydFRvdGFsQ29tcGlsZVRpbWVzLCBmYWxz
ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCByZXBvcnRQYXJzZVRpbWVzLCBmYWxz
ZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0
b29rIHRvIHBhcnNlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0Qnl0ZWNvZGVDb21waWxlVGltZXMs
IGZhbHNlLCBOb3JtYWwsICJkdW1wcyBKUyBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1l
IGl0IHRvb2sgdG8gYnl0ZWNvZGUgY29tcGlsZSIpIFwKQEAgLTQzNCw3ICs0MzMsNyBAQCBjb25z
dGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluCiAgICAgdih1bnNpZ25lZCwgZmly
ZU9TUkV4aXRGdXp6QXQsIDAsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIGZp
cmVPU1JFeGl0RnV6ekF0T3JBZnRlciwgMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAotICAg
IHYoYm9vbCwgbG9nQjNQaGFzZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCisgICAg
dihib29sLCBsb2dQaGFzZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihk
b3VibGUsIHJhcmVCbG9ja1BlbmFsdHksIDAuMDAxLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2
KGJvb2wsIGFpckxpbmVhclNjYW5WZXJib3NlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihib29sLCBhaXJMaW5lYXJTY2FuU3BpbGxzRXZlcnl0aGluZywgZmFsc2UsIE5vcm1hbCwg
bnVsbHB0cikgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvbXBpbGVyVGlt
aW5nU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9D
b21waWxlclRpbWluZ1Njb3BlLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvQ29tcGlsZXJUaW1pbmdTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21waWxlclRpbWluZ1Njb3Bl
LmgiCisKKyNpbmNsdWRlICJPcHRpb25zLmgiCisjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisKK25hbWVzcGFj
ZSBKU0MgeworCituYW1lc3BhY2UgeworCitjbGFzcyBDb21waWxlclRpbWluZ1Njb3BlU3RhdGUg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBpbGVyVGltaW5nU2NvcGVTdGF0ZSk7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQ29tcGlsZXJUaW1pbmdT
Y29wZVN0YXRlKCkgeyB9CisgICAgCisgICAgU2Vjb25kcyBhZGRUb1RvdGFsKGNvbnN0IGNoYXIq
IGNvbXBpbGVyTmFtZSwgY29uc3QgY2hhciogbmFtZSwgU2Vjb25kcyBkdXJhdGlvbikKKyAgICB7
CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobG9jayk7CisgICAgICAgIHJldHVybiB0
b3RhbHMuYWRkKHN0ZDo6bWFrZV9wYWlyKGNvbXBpbGVyTmFtZSwgbmFtZSksIFNlY29uZHMoMCkp
Lml0ZXJhdG9yLT52YWx1ZSArPSBkdXJhdGlvbjsKKyAgICB9CisgICAgCitwcml2YXRlOgorICAg
IEhhc2hNYXA8c3RkOjpwYWlyPGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKj4sIFNlY29uZHM+IHRv
dGFsczsKKyAgICBMb2NrIGxvY2s7Cit9OworCitDb21waWxlclRpbWluZ1Njb3BlU3RhdGUmIGNv
bXBpbGVyVGltaW5nU2NvcGVTdGF0ZSgpCit7CisgICAgc3RhdGljIEF0b21pYzxDb21waWxlclRp
bWluZ1Njb3BlU3RhdGUqPiBzX3N0YXRlOworICAgIHJldHVybiBlbnN1cmVQb2ludGVyKHNfc3Rh
dGUsIFtdIHsgcmV0dXJuIG5ldyBDb21waWxlclRpbWluZ1Njb3BlU3RhdGUoKTsgfSk7Cit9CisK
K30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitDb21waWxlclRpbWluZ1Njb3BlOjpDb21waWxl
clRpbWluZ1Njb3BlKGNvbnN0IGNoYXIqIGNvbXBpbGVyTmFtZSwgY29uc3QgY2hhciogbmFtZSkK
KyAgICA6IG1fY29tcGlsZXJOYW1lKGNvbXBpbGVyTmFtZSkKKyAgICAsIG1fbmFtZShuYW1lKQor
eworICAgIGlmIChPcHRpb25zOjpsb2dQaGFzZVRpbWVzKCkpCisgICAgICAgIG1fYmVmb3JlID0g
TW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK0NvbXBpbGVyVGltaW5nU2NvcGU6On5Db21waWxl
clRpbWluZ1Njb3BlKCkKK3sKKyAgICBpZiAoT3B0aW9uczo6bG9nUGhhc2VUaW1lcygpKSB7Cisg
ICAgICAgIFNlY29uZHMgZHVyYXRpb24gPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fYmVmb3Jl
OworICAgICAgICBkYXRhTG9nKAorICAgICAgICAgICAgIlsiLCBtX2NvbXBpbGVyTmFtZSwgIl0g
IiwgbV9uYW1lLCAiIHRvb2s6ICIsIGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpLCAiIG1zICIsCisg
ICAgICAgICAgICAiKHRvdGFsOiAiLCBjb21waWxlclRpbWluZ1Njb3BlU3RhdGUoKS5hZGRUb1Rv
dGFsKG1fY29tcGlsZXJOYW1lLCBtX25hbWUsIGR1cmF0aW9uKS5taWxsaXNlY29uZHMoKSwKKyAg
ICAgICAgICAgICIgbXMpLlxuIik7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29tcGlsZXJUaW1pbmdTY29wZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db21waWxlclRpbWlu
Z1Njb3BlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Nv
bXBpbGVyVGltaW5nU2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorCituYW1lc3BhY2UgSlNDIHsKKworLy8gRklYTUU6IFdlIHNob3VsZCBmaW5k
IHNvbWUgd2F5IG9mIHJlY29uY2lsaW5nIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFdURjo6VGlt
aW5nU2NvcGUgYW5kIHRoaXMgY2xhc3MuIFRoZSBkaWZmZXJlbmNlcworLy8gYXJlOgorLy8gLSBD
b21waWxlclRpbWluZ1Njb3BlIGtub3dzIHRvIG9ubHkgZG8gd29yayB3aGVuIC0tbG9nUGhhc2VU
aW1lcz10cnVlLCB3aGlsZSBUaW1pbmdTY29wZSBpcyB1bmNvbmRpdGlvbmFsLgorLy8gLSBDb21w
aWxlclRpbWluZ1Njb3BlIHJlcG9ydHMgdG90YWxzIG9uIGV2ZXJ5IHJ1biwgd2hpbGUgVGltaW5n
U2NvcGUgcmVwb3J0cyBhdmVyYWdlcyBwZXJpb2RpY2FsbHkuCisKK2NsYXNzIENvbXBpbGVyVGlt
aW5nU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBpbGVyVGltaW5nU2NvcGUp
OworcHVibGljOgorICAgIENvbXBpbGVyVGltaW5nU2NvcGUoY29uc3QgY2hhciogY29tcGlsZXJO
YW1lLCBjb25zdCBjaGFyKiBuYW1lKTsKKyAgICB+Q29tcGlsZXJUaW1pbmdTY29wZSgpOworCitw
cml2YXRlOgorICAgIGNvbnN0IGNoYXIqIG1fY29tcGlsZXJOYW1lOworICAgIGNvbnN0IGNoYXIq
IG1fbmFtZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>