<?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>103996</bug_id>
          
          <creation_ts>2012-12-04 07:11:10 -0800</creation_ts>
          <short_desc>[Qt] Implement IncrementalSweeper and HeapTimer</short_desc>
          <delta_ts>2013-02-19 05:11:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103998</blocked>
    
    <blocked>110211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>levin+threading</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782517</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-04 07:11:10 -0800</bug_when>
    <thetext>The IncrementalSweeper performs continous garbage collection as opposed to prompted or forced garbage collection.

It relies on HeapTimer which has only been implemented for Mac and Blackberry. 

Once HeapTimer has been implemented which should also be able to implemented opportunistic garbage collection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782518</commentid>
    <comment_count>1</comment_count>
      <attachid>177477</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-04 07:15:55 -0800</bug_when>
    <thetext>Created attachment 177477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782520</commentid>
    <comment_count>2</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-04 07:17:22 -0800</bug_when>
    <thetext>Note the thread-moving code has not been tested. I am unsure under which conditions it would happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782542</commentid>
    <comment_count>3</comment_count>
      <attachid>177477</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-04 07:55:33 -0800</bug_when>
    <thetext>Comment on attachment 177477
Patch

I found the first couple of multithreading issues. Not least of which that QBasicTimer depends on a QThread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782581</commentid>
    <comment_count>4</comment_count>
      <attachid>177495</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-04 08:42:32 -0800</bug_when>
    <thetext>Created attachment 177495
Patch

Use postEvent instead of startTimer, and ensure we create the event-dispatcher on construction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799316</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-01-03 02:01:26 -0800</bug_when>
    <thetext>See also comments in bug #95923 - it sucks that there&apos;s so much #ifdeffery for a little bit of platform specific timer code ;(

Is it perhaps time to have HeapTimerCF, HeapTimerQt and HeapTimerEFL.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802174</commentid>
    <comment_count>6</comment_count>
      <attachid>181678</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-08 02:51:39 -0800</bug_when>
    <thetext>Created attachment 181678
Patch

Split HeapTimer.cpp into platform specific source files. The Mac build is missing an update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802181</commentid>
    <comment_count>7</comment_count>
      <attachid>181678</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-08 02:58:13 -0800</bug_when>
    <thetext>Comment on attachment 181678
Patch

Attachment 181678 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15742915</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802189</commentid>
    <comment_count>8</comment_count>
      <attachid>181678</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-08 03:28:19 -0800</bug_when>
    <thetext>Comment on attachment 181678
Patch

Attachment 181678 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15756119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802202</commentid>
    <comment_count>9</comment_count>
      <attachid>181683</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-08 04:18:21 -0800</bug_when>
    <thetext>Created attachment 181683
Patch

Fix build for mac and win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802208</commentid>
    <comment_count>10</comment_count>
      <attachid>181683</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-08 04:31:26 -0800</bug_when>
    <thetext>Comment on attachment 181683
Patch

Attachment 181683 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15756136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802216</commentid>
    <comment_count>11</comment_count>
      <attachid>181685</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-08 04:53:51 -0800</bug_when>
    <thetext>Created attachment 181685
Patch

Another attempt at building on win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818739</commentid>
    <comment_count>12</comment_count>
      <attachid>181685</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-29 02:08:25 -0800</bug_when>
    <thetext>Comment on attachment 181685
Patch

Splitting the file seems opposed at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818764</commentid>
    <comment_count>13</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-01-29 02:53:19 -0800</bug_when>
    <thetext>Committed r141089: &lt;http://trac.webkit.org/changeset/141089&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177477</attachid>
            <date>2012-12-04 07:15:55 -0800</date>
            <delta_ts>2012-12-04 08:42:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103996-20121204161251.patch</filename>
            <type>text/plain</type>
            <size>6018</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZmM3NzJjYjNlN2Y1NWQ2NDliNTg4MWFiNDkyYWMwNTFjM2I5OGE1Li4xZDI2MzQ2YmNlMGVmN2Yw
YmI3N2ZmYTE0YmQ1MWI5Y2JlMGM1OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0xMi0wNCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVu
c2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdIEltcGxlbWVudCBJbmNyZW1lbnRhbFN3ZWVw
ZXIgYW5kIEhlYXBUaW1lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50cyB0aGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgZ2FyYmFnZSBjb2xs
ZWN0aW9uIGZvciB0aGUgUXQgcGxhdGZvcm0uCisKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lci5j
cHA6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6SGVhcFRpbWVyKToKKyAgICAgICAgKEpTQzo6
SGVhcFRpbWVyOjp+SGVhcFRpbWVyKToKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjp0aW1lckV2
ZW50KToKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpzeW5jaHJvbml6ZSk6CisgICAgICAgIChK
U0M6OkhlYXBUaW1lcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6ZGlk
U3RhcnRWTVNodXRkb3duKToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lci5oOgorICAgICAgICAo
SGVhcFRpbWVyKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAg
ICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6SW5jcmVtZW50YWxTd2VlcGVyKToKKyAgICAg
ICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpzY2hlZHVsZVRpbWVyKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAoSW5jcmVtZW50YWxTd2VlcGVyKToK
KwogMjAxMi0xMi0wMyAgUGV0ZXIgUnliaW4gIDxwcnliaW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgQVNTRVJUSU9OIEZBSUxFRDogZm91bmRQcm9wZXJ0aWVz
Q291bnQgPT0gb2JqZWN0LT5zaXplKCkgbW9yZSB1c2VmdWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwVGltZXIuY3BwCmluZGV4IDIxNGY4Njc1Nzg2MjkxMGYzNzI5NDI4NTg0OGU0OWM2
MmNmMjdhNTUuLjk3MjU4YjcyODlkZGFiNDQ2ZDJhMjg5M2Q3MGY5N2Q2ZjU4ZTVkNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcApAQCAtMzMsNiArMzMsMTIgQEAK
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
IAorI2lmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFNdXRleExvY2tlcj4KKyNpbmNsdWRlIDxR
VGhyZWFkPgorI2luY2x1ZGUgPFFUaW1lckV2ZW50PgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0Mg
ewogCiAjaWYgVVNFKENGKQpAQCAtMTMyLDggKzEzOCw2MCBAQCB2b2lkIEhlYXBUaW1lcjo6ZGlk
U3RhcnRWTVNodXRkb3duKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotI2Vsc2UKKyNlbGlmIFBM
QVRGT1JNKFFUKQorCitIZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEpCisgICAgOiBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKKyAgICAsIG1fbmV3VGhyZWFkKDAp
CisgICAgLCBtX211dGV4KFFNdXRleDo6Tm9uUmVjdXJzaXZlKQoreworfQorCitIZWFwVGltZXI6
On5IZWFwVGltZXIoKQoreworfQorCit2b2lkIEhlYXBUaW1lcjo6dGltZXJFdmVudChRVGltZXJF
dmVudCogZXZlbnQpCit7CisgICAgQVNTRVJUKHRocmVhZCgpID09IFFUaHJlYWQ6OmN1cnJlbnRU
aHJlYWQoKSk7CisgICAgUU11dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgpOworICAgIGlmIChldmVu
dC0+dGltZXJJZCgpICE9IG1fdGltZXIudGltZXJJZCgpKSB7CisgICAgICAgIGtpbGxUaW1lcihl
dmVudC0+dGltZXJJZCgpKTsKKyAgICAgICAgbW92ZVRvVGhyZWFkKG1fbmV3VGhyZWFkKTsKKyAg
ICAgICAgbV9uZXdUaHJlYWQgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFQSUVu
dHJ5U2hpbSBzaGltKG1fZ2xvYmFsRGF0YSwgQVBJRW50cnlTaGltV2l0aG91dExvY2s6OkRvbnRS
ZWZHbG9iYWxEYXRhKTsKKyAgICBkb1dvcmsoKTsKK30KIAordm9pZCBIZWFwVGltZXI6OnN5bmNo
cm9uaXplKCkKK3sKKyAgICBpZiAodGhyZWFkKCkgIT0gUVRocmVhZDo6Y3VycmVudFRocmVhZCgp
KSB7CisgICAgICAgIC8vIFdlIGNhbiBvbmx5IG1vdmUgZnJvbSB0aGUgb2JqZWN0cyBvd24gdGhy
ZWFkIHRvIGFub3RoZXIsIHNvIHdlIGZpcmUgYSB0aW1lcgorICAgICAgICAvLyBldmVudCBpbnRv
IHRoZSBvd25pbmcgdGhyZWFkIHRvIHRyaWdnZXIgdGhlIG1vdmUuCisgICAgICAgIFFNdXRleExv
Y2tlciBsb2NrKCZtX211dGV4KTsKKyAgICAgICAgbV9uZXdUaHJlYWQgPSBRVGhyZWFkOjpjdXJy
ZW50VGhyZWFkKCk7CisgICAgICAgIHN0YXJ0VGltZXIoMCk7CisgICAgfQorfQorCit2b2lkIEhl
YXBUaW1lcjo6aW52YWxpZGF0ZSgpCit7CisgICAgUU11dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgp
OworICAgIG1fdGltZXIuc3RvcCgpOworfQorCit2b2lkIEhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNo
dXRkb3duKCkKK3sKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgaWYgKHRocmVhZCgpID09IFFUaHJl
YWQ6OmN1cnJlbnRUaHJlYWQoKSkKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgZWxzZQorICAg
ICAgICBkZWxldGVMYXRlcigpOworfQorCisjZWxzZQogSGVhcFRpbWVyOjpIZWFwVGltZXIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIDogbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5oCmluZGV4IDg4NzE1MDk4YTQwZGQy
MTllM2E4YzJjYzJhNWVhNjc3ZDBlNWQyN2IuLjc1YzcxNmYyMDRmZDRiMTBjYTQ3MDRjOTYzM2Ji
MTMxNTU1NjUwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBU
aW1lci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5oCkBAIC0z
MywxMyArMzMsMjIgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5o
PgogI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZv
cm1UaW1lci5oPgorI2VsaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UUJhc2ljVGltZXI+Cisj
aW5jbHVkZSA8UU11dGV4PgorI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UVRocmVhZD4K
ICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIAor
CisjaWYgUExBVEZPUk0oUVQpCitjbGFzcyBIZWFwVGltZXIgOiBwdWJsaWMgUU9iamVjdCB7Cisj
ZWxzZQogY2xhc3MgSGVhcFRpbWVyIHsKKyNlbmRpZgogcHVibGljOgogI2lmIFVTRShDRikKICAg
ICBIZWFwVGltZXIoSlNHbG9iYWxEYXRhKiwgQ0ZSdW5Mb29wUmVmKTsKQEAgLTY5LDYgKzc4LDEx
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHRpbWVyRGlkRmlyZSgpOwogCiAgICAgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlRpbWVyPEhlYXBUaW1lcj4gbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKFFU
KQorICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCopOworICAgIFFCYXNpY1RpbWVyIG1f
dGltZXI7CisgICAgUVRocmVhZCogbV9uZXdUaHJlYWQ7CisgICAgUU11dGV4IG1fbXV0ZXg7CiAj
ZW5kaWYKICAgICAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SW5jcmVtZW50YWxTd2VlcGVyLmNwcAppbmRleCA0YWVjNGRkNTExMGRmZmI4MDJhNTk3MDA0M2Vm
ZTBmNjU3MjY4YTQ0Li40MWJjN2Y1ZTQ3MDQ3YWIyMGExMjU1ZTAzZTdmYjMzNGMwYWZiYzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8
IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgVVNFKENGKSB8fCBQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBQTEFURk9STShRVCkKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVTbGljZSA9
IC4wMTsgLy8gc2Vjb25kcwogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4x
MDsKQEAgLTY3LDExICs2NywxMiBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6Y2FuY2VsVGlt
ZXIoKQogICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENG
QWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUpOwogfQogCi0jZWxpZiBQTEFURk9S
TShCTEFDS0JFUlJZKQorI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oUVQp
CiAgICAKIEluY3JlbWVudGFsU3dlZXBlcjo6SW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqIGhlYXAp
CiAgICAgOiBIZWFwVGltZXIoaGVhcC0+Z2xvYmFsRGF0YSgpKQogICAgICwgbV9jdXJyZW50Qmxv
Y2tUb1N3ZWVwSW5kZXgoMCkKKyAgICAsIG1fYmxvY2tzVG9Td2VlcChoZWFwLT5tX2Jsb2NrU25h
cHNob3QpCiB7CiB9CiAKQEAgLTgyLDcgKzgzLDExIEBAIEluY3JlbWVudGFsU3dlZXBlciogSW5j
cmVtZW50YWxTd2VlcGVyOjpjcmVhdGUoSGVhcCogaGVhcCkKIAogdm9pZCBJbmNyZW1lbnRhbFN3
ZWVwZXI6OnNjaGVkdWxlVGltZXIoKQogeworI2lmIFBMQVRGT1JNKFFUKQorICAgIG1fdGltZXIu
c3RhcnQoc3dlZXBUaW1lU2xpY2UgKiBzd2VlcFRpbWVNdWx0aXBsaWVyICogMTAwMCwgdGhpcyk7
CisjZWxzZQogICAgIG1fdGltZXIuc3RhcnQoc3dlZXBUaW1lU2xpY2UgKiBzd2VlcFRpbWVNdWx0
aXBsaWVyKTsKKyNlbmRpZgogfQogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6Y2FuY2VsVGlt
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIu
aAppbmRleCA1YjkyNjdiYzc2MzI2YzRlOTc1ZWU0OTBkZGEwZGM0YThjODkzOGNlLi43YjBhZTk5
YWI1NjEyM2FhYzIzMzYwOTNhZjgwMmNhYTIzNWQ2NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3aWxsRmluaXNoU3dlZXBpbmcoKTsKIAogcHJpdmF0ZToKLSNpZiBVU0Uo
Q0YpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgVVNFKENGKSB8fCBQTEFURk9STShCTEFD
S0JFUlJZKSB8fCBQTEFURk9STShRVCkKICNpZiBVU0UoQ0YpCiAgICAgSW5jcmVtZW50YWxTd2Vl
cGVyKEhlYXAqLCBDRlJ1bkxvb3BSZWYpOwogI2Vsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177495</attachid>
            <date>2012-12-04 08:42:32 -0800</date>
            <delta_ts>2013-01-29 02:11:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>6109</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFmYzc3MmMuLjFkMjYzNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEyLTA0ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtRdF0gSW1wbGVt
ZW50IEluY3JlbWVudGFsU3dlZXBlciBhbmQgSGVhcFRpbWVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5OTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRzIHRoZSBpbmNyZW1lbnRhbCBz
d2VlcGluZyBnYXJiYWdlIGNvbGxlY3Rpb24gZm9yIHRoZSBRdCBwbGF0Zm9ybS4KKworICAgICAg
ICAqIGhlYXAvSGVhcFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpIZWFwVGlt
ZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFwVGltZXIpOgorICAgICAgICAoSlND
OjpIZWFwVGltZXI6OnRpbWVyRXZlbnQpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnN5bmNo
cm9uaXplKToKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjppbnZhbGlkYXRlKToKKyAgICAgICAg
KEpTQzo6SGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1dGRvd24pOgorICAgICAgICAqIGhlYXAvSGVh
cFRpbWVyLmg6CisgICAgICAgIChIZWFwVGltZXIpOgorICAgICAgICAqIGhlYXAvSW5jcmVtZW50
YWxTd2VlcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpJbmNyZW1l
bnRhbFN3ZWVwZXIpOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OnNjaGVkdWxl
VGltZXIpOgorICAgICAgICAqIGhlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmg6CisgICAgICAgIChJ
bmNyZW1lbnRhbFN3ZWVwZXIpOgorCiAyMDEyLTEyLTAzICBQZXRlciBSeWJpbiAgPHByeWJpbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBBU1NFUlRJT04gRkFJ
TEVEOiBmb3VuZFByb3BlcnRpZXNDb3VudCA9PSBvYmplY3QtPnNpemUoKSBtb3JlIHVzZWZ1bApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAKaW5kZXggMjE0Zjg2Ny4uODgz
ZTc1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwCkBAIC0zMyw2
ICszMywxMyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCisjaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlv
bj4KKyNpbmNsdWRlIDxRTXV0ZXhMb2NrZXI+CisjaW5jbHVkZSA8UVRocmVhZD4KKyNpbmNsdWRl
IDxRVGltZXJFdmVudD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIFVTRShDRikK
QEAgLTEzMiw4ICsxMzksNzAgQEAgdm9pZCBIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bigp
CiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLSNlbHNlCisjZWxpZiBQTEFURk9STShRVCkKKworSGVh
cFRpbWVyOjpIZWFwVGltZXIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQorICAgIDogbV9nbG9i
YWxEYXRhKGdsb2JhbERhdGEpCisgICAgLCBtX25ld1RocmVhZCgwKQorICAgICwgbV9tdXRleChR
TXV0ZXg6Ok5vblJlY3Vyc2l2ZSkKK3sKKyAgICAvLyBUaGUgSGVhcFRpbWVyIG1pZ2h0IGJlIGNy
ZWF0ZWQgYmVmb3JlIHRoZSBydW5Mb29wIGlzIHN0YXJ0ZWQsCisgICAgLy8gYnV0IHdlIG5lZWQg
dG8gZW5zdXJlcyB0aGUgdGhyZWFkIGhhcyBhbiBldmVudERpc3BhdGNoZXIgYWxyZWFkeS4KKyAg
ICBRRXZlbnRMb29wIGZha2VMb29wKHRoaXMpOworfQorCitIZWFwVGltZXI6On5IZWFwVGltZXIo
KQoreworfQorCit2b2lkIEhlYXBUaW1lcjo6dGltZXJFdmVudChRVGltZXJFdmVudCopCit7Cisg
ICAgUU11dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgpOworICAgIGlmIChtX25ld1RocmVhZCkgewor
ICAgICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgd2l0aCBwcm9jZXNzaW5nIHVudGlsIHdlIGFyZSBv
biB0aGUgcmlnaHQgdGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVBJRW50
cnlTaGltIHNoaW0obV9nbG9iYWxEYXRhLCBBUElFbnRyeVNoaW1XaXRob3V0TG9jazo6RG9udFJl
Zkdsb2JhbERhdGEpOworICAgIGRvV29yaygpOworfQogCit2b2lkIEhlYXBUaW1lcjo6Y3VzdG9t
RXZlbnQoUUV2ZW50KikKK3sKKyAgICBBU1NFUlQobV9uZXdUaHJlYWQpOworICAgIFFNdXRleExv
Y2tlciBsb2NrKCZtX211dGV4KTsKKyAgICBtb3ZlVG9UaHJlYWQobV9uZXdUaHJlYWQpOworICAg
IG1fbmV3VGhyZWFkID0gMDsKK30KKwordm9pZCBIZWFwVGltZXI6OnN5bmNocm9uaXplKCkKK3sK
KyAgICBpZiAodGhyZWFkKCkgIT0gUVRocmVhZDo6Y3VycmVudFRocmVhZCgpKSB7CisgICAgICAg
IC8vIFdlIGNhbiBvbmx5IG1vdmUgZnJvbSB0aGUgb2JqZWN0cyBvd24gdGhyZWFkIHRvIGFub3Ro
ZXIsIHNvIHdlIGZpcmUgYSB0aW1lcgorICAgICAgICAvLyBldmVudCBpbnRvIHRoZSBvd25pbmcg
dGhyZWFkIHRvIHRyaWdnZXIgdGhlIG1vdmUuCisgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBwcm9j
ZXNzZWQgYmVmb3JlIGFueSB0aW1lckV2ZW50cyBzbyBnaXZpbmcgaXQgaGlnaCBwcmlvcml0eS4K
KyAgICAgICAgUU11dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgpOworICAgICAgICBtX25ld1RocmVh
ZCA9IFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6
cG9zdEV2ZW50KHRoaXMsIG5ldyBRRXZlbnQoUUV2ZW50OjpVc2VyKSwgUXQ6OkhpZ2hFdmVudFBy
aW9yaXR5KTsKKyAgICB9Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjppbnZhbGlkYXRlKCkKK3sKKyAg
ICBRTXV0ZXhMb2NrZXIgbG9jaygmbV9tdXRleCk7CisgICAgbV90aW1lci5zdG9wKCk7Cit9CisK
K3ZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1dGRvd24oKQoreworICAgIGludmFsaWRhdGUo
KTsKKyAgICBpZiAodGhyZWFkKCkgPT0gUVRocmVhZDo6Y3VycmVudFRocmVhZCgpKQorICAgICAg
ICBkZWxldGUgdGhpczsKKyAgICBlbHNlCisgICAgICAgIGRlbGV0ZUxhdGVyKCk7Cit9CisKKyNl
bHNlCiBIZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiAgICAg
OiBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyLmgKaW5kZXggODg3MTUwOS4uZTBmY2RhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcFRpbWVyLmgKQEAgLTMzLDEzICszMywyMiBAQAogI2luY2x1ZGUgPENvcmVGb3VuZGF0
aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKQogI2luY2x1
ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVRpbWVyLmg+CisjZWxpZiBQTEFURk9STShRVCkKKyNpbmNs
dWRlIDxRQmFzaWNUaW1lcj4KKyNpbmNsdWRlIDxRTXV0ZXg+CisjaW5jbHVkZSA8UU9iamVjdD4K
KyNpbmNsdWRlIDxRVGhyZWFkPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBK
U0dsb2JhbERhdGE7Ci0gICAgCisKKyNpZiBQTEFURk9STShRVCkKK2NsYXNzIEhlYXBUaW1lciA6
IHB1YmxpYyBRT2JqZWN0IHsKKyNlbHNlCiBjbGFzcyBIZWFwVGltZXIgeworI2VuZGlmCiBwdWJs
aWM6CiAjaWYgVVNFKENGKQogICAgIEhlYXBUaW1lcihKU0dsb2JhbERhdGEqLCBDRlJ1bkxvb3BS
ZWYpOwpAQCAtNjksNiArNzgsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdGltZXJEaWRGaXJl
KCk7CiAKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VGltZXI8SGVhcFRpbWVyPiBtX3RpbWVy
OworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7
CisgICAgdm9pZCBjdXN0b21FdmVudChRRXZlbnQqKTsKKyAgICBRQmFzaWNUaW1lciBtX3RpbWVy
OworICAgIFFUaHJlYWQqIG1fbmV3VGhyZWFkOworICAgIFFNdXRleCBtX211dGV4OwogI2VuZGlm
CiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SW5jcmVtZW50YWxTd2VlcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3Jl
bWVudGFsU3dlZXBlci5jcHAKaW5kZXggNGFlYzRkZC4uNDFiYzdmNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jaWYgVVNFKENGKSB8fCBQTEFURk9STShCTEFD
S0JFUlJZKQorI2lmIFVTRShDRikgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0o
UVQpCiAKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lU2xpY2UgPSAuMDE7IC8vIHNlY29u
ZHMKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lVG90YWwgPSAuMTA7CkBAIC02NywxMSAr
NjcsMTIgQEAgdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmNhbmNlbFRpbWVyKCkKICAgICBDRlJ1
bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdl
dEN1cnJlbnQoKSArIHNfZGVjYWRlKTsKIH0KIAotI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkK
KyNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKFFUKQogICAgCiBJbmNyZW1l
bnRhbFN3ZWVwZXI6OkluY3JlbWVudGFsU3dlZXBlcihIZWFwKiBoZWFwKQogICAgIDogSGVhcFRp
bWVyKGhlYXAtPmdsb2JhbERhdGEoKSkKICAgICAsIG1fY3VycmVudEJsb2NrVG9Td2VlcEluZGV4
KDApCisgICAgLCBtX2Jsb2Nrc1RvU3dlZXAoaGVhcC0+bV9ibG9ja1NuYXBzaG90KQogewogfQog
CkBAIC04Miw3ICs4MywxMSBAQCBJbmNyZW1lbnRhbFN3ZWVwZXIqIEluY3JlbWVudGFsU3dlZXBl
cjo6Y3JlYXRlKEhlYXAqIGhlYXApCiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzY2hlZHVs
ZVRpbWVyKCkKIHsKKyNpZiBQTEFURk9STShRVCkKKyAgICBtX3RpbWVyLnN0YXJ0KHN3ZWVwVGlt
ZVNsaWNlICogc3dlZXBUaW1lTXVsdGlwbGllciAqIDEwMDAsIHRoaXMpOworI2Vsc2UKICAgICBt
X3RpbWVyLnN0YXJ0KHN3ZWVwVGltZVNsaWNlICogc3dlZXBUaW1lTXVsdGlwbGllcik7CisjZW5k
aWYKIH0KIAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmNhbmNlbFRpbWVyKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKaW5kZXggNWI5MjY3
Yi4uN2IwYWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50
YWxTd2VlcGVyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbEZpbmlz
aFN3ZWVwaW5nKCk7CiAKIHByaXZhdGU6Ci0jaWYgVVNFKENGKSB8fCBQTEFURk9STShCTEFDS0JF
UlJZKQorI2lmIFVTRShDRikgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oUVQp
CiAjaWYgVVNFKENGKQogICAgIEluY3JlbWVudGFsU3dlZXBlcihIZWFwKiwgQ0ZSdW5Mb29wUmVm
KTsKICNlbHNlCg==
</data>
<flag name="review"
          id="204174"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181678</attachid>
            <date>2013-01-08 02:51:39 -0800</date>
            <delta_ts>2013-01-08 04:18:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103996-20130108114808.patch</filename>
            <type>text/plain</type>
            <size>23735</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTEzNWZmYjQzMmJlOTA3NmZhOGY0ZDQ0Y2VjYmRkZjMyOWE5YTVhLi5hODI0ZDlmMDJlNTA0Mzc1
MWY3MGNmOGQ5MWQ2ZjY4MzU3ODRmMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAxMy0wMS0wOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVu
c2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdIEltcGxlbWVudCBJbmNyZW1lbnRhbFN3ZWVw
ZXIgYW5kIEhlYXBUaW1lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50cyB0aGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgZ2FyYmFnZSBjb2xs
ZWN0aW9uIGZvciB0aGUgUXQgcGxhdGZvcm0uCisKKyAgICAgICAgVGhlIEhlYXBUaW1lci5jcHAg
ZmlsZSBoYXMgYmVlbiBzcGxpdCBpbnRvIGRpZmZlcmVudCBwbGF0Zm9ybSBmaWxlcyBzaW5jZSBu
byBtZXRob2RzIGFyZSBzaGFyZWQKKyAgICAgICAgYmV0d2VlbiBpbXBsZW1wbGVtZW50YXRpb25z
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lci5oOgorICAgICAgICAoSGVhcFRpbWVy
KToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lckJsYWNrQmVycnkuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcC4KKyAgICAgICAgKEpTQzo6
SGVhcFRpbWVyOjpIZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFwVGlt
ZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnRpbWVyRGlkRmlyZSk6CisgICAgICAgIChK
U0M6OkhlYXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6Omlu
dmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bik6
CisgICAgICAgICogaGVhcC9IZWFwVGltZXJDRi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwLgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6
OkhlYXBUaW1lcik6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6fkhlYXBUaW1lcik6CisgICAg
ICAgIChKU0M6OkhlYXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGlt
ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0
ZG93bik6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6dGltZXJEaWRGaXJlKToKKyAgICAgICAg
KiBoZWFwL0hlYXBUaW1lck5vbmUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcFRpbWVyLmNwcC4KKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpIZWFwVGlt
ZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFwVGltZXIpOgorICAgICAgICAoSlND
OjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bik6CisgICAgICAgIChKU0M6OkhlYXBUaW1l
cjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmludmFsaWRhdGUpOgor
ICAgICAgICAqIGhlYXAvSGVhcFRpbWVyUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SGVh
cFRpbWVyOjpIZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFwVGltZXIp
OgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnRpbWVyRXZlbnQpOgorICAgICAgICAoSlNDOjpI
ZWFwVGltZXI6OmN1c3RvbUV2ZW50KToKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpzeW5jaHJv
bml6ZSk6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChK
U0M6OkhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNodXRkb3duKToKKyAgICAgICAgKiBoZWFwL0luY3Jl
bWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6SW5j
cmVtZW50YWxTd2VlcGVyKToKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpzY2hl
ZHVsZVRpbWVyKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAg
ICAoSW5jcmVtZW50YWxTd2VlcGVyKToKKwogMjAxMy0wMS0wNyAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJhdGlvbmFsaXplIGNsb3N1cmUgY2FsbCBoZXVyaXN0
aWNzIGFuZCBwcm9maWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2
MzJlOWI2ZTg1YzA1MGUwYjBiMGY1NmQxMmEwYTlmOTU2MmQ1OGZhLi4xNmY0ZjBhYmQ3MjU3ODlk
NTVhZTQ2ZWZhNjJhZjJkNTQ0NWMyYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMjUsNyArMTI1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBo
ZWFwL0hhbmRsZVN0YWNrLmNwcAogICAgIGhlYXAvSGVhcC5jcHAKICAgICBoZWFwL0hlYXBTdGF0
aXN0aWNzLmNwcAotICAgIGhlYXAvSGVhcFRpbWVyLmNwcAorICAgIGhlYXAvSGVhcFRpbWVyTm9u
ZS5jcHAKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKICAgICBoZWFwL0pJVFN0dWJS
b3V0aW5lU2V0LmNwcAogICAgIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWJiOWVkZGIzYWY3OTdhZmIy
ZGQyMDFjMjk2ZDg1YTBjZGJkZTViLi4wMWMzNWRlZDViYWJmOTk5N2QwYTJmOTkwN2ZiNTVjZWIx
ZmVhZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
Mjg5LDcgKzI4OSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwQmxvY2suaCBcCiAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVy
LmggXAotICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAgXAorICAg
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lck5vbmUuY3BwIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcCBcCiAgICAgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IDBkYWU0MGM1NDkwZWVjN2VhYmFlZWNk
NTE5NTNlYzA4M2M4OGE0YWMuLjRjNzhkNjU1OWQ5M2NiNjNlYmYzNjljNWY1NzU0MWM5NDlmY2Rh
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUJsYWNrQmVycnku
Y21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZQpAQCAtMywxMCArMywxMiBAQCBsaXN0KElOU0VSVCBKYXZhU2NyaXB0Q29yZV9JTkNMVURFX0RJ
UkVDVE9SSUVTIDAKICkKIAogbGlzdChSRU1PVkVfSVRFTSBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CisgICAgaGVhcC9IZWFwVGltZXJOb25lLmNwcAogICAgIHJ1bnRpbWUvR0NBY3Rpdml0eUNhbGxi
YWNrLmNwcAogKQogCiBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCisgICAgaGVh
cC9IZWFwVGltZXJCbGFja0JlcnJ5LmNwcAogICAgIHJ1bnRpbWUvR0NBY3Rpdml0eUNhbGxiYWNr
QmxhY2tCZXJyeS5jcHAKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQppbmRleCBmM2NhNzA3
NDQ4NmQ0OTkwZGVlMDI2ZDVkMDQ0MmI5ODEwZjlmNjNhLi5hNWUxODgyYTAxYWFlN2RiMjk3MzBk
NmFlZWY4ZmZlYjA2ODhlMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQpAQCAtOTQsNyAr
OTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBoZWFwL0dDVGhyZWFkLmNwcCBcCiAgICAgaGVhcC9I
ZWFwLmNwcCBcCiAgICAgaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAgXAotICAgIGhlYXAvSGVhcFRp
bWVyLmNwcCBcCisgICAgaGVhcC9IZWFwVGltZXJRdC5jcHAgXAogICAgIGhlYXAvSW5jcmVtZW50
YWxTd2VlcGVyLmNwcCBcCiAgICAgaGVhcC9KSVRTdHViUm91dGluZVNldC5jcHAgXAogICAgIGhl
YXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwVGltZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE0Zjg2NzU3ODYyOTEw
ZjM3Mjk0Mjg1ODQ4ZTQ5YzYyY2YyN2E1NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhl
YXBUaW1lci5oIgotCi0jaW5jbHVkZSAiQVBJU2hpbXMuaCIKLSNpbmNsdWRlICJKU09iamVjdC5o
IgotI2luY2x1ZGUgIkpTU3RyaW5nLmgiCi0KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgot
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSNpZiBVU0Uo
Q0YpCi0gICAgCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBIZWFwVGltZXI6OnNfZGVjYWRlID0gNjAg
KiA2MCAqIDI0ICogMzY1ICogMTA7Ci0KLUhlYXBUaW1lcjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSwgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3ApCi0gICAgOiBtX2dsb2JhbERhdGEo
Z2xvYmFsRGF0YSkKLSAgICAsIG1fcnVuTG9vcChydW5Mb29wKQotewotICAgIG1lbXNldCgmbV9j
b250ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7Ci0gICAgbV9jb250ZXh0
LmluZm8gPSB0aGlzOwotICAgIG1fdGltZXIuYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZSgw
LCBzX2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEhlYXBUaW1lcjo6dGltZXJEaWRGaXJlLCAmbV9j
b250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdldCgpLCBtX3RpbWVy
LmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi1IZWFwVGltZXI6On5IZWFwVGlt
ZXIoKQotewotICAgIENGUnVuTG9vcFJlbW92ZVRpbWVyKG1fcnVuTG9vcC5nZXQoKSwgbV90aW1l
ci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLSAgICBDRlJ1bkxvb3BUaW1lckludmFs
aWRhdGUobV90aW1lci5nZXQoKSk7Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgp
Ci17Ci0gICAgaWYgKENGUnVuTG9vcEdldEN1cnJlbnQoKSA9PSBtX3J1bkxvb3AuZ2V0KCkpCi0g
ICAgICAgIHJldHVybjsKLSAgICBDRlJ1bkxvb3BSZW1vdmVUaW1lcihtX3J1bkxvb3AuZ2V0KCks
IG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0gICAgbV9ydW5Mb29wID0g
Q0ZSdW5Mb29wR2V0Q3VycmVudCgpOwotICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5n
ZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotdm9pZCBI
ZWFwVGltZXI6OmludmFsaWRhdGUoKQotewotICAgIG1fZ2xvYmFsRGF0YSA9IDA7Ci0gICAgQ0ZS
dW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVH
ZXRDdXJyZW50KCkgLSBzX2RlY2FkZSk7Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZN
U2h1dGRvd24oKQotewotICAgIGlmIChDRlJ1bkxvb3BHZXRDdXJyZW50KCkgPT0gbV9ydW5Mb29w
LmdldCgpKSB7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKLSAgICAgICAgZGVsZXRlIHRoaXM7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKCFtX2dsb2JhbERhdGEtPmFwaUxvY2so
KS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zaHV0ZG93bk11dGV4KTsKLSAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgSGVhcFRpbWVy
Ojp0aW1lckRpZEZpcmUoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGluZm8pCi17Ci0gICAgSGVh
cFRpbWVyKiBhZ2VudCA9IHN0YXRpY19jYXN0PEhlYXBUaW1lcio+KGluZm8pOwotICAgIGFnZW50
LT5tX3NodXRkb3duTXV0ZXgubG9jaygpOwotICAgIGlmICghYWdlbnQtPm1fZ2xvYmFsRGF0YSkg
ewotICAgICAgICBhZ2VudC0+bV9zaHV0ZG93bk11dGV4LnVubG9jaygpOwotICAgICAgICBkZWxl
dGUgYWdlbnQ7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgewotICAgICAgICAvLyBXZSBk
b24ndCByZWYgaGVyZSB0byBwcmV2ZW50IHVzIGZyb20gcmVzdXJyZWN0aW5nIHRoZSByZWYgY291
bnQgb2YgYSAiZGVhZCIgSlNHbG9iYWxEYXRhLgotICAgICAgICBBUElFbnRyeVNoaW0gc2hpbShh
Z2VudC0+bV9nbG9iYWxEYXRhLCBBUElFbnRyeVNoaW1XaXRob3V0TG9jazo6RG9udFJlZkdsb2Jh
bERhdGEpOwotICAgICAgICBhZ2VudC0+ZG9Xb3JrKCk7Ci0gICAgfQotICAgIGFnZW50LT5tX3No
dXRkb3duTXV0ZXgudW5sb2NrKCk7Ci19Ci0KLSNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0K
LUhlYXBUaW1lcjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKLSAgICA6IG1f
Z2xvYmFsRGF0YShnbG9iYWxEYXRhKQotICAgICwgbV90aW1lcih0aGlzLCAmSGVhcFRpbWVyOjp0
aW1lckRpZEZpcmUpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBIZWFwVGltZXIgZm9yIG90
aGVyIHRocmVhZHMuCi0gICAgaWYgKFdURjo6aXNNYWluVGhyZWFkKCkgJiYgIW1fdGltZXIudHJ5
Q3JlYXRlQ2xpZW50KCkpCi0gICAgICAgIENSQVNIKCk7Ci19Ci0KLUhlYXBUaW1lcjo6fkhlYXBU
aW1lcigpCi17Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjp0aW1lckRpZEZpcmUoKQotewotICAgIGRv
V29yaygpOwotfQotCi12b2lkIEhlYXBUaW1lcjo6c3luY2hyb25pemUoKQotewotfQotCi12b2lk
IEhlYXBUaW1lcjo6aW52YWxpZGF0ZSgpCi17Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpkaWRTdGFy
dFZNU2h1dGRvd24oKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi0jZWxzZQotCi1IZWFwVGlt
ZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCi0gICAgOiBtX2dsb2JhbERh
dGEoZ2xvYmFsRGF0YSkKLXsKLX0KLQotSGVhcFRpbWVyOjp+SGVhcFRpbWVyKCkKLXsKLX0KLQot
dm9pZCBIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bigpCi17Ci0gICAgZGVsZXRlIHRoaXM7
Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgpCi17Ci19Ci0KLXZvaWQgSGVhcFRp
bWVyOjppbnZhbGlkYXRlKCkKLXsKLX0KLQotI2VuZGlmCi0gICAgCi0KLX0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuaAppbmRleCA4ODcxNTA5OGE0
MGRkMjE5ZTNhOGMyY2MyYTVlYTY3N2QwZTVkMjdiLi43YzRiMDQxZTkzZmMyZjVlMWM2Y2MwZjQ0
NDU3ODBlOTcwZWI0MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwVGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuaApA
QCAtMzMsMTMgKzMzLDIyIEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRp
b24uaD4KICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBs
YXRmb3JtVGltZXIuaD4KKyNlbGlmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFCYXNpY1RpbWVy
PgorI2luY2x1ZGUgPFFNdXRleD4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFUaHJl
YWQ+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTR2xvYmFsRGF0YTsKLSAg
ICAKKworI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgSGVhcFRpbWVyIDogcHVibGljIFFPYmplY3Qg
eworI2Vsc2UKIGNsYXNzIEhlYXBUaW1lciB7CisjZW5kaWYKIHB1YmxpYzoKICNpZiBVU0UoQ0Yp
CiAgICAgSGVhcFRpbWVyKEpTR2xvYmFsRGF0YSosIENGUnVuTG9vcFJlZik7CkBAIC01Myw3ICs2
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0Vk1TaHV0ZG93bigpOwogICAgIHZpcnR1
YWwgdm9pZCBzeW5jaHJvbml6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkb1dvcmsoKSA9IDA7Ci0g
ICAgCisKIHByb3RlY3RlZDoKICAgICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFsRGF0YTsKIApAQCAt
NjksNiArNzgsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdGltZXJEaWRGaXJlKCk7CiAKICAg
ICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VGltZXI8SGVhcFRpbWVyPiBtX3RpbWVyOworI2VsaWYg
UExBVEZPUk0oUVQpCisgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7CisgICAgdm9p
ZCBjdXN0b21FdmVudChRRXZlbnQqKTsKKyAgICBRQmFzaWNUaW1lciBtX3RpbWVyOworICAgIFFU
aHJlYWQqIG1fbmV3VGhyZWFkOworICAgIFFNdXRleCBtX211dGV4OwogI2VuZGlmCiAgICAgCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVy
QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJCbGFj
a0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWFkZTcwN2NiMTJkYWE4MWZmODk1OGRhZjI1NTQ3MWE2
MGRkYzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSGVhcFRpbWVyLmgiCisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK0hlYXBUaW1lcjo6SGVhcFRp
bWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICA6IG1fZ2xvYmFsRGF0YShnbG9iYWxE
YXRhKQorICAgICwgbV90aW1lcih0aGlzLCAmSGVhcFRpbWVyOjp0aW1lckRpZEZpcmUpCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBIZWFwVGltZXIgZm9yIG90aGVyIHRocmVhZHMuCisgICAg
aWYgKFdURjo6aXNNYWluVGhyZWFkKCkgJiYgIW1fdGltZXIudHJ5Q3JlYXRlQ2xpZW50KCkpCisg
ICAgICAgIENSQVNIKCk7Cit9CisKK0hlYXBUaW1lcjo6fkhlYXBUaW1lcigpCit7Cit9CisKK3Zv
aWQgSGVhcFRpbWVyOjp0aW1lckRpZEZpcmUoKQoreworICAgIGRvV29yaygpOworfQorCit2b2lk
IEhlYXBUaW1lcjo6c3luY2hyb25pemUoKQoreworfQorCit2b2lkIEhlYXBUaW1lcjo6aW52YWxp
ZGF0ZSgpCit7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1dGRvd24oKQorewor
ICAgIGRlbGV0ZSB0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lckNGLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBUaW1lckNGLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDU1MzUwMDkxNDJlMzk5
NDAwNzJlZDZiNDNmMjQwZTNmMDc1ZmRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyQ0YuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJIZWFwVGltZXIuaCIKKworI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5j
bHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJKU1N0cmluZy5oIgorCisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBK
U0MgeworCitjb25zdCBDRlRpbWVJbnRlcnZhbCBIZWFwVGltZXI6OnNfZGVjYWRlID0gNjAgKiA2
MCAqIDI0ICogMzY1ICogMTA7CisKK0hlYXBUaW1lcjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSwgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3ApCisgICAgOiBtX2dsb2JhbERhdGEoZ2xv
YmFsRGF0YSkKKyAgICAsIG1fcnVuTG9vcChydW5Mb29wKQoreworICAgIG1lbXNldCgmbV9jb250
ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7CisgICAgbV9jb250ZXh0Lmlu
Zm8gPSB0aGlzOworICAgIG1fdGltZXIuYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZSgwLCBz
X2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEhlYXBUaW1lcjo6dGltZXJEaWRGaXJlLCAmbV9jb250
ZXh0KSk7CisgICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdl
dCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCitIZWFwVGltZXI6On5IZWFwVGltZXIo
KQoreworICAgIENGUnVuTG9vcFJlbW92ZVRpbWVyKG1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5n
ZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKKyAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRh
dGUobV90aW1lci5nZXQoKSk7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgpCit7
CisgICAgaWYgKENGUnVuTG9vcEdldEN1cnJlbnQoKSA9PSBtX3J1bkxvb3AuZ2V0KCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBDRlJ1bkxvb3BSZW1vdmVUaW1lcihtX3J1bkxvb3AuZ2V0KCksIG1f
dGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgbV9ydW5Mb29wID0gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5nZXQo
KSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBIZWFw
VGltZXI6OmludmFsaWRhdGUoKQoreworICAgIG1fZ2xvYmFsRGF0YSA9IDA7CisgICAgQ0ZSdW5M
b29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgLSBzX2RlY2FkZSk7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1
dGRvd24oKQoreworICAgIGlmIChDRlJ1bkxvb3BHZXRDdXJyZW50KCkgPT0gbV9ydW5Mb29wLmdl
dCgpKSB7CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUKCFtX2dsb2JhbERhdGEtPmFwaUxvY2soKS5j
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9z
aHV0ZG93bk11dGV4KTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjp0
aW1lckRpZEZpcmUoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGluZm8pCit7CisgICAgSGVhcFRp
bWVyKiBhZ2VudCA9IHN0YXRpY19jYXN0PEhlYXBUaW1lcio+KGluZm8pOworICAgIGFnZW50LT5t
X3NodXRkb3duTXV0ZXgubG9jaygpOworICAgIGlmICghYWdlbnQtPm1fZ2xvYmFsRGF0YSkgewor
ICAgICAgICBhZ2VudC0+bV9zaHV0ZG93bk11dGV4LnVubG9jaygpOworICAgICAgICBkZWxldGUg
YWdlbnQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgeworICAgICAgICAvLyBXZSBkb24n
dCByZWYgaGVyZSB0byBwcmV2ZW50IHVzIGZyb20gcmVzdXJyZWN0aW5nIHRoZSByZWYgY291bnQg
b2YgYSAiZGVhZCIgSlNHbG9iYWxEYXRhLgorICAgICAgICBBUElFbnRyeVNoaW0gc2hpbShhZ2Vu
dC0+bV9nbG9iYWxEYXRhLCBBUElFbnRyeVNoaW1XaXRob3V0TG9jazo6RG9udFJlZkdsb2JhbERh
dGEpOworICAgICAgICBhZ2VudC0+ZG9Xb3JrKCk7CisgICAgfQorICAgIGFnZW50LT5tX3NodXRk
b3duTXV0ZXgudW5sb2NrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyTm9uZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJOb25lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWNjYjQzMDYz
Y2VhNzE1OGZlNDk5YTljMzM0ZmEwNDI5NWMzMmJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyTm9uZS5jcHAKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitI
ZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2ds
b2JhbERhdGEoZ2xvYmFsRGF0YSkKK3sKK30KKworSGVhcFRpbWVyOjp+SGVhcFRpbWVyKCkKK3sK
K30KKwordm9pZCBIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bigpCit7CisgICAgZGVsZXRl
IHRoaXM7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgpCit7Cit9CisKK3ZvaWQg
SGVhcFRpbWVyOjppbnZhbGlkYXRlKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJRdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg4Y2Y3
YzZkNmI3OGIyNDFlMjZjYjhiZTZmNzk2MDQzYjI2YTQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lclF0LmNwcApAQCAtMCwwICsxLDk3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQg
Y29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICog
dmVyc2lvbiAyLjEsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxs
IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgKiBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgKiBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sCisgKiBJbmMuLCA1MSBGcmFua2xpbiBTdCAtIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCisKKyNpbmNsdWRlICJBUElTaGltcy5oIgorI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKworI2luY2x1ZGUgPFFDb3Jl
QXBwbGljYXRpb24+CisjaW5jbHVkZSA8UU11dGV4TG9ja2VyPgorI2luY2x1ZGUgPFFUaHJlYWQ+
CisjaW5jbHVkZSA8UVRpbWVyRXZlbnQ+CisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK0hlYXBUaW1l
cjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICA6IG1fZ2xvYmFsRGF0
YShnbG9iYWxEYXRhKQorICAgICwgbV9uZXdUaHJlYWQoMCkKKyAgICAsIG1fbXV0ZXgoUU11dGV4
OjpOb25SZWN1cnNpdmUpCit7CisgICAgLy8gVGhlIEhlYXBUaW1lciBtaWdodCBiZSBjcmVhdGVk
IGJlZm9yZSB0aGUgcnVuTG9vcCBpcyBzdGFydGVkLAorICAgIC8vIGJ1dCB3ZSBuZWVkIHRvIGVu
c3VyZXMgdGhlIHRocmVhZCBoYXMgYW4gZXZlbnREaXNwYXRjaGVyIGFscmVhZHkuCisgICAgUUV2
ZW50TG9vcCBmYWtlTG9vcCh0aGlzKTsKK30KKworSGVhcFRpbWVyOjp+SGVhcFRpbWVyKCkKK3sK
K30KKwordm9pZCBIZWFwVGltZXI6OnRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqKQoreworICAgIFFN
dXRleExvY2tlciBsb2NrKCZtX211dGV4KTsKKyAgICBpZiAobV9uZXdUaHJlYWQpIHsKKyAgICAg
ICAgLy8gV2UgbmVlZCB0byB3YWl0IHdpdGggcHJvY2Vzc2luZyB1bnRpbCB3ZSBhcmUgb24gdGhl
IHJpZ2h0IHRocmVhZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFQSUVudHJ5U2hp
bSBzaGltKG1fZ2xvYmFsRGF0YSwgQVBJRW50cnlTaGltV2l0aG91dExvY2s6OkRvbnRSZWZHbG9i
YWxEYXRhKTsKKyAgICBkb1dvcmsoKTsKK30KKwordm9pZCBIZWFwVGltZXI6OmN1c3RvbUV2ZW50
KFFFdmVudCopCit7CisgICAgQVNTRVJUKG1fbmV3VGhyZWFkKTsKKyAgICBRTXV0ZXhMb2NrZXIg
bG9jaygmbV9tdXRleCk7CisgICAgbW92ZVRvVGhyZWFkKG1fbmV3VGhyZWFkKTsKKyAgICBtX25l
d1RocmVhZCA9IDA7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgpCit7CisgICAg
aWYgKHRocmVhZCgpICE9IFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKSkgeworICAgICAgICAvLyBX
ZSBjYW4gb25seSBtb3ZlIGZyb20gdGhlIG9iamVjdHMgb3duIHRocmVhZCB0byBhbm90aGVyLCBz
byB3ZSBmaXJlIGEgdGltZXIKKyAgICAgICAgLy8gZXZlbnQgaW50byB0aGUgb3duaW5nIHRocmVh
ZCB0byB0cmlnZ2VyIHRoZSBtb3ZlLgorICAgICAgICAvLyBUaGlzIG11c3QgYmUgcHJvY2Vzc2Vk
IGJlZm9yZSBhbnkgdGltZXJFdmVudHMgc28gZ2l2aW5nIGl0IGhpZ2ggcHJpb3JpdHkuCisgICAg
ICAgIFFNdXRleExvY2tlciBsb2NrKCZtX211dGV4KTsKKyAgICAgICAgbV9uZXdUaHJlYWQgPSBR
VGhyZWFkOjpjdXJyZW50VGhyZWFkKCk7CisgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnBvc3RF
dmVudCh0aGlzLCBuZXcgUUV2ZW50KFFFdmVudDo6VXNlciksIFF0OjpIaWdoRXZlbnRQcmlvcml0
eSk7CisgICAgfQorfQorCit2b2lkIEhlYXBUaW1lcjo6aW52YWxpZGF0ZSgpCit7CisgICAgUU11
dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgpOworICAgIG1fdGltZXIuc3RvcCgpOworfQorCit2b2lk
IEhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNodXRkb3duKCkKK3sKKyAgICBpbnZhbGlkYXRlKCk7Cisg
ICAgaWYgKHRocmVhZCgpID09IFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKSkKKyAgICAgICAgZGVs
ZXRlIHRoaXM7CisgICAgZWxzZQorICAgICAgICBkZWxldGVMYXRlcigpOworfQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3Jl
bWVudGFsU3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuY3BwCmluZGV4IDRhZWM0ZGQ1MTEwZGZmYjgwMmE1OTcwMDQzZWZlMGY2NTcyNjhh
NDQuLjQxYmM3ZjVlNDcwNDdhYjIwYTEyNTVlMDNlN2ZiMzM0YzBhZmJjNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMzcs
NyArMzcsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShDRikgfHwgUExBVEZPUk0o
QkxBQ0tCRVJSWSkKKyNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRG
T1JNKFFUKQogCiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVNsaWNlID0gLjAxOyAvLyBz
ZWNvbmRzCiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVRvdGFsID0gLjEwOwpAQCAtNjcs
MTEgKzY3LDEyIEBAIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpjYW5jZWxUaW1lcigpCiAgICAg
Q0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRp
bWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZSk7CiB9CiAKLSNlbGlmIFBMQVRGT1JNKEJMQUNLQkVS
UlkpCisjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFURk9STShRVCkKICAgIAogSW5j
cmVtZW50YWxTd2VlcGVyOjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCkKICAgICA6IEhl
YXBUaW1lcihoZWFwLT5nbG9iYWxEYXRhKCkpCiAgICAgLCBtX2N1cnJlbnRCbG9ja1RvU3dlZXBJ
bmRleCgwKQorICAgICwgbV9ibG9ja3NUb1N3ZWVwKGhlYXAtPm1fYmxvY2tTbmFwc2hvdCkKIHsK
IH0KIApAQCAtODIsNyArODMsMTEgQEAgSW5jcmVtZW50YWxTd2VlcGVyKiBJbmNyZW1lbnRhbFN3
ZWVwZXI6OmNyZWF0ZShIZWFwKiBoZWFwKQogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6c2No
ZWR1bGVUaW1lcigpCiB7CisjaWYgUExBVEZPUk0oUVQpCisgICAgbV90aW1lci5zdGFydChzd2Vl
cFRpbWVTbGljZSAqIHN3ZWVwVGltZU11bHRpcGxpZXIgKiAxMDAwLCB0aGlzKTsKKyNlbHNlCiAg
ICAgbV90aW1lci5zdGFydChzd2VlcFRpbWVTbGljZSAqIHN3ZWVwVGltZU11bHRpcGxpZXIpOwor
I2VuZGlmCiB9CiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpjYW5jZWxUaW1lcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDVi
OTI2N2JjNzYzMjZjNGU5NzVlZTQ5MGRkYTBkYzRhOGM4OTM4Y2UuLjdiMGFlOTlhYjU2MTIzYWFj
MjMzNjA5M2FmODAyY2FhMjM1ZDY1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxGaW5pc2hTd2VlcGluZygpOwogCiBwcml2YXRlOgotI2lmIFVTRShDRikgfHwgUExB
VEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8
IFBMQVRGT1JNKFFUKQogI2lmIFVTRShDRikKICAgICBJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCos
IENGUnVuTG9vcFJlZik7CiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181683</attachid>
            <date>2013-01-08 04:18:21 -0800</date>
            <delta_ts>2013-01-08 04:53:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103996-20130108131450.patch</filename>
            <type>text/plain</type>
            <size>28706</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTEzNWZmYjQzMmJlOTA3NmZhOGY0ZDQ0Y2VjYmRkZjMyOWE5YTVhLi5jOWY5MDFjOWM5NzQ0ZjMz
ZDdkZWY4ZDk5Yzc0YzJhODM2MGZmZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxMy0wMS0wOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVu
c2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdIEltcGxlbWVudCBJbmNyZW1lbnRhbFN3ZWVw
ZXIgYW5kIEhlYXBUaW1lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50cyB0aGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgZ2FyYmFnZSBjb2xs
ZWN0aW9uIGZvciB0aGUgUXQgcGxhdGZvcm0uCisKKyAgICAgICAgVGhlIEhlYXBUaW1lci5jcHAg
ZmlsZSBoYXMgYmVlbiBzcGxpdCBpbnRvIGRpZmZlcmVudCBwbGF0Zm9ybSBmaWxlcyBzaW5jZSBu
byBtZXRob2RzIGFyZSBzaGFyZWQKKyAgICAgICAgYmV0d2VlbiBpbXBsZW1lbnRhdGlvbnMuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lci5oOgorICAgICAgICAoSGVh
cFRpbWVyKToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lckJsYWNrQmVycnkuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcC4KKyAgICAgICAg
KEpTQzo6SGVhcFRpbWVyOjpIZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5I
ZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnRpbWVyRGlkRmlyZSk6CisgICAg
ICAgIChKU0M6OkhlYXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGlt
ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0
ZG93bik6CisgICAgICAgICogaGVhcC9IZWFwVGltZXJDRi5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwLgorICAgICAgICAoSlNDOjpIZWFw
VGltZXI6OkhlYXBUaW1lcik6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6fkhlYXBUaW1lcik6
CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpI
ZWFwVGltZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0
Vk1TaHV0ZG93bik6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6dGltZXJEaWRGaXJlKToKKyAg
ICAgICAgKiBoZWFwL0hlYXBUaW1lck5vbmUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcC4KKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpI
ZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFwVGltZXIpOgorICAgICAg
ICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bik6CisgICAgICAgIChKU0M6Okhl
YXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAqIGhlYXAvSGVhcFRpbWVyUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6SGVhcFRpbWVyOjpIZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFw
VGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnRpbWVyRXZlbnQpOgorICAgICAgICAo
SlNDOjpIZWFwVGltZXI6OmN1c3RvbUV2ZW50KToKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpz
eW5jaHJvbml6ZSk6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChKU0M6OkhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNodXRkb3duKToKKyAgICAgICAgKiBoZWFw
L0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBl
cjo6SW5jcmVtZW50YWxTd2VlcGVyKToKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVy
OjpzY2hlZHVsZVRpbWVyKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgor
ICAgICAgICAoSW5jcmVtZW50YWxTd2VlcGVyKToKKwogMjAxMy0wMS0wNyAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJhdGlvbmFsaXplIGNsb3N1cmUgY2FsbCBo
ZXVyaXN0aWNzIGFuZCBwcm9maWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA2MzJlOWI2ZTg1YzA1MGUwYjBiMGY1NmQxMmEwYTlmOTU2MmQ1OGZhLi4xNmY0ZjBhYmQ3
MjU3ODlkNTVhZTQ2ZWZhNjJhZjJkNTQ0NWMyYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xMjUsNyArMTI1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMK
ICAgICBoZWFwL0hhbmRsZVN0YWNrLmNwcAogICAgIGhlYXAvSGVhcC5jcHAKICAgICBoZWFwL0hl
YXBTdGF0aXN0aWNzLmNwcAotICAgIGhlYXAvSGVhcFRpbWVyLmNwcAorICAgIGhlYXAvSGVhcFRp
bWVyTm9uZS5jcHAKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKICAgICBoZWFwL0pJ
VFN0dWJSb3V0aW5lU2V0LmNwcAogICAgIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWJiOWVkZGIzYWY3
OTdhZmIyZGQyMDFjMjk2ZDg1YTBjZGJkZTViLi4wMWMzNWRlZDViYWJmOTk5N2QwYTJmOTkwN2Zi
NTVjZWIxZmVhZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMjg5LDcgKzI4OSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwQmxvY2suaCBcCiAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyLmggXAotICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAg
XAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lck5vbmUuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcCBcCiAgICAgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKaW5kZXggNjVjMGQ3
ZmMwODdiYzZmM2YxMDM2NGFiOTY5ZDM0YWNmOTBmODJhMy4uYWY0NGMxN2QyNzhjYWY3YjZmZDdl
NzU0Mjc5NTA3YjE2ZDg3MTZjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKQEAgLTI1OTAsNyArMjU5MCw3IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGhlYXBcSGVh
cFRpbWVyLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGhlYXBcSGVhcFRpbWVyTm9uZS5j
cHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggY2VhZDBiZjE2MDA3OTI5MzhjZTczNzAyMGRjOWQzMzA2MTNlOTE2Zi4uZTQ3ZGQ2
MzUwNTcyMTQyMDgxNDdiZjVlNWUzYTUzOTJjN2YzYmQzNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTgwMiw3ICs4MDIsNyBAQAogCQlDMkM4RDAzMDE0QTNDRUZDMDA1NzhFNjUg
LyogQ29waWVkQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQzhEMDJFMTRBM0NFRkMwMDU3OEU2NSAvKiBDb3BpZWRCbG9jay5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQzhEMDMxMTRBM0NF
RkMwMDU3OEU2NSAvKiBIZWFwQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQzhEMDJGMTRBM0NFRkMwMDU3OEU2NSAvKiBIZWFwQmxvY2suaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkQ1OEMz
NDE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRDU4QzMzMTU5MTJGRUUwMDIxQTg0
NCAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwICovOyB9OwotCQlDMkU1MjZCRDE1OTBFRjAwMDA1
NEU0OEQgLyogSGVhcFRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyRTUyNkJCMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3BwICov
OyB9OworCQlDMkUyOEQ0NDE2OUMzQkMzMDAxNjAwNUQgLyogSGVhcFRpbWVyQ0YuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFMjhEM0ExNjlDM0I3
NDAwMTYwMDVEIC8qIEhlYXBUaW1lckNGLmNwcCAqLzsgfTsKIAkJQzJFNTI2QkUxNTkwRUYwMDAw
NTRFNDhEIC8qIEhlYXBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJFNTI2QkMxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyRUFBM0ZBMTQ5
QTgzNUUwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFQUEzRjgxNDlBODMwODAwRkNFMTEyIC8qIENvcGllZFNw
YWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QzJFQUQyRkMxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9jYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFQUQyRkIxNEYwMjQ5ODAwQTRC
MTU5IC8qIENvcGllZEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xNjYzLDcgKzE2NjMsNyBAQAogCQlDMkM4RDAyRTE0QTNDRUZD
MDA1NzhFNjUgLyogQ29waWVkQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29waWVkQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJDOEQwMkYx
NEEzQ0VGQzAwNTc4RTY1IC8qIEhlYXBCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIZWFwQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJENThD
MzMxNTkxMkZFRTAwMjFBODQ0IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlDMkU1MjZCQjE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRp
bWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhlYXBUaW1lci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyRTI4RDNBMTY5QzNCNzQwMDE2MDA1
RCAvKiBIZWFwVGltZXJDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIZWFwVGltZXJDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRTUyNkJD
MTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSGVhcFRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRUFB
M0Y4MTQ5QTgzMDgwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb3BpZWRTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMkVBRDJGQjE0RjAyNDk4MDBBNEIxNTkgLyogQ29waWVkQWxsb2NhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcGllZEFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjAyOSw3ICsyMDI5LDcgQEAKIAkJCQkxNEY5NzQ0NjEzOEM4NTNF
MDBEQTFDNjcgLyogSGVhcFJvb3RWaXNpdG9yLmggKi8sCiAJCQkJQzI0RDMxRTAxNjFDRDY5NTAw
MkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmNwcCAqLywKIAkJCQlDMjREMzFFMTE2MUNENjk1MDAy
QUE0REIgLyogSGVhcFN0YXRpc3RpY3MuaCAqLywKLQkJCQlDMkU1MjZCQjE1OTBFRjAwMDA1NEU0
OEQgLyogSGVhcFRpbWVyLmNwcCAqLywKKwkJCQlDMkUyOEQzQTE2OUMzQjc0MDAxNjAwNUQgLyog
SGVhcFRpbWVyQ0YuY3BwICovLAogCQkJCUMyRTUyNkJDMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFw
VGltZXIuaCAqLywKIAkJCQlDMjVGOEJDQjE1NzU0NEE5MDAyNDVCNzEgLyogSW5jcmVtZW50YWxT
d2VlcGVyLmNwcCAqLywKIAkJCQlDMjVGOEJDQzE1NzU0NEE5MDAyNDVCNzEgLyogSW5jcmVtZW50
YWxTd2VlcGVyLmggKi8sCkBAIC0zNzA5LDcgKzM3MDksNyBAQAogCQkJCTE0MkUzMTM3MTM0RkYw
QTYwMEFGQURCNSAvKiBIYW5kbGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEJBN0E5
NzEzQUFERkY4MDA1QjdDMkMgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjREMzFF
MjE2MUNENjk1MDAyQUE0REIgLyogSGVhcFN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQzJFNTI2QkQxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDMkUyOEQ0NDE2OUMzQkMzMDAxNjAwNUQgLyogSGVhcFRpbWVyQ0YuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY0NjgwRDQxNEJCRDI0OTAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJu
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0UxMDdFQzM3NjAwNDI3QTQ4IC8q
IElkZW50aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI1RjhCQ0QxNTc1NDRBOTAwMjQ1
QjcxIC8qIEluY3JlbWVudGFsU3dlZXBlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IDBkYWU0MGM1NDkw
ZWVjN2VhYmFlZWNkNTE5NTNlYzA4M2M4OGE0YWMuLjRjNzhkNjU1OWQ5M2NiNjNlYmYzNjljNWY1
NzU0MWM5NDlmY2RhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtQmxh
Y2tCZXJyeS5jbWFrZQpAQCAtMywxMCArMywxMiBAQCBsaXN0KElOU0VSVCBKYXZhU2NyaXB0Q29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAKICkKIAogbGlzdChSRU1PVkVfSVRFTSBKYXZhU2NyaXB0
Q29yZV9TT1VSQ0VTCisgICAgaGVhcC9IZWFwVGltZXJOb25lLmNwcAogICAgIHJ1bnRpbWUvR0NB
Y3Rpdml0eUNhbGxiYWNrLmNwcAogKQogCiBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9TT1VS
Q0VTCisgICAgaGVhcC9IZWFwVGltZXJCbGFja0JlcnJ5LmNwcAogICAgIHJ1bnRpbWUvR0NBY3Rp
dml0eUNhbGxiYWNrQmxhY2tCZXJyeS5jcHAKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQpp
bmRleCBmM2NhNzA3NDQ4NmQ0OTkwZGVlMDI2ZDVkMDQ0MmI5ODEwZjlmNjNhLi5hNWUxODgyYTAx
YWFlN2RiMjk3MzBkNmFlZWY4ZmZlYjA2ODhlMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnBy
aQpAQCAtOTQsNyArOTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBoZWFwL0dDVGhyZWFkLmNwcCBc
CiAgICAgaGVhcC9IZWFwLmNwcCBcCiAgICAgaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAgXAotICAg
IGhlYXAvSGVhcFRpbWVyLmNwcCBcCisgICAgaGVhcC9IZWFwVGltZXJRdC5jcHAgXAogICAgIGhl
YXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcCBcCiAgICAgaGVhcC9KSVRTdHViUm91dGluZVNldC5j
cHAgXAogICAgIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcFRpbWVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE0
Zjg2NzU3ODYyOTEwZjM3Mjk0Mjg1ODQ4ZTQ5YzYyY2YyN2E1NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwVGltZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkhlYXBUaW1lci5oIgotCi0jaW5jbHVkZSAiQVBJU2hpbXMuaCIKLSNpbmNsdWRl
ICJKU09iamVjdC5oIgotI2luY2x1ZGUgIkpTU3RyaW5nLmgiCi0KLSNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLSNpZiBVU0UoQ0YpCi0gICAgCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBIZWFwVGltZXI6OnNf
ZGVjYWRlID0gNjAgKiA2MCAqIDI0ICogMzY1ICogMTA7Ci0KLUhlYXBUaW1lcjo6SGVhcFRpbWVy
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3ApCi0gICAgOiBt
X2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKLSAgICAsIG1fcnVuTG9vcChydW5Mb29wKQotewotICAg
IG1lbXNldCgmbV9jb250ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7Ci0g
ICAgbV9jb250ZXh0LmluZm8gPSB0aGlzOwotICAgIG1fdGltZXIuYWRvcHRDRihDRlJ1bkxvb3BU
aW1lckNyZWF0ZSgwLCBzX2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEhlYXBUaW1lcjo6dGltZXJE
aWRGaXJlLCAmbV9jb250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdl
dCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi1IZWFwVGlt
ZXI6On5IZWFwVGltZXIoKQotewotICAgIENGUnVuTG9vcFJlbW92ZVRpbWVyKG1fcnVuTG9vcC5n
ZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLSAgICBDRlJ1bkxv
b3BUaW1lckludmFsaWRhdGUobV90aW1lci5nZXQoKSk7Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpz
eW5jaHJvbml6ZSgpCi17Ci0gICAgaWYgKENGUnVuTG9vcEdldEN1cnJlbnQoKSA9PSBtX3J1bkxv
b3AuZ2V0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBDRlJ1bkxvb3BSZW1vdmVUaW1lcihtX3J1
bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0gICAg
bV9ydW5Mb29wID0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpOwotICAgIENGUnVuTG9vcEFkZFRpbWVy
KG1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsK
LX0KLQotdm9pZCBIZWFwVGltZXI6OmludmFsaWRhdGUoKQotewotICAgIG1fZ2xvYmFsRGF0YSA9
IDA7Ci0gICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZB
YnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgLSBzX2RlY2FkZSk7Ci19Ci0KLXZvaWQgSGVhcFRpbWVy
OjpkaWRTdGFydFZNU2h1dGRvd24oKQotewotICAgIGlmIChDRlJ1bkxvb3BHZXRDdXJyZW50KCkg
PT0gbV9ydW5Mb29wLmdldCgpKSB7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKLSAgICAgICAgZGVs
ZXRlIHRoaXM7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKCFtX2dsb2JhbERh
dGEtPmFwaUxvY2soKS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9zaHV0ZG93bk11dGV4KTsKLSAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZv
aWQgSGVhcFRpbWVyOjp0aW1lckRpZEZpcmUoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGluZm8p
Ci17Ci0gICAgSGVhcFRpbWVyKiBhZ2VudCA9IHN0YXRpY19jYXN0PEhlYXBUaW1lcio+KGluZm8p
OwotICAgIGFnZW50LT5tX3NodXRkb3duTXV0ZXgubG9jaygpOwotICAgIGlmICghYWdlbnQtPm1f
Z2xvYmFsRGF0YSkgewotICAgICAgICBhZ2VudC0+bV9zaHV0ZG93bk11dGV4LnVubG9jaygpOwot
ICAgICAgICBkZWxldGUgYWdlbnQ7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgewotICAg
ICAgICAvLyBXZSBkb24ndCByZWYgaGVyZSB0byBwcmV2ZW50IHVzIGZyb20gcmVzdXJyZWN0aW5n
IHRoZSByZWYgY291bnQgb2YgYSAiZGVhZCIgSlNHbG9iYWxEYXRhLgotICAgICAgICBBUElFbnRy
eVNoaW0gc2hpbShhZ2VudC0+bV9nbG9iYWxEYXRhLCBBUElFbnRyeVNoaW1XaXRob3V0TG9jazo6
RG9udFJlZkdsb2JhbERhdGEpOwotICAgICAgICBhZ2VudC0+ZG9Xb3JrKCk7Ci0gICAgfQotICAg
IGFnZW50LT5tX3NodXRkb3duTXV0ZXgudW5sb2NrKCk7Ci19Ci0KLSNlbGlmIFBMQVRGT1JNKEJM
QUNLQkVSUlkpCi0KLUhlYXBUaW1lcjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0
YSkKLSAgICA6IG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRhKQotICAgICwgbV90aW1lcih0aGlzLCAm
SGVhcFRpbWVyOjp0aW1lckRpZEZpcmUpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBIZWFw
VGltZXIgZm9yIG90aGVyIHRocmVhZHMuCi0gICAgaWYgKFdURjo6aXNNYWluVGhyZWFkKCkgJiYg
IW1fdGltZXIudHJ5Q3JlYXRlQ2xpZW50KCkpCi0gICAgICAgIENSQVNIKCk7Ci19Ci0KLUhlYXBU
aW1lcjo6fkhlYXBUaW1lcigpCi17Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjp0aW1lckRpZEZpcmUo
KQotewotICAgIGRvV29yaygpOwotfQotCi12b2lkIEhlYXBUaW1lcjo6c3luY2hyb25pemUoKQot
ewotfQotCi12b2lkIEhlYXBUaW1lcjo6aW52YWxpZGF0ZSgpCi17Ci19Ci0KLXZvaWQgSGVhcFRp
bWVyOjpkaWRTdGFydFZNU2h1dGRvd24oKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi0jZWxz
ZQotCi1IZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCi0gICAg
OiBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKLXsKLX0KLQotSGVhcFRpbWVyOjp+SGVhcFRpbWVy
KCkKLXsKLX0KLQotdm9pZCBIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bigpCi17Ci0gICAg
ZGVsZXRlIHRoaXM7Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgpCi17Ci19Ci0K
LXZvaWQgSGVhcFRpbWVyOjppbnZhbGlkYXRlKCkKLXsKLX0KLQotI2VuZGlmCi0gICAgCi0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcFRpbWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuaAppbmRl
eCA4ODcxNTA5OGE0MGRkMjE5ZTNhOGMyY2MyYTVlYTY3N2QwZTVkMjdiLi43YzRiMDQxZTkzZmMy
ZjVlMWM2Y2MwZjQ0NDU3ODBlOTcwZWI0MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwVGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwVGltZXIuaApAQCAtMzMsMTMgKzMzLDIyIEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24v
Q29yZUZvdW5kYXRpb24uaD4KICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAjaW5jbHVkZSA8
QmxhY2tCZXJyeVBsYXRmb3JtVGltZXIuaD4KKyNlbGlmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUg
PFFCYXNpY1RpbWVyPgorI2luY2x1ZGUgPFFNdXRleD4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2lu
Y2x1ZGUgPFFUaHJlYWQ+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTR2xv
YmFsRGF0YTsKLSAgICAKKworI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgSGVhcFRpbWVyIDogcHVi
bGljIFFPYmplY3QgeworI2Vsc2UKIGNsYXNzIEhlYXBUaW1lciB7CisjZW5kaWYKIHB1YmxpYzoK
ICNpZiBVU0UoQ0YpCiAgICAgSGVhcFRpbWVyKEpTR2xvYmFsRGF0YSosIENGUnVuTG9vcFJlZik7
CkBAIC01Myw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0Vk1TaHV0ZG93bigp
OwogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkb1dv
cmsoKSA9IDA7Ci0gICAgCisKIHByb3RlY3RlZDoKICAgICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFs
RGF0YTsKIApAQCAtNjksNiArNzgsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdGltZXJEaWRG
aXJlKCk7CiAKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VGltZXI8SGVhcFRpbWVyPiBtX3Rp
bWVyOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50
Kik7CisgICAgdm9pZCBjdXN0b21FdmVudChRRXZlbnQqKTsKKyAgICBRQmFzaWNUaW1lciBtX3Rp
bWVyOworICAgIFFUaHJlYWQqIG1fbmV3VGhyZWFkOworICAgIFFNdXRleCBtX211dGV4OwogI2Vu
ZGlmCiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcFRpbWVyQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwVGltZXJCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWFkZTcwN2NiMTJkYWE4MWZmODk1
OGRhZjI1NTQ3MWE2MGRkYzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcFRpbWVyQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK0hlYXBU
aW1lcjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICA6IG1fZ2xvYmFs
RGF0YShnbG9iYWxEYXRhKQorICAgICwgbV90aW1lcih0aGlzLCAmSGVhcFRpbWVyOjp0aW1lckRp
ZEZpcmUpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBIZWFwVGltZXIgZm9yIG90aGVyIHRo
cmVhZHMuCisgICAgaWYgKFdURjo6aXNNYWluVGhyZWFkKCkgJiYgIW1fdGltZXIudHJ5Q3JlYXRl
Q2xpZW50KCkpCisgICAgICAgIENSQVNIKCk7Cit9CisKK0hlYXBUaW1lcjo6fkhlYXBUaW1lcigp
Cit7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjp0aW1lckRpZEZpcmUoKQoreworICAgIGRvV29yaygp
OworfQorCit2b2lkIEhlYXBUaW1lcjo6c3luY2hyb25pemUoKQoreworfQorCit2b2lkIEhlYXBU
aW1lcjo6aW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1
dGRvd24oKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lckNGLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lckNGLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDU1
MzUwMDkxNDJlMzk5NDAwNzJlZDZiNDNmMjQwZTNmMDc1ZmRlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyQ0YuY3BwCkBAIC0wLDAgKzEsMTAw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFwVGltZXIuaCIKKworI2luY2x1ZGUgIkFQSVNo
aW1zLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJKU1N0cmluZy5oIgorCisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisK
K25hbWVzcGFjZSBKU0MgeworCitjb25zdCBDRlRpbWVJbnRlcnZhbCBIZWFwVGltZXI6OnNfZGVj
YWRlID0gNjAgKiA2MCAqIDI0ICogMzY1ICogMTA7CisKK0hlYXBUaW1lcjo6SGVhcFRpbWVyKEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3ApCisgICAgOiBtX2ds
b2JhbERhdGEoZ2xvYmFsRGF0YSkKKyAgICAsIG1fcnVuTG9vcChydW5Mb29wKQoreworICAgIG1l
bXNldCgmbV9jb250ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7CisgICAg
bV9jb250ZXh0LmluZm8gPSB0aGlzOworICAgIG1fdGltZXIuYWRvcHRDRihDRlJ1bkxvb3BUaW1l
ckNyZWF0ZSgwLCBzX2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEhlYXBUaW1lcjo6dGltZXJEaWRG
aXJlLCAmbV9jb250ZXh0KSk7CisgICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdldCgp
LCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCitIZWFwVGltZXI6
On5IZWFwVGltZXIoKQoreworICAgIENGUnVuTG9vcFJlbW92ZVRpbWVyKG1fcnVuTG9vcC5nZXQo
KSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKKyAgICBDRlJ1bkxvb3BU
aW1lckludmFsaWRhdGUobV90aW1lci5nZXQoKSk7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpzeW5j
aHJvbml6ZSgpCit7CisgICAgaWYgKENGUnVuTG9vcEdldEN1cnJlbnQoKSA9PSBtX3J1bkxvb3Au
Z2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBDRlJ1bkxvb3BSZW1vdmVUaW1lcihtX3J1bkxv
b3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgbV9y
dW5Mb29wID0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1f
cnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30K
Kwordm9pZCBIZWFwVGltZXI6OmludmFsaWRhdGUoKQoreworICAgIG1fZ2xvYmFsRGF0YSA9IDA7
CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgLSBzX2RlY2FkZSk7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpk
aWRTdGFydFZNU2h1dGRvd24oKQoreworICAgIGlmIChDRlJ1bkxvb3BHZXRDdXJyZW50KCkgPT0g
bV9ydW5Mb29wLmdldCgpKSB7CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZGVsZXRl
IHRoaXM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUKCFtX2dsb2JhbERhdGEt
PmFwaUxvY2soKS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKKyAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zaHV0ZG93bk11dGV4KTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQg
SGVhcFRpbWVyOjp0aW1lckRpZEZpcmUoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGluZm8pCit7
CisgICAgSGVhcFRpbWVyKiBhZ2VudCA9IHN0YXRpY19jYXN0PEhlYXBUaW1lcio+KGluZm8pOwor
ICAgIGFnZW50LT5tX3NodXRkb3duTXV0ZXgubG9jaygpOworICAgIGlmICghYWdlbnQtPm1fZ2xv
YmFsRGF0YSkgeworICAgICAgICBhZ2VudC0+bV9zaHV0ZG93bk11dGV4LnVubG9jaygpOworICAg
ICAgICBkZWxldGUgYWdlbnQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgeworICAgICAg
ICAvLyBXZSBkb24ndCByZWYgaGVyZSB0byBwcmV2ZW50IHVzIGZyb20gcmVzdXJyZWN0aW5nIHRo
ZSByZWYgY291bnQgb2YgYSAiZGVhZCIgSlNHbG9iYWxEYXRhLgorICAgICAgICBBUElFbnRyeVNo
aW0gc2hpbShhZ2VudC0+bV9nbG9iYWxEYXRhLCBBUElFbnRyeVNoaW1XaXRob3V0TG9jazo6RG9u
dFJlZkdsb2JhbERhdGEpOworICAgICAgICBhZ2VudC0+ZG9Xb3JrKCk7CisgICAgfQorICAgIGFn
ZW50LT5tX3NodXRkb3duTXV0ZXgudW5sb2NrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyTm9uZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJOb25lLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YWNjYjQzMDYzY2VhNzE1OGZlNDk5YTljMzM0ZmEwNDI5NWMzMmJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyTm9uZS5jcHAKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCisKK25hbWVzcGFj
ZSBKU0MgeworCitIZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEp
CisgICAgOiBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKK3sKK30KKworSGVhcFRpbWVyOjp+SGVh
cFRpbWVyKCkKK3sKK30KKwordm9pZCBIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bigpCit7
CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6ZSgpCit7
Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjppbnZhbGlkYXRlKCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJR
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJRdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjg4Y2Y3YzZkNmI3OGIyNDFlMjZjYjhiZTZmNzk2MDQzYjI2YTQ5MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lclF0LmNwcApAQCAt
MCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRo
ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlLAorICogdmVyc2lvbiAyLjEsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgKiBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisgKiBJbmMuLCA1MSBGcmFua2xpbiBTdCAtIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgorICoKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCisKKyNpbmNsdWRlICJBUElTaGlt
cy5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKworI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UU11dGV4TG9ja2VyPgorI2luY2x1
ZGUgPFFUaHJlYWQ+CisjaW5jbHVkZSA8UVRpbWVyRXZlbnQ+CisKKyNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7
CisKK0hlYXBUaW1lcjo6SGVhcFRpbWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICA6
IG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRhKQorICAgICwgbV9uZXdUaHJlYWQoMCkKKyAgICAsIG1f
bXV0ZXgoUU11dGV4OjpOb25SZWN1cnNpdmUpCit7CisgICAgLy8gVGhlIEhlYXBUaW1lciBtaWdo
dCBiZSBjcmVhdGVkIGJlZm9yZSB0aGUgcnVuTG9vcCBpcyBzdGFydGVkLAorICAgIC8vIGJ1dCB3
ZSBuZWVkIHRvIGVuc3VyZXMgdGhlIHRocmVhZCBoYXMgYW4gZXZlbnREaXNwYXRjaGVyIGFscmVh
ZHkuCisgICAgUUV2ZW50TG9vcCBmYWtlTG9vcCh0aGlzKTsKK30KKworSGVhcFRpbWVyOjp+SGVh
cFRpbWVyKCkKK3sKK30KKwordm9pZCBIZWFwVGltZXI6OnRpbWVyRXZlbnQoUVRpbWVyRXZlbnQq
KQoreworICAgIFFNdXRleExvY2tlciBsb2NrKCZtX211dGV4KTsKKyAgICBpZiAobV9uZXdUaHJl
YWQpIHsKKyAgICAgICAgLy8gV2UgbmVlZCB0byB3YWl0IHdpdGggcHJvY2Vzc2luZyB1bnRpbCB3
ZSBhcmUgb24gdGhlIHJpZ2h0IHRocmVhZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFQSUVudHJ5U2hpbSBzaGltKG1fZ2xvYmFsRGF0YSwgQVBJRW50cnlTaGltV2l0aG91dExvY2s6
OkRvbnRSZWZHbG9iYWxEYXRhKTsKKyAgICBkb1dvcmsoKTsKK30KKwordm9pZCBIZWFwVGltZXI6
OmN1c3RvbUV2ZW50KFFFdmVudCopCit7CisgICAgQVNTRVJUKG1fbmV3VGhyZWFkKTsKKyAgICBR
TXV0ZXhMb2NrZXIgbG9jaygmbV9tdXRleCk7CisgICAgbW92ZVRvVGhyZWFkKG1fbmV3VGhyZWFk
KTsKKyAgICBtX25ld1RocmVhZCA9IDA7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpzeW5jaHJvbml6
ZSgpCit7CisgICAgaWYgKHRocmVhZCgpICE9IFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKSkgewor
ICAgICAgICAvLyBXZSBjYW4gb25seSBtb3ZlIGZyb20gdGhlIG9iamVjdHMgb3duIHRocmVhZCB0
byBhbm90aGVyLCBzbyB3ZSBmaXJlIGEgdGltZXIKKyAgICAgICAgLy8gZXZlbnQgaW50byB0aGUg
b3duaW5nIHRocmVhZCB0byB0cmlnZ2VyIHRoZSBtb3ZlLgorICAgICAgICAvLyBUaGlzIG11c3Qg
YmUgcHJvY2Vzc2VkIGJlZm9yZSBhbnkgdGltZXJFdmVudHMgc28gZ2l2aW5nIGl0IGhpZ2ggcHJp
b3JpdHkuCisgICAgICAgIFFNdXRleExvY2tlciBsb2NrKCZtX211dGV4KTsKKyAgICAgICAgbV9u
ZXdUaHJlYWQgPSBRVGhyZWFkOjpjdXJyZW50VGhyZWFkKCk7CisgICAgICAgIFFDb3JlQXBwbGlj
YXRpb246OnBvc3RFdmVudCh0aGlzLCBuZXcgUUV2ZW50KFFFdmVudDo6VXNlciksIFF0OjpIaWdo
RXZlbnRQcmlvcml0eSk7CisgICAgfQorfQorCit2b2lkIEhlYXBUaW1lcjo6aW52YWxpZGF0ZSgp
Cit7CisgICAgUU11dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgpOworICAgIG1fdGltZXIuc3RvcCgp
OworfQorCit2b2lkIEhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNodXRkb3duKCkKK3sKKyAgICBpbnZh
bGlkYXRlKCk7CisgICAgaWYgKHRocmVhZCgpID09IFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKSkK
KyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgZWxzZQorICAgICAgICBkZWxldGVMYXRlcigpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCmluZGV4IDRhZWM0ZGQ1MTEwZGZmYjgwMmE1OTcwMDQz
ZWZlMGY2NTcyNjhhNDQuLjQxYmM3ZjVlNDcwNDdhYjIwYTEyNTVlMDNlN2ZiMzM0YzBhZmJjNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVy
LmNwcApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShDRikg
fHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEJMQUNLQkVS
UlkpIHx8IFBMQVRGT1JNKFFUKQogCiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVNsaWNl
ID0gLjAxOyAvLyBzZWNvbmRzCiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVRvdGFsID0g
LjEwOwpAQCAtNjcsMTEgKzY3LDEyIEBAIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpjYW5jZWxU
aW1lcigpCiAgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwg
Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZSk7CiB9CiAKLSNlbGlmIFBMQVRG
T1JNKEJMQUNLQkVSUlkpCisjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFURk9STShR
VCkKICAgIAogSW5jcmVtZW50YWxTd2VlcGVyOjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVh
cCkKICAgICA6IEhlYXBUaW1lcihoZWFwLT5nbG9iYWxEYXRhKCkpCiAgICAgLCBtX2N1cnJlbnRC
bG9ja1RvU3dlZXBJbmRleCgwKQorICAgICwgbV9ibG9ja3NUb1N3ZWVwKGhlYXAtPm1fYmxvY2tT
bmFwc2hvdCkKIHsKIH0KIApAQCAtODIsNyArODMsMTEgQEAgSW5jcmVtZW50YWxTd2VlcGVyKiBJ
bmNyZW1lbnRhbFN3ZWVwZXI6OmNyZWF0ZShIZWFwKiBoZWFwKQogCiB2b2lkIEluY3JlbWVudGFs
U3dlZXBlcjo6c2NoZWR1bGVUaW1lcigpCiB7CisjaWYgUExBVEZPUk0oUVQpCisgICAgbV90aW1l
ci5zdGFydChzd2VlcFRpbWVTbGljZSAqIHN3ZWVwVGltZU11bHRpcGxpZXIgKiAxMDAwLCB0aGlz
KTsKKyNlbHNlCiAgICAgbV90aW1lci5zdGFydChzd2VlcFRpbWVTbGljZSAqIHN3ZWVwVGltZU11
bHRpcGxpZXIpOworI2VuZGlmCiB9CiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpjYW5jZWxU
aW1lcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBl
ci5oCmluZGV4IDViOTI2N2JjNzYzMjZjNGU5NzVlZTQ5MGRkYTBkYzRhOGM4OTM4Y2UuLjdiMGFl
OTlhYjU2MTIzYWFjMjMzNjA5M2FmODAyY2FhMjM1ZDY1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC00Niw3ICs0Niw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHdpbGxGaW5pc2hTd2VlcGluZygpOwogCiBwcml2YXRlOgotI2lmIFVT
RShDRikgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEJM
QUNLQkVSUlkpIHx8IFBMQVRGT1JNKFFUKQogI2lmIFVTRShDRikKICAgICBJbmNyZW1lbnRhbFN3
ZWVwZXIoSGVhcCosIENGUnVuTG9vcFJlZik7CiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181685</attachid>
            <date>2013-01-08 04:53:51 -0800</date>
            <delta_ts>2013-01-29 02:08:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103996-20130108135020.patch</filename>
            <type>text/plain</type>
            <size>28704</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTEzNWZmYjQzMmJlOTA3NmZhOGY0ZDQ0Y2VjYmRkZjMyOWE5YTVhLi5jOWY5MDFjOWM5NzQ0ZjMz
ZDdkZWY4ZDk5Yzc0YzJhODM2MGZmZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxMy0wMS0wOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVu
c2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdIEltcGxlbWVudCBJbmNyZW1lbnRhbFN3ZWVw
ZXIgYW5kIEhlYXBUaW1lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50cyB0aGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgZ2FyYmFnZSBjb2xs
ZWN0aW9uIGZvciB0aGUgUXQgcGxhdGZvcm0uCisKKyAgICAgICAgVGhlIEhlYXBUaW1lci5jcHAg
ZmlsZSBoYXMgYmVlbiBzcGxpdCBpbnRvIGRpZmZlcmVudCBwbGF0Zm9ybSBmaWxlcyBzaW5jZSBu
byBtZXRob2RzIGFyZSBzaGFyZWQKKyAgICAgICAgYmV0d2VlbiBpbXBsZW1lbnRhdGlvbnMuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lci5oOgorICAgICAgICAoSGVh
cFRpbWVyKToKKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lckJsYWNrQmVycnkuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcC4KKyAgICAgICAg
KEpTQzo6SGVhcFRpbWVyOjpIZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5I
ZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnRpbWVyRGlkRmlyZSk6CisgICAg
ICAgIChKU0M6OkhlYXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGlt
ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0
ZG93bik6CisgICAgICAgICogaGVhcC9IZWFwVGltZXJDRi5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwLgorICAgICAgICAoSlNDOjpIZWFw
VGltZXI6OkhlYXBUaW1lcik6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6fkhlYXBUaW1lcik6
CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpI
ZWFwVGltZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0
Vk1TaHV0ZG93bik6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6dGltZXJEaWRGaXJlKToKKyAg
ICAgICAgKiBoZWFwL0hlYXBUaW1lck5vbmUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcC4KKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpI
ZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFwVGltZXIpOgorICAgICAg
ICAoSlNDOjpIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bik6CisgICAgICAgIChKU0M6Okhl
YXBUaW1lcjo6c3luY2hyb25pemUpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAqIGhlYXAvSGVhcFRpbWVyUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6SGVhcFRpbWVyOjpIZWFwVGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6On5IZWFw
VGltZXIpOgorICAgICAgICAoSlNDOjpIZWFwVGltZXI6OnRpbWVyRXZlbnQpOgorICAgICAgICAo
SlNDOjpIZWFwVGltZXI6OmN1c3RvbUV2ZW50KToKKyAgICAgICAgKEpTQzo6SGVhcFRpbWVyOjpz
eW5jaHJvbml6ZSk6CisgICAgICAgIChKU0M6OkhlYXBUaW1lcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChKU0M6OkhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNodXRkb3duKToKKyAgICAgICAgKiBoZWFw
L0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBl
cjo6SW5jcmVtZW50YWxTd2VlcGVyKToKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVy
OjpzY2hlZHVsZVRpbWVyKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgor
ICAgICAgICAoSW5jcmVtZW50YWxTd2VlcGVyKToKKwogMjAxMy0wMS0wNyAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJhdGlvbmFsaXplIGNsb3N1cmUgY2FsbCBo
ZXVyaXN0aWNzIGFuZCBwcm9maWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA2MzJlOWI2ZTg1YzA1MGUwYjBiMGY1NmQxMmEwYTlmOTU2MmQ1OGZhLi4xNmY0ZjBhYmQ3
MjU3ODlkNTVhZTQ2ZWZhNjJhZjJkNTQ0NWMyYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xMjUsNyArMTI1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMK
ICAgICBoZWFwL0hhbmRsZVN0YWNrLmNwcAogICAgIGhlYXAvSGVhcC5jcHAKICAgICBoZWFwL0hl
YXBTdGF0aXN0aWNzLmNwcAotICAgIGhlYXAvSGVhcFRpbWVyLmNwcAorICAgIGhlYXAvSGVhcFRp
bWVyTm9uZS5jcHAKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKICAgICBoZWFwL0pJ
VFN0dWJSb3V0aW5lU2V0LmNwcAogICAgIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWJiOWVkZGIzYWY3
OTdhZmIyZGQyMDFjMjk2ZDg1YTBjZGJkZTViLi4wMWMzNWRlZDViYWJmOTk5N2QwYTJmOTkwN2Zi
NTVjZWIxZmVhZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMjg5LDcgKzI4OSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwQmxvY2suaCBcCiAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyLmggXAotICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAg
XAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lck5vbmUuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcCBcCiAgICAgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKaW5kZXggNjVjMGQ3
ZmMwODdiYzZmM2YxMDM2NGFiOTY5ZDM0YWNmOTBmODJhMy4uZGI3N2NjZjRhZWMzNjU2M2YyODNm
NTQ5NWJlMzk4ZDU2ZjUyN2MxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKQEAgLTI1OTAsNyArMjU5MCw3IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGhlYXBcSGVh
cFRpbWVyLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGhlYXBcSGVhcFRpbWVyQ0YuY3Bw
IgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNlYWQwYmYxNjAwNzkyOTM4Y2U3MzcwMjBkYzlkMzMwNjEzZTkxNmYuLmU0N2RkNjM1
MDU3MjE0MjA4MTQ3YmY1ZTVlM2E1MzkyYzdmM2JkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04MDIsNyArODAyLDcgQEAKIAkJQzJDOEQwMzAxNEEzQ0VGQzAwNTc4RTY1IC8q
IENvcGllZEJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkM4RDAyRTE0QTNDRUZDMDA1NzhFNjUgLyogQ29waWVkQmxvY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkM4RDAzMTE0QTNDRUZD
MDA1NzhFNjUgLyogSGVhcEJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMkM4RDAyRjE0QTNDRUZDMDA1NzhFNjUgLyogSGVhcEJsb2NrLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzJENThDMzQx
NTkxMkZFRTAwMjFBODQ0IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkQ1OEMzMzE1OTEyRkVFMDAyMUE4NDQg
LyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLzsgfTsKLQkJQzJFNTI2QkQxNTkwRUYwMDAwNTRF
NDhEIC8qIEhlYXBUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkU1MjZCQjE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmNwcCAqLzsg
fTsKKwkJQzJFMjhENDQxNjlDM0JDMzAwMTYwMDVEIC8qIEhlYXBUaW1lckNGLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRTI4RDNBMTY5QzNCNzQw
MDE2MDA1RCAvKiBIZWFwVGltZXJDRi5jcHAgKi87IH07CiAJCUMyRTUyNkJFMTU5MEVGMDAwMDU0
RTQ4RCAvKiBIZWFwVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyRTUyNkJDMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkVBQTNGQTE0OUE4
MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyRUFBM0Y4MTQ5QTgzMDgwMEZDRTExMiAvKiBDb3BpZWRTcGFj
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMy
RUFEMkZDMTRGMDI0OTgwMEE0QjE1OSAvKiBDb3BpZWRBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRUFEMkZCMTRGMDI0OTgwMEE0QjE1
OSAvKiBDb3BpZWRBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTY2Myw3ICsxNjYzLDcgQEAKIAkJQzJDOEQwMkUxNEEzQ0VGQzAw
NTc4RTY1IC8qIENvcGllZEJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvcGllZEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQzhEMDJGMTRB
M0NFRkMwMDU3OEU2NSAvKiBIZWFwQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSGVhcEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRDU4QzMz
MTU5MTJGRUUwMDIxQTg0NCAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR0NBY3Rpdml0eUNhbGxiYWNrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzJFNTI2QkIxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1l
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIZWFwVGltZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkUyOEQzQTE2OUMzQjc0MDAxNjAwNUQg
LyogSGVhcFRpbWVyQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SGVhcFRpbWVyQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkU1MjZCQzE1
OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhlYXBUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkVBQTNG
ODE0OUE4MzA4MDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ29waWVkU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzJFQUQyRkIxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9jYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb3BpZWRBbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwMjksNyArMjAyOSw3IEBACiAJCQkJMTRGOTc0NDYxMzhDODUzRTAw
REExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovLAogCQkJCUMyNEQzMUUwMTYxQ0Q2OTUwMDJB
QTREQiAvKiBIZWFwU3RhdGlzdGljcy5jcHAgKi8sCiAJCQkJQzI0RDMxRTExNjFDRDY5NTAwMkFB
NERCIC8qIEhlYXBTdGF0aXN0aWNzLmggKi8sCi0JCQkJQzJFNTI2QkIxNTkwRUYwMDAwNTRFNDhE
IC8qIEhlYXBUaW1lci5jcHAgKi8sCisJCQkJQzJFMjhEM0ExNjlDM0I3NDAwMTYwMDVEIC8qIEhl
YXBUaW1lckNGLmNwcCAqLywKIAkJCQlDMkU1MjZCQzE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRp
bWVyLmggKi8sCiAJCQkJQzI1RjhCQ0IxNTc1NDRBOTAwMjQ1QjcxIC8qIEluY3JlbWVudGFsU3dl
ZXBlci5jcHAgKi8sCiAJCQkJQzI1RjhCQ0MxNTc1NDRBOTAwMjQ1QjcxIC8qIEluY3JlbWVudGFs
U3dlZXBlci5oICovLApAQCAtMzcwOSw3ICszNzA5LDcgQEAKIAkJCQkxNDJFMzEzNzEzNEZGMEE2
MDBBRkFEQjUgLyogSGFuZGxlU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCQTdBOTcx
M0FBREZGODAwNUI3QzJDIC8qIEhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI0RDMxRTIx
NjFDRDY5NTAwMkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUMyRTUyNkJEMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJFMjhENDQxNjlDM0JDMzAwMTYwMDVEIC8qIEhlYXBUaW1lckNGLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNDY4MEQ0MTRCQkQyNDkwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUNFMTA3RUMzNzYwMDQyN0E0OCAvKiBJ
ZGVudGlmaWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUY4QkNEMTU3NTQ0QTkwMDI0NUI3
MSAvKiBJbmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRleCAwZGFlNDBjNTQ5MGVl
YzdlYWJhZWVjZDUxOTUzZWMwODNjODhhNGFjLi40Yzc4ZDY1NTlkOTNjYjYzZWJmMzY5YzVmNTc1
NDFjOTQ5ZmNkYTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1C
bGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2UKQEAgLTMsMTAgKzMsMTIgQEAgbGlzdChJTlNFUlQgSmF2YVNjcmlwdENvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUyAwCiApCiAKIGxpc3QoUkVNT1ZFX0lURU0gSmF2YVNjcmlwdENv
cmVfU09VUkNFUworICAgIGhlYXAvSGVhcFRpbWVyTm9uZS5jcHAKICAgICBydW50aW1lL0dDQWN0
aXZpdHlDYWxsYmFjay5jcHAKICkKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfU09VUkNF
UworICAgIGhlYXAvSGVhcFRpbWVyQmxhY2tCZXJyeS5jcHAKICAgICBydW50aW1lL0dDQWN0aXZp
dHlDYWxsYmFja0JsYWNrQmVycnkuY3BwCiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkKaW5k
ZXggZjNjYTcwNzQ0ODZkNDk5MGRlZTAyNmQ1ZDA0NDJiOTgxMGY5ZjYzYS4uYTVlMTg4MmEwMWFh
ZTdkYjI5NzMwZDZhZWVmOGZmZWIwNjg4ZTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkK
QEAgLTk0LDcgKzk0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaGVhcC9HQ1RocmVhZC5jcHAgXAog
ICAgIGhlYXAvSGVhcC5jcHAgXAogICAgIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwIFwKLSAgICBo
ZWFwL0hlYXBUaW1lci5jcHAgXAorICAgIGhlYXAvSGVhcFRpbWVyUXQuY3BwIFwKICAgICBoZWFw
L0luY3JlbWVudGFsU3dlZXBlci5jcHAgXAogICAgIGhlYXAvSklUU3R1YlJvdXRpbmVTZXQuY3Bw
IFwKICAgICBoZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXBUaW1lci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxNGY4
Njc1Nzg2MjkxMGYzNzI5NDI4NTg0OGU0OWM2MmNmMjdhNTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJIZWFwVGltZXIuaCIKLQotI2luY2x1ZGUgIkFQSVNoaW1zLmgiCi0jaW5jbHVkZSAi
SlNPYmplY3QuaCIKLSNpbmNsdWRlICJKU1N0cmluZy5oIgotCi0jaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLW5hbWVzcGFjZSBKU0Mgewot
Ci0jaWYgVVNFKENGKQotICAgIAotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgSGVhcFRpbWVyOjpzX2Rl
Y2FkZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCi1IZWFwVGltZXI6OkhlYXBUaW1lcihK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIENGUnVuTG9vcFJlZiBydW5Mb29wKQotICAgIDogbV9n
bG9iYWxEYXRhKGdsb2JhbERhdGEpCi0gICAgLCBtX3J1bkxvb3AocnVuTG9vcCkKLXsKLSAgICBt
ZW1zZXQoJm1fY29udGV4dCwgMCwgc2l6ZW9mKENGUnVuTG9vcFRpbWVyQ29udGV4dCkpOwotICAg
IG1fY29udGV4dC5pbmZvID0gdGhpczsKLSAgICBtX3RpbWVyLmFkb3B0Q0YoQ0ZSdW5Mb29wVGlt
ZXJDcmVhdGUoMCwgc19kZWNhZGUsIHNfZGVjYWRlLCAwLCAwLCBIZWFwVGltZXI6OnRpbWVyRGlk
RmlyZSwgJm1fY29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5nZXQo
KSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotSGVhcFRpbWVy
Ojp+SGVhcFRpbWVyKCkKLXsKLSAgICBDRlJ1bkxvb3BSZW1vdmVUaW1lcihtX3J1bkxvb3AuZ2V0
KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0gICAgQ0ZSdW5Mb29w
VGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOwotfQotCi12b2lkIEhlYXBUaW1lcjo6c3lu
Y2hyb25pemUoKQotewotICAgIGlmIChDRlJ1bkxvb3BHZXRDdXJyZW50KCkgPT0gbV9ydW5Mb29w
LmdldCgpKQotICAgICAgICByZXR1cm47Ci0gICAgQ0ZSdW5Mb29wUmVtb3ZlVGltZXIobV9ydW5M
b29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotICAgIG1f
cnVuTG9vcCA9IENGUnVuTG9vcEdldEN1cnJlbnQoKTsKLSAgICBDRlJ1bkxvb3BBZGRUaW1lciht
X3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19
Ci0KLXZvaWQgSGVhcFRpbWVyOjppbnZhbGlkYXRlKCkKLXsKLSAgICBtX2dsb2JhbERhdGEgPSAw
OwotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpIC0gc19kZWNhZGUpOwotfQotCi12b2lkIEhlYXBUaW1lcjo6
ZGlkU3RhcnRWTVNodXRkb3duKCkKLXsKLSAgICBpZiAoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpID09
IG1fcnVuTG9vcC5nZXQoKSkgewotICAgICAgICBpbnZhbGlkYXRlKCk7Ci0gICAgICAgIGRlbGV0
ZSB0aGlzOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVCghbV9nbG9iYWxEYXRh
LT5hcGlMb2NrKCkuY3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fc2h1dGRvd25NdXRleCk7Ci0gICAgaW52YWxpZGF0ZSgpOwotfQotCi12b2lk
IEhlYXBUaW1lcjo6dGltZXJEaWRGaXJlKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBpbmZvKQot
ewotICAgIEhlYXBUaW1lciogYWdlbnQgPSBzdGF0aWNfY2FzdDxIZWFwVGltZXIqPihpbmZvKTsK
LSAgICBhZ2VudC0+bV9zaHV0ZG93bk11dGV4LmxvY2soKTsKLSAgICBpZiAoIWFnZW50LT5tX2ds
b2JhbERhdGEpIHsKLSAgICAgICAgYWdlbnQtPm1fc2h1dGRvd25NdXRleC51bmxvY2soKTsKLSAg
ICAgICAgZGVsZXRlIGFnZW50OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHsKLSAgICAg
ICAgLy8gV2UgZG9uJ3QgcmVmIGhlcmUgdG8gcHJldmVudCB1cyBmcm9tIHJlc3VycmVjdGluZyB0
aGUgcmVmIGNvdW50IG9mIGEgImRlYWQiIEpTR2xvYmFsRGF0YS4KLSAgICAgICAgQVBJRW50cnlT
aGltIHNoaW0oYWdlbnQtPm1fZ2xvYmFsRGF0YSwgQVBJRW50cnlTaGltV2l0aG91dExvY2s6OkRv
bnRSZWZHbG9iYWxEYXRhKTsKLSAgICAgICAgYWdlbnQtPmRvV29yaygpOwotICAgIH0KLSAgICBh
Z2VudC0+bV9zaHV0ZG93bk11dGV4LnVubG9jaygpOwotfQotCi0jZWxpZiBQTEFURk9STShCTEFD
S0JFUlJZKQotCi1IZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEp
Ci0gICAgOiBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKLSAgICAsIG1fdGltZXIodGhpcywgJkhl
YXBUaW1lcjo6dGltZXJEaWRGaXJlKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgSGVhcFRp
bWVyIGZvciBvdGhlciB0aHJlYWRzLgotICAgIGlmIChXVEY6OmlzTWFpblRocmVhZCgpICYmICFt
X3RpbWVyLnRyeUNyZWF0ZUNsaWVudCgpKQotICAgICAgICBDUkFTSCgpOwotfQotCi1IZWFwVGlt
ZXI6On5IZWFwVGltZXIoKQotewotfQotCi12b2lkIEhlYXBUaW1lcjo6dGltZXJEaWRGaXJlKCkK
LXsKLSAgICBkb1dvcmsoKTsKLX0KLQotdm9pZCBIZWFwVGltZXI6OnN5bmNocm9uaXplKCkKLXsK
LX0KLQotdm9pZCBIZWFwVGltZXI6OmludmFsaWRhdGUoKQotewotfQotCi12b2lkIEhlYXBUaW1l
cjo6ZGlkU3RhcnRWTVNodXRkb3duKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotI2Vsc2UK
LQotSGVhcFRpbWVyOjpIZWFwVGltZXIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDog
bV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCi17Ci19Ci0KLUhlYXBUaW1lcjo6fkhlYXBUaW1lcigp
Ci17Ci19Ci0KLXZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1dGRvd24oKQotewotICAgIGRl
bGV0ZSB0aGlzOwotfQotCi12b2lkIEhlYXBUaW1lcjo6c3luY2hyb25pemUoKQotewotfQotCi12
b2lkIEhlYXBUaW1lcjo6aW52YWxpZGF0ZSgpCi17Ci19Ci0KLSNlbmRpZgotICAgIAotCi19IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXBUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmgKaW5kZXgg
ODg3MTUwOThhNDBkZDIxOWUzYThjMmNjMmE1ZWE2NzdkMGU1ZDI3Yi4uN2M0YjA0MWU5M2ZjMmY1
ZTFjNmNjMGY0NDQ1NzgwZTk3MGViNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcFRpbWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyLmgKQEAgLTMzLDEzICszMywyMiBAQAogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0Nv
cmVGb3VuZGF0aW9uLmg+CiAjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKQogI2luY2x1ZGUgPEJs
YWNrQmVycnlQbGF0Zm9ybVRpbWVyLmg+CisjZWxpZiBQTEFURk9STShRVCkKKyNpbmNsdWRlIDxR
QmFzaWNUaW1lcj4KKyNpbmNsdWRlIDxRTXV0ZXg+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNs
dWRlIDxRVGhyZWFkPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU0dsb2Jh
bERhdGE7Ci0gICAgCisKKyNpZiBQTEFURk9STShRVCkKK2NsYXNzIEhlYXBUaW1lciA6IHB1Ymxp
YyBRT2JqZWN0IHsKKyNlbHNlCiBjbGFzcyBIZWFwVGltZXIgeworI2VuZGlmCiBwdWJsaWM6CiAj
aWYgVVNFKENGKQogICAgIEhlYXBUaW1lcihKU0dsb2JhbERhdGEqLCBDRlJ1bkxvb3BSZWYpOwpA
QCAtNTMsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTdGFydFZNU2h1dGRvd24oKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZG9Xb3Jr
KCkgPSAwOwotICAgIAorCiBwcm90ZWN0ZWQ6CiAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERh
dGE7CiAKQEAgLTY5LDYgKzc4LDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHRpbWVyRGlkRmly
ZSgpOwogCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRpbWVyPEhlYXBUaW1lcj4gbV90aW1l
cjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCop
OworICAgIHZvaWQgY3VzdG9tRXZlbnQoUUV2ZW50Kik7CisgICAgUUJhc2ljVGltZXIgbV90aW1l
cjsKKyAgICBRVGhyZWFkKiBtX25ld1RocmVhZDsKKyAgICBRTXV0ZXggbV9tdXRleDsKICNlbmRp
ZgogICAgIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXBUaW1lckJsYWNrQmVycnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFRpbWVyQmxhY2tCZXJyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlhZGU3MDdjYjEyZGFhODFmZjg5NThk
YWYyNTU0NzFhNjBkZGM0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXBUaW1lckJsYWNrQmVycnkuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkhlYXBUaW1lci5oIgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitIZWFwVGlt
ZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2dsb2JhbERh
dGEoZ2xvYmFsRGF0YSkKKyAgICAsIG1fdGltZXIodGhpcywgJkhlYXBUaW1lcjo6dGltZXJEaWRG
aXJlKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgSGVhcFRpbWVyIGZvciBvdGhlciB0aHJl
YWRzLgorICAgIGlmIChXVEY6OmlzTWFpblRocmVhZCgpICYmICFtX3RpbWVyLnRyeUNyZWF0ZUNs
aWVudCgpKQorICAgICAgICBDUkFTSCgpOworfQorCitIZWFwVGltZXI6On5IZWFwVGltZXIoKQor
eworfQorCit2b2lkIEhlYXBUaW1lcjo6dGltZXJEaWRGaXJlKCkKK3sKKyAgICBkb1dvcmsoKTsK
K30KKwordm9pZCBIZWFwVGltZXI6OnN5bmNocm9uaXplKCkKK3sKK30KKwordm9pZCBIZWFwVGlt
ZXI6OmludmFsaWRhdGUoKQoreworfQorCit2b2lkIEhlYXBUaW1lcjo6ZGlkU3RhcnRWTVNodXRk
b3duKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJDRi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJDRi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ1NTM1
MDA5MTQyZTM5OTQwMDcyZWQ2YjQzZjI0MGUzZjA3NWZkZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lckNGLmNwcApAQCAtMCwwICsxLDEwMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCisKKyNpbmNsdWRlICJBUElTaGlt
cy5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCitu
YW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgSGVhcFRpbWVyOjpzX2RlY2Fk
ZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOworCitIZWFwVGltZXI6OkhlYXBUaW1lcihKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEsIENGUnVuTG9vcFJlZiBydW5Mb29wKQorICAgIDogbV9nbG9i
YWxEYXRhKGdsb2JhbERhdGEpCisgICAgLCBtX3J1bkxvb3AocnVuTG9vcCkKK3sKKyAgICBtZW1z
ZXQoJm1fY29udGV4dCwgMCwgc2l6ZW9mKENGUnVuTG9vcFRpbWVyQ29udGV4dCkpOworICAgIG1f
Y29udGV4dC5pbmZvID0gdGhpczsKKyAgICBtX3RpbWVyLmFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJD
cmVhdGUoMCwgc19kZWNhZGUsIHNfZGVjYWRlLCAwLCAwLCBIZWFwVGltZXI6OnRpbWVyRGlkRmly
ZSwgJm1fY29udGV4dCkpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5nZXQoKSwg
bV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKworSGVhcFRpbWVyOjp+
SGVhcFRpbWVyKCkKK3sKKyAgICBDRlJ1bkxvb3BSZW1vdmVUaW1lcihtX3J1bkxvb3AuZ2V0KCks
IG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgQ0ZSdW5Mb29wVGlt
ZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOworfQorCit2b2lkIEhlYXBUaW1lcjo6c3luY2hy
b25pemUoKQoreworICAgIGlmIChDRlJ1bkxvb3BHZXRDdXJyZW50KCkgPT0gbV9ydW5Mb29wLmdl
dCgpKQorICAgICAgICByZXR1cm47CisgICAgQ0ZSdW5Mb29wUmVtb3ZlVGltZXIobV9ydW5Mb29w
LmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworICAgIG1fcnVu
TG9vcCA9IENGUnVuTG9vcEdldEN1cnJlbnQoKTsKKyAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1
bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cit9CisK
K3ZvaWQgSGVhcFRpbWVyOjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX2dsb2JhbERhdGEgPSAwOwor
ICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1
dGVUaW1lR2V0Q3VycmVudCgpIC0gc19kZWNhZGUpOworfQorCit2b2lkIEhlYXBUaW1lcjo6ZGlk
U3RhcnRWTVNodXRkb3duKCkKK3sKKyAgICBpZiAoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpID09IG1f
cnVuTG9vcC5nZXQoKSkgeworICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGRlbGV0ZSB0
aGlzOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVCghbV9nbG9iYWxEYXRhLT5h
cGlMb2NrKCkuY3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7CisgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc2h1dGRvd25NdXRleCk7CisgICAgaW52YWxpZGF0ZSgpOworfQorCit2b2lkIEhl
YXBUaW1lcjo6dGltZXJEaWRGaXJlKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBpbmZvKQorewor
ICAgIEhlYXBUaW1lciogYWdlbnQgPSBzdGF0aWNfY2FzdDxIZWFwVGltZXIqPihpbmZvKTsKKyAg
ICBhZ2VudC0+bV9zaHV0ZG93bk11dGV4LmxvY2soKTsKKyAgICBpZiAoIWFnZW50LT5tX2dsb2Jh
bERhdGEpIHsKKyAgICAgICAgYWdlbnQtPm1fc2h1dGRvd25NdXRleC51bmxvY2soKTsKKyAgICAg
ICAgZGVsZXRlIGFnZW50OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHsKKyAgICAgICAg
Ly8gV2UgZG9uJ3QgcmVmIGhlcmUgdG8gcHJldmVudCB1cyBmcm9tIHJlc3VycmVjdGluZyB0aGUg
cmVmIGNvdW50IG9mIGEgImRlYWQiIEpTR2xvYmFsRGF0YS4KKyAgICAgICAgQVBJRW50cnlTaGlt
IHNoaW0oYWdlbnQtPm1fZ2xvYmFsRGF0YSwgQVBJRW50cnlTaGltV2l0aG91dExvY2s6OkRvbnRS
ZWZHbG9iYWxEYXRhKTsKKyAgICAgICAgYWdlbnQtPmRvV29yaygpOworICAgIH0KKyAgICBhZ2Vu
dC0+bV9zaHV0ZG93bk11dGV4LnVubG9jaygpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lck5vbmUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyTm9uZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWFjY2I0MzA2M2NlYTcxNThmZTQ5OWE5YzMzNGZhMDQyOTVjMzJiYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lck5vbmUuY3BwCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhlYXBUaW1lci5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworSGVhcFRpbWVyOjpIZWFwVGltZXIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQor
ICAgIDogbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCit7Cit9CisKK0hlYXBUaW1lcjo6fkhlYXBU
aW1lcigpCit7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpkaWRTdGFydFZNU2h1dGRvd24oKQorewor
ICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIEhlYXBUaW1lcjo6c3luY2hyb25pemUoKQorewor
fQorCit2b2lkIEhlYXBUaW1lcjo6aW52YWxpZGF0ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyUXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyUXQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4OGNmN2M2ZDZiNzhiMjQxZTI2Y2I4YmU2Zjc5NjA0M2IyNmE0OTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXJRdC5jcHAKQEAgLTAs
MCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQbGMuIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUg
dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSwKKyAqIHZlcnNpb24gMi4xLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorICogV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICogSW5jLiwgNTEgRnJhbmtsaW4gU3QgLSBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkhlYXBUaW1lci5oIgorCisjaW5jbHVkZSAiQVBJU2hpbXMu
aCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisKKyNpbmNs
dWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFNdXRleExvY2tlcj4KKyNpbmNsdWRl
IDxRVGhyZWFkPgorI2luY2x1ZGUgPFFUaW1lckV2ZW50PgorCisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBKU0Mgewor
CitIZWFwVGltZXI6OkhlYXBUaW1lcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBt
X2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKKyAgICAsIG1fbmV3VGhyZWFkKDApCisgICAgLCBtX211
dGV4KFFNdXRleDo6Tm9uUmVjdXJzaXZlKQoreworICAgIC8vIFRoZSBIZWFwVGltZXIgbWlnaHQg
YmUgY3JlYXRlZCBiZWZvcmUgdGhlIHJ1bkxvb3AgaXMgc3RhcnRlZCwKKyAgICAvLyBidXQgd2Ug
bmVlZCB0byBlbnN1cmVzIHRoZSB0aHJlYWQgaGFzIGFuIGV2ZW50RGlzcGF0Y2hlciBhbHJlYWR5
LgorICAgIFFFdmVudExvb3AgZmFrZUxvb3AodGhpcyk7Cit9CisKK0hlYXBUaW1lcjo6fkhlYXBU
aW1lcigpCit7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjp0aW1lckV2ZW50KFFUaW1lckV2ZW50KikK
K3sKKyAgICBRTXV0ZXhMb2NrZXIgbG9jaygmbV9tdXRleCk7CisgICAgaWYgKG1fbmV3VGhyZWFk
KSB7CisgICAgICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB3aXRoIHByb2Nlc3NpbmcgdW50aWwgd2Ug
YXJlIG9uIHRoZSByaWdodCB0aHJlYWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
UElFbnRyeVNoaW0gc2hpbShtX2dsb2JhbERhdGEsIEFQSUVudHJ5U2hpbVdpdGhvdXRMb2NrOjpE
b250UmVmR2xvYmFsRGF0YSk7CisgICAgZG9Xb3JrKCk7Cit9CisKK3ZvaWQgSGVhcFRpbWVyOjpj
dXN0b21FdmVudChRRXZlbnQqKQoreworICAgIEFTU0VSVChtX25ld1RocmVhZCk7CisgICAgUU11
dGV4TG9ja2VyIGxvY2soJm1fbXV0ZXgpOworICAgIG1vdmVUb1RocmVhZChtX25ld1RocmVhZCk7
CisgICAgbV9uZXdUaHJlYWQgPSAwOworfQorCit2b2lkIEhlYXBUaW1lcjo6c3luY2hyb25pemUo
KQoreworICAgIGlmICh0aHJlYWQoKSAhPSBRVGhyZWFkOjpjdXJyZW50VGhyZWFkKCkpIHsKKyAg
ICAgICAgLy8gV2UgY2FuIG9ubHkgbW92ZSBmcm9tIHRoZSBvYmplY3RzIG93biB0aHJlYWQgdG8g
YW5vdGhlciwgc28gd2UgZmlyZSBhIHRpbWVyCisgICAgICAgIC8vIGV2ZW50IGludG8gdGhlIG93
bmluZyB0aHJlYWQgdG8gdHJpZ2dlciB0aGUgbW92ZS4KKyAgICAgICAgLy8gVGhpcyBtdXN0IGJl
IHByb2Nlc3NlZCBiZWZvcmUgYW55IHRpbWVyRXZlbnRzIHNvIGdpdmluZyBpdCBoaWdoIHByaW9y
aXR5LgorICAgICAgICBRTXV0ZXhMb2NrZXIgbG9jaygmbV9tdXRleCk7CisgICAgICAgIG1fbmV3
VGhyZWFkID0gUVRocmVhZDo6Y3VycmVudFRocmVhZCgpOworICAgICAgICBRQ29yZUFwcGxpY2F0
aW9uOjpwb3N0RXZlbnQodGhpcywgbmV3IFFFdmVudChRRXZlbnQ6OlVzZXIpLCBRdDo6SGlnaEV2
ZW50UHJpb3JpdHkpOworICAgIH0KK30KKwordm9pZCBIZWFwVGltZXI6OmludmFsaWRhdGUoKQor
eworICAgIFFNdXRleExvY2tlciBsb2NrKCZtX211dGV4KTsKKyAgICBtX3RpbWVyLnN0b3AoKTsK
K30KKwordm9pZCBIZWFwVGltZXI6OmRpZFN0YXJ0Vk1TaHV0ZG93bigpCit7CisgICAgaW52YWxp
ZGF0ZSgpOworICAgIGlmICh0aHJlYWQoKSA9PSBRVGhyZWFkOjpjdXJyZW50VGhyZWFkKCkpCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIGVsc2UKKyAgICAgICAgZGVsZXRlTGF0ZXIoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SW5jcmVtZW50YWxTd2VlcGVyLmNwcAppbmRleCA0YWVjNGRkNTExMGRmZmI4MDJhNTk3MDA0M2Vm
ZTBmNjU3MjY4YTQ0Li40MWJjN2Y1ZTQ3MDQ3YWIyMGExMjU1ZTAzZTdmYjMzNGMwYWZiYzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8
IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgVVNFKENGKSB8fCBQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBQTEFURk9STShRVCkKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVTbGljZSA9
IC4wMTsgLy8gc2Vjb25kcwogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4x
MDsKQEAgLTY3LDExICs2NywxMiBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6Y2FuY2VsVGlt
ZXIoKQogICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENG
QWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUpOwogfQogCi0jZWxpZiBQTEFURk9S
TShCTEFDS0JFUlJZKQorI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oUVQp
CiAgICAKIEluY3JlbWVudGFsU3dlZXBlcjo6SW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqIGhlYXAp
CiAgICAgOiBIZWFwVGltZXIoaGVhcC0+Z2xvYmFsRGF0YSgpKQogICAgICwgbV9jdXJyZW50Qmxv
Y2tUb1N3ZWVwSW5kZXgoMCkKKyAgICAsIG1fYmxvY2tzVG9Td2VlcChoZWFwLT5tX2Jsb2NrU25h
cHNob3QpCiB7CiB9CiAKQEAgLTgyLDcgKzgzLDExIEBAIEluY3JlbWVudGFsU3dlZXBlciogSW5j
cmVtZW50YWxTd2VlcGVyOjpjcmVhdGUoSGVhcCogaGVhcCkKIAogdm9pZCBJbmNyZW1lbnRhbFN3
ZWVwZXI6OnNjaGVkdWxlVGltZXIoKQogeworI2lmIFBMQVRGT1JNKFFUKQorICAgIG1fdGltZXIu
c3RhcnQoc3dlZXBUaW1lU2xpY2UgKiBzd2VlcFRpbWVNdWx0aXBsaWVyICogMTAwMCwgdGhpcyk7
CisjZWxzZQogICAgIG1fdGltZXIuc3RhcnQoc3dlZXBUaW1lU2xpY2UgKiBzd2VlcFRpbWVNdWx0
aXBsaWVyKTsKKyNlbmRpZgogfQogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6Y2FuY2VsVGlt
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIu
aAppbmRleCA1YjkyNjdiYzc2MzI2YzRlOTc1ZWU0OTBkZGEwZGM0YThjODkzOGNlLi43YjBhZTk5
YWI1NjEyM2FhYzIzMzYwOTNhZjgwMmNhYTIzNWQ2NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3aWxsRmluaXNoU3dlZXBpbmcoKTsKIAogcHJpdmF0ZToKLSNpZiBVU0Uo
Q0YpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgVVNFKENGKSB8fCBQTEFURk9STShCTEFD
S0JFUlJZKSB8fCBQTEFURk9STShRVCkKICNpZiBVU0UoQ0YpCiAgICAgSW5jcmVtZW50YWxTd2Vl
cGVyKEhlYXAqLCBDRlJ1bkxvb3BSZWYpOwogI2Vsc2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>