<?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>129451</bug_id>
          
          <creation_ts>2014-02-27 14:29:42 -0800</creation_ts>
          <short_desc>Web Replay: make calls into FrameLoader::checkLoadComplete() deterministic</short_desc>
          <delta_ts>2017-07-10 13:59:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985347</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-27 14:29:42 -0800</bug_when>
    <thetext>I have implemented Timer workalike that:

- when capturing, saves when it fires into the replay session
- when replaying, doesn&apos;t schedule itself, and instead is called by EventLoopInputDispatcher
- when neither capturing or replaying, it acts like a regular timer (by forwarding calls to an inner Timer instance).

The implementation in my branch supports the basic Timer API, but it should also support SuspendableTimer so that it can be used to make DOMTimer deterministic as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995455</commentid>
    <comment_count>1</comment_count>
      <attachid>228085</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-28 14:41:07 -0700</bug_when>
    <thetext>Created attachment 228085
serialization of wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996936</commentid>
    <comment_count>2</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-02 17:21:00 -0700</bug_when>
    <thetext>A deterministic timer implementation addresses two major sources of nondeterminism:

1) During replay, timers that could possibly cause DOM events to be fired should fire in the same order to ensure JS is triggered in the right order.

2) During replay, we similarly want DOMTimers to fire in the same order with respect to other timers and other run loops like mouse, keyboard, network.

For the first version of ReplayableTimer I want to support single-shot timers. Later patches will teach ReplayableTimer to do intervals, and later work as a drop-in replacement of SuspendableTimer.

Handling intervals is sufficient for most WebCore-internal timers affecting JS determinism, such as those in FrameLoader, DocumentEventQueue, EventSender, etc.

Handling the SuspendableTimer interface is required for this implementation to be used for capture/replay of DOM timers. This will be a bit more work. An alternative (or stopgap) is to write custom replayable subclasses just for DOMTimer, and then switch off of those once ReplayableTimer learns how to deal with suspend. The &quot;stopgap&quot; approach can be seen here: https://github.com/burg/timelapse/blob/timelapse/Source/WebCore/page/DOMTimer.cpp

I&apos;m going to work on implementing repeatInterval and suspendable functionality, and if it proves to be more than a few days&apos; work, then we can think about pushing on the DOMTimer stopgap first. It&apos;s really important to get DOMTimer to be deterministic ASAP, as it blocks any sort of error-checking and is used by every webpage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997417</commentid>
    <comment_count>3</comment_count>
      <attachid>228571</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-03 18:19:31 -0700</bug_when>
    <thetext>Created attachment 228571
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997418</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-03 18:21:56 -0700</bug_when>
    <thetext>Attachment 228571 did not pass style-queue:


ERROR: Source/WebCore/replay/ReplayableTimer.h:89:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/replay/ReplayableTimer.h:120:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997658</commentid>
    <comment_count>5</comment_count>
      <attachid>228612</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-04 12:09:25 -0700</bug_when>
    <thetext>Created attachment 228612
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997659</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-04 12:10:32 -0700</bug_when>
    <thetext>Attachment 228612 did not pass style-queue:


ERROR: Source/WebCore/replay/ReplayableTimer.h:89:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/replay/ReplayableTimer.h:120:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997667</commentid>
    <comment_count>7</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-04-04 12:37:34 -0700</bug_when>
    <thetext>The patch looks fine to me. I&apos;d like others to take a look.

Why shouldn&apos;t / can&apos;t all Timers be replayable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997719</commentid>
    <comment_count>8</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-04 15:47:47 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; The patch looks fine to me. I&apos;d like others to take a look.
&gt; 
&gt; Why shouldn&apos;t / can&apos;t all Timers be replayable?

Most of them are irrelevant from a determinism point of view, so they would fill the recording with unnecessary data. The most important ones are those that could transitively dispatch DOM events or otherwise run JS code.

I haven&apos;t benchmarked it, but ReplayableTimer is probably a little slower because it has to dig out an input cursor. It does an allocation if the cursor is capturing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026909</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-08-05 11:55:07 -0700</bug_when>
    <thetext>Darin, maybe you can review this for Brian? I don&apos;t feel as comfortable reviewing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115070</commentid>
    <comment_count>10</comment_count>
      <attachid>228612</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-05 11:29:29 -0700</bug_when>
    <thetext>Comment on attachment 228612
the patch

Clearing r? flag as this patch is bit-rotted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327142</commentid>
    <comment_count>11</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-10 13:59:28 -0700</bug_when>
    <thetext>Closing web replay-related bugs until we resume working on the feature again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228085</attachid>
            <date>2014-03-28 14:41:07 -0700</date>
            <delta_ts>2014-04-03 18:19:26 -0700</delta_ts>
            <desc>serialization of wip</desc>
            <filename>bug-129451-20140328144035.patch</filename>
            <type>text/plain</type>
            <size>21514</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUyYjExODEyYjVhNGFl
YjkwODQ3NTgxYWNiYTBkZjZhOTc4MmE0Yy4uNzIxN2NkNTkxYjZiNDMzMjhmNTJmNTY4ODBhODY3
MjVjMjZlOWRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAzLTI4ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHVwc3RyZWFt
IGEgZHJvcC1pbiBkZXRlcm1pbmlzdGljIHRpbWVyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlcGxheWFibGVUaW1lcnMpOgorICAgICAgICAqIHJlcGxheS9SZXBs
YXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1RpbWVy
RmlyZWQ6OmRpc3BhdGNoKToKKyAgICAgICAgKiByZXBsYXkvUmVwbGF5YWJsZVRpbWVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJCYXNlOjpSZXBsYXlhYmxl
VGltZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6On5SZXBs
YXlhYmxlVGltZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6
OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6c3Rh
cnRSZXBlYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6c3Rh
cnRPbmVTaG90KToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6bmV4dEZpcmVJbnRlcnZh
bCk6CisgICAgICAgICogcmVwbGF5L1JlcGxheWFibGVUaW1lci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxheWFibGVUaW1lckJhc2U6OnJlcGVhdEludGVydmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxheWFibGVUaW1lckJhc2U6OmlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGF5YWJsZVRpbWVyOjpSZXBsYXlhYmxlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVw
bGF5YWJsZVRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVw
bGF5YWJsZVRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAgKiByZXBsYXkvUmVwbGF5
YWJsZVRpbWVycy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVy
czo6UmVwbGF5YWJsZVRpbWVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJz
Ojp+UmVwbGF5YWJsZVRpbWVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJz
OjpyZWdpc3RlclRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lcnM6OmZp
cmVUaW1lcik6CisgICAgICAgICogcmVwbGF5L1JlcGxheWFibGVUaW1lcnMuaDogQWRkZWQuCisg
ICAgICAgICogcmVwbGF5L1dlYklucHV0cy5qc29uOgorCiAyMDE0LTAzLTI4ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdIEltcGxlbWVudCBzdXBwb3J0
IGZvciBTb3VyY2VCdWZmZXIucmVtb3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE1
YmZiODk2MWU1NTg3NzQ3NmU5NGIxNjhiYTUyYTdjMTY3YjI5MmYuLjJiYWNlODI4OTljOWUwODY3
ZDc4YmIyZmVkMzcyYmE1Zjk5NjlmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjE5
LDYgKzIxOSw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorI2luY2x1ZGUg
IlJlcGxheWFibGVUaW1lcnMuaCIKICNpbmNsdWRlIDxyZXBsYXkvRW1wdHlJbnB1dEN1cnNvci5o
PgogI2VuZGlmCiAKQEAgLTUxMCw2ICs1MTEsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwog
I2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAgICAgLCBtX2lucHV0Q3Vyc29yKEVtcHR5
SW5wdXRDdXJzb3I6OmNyZWF0ZSgpKQorICAgICwgbV9yZXBsYXlhYmxlVGltZXJzKHN0ZDo6bWFr
ZV91bmlxdWU8UmVwbGF5YWJsZVRpbWVycz4oKSkKICNlbmRpZgogICAgICwgbV9kaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNUaW1lcih0aGlzLCAmRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9sc1RpbWVyRmlyZWQpCiAgICAgLCBtX2Rpc2FibGVkRmllbGRzZXRFbGVtZW50c0NvdW50KDAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDE4YTUzNzg4Yzk2ZWU2ODVjYWQ2M2JlYTJlMzU5ZGNi
OTU1ZDE2MWUuLjZkNmIyN2EzNzlmY2IzYTBjMzc5MjIwNDA5NTAxNTU1Y2NlYTRjNTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xOTEsNiArMTkxLDEwIEBAIGNsYXNzIERPTVNlY3VyaXR5UG9s
aWN5OwogY2xhc3MgRm9udExvYWRlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkp
CitjbGFzcyBSZXBsYXlhYmxlVGltZXJzOworI2VuZGlmCisKIHR5cGVkZWYgaW50IEV4Y2VwdGlv
bkNvZGU7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC00NzcsNiArNDgxLDggQEAgcHVibGljOgog
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQogICAgIElucHV0Q3Vyc29yJiBpbnB1dEN1cnNvcigpIGNv
bnN0IHsgcmV0dXJuICptX2lucHV0Q3Vyc29yOyB9CiAgICAgdm9pZCBzZXRJbnB1dEN1cnNvcihQ
YXNzUmVmUHRyPElucHV0Q3Vyc29yPiBjdXJzb3IpIHsgbV9pbnB1dEN1cnNvciA9IGN1cnNvcjsg
fQorCisgICAgUmVwbGF5YWJsZVRpbWVycyYgcmVwbGF5YWJsZVRpbWVycygpIGNvbnN0IHsgcmV0
dXJuICptX3JlcGxheWFibGVUaW1lcnM7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCkBAIC0xNjgzLDYgKzE2ODksNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxF
KFdFQl9SRVBMQVkpCiAgICAgUmVmUHRyPElucHV0Q3Vyc29yPiBtX2lucHV0Q3Vyc29yOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZXBsYXlhYmxlVGltZXJzPiBtX3JlcGxheWFibGVUaW1lcnM7CiAj
ZW5kaWYKIAogICAgIFRpbWVyPERvY3VtZW50PiBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1Rp
bWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNo
TWV0aG9kcy5jcHAKaW5kZXggMTA0NWU2NWJmODA2YzJlYmRiNmYwYWMwMjkyM2ZhNjYwMTdlNjcz
YS4uYjY3ODIxMTk5OTU5MjhkNTYyOWMzYmQ4NDQyMjlmNzAxODQzMzRhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwCkBA
IC03Nyw2ICs3NywxNCBAQCB2b2lkIEhhbmRsZU1vdXNlUmVsZWFzZTo6ZGlzcGF0Y2goUmVwbGF5
Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICBjb250cm9sbGVyLnBhZ2UoKS51c2VySW5wdXRC
cmlkZ2UoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChwbGF0Zm9ybUV2ZW50KCksIElucHV0U291
cmNlOjpTeW50aGV0aWMpOwogfQogCisvLyBPdGhlciBldmVudCBsb29wIGlucHV0cy4KK3ZvaWQg
QXN5bmNUaW1lckZpcmVkOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBjb250cm9sbGVyKQor
eworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvY3VtZW50RnJvbUZyYW1lSW5kZXgoJmNvbnRy
b2xsZXIucGFnZSgpLCBtX2ZyYW1lSW5kZXgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT5yZXBsYXlhYmxlVGltZXJzKCkuZmlyZVRpbWVyKG1faWRlbnRpZmllcikpCisgICAgICAg
IExPR19FUlJPUigiJS0zMHMgUkVQTEFZIERJVkVSR0VOQ0UhIENvdWxkbid0IGZpbmQgYXN5bmMg
dGltZXIgJWQvJXUuXG4iLCAiW1JlcGxheUNvbnRyb2xsZXJdIiwgbV9mcmFtZUluZGV4LCBtX2lk
ZW50aWZpZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JFUExBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlh
YmxlVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjMxZDUxZGVlZDM2MzU4ZGEzOGQ3NzIxOWE0Y2RiOGY1NDQyNjI2NQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXIuY3Bw
CkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkg
b2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVwbGF5YWJsZVRpbWVyLmgiCisKKyNpZiBFTkFCTEUoV0VCX1JF
UExBWSkKKworI2luY2x1ZGUgIkNhcHR1cmluZ0lucHV0Q3Vyc29yLmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVwbGF5YWJsZVRpbWVy
cy5oIgorI2luY2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgorI2luY2x1ZGUgPHJlcGxheS9JbnB1
dEN1cnNvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxheWFibGVUaW1lckJhc2U6
OlJlcGxheWFibGVUaW1lckJhc2UoKQorICAgIDogbV90aW1lcih0aGlzLCAmUmVwbGF5YWJsZVRp
bWVyQmFzZTo6dGltZXJGaXJlZCkKKyAgICAsIG1fZG9jdW1lbnQobnVsbHB0cikKKyAgICAsIG1f
cmVwZWF0SW50ZXJ2YWwoMCkKKyAgICAsIG1faWRlbnRpZmllcigwKQoreworfQorCitSZXBsYXlh
YmxlVGltZXJCYXNlOjp+UmVwbGF5YWJsZVRpbWVyQmFzZSgpCit7Cit9CisKK3ZvaWQgUmVwbGF5
YWJsZVRpbWVyQmFzZTo6dGltZXJGaXJlZChUaW1lcjxSZXBsYXlhYmxlVGltZXJCYXNlPiYpCit7
CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZG9j
dW1lbnQ7CisgICAgLy8gQ2xlYXIgdGhlIGRvY3VtZW50IGlmIGEgb25lLXNob3QgdGltZXIgZmly
ZWQuCisgICAgaWYgKG1fcmVwZWF0SW50ZXJ2YWwgPT0gMCkKKyAgICAgICAgbV9kb2N1bWVudCA9
IG51bGxwdHI7CisKKyAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gZG9jdW1lbnQtPmlucHV0Q3Vy
c29yKCk7CisgICAgQVNTRVJUKCFjdXJzb3IuaXNSZXBsYXlpbmcoKSk7CisKKyAgICBpZiAoY3Vy
c29yLmlzQ2FwdHVyaW5nKCkpIHsKKyAgICAgICAgTE9HKERldGVybWluaXN0aWNSZXBsYXksICJS
ZXBsYXlhYmxlVGltZXIoJXApOjp0aW1lckZpcmVkIG1fZG9jdW1lbnQ9JXAiLCAodm9pZCopdGhp
cywgKHZvaWQqKW1fZG9jdW1lbnQpOworICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8QXN5bmNU
aW1lckZpcmVkPihmcmFtZUluZGV4RnJvbURvY3VtZW50KGRvY3VtZW50KSwgbV9pZGVudGlmaWVy
KTsKKyAgICAgICAgRXZlbnRMb29wSW5wdXRFeHRlbnQgZXh0ZW50KCZjdXJzb3IpOworICAgICAg
ICBmaXJlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZmlyZWQoKTsKK30KKwor
dm9pZCBSZXBsYXlhYmxlVGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50
ZXJ2YWwsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBMT0coRGV0ZXJtaW5pc3RpY1JlcGxh
eSwgIlJlcGxheWFibGVUaW1lciglcCk6OnN0YXJ0UmVwZWF0aW5nIGludGVydmFsPSVmLCBkb2N1
bWVudD0lcCIsICh2b2lkKil0aGlzLCByZXBlYXRJbnRlcnZhbCwgKHZvaWQqKWRvY3VtZW50KTsK
KworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgbV9kb2N1bWVudCA9IGRvY3VtZW50OworICAg
IG1fcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXRJbnRlcnZhbDsKKyAgICAvLyBSZWFzc2lnbiBpZGVu
dGlmaWVyIG9uIGV2ZXJ5IHJlcXVlc3QuIEl0IHdpbGwgYmUgYSBuZXcgaWRlbnRpZmllcgorICAg
IC8vIGlmIHRoZSBkb2N1bWVudCdzIHRpbWVyIG1hcCBoYXMgbmV2ZXIgc2VlbiB0aGlzIHRpbWVy
IGJlZm9yZS4KKyAgICBtX2lkZW50aWZpZXIgPSBkb2N1bWVudC0+cmVwbGF5YWJsZVRpbWVycygp
LnJlZ2lzdGVyVGltZXIodGhpcyk7CisKKyAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gZG9jdW1l
bnQtPmlucHV0Q3Vyc29yKCk7CisjaWYgIUxPR19ESVNBQkxFRAorICAgIGlmIChjdXJzb3IuaXND
YXB0dXJpbmcoKSB8fCBjdXJzb3IuaXNSZXBsYXlpbmcoKSkKKyAgICAgICAgTE9HKERldGVybWlu
aXN0aWNSZXBsYXksICJSZXBsYXlhYmxlVGltZXIoJXApOjpzdGFydFJlcGVhdGluZyBpbnRlcnZh
bD0lZiwgZG9jdW1lbnQ9JXAiLCAodm9pZCopdGhpcywgcmVwZWF0SW50ZXJ2YWwsICh2b2lkKilk
b2N1bWVudCk7CisjZW5kaWYKKyAgICBpZiAoIWN1cnNvci5pc1JlcGxheWluZygpKQorICAgICAg
ICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKHJlcGVhdEludGVydmFsKTsKK30KKwordm9pZCBSZXBs
YXlhYmxlVGltZXJCYXNlOjpzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsLCBEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICBtX2RvY3VtZW50ID0gZG9j
dW1lbnQ7CisgICAgbV9yZXBlYXRJbnRlcnZhbCA9IDA7CisgICAgLy8gUmVhc3NpZ24gaWRlbnRp
ZmllciBvbiBldmVyeSByZXF1ZXN0LiBJdCB3aWxsIGJlIGEgbmV3IGlkZW50aWZpZXIKKyAgICAv
LyBpZiB0aGUgZG9jdW1lbnQncyB0aW1lciBtYXAgaGFzIG5ldmVyIHNlZW4gdGhpcyB0aW1lciBi
ZWZvcmUuCisgICAgbV9pZGVudGlmaWVyID0gZG9jdW1lbnQtPnJlcGxheWFibGVUaW1lcnMoKS5y
ZWdpc3RlclRpbWVyKHRoaXMpOworCisgICAgSW5wdXRDdXJzb3ImIGN1cnNvciA9IGRvY3VtZW50
LT5pbnB1dEN1cnNvcigpOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBpZiAoY3Vyc29yLmlzQ2Fw
dHVyaW5nKCkgfHwgY3Vyc29yLmlzUmVwbGF5aW5nKCkpCisgICAgICAgIExPRyhEZXRlcm1pbmlz
dGljUmVwbGF5LCAiUmVwbGF5YWJsZVRpbWVyKCVwKTo6c3RhcnRPbmVTaG90IGludGVydmFsPSVm
LCBkb2N1bWVudD0lcCIsICh2b2lkKil0aGlzLCBpbnRlcnZhbCwgKHZvaWQqKWRvY3VtZW50KTsK
KyNlbmRpZgorICAgIGlmICghY3Vyc29yLmlzUmVwbGF5aW5nKCkpCisgICAgICAgIG1fdGltZXIu
c3RhcnRPbmVTaG90KGludGVydmFsKTsKK30KKwordm9pZCBSZXBsYXlhYmxlVGltZXJCYXNlOjpz
dG9wKCkKK3sKKyAgICBBU1NFUlQobV9kb2N1bWVudCk7CisgICAgSW5wdXRDdXJzb3ImIGN1cnNv
ciA9IG1fZG9jdW1lbnQtPmlucHV0Q3Vyc29yKCk7CisjaWYgIUxPR19ESVNBQkxFRAorICAgIGlm
IChjdXJzb3IuaXNDYXB0dXJpbmcoKSB8fCBjdXJzb3IuaXNSZXBsYXlpbmcoKSkKKyAgICAgICAg
TE9HKERldGVybWluaXN0aWNSZXBsYXksICJSZXBsYXlhYmxlVGltZXIoJXApOjpzdG9wIG1fZG9j
dW1lbnQ9JXAiLCAodm9pZCopdGhpcywgKHZvaWQqKW1fZG9jdW1lbnQpOworI2VuZGlmCisgICAg
aWYgKCFjdXJzb3IuaXNSZXBsYXlpbmcoKSkKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisKKyAg
ICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKKyAgICBtX3JlcGVhdEludGVydmFsID0gMDsKK30KKwor
ZG91YmxlIFJlcGxheWFibGVUaW1lckJhc2U6Om5leHRGaXJlSW50ZXJ2YWwoKSBjb25zdAorewor
ICAgIEFTU0VSVChpc0FjdGl2ZSgpKTsKKworICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKyAgICBJ
bnB1dEN1cnNvciYgY3Vyc29yID0gbV9kb2N1bWVudC0+aW5wdXRDdXJzb3IoKTsKKyAgICBkb3Vi
bGUgbmV4dEZpcmVJbnRlcnZhbCA9IG1fdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpOworICAgIGlm
IChjdXJzb3IuaXNDYXB0dXJpbmcoKSkKKyAgICAgICAgY3Vyc29yLmFwcGVuZElucHV0PFNhdmVk
VGltZXJOZXh0RmlyZUludGVydmFsPihuZXh0RmlyZUludGVydmFsKTsKKyAgICBpZiAoY3Vyc29y
LmlzUmVwbGF5aW5nKCkpIHsKKyAgICAgICAgaWYgKFNhdmVkVGltZXJOZXh0RmlyZUludGVydmFs
KiBpbnB1dCA9IGN1cnNvci5mZXRjaElucHV0PFNhdmVkVGltZXJOZXh0RmlyZUludGVydmFsPigp
KQorICAgICAgICAgICAgbmV4dEZpcmVJbnRlcnZhbCA9IGlucHV0LT5uZXh0RmlyZUludGVydmFs
KCk7CisgICAgfQorCisgICAgcmV0dXJuIG5leHRGaXJlSW50ZXJ2YWw7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUkVQTEFZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMzk3ZDgwYWFjOTM0MTYx
ZjU0MmRiZmFlMTUzYmQ3MDkyNDg2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvUmVwbGF5YWJsZVRpbWVyLmgKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVwbGF5YWJsZVRpbWVyX2gKKyNkZWZpbmUg
UmVwbGF5YWJsZVRpbWVyX2gKKworI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cmVwbGF5
L0lucHV0Q3Vyc29yLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBSZXBsYXlhYmxlVGltZXJzOwor
CisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisKK2NsYXNzIFJlcGxheWFibGVUaW1lckJhc2Ugewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlcGxheWFibGVUaW1lckJhc2UpOworICAgIFdURl9G
QVNUTUFMTE9DX09QRVJBVE9SUzsKKworZnJpZW5kIGNsYXNzIFJlcGxheWFibGVUaW1lcnM7CisK
K3B1YmxpYzoKKyAgICBSZXBsYXlhYmxlVGltZXJCYXNlKCk7CisgICAgdmlydHVhbCB+UmVwbGF5
YWJsZVRpbWVyQmFzZSgpOworCisgICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0
SW50ZXJ2YWwsIERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxwdHIpOworICAgIHZvaWQgc3RhcnRP
bmVTaG90KGRvdWJsZSBpbnRlcnZhbCwgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cik7CisK
KyAgICB2b2lkIHN0b3AoKTsKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9k
b2N1bWVudDsgfQorCisgICAgZG91YmxlIHJlcGVhdEludGVydmFsKCkgY29uc3QgeyByZXR1cm4g
bV9yZXBlYXRJbnRlcnZhbDsgfQorICAgIGRvdWJsZSBuZXh0RmlyZUludGVydmFsKCkgY29uc3Q7
CisKKyAgICB1bnNpZ25lZCBpbnQgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0wOworcHJpdmF0
ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8UmVwbGF5YWJsZVRpbWVyQmFzZT4mKTsKKwor
ICAgIFRpbWVyPFJlcGxheWFibGVUaW1lckJhc2U+IG1fdGltZXI7CisgICAgRG9jdW1lbnQqIG1f
ZG9jdW1lbnQ7CisgICAgZG91YmxlIG1fcmVwZWF0SW50ZXJ2YWw7CisgICAgLy8gSWRlbnRpZmll
ciBpcyB6ZXJvIHVudGlsIHRoZSBmaXJzdCBzdGFydE9uZVNob3QoKSBpcyByZXF1ZXN0ZWQuCisg
ICAgdW5zaWduZWQgaW50IG1faWRlbnRpZmllcjsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
aW1lckZpcmVkQ2xhc3M+IGNsYXNzIFJlcGxheWFibGVUaW1lciA6IHB1YmxpYyBSZXBsYXlhYmxl
VGltZXJCYXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6
KlRpbWVyRmlyZWRGdW5jdGlvbikoUmVwbGF5YWJsZVRpbWVyJik7CisKKyAgICBSZXBsYXlhYmxl
VGltZXIoVGltZXJGaXJlZENsYXNzKiBvYmplY3QgLCBUaW1lckZpcmVkRnVuY3Rpb24gZnVuY3Rp
b24pCisgICAgICAgIDogbV9mdW5jdGlvbihzdGQ6OmJpbmQoZnVuY3Rpb24sIG9iamVjdCwgc3Rk
OjpyZWYoKnRoaXMpKSkKKyAgICB7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2
b2lkIGZpcmVkKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fZnVuY3Rpb24oKTsKKyAgICB9
CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247Cit9OworCisjZWxzZSAv
LyAhRU5BQkxFKFdFQl9SRVBMQVkpCisKKy8vIFByZXNlcnZlIEFQSSBjb21wYXRpYmlsaXR5IHdp
dGggY3VzdG9tIHRpbWVyIHN1YmNsYXNzZXMgdGhhdCBzaG91bGQgYmUgZGV0ZXJtaW5pc3RpYy4K
K2NsYXNzIFJlcGxheWFibGVUaW1lckJhc2UgOiBwdWJsaWMgVGltZXJCYXNlIHsKK3B1YmxpYzoK
KyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCwgRG9jdW1lbnQq
KQorICAgIHsKKyAgICAgICAgVGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyhyZXBlYXRJbnRlcnZh
bCk7CisgICAgfQorCisgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsLCBEb2N1
bWVudCopCisgICAgeworICAgICAgICBUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7
CisgICAgfQorfTsKKworLy8gVGhpcyBpcyB0aGUgc2FtZSBkZWZpbml0aW9uIGFzIGluIFRpbWVy
LmgsIGJ1dCB0YWtlcyBhcmd1bWVudHMKKy8vIHNvIHRoYXQgY2xpZW50cyBuZWVkIG5vdCBtYW51
YWxseSBpbnN0YW50aWF0ZSBkaWZmZXJlbnQgVGltZXJzIGJhc2VkIG9uIGd1YXJkcy4KK3RlbXBs
YXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+IGNsYXNzIFJlcGxheWFibGVUaW1lciA6IHB1
YmxpYyBSZXBsYXlhYmxlVGltZXJCYXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQgKFRp
bWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoUmVwbGF5YWJsZVRpbWVyJik7CisK
KyAgICBSZXBsYXlhYmxlVGltZXIoVGltZXJGaXJlZENsYXNzKiBvYmplY3QgLCBUaW1lckZpcmVk
RnVuY3Rpb24gZnVuY3Rpb24pCisgICAgICAgIDogbV9mdW5jdGlvbihzdGQ6OmJpbmQoZnVuY3Rp
b24sIG9iamVjdCwgc3RkOjpyZWYoKnRoaXMpKSkKKyAgICB7CisgICAgfQorCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fZnVu
Y3Rpb24oKTsKKyAgICB9CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247
Cit9OworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVw
bGF5YWJsZVRpbWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlh
YmxlVGltZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXJzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43Y2NkYjlkOWUyMjY3NmU2NzA3NDYwYTI4MDAwZWIxNmRlYjlmYTNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lcnMu
Y3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0
eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3RvbiBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTICJBUworICogSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGF5YWJsZVRpbWVycy5oIgor
CisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisKKyNpbmNsdWRlICJSZXBsYXlhYmxlVGltZXIuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGF5YWJs
ZVRpbWVyczo6UmVwbGF5YWJsZVRpbWVycygpCisgICAgOiBtX21hcChUaW1lck1hcCgpKQorICAg
ICwgbV9uZXh0SWRlbnRpZmllcigxKQoreworfQorCitSZXBsYXlhYmxlVGltZXJzOjp+UmVwbGF5
YWJsZVRpbWVycygpCit7Cit9CisKK3Vuc2lnbmVkIGludCBSZXBsYXlhYmxlVGltZXJzOjpyZWdp
c3RlclRpbWVyKFJlcGxheWFibGVUaW1lckJhc2UqIHRpbWVyKQoreworICAgIEFTU0VSVCh0aW1l
cik7CisKKyAgICBib29sIG5lZWRzTmV3SWRlbnRpZmllciA9IGZhbHNlOworICAgIGlmICghdGlt
ZXItPmlkZW50aWZpZXIoKSkKKyAgICAgICAgbmVlZHNOZXdJZGVudGlmaWVyID0gdHJ1ZTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgVGltZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9tYXAuZmlu
ZCh0aW1lci0+aWRlbnRpZmllcigpKTsKKyAgICAgICAgbmVlZHNOZXdJZGVudGlmaWVyIHw9IGl0
ID09IG1fbWFwLmVuZCgpIHx8IGl0LT52YWx1ZSAhPSB0aW1lcjsKKyAgICB9CisKKyAgICBpZiAo
IW5lZWRzTmV3SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHRpbWVyLT5pZGVudGlmaWVyKCk7
CisKKyAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIgPSBtX25leHRJZGVudGlmaWVyKys7Cisg
ICAgVGltZXJNYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBtX21hcC5zZXQoaWRlbnRpZmllciwgdGlt
ZXIpOworICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CisKKyAg
ICBMT0coRGV0ZXJtaW5pc3RpY1JlcGxheSwgIiUtMjBzIFJlZ2lzdGVyaW5nIGFzeW5jIHRpbWVy
ICVwLyV6dS5cbiIsICJSZXBsYXlhYmxlVGltZXJzIiwgKHZvaWQqKXRoaXMsIGlkZW50aWZpZXIp
OworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitib29sIFJlcGxheWFibGVUaW1lcnM6OmZp
cmVUaW1lcih1bnNpZ25lZCBpbnQgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoaWRlbnRpZmll
cik7CisKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9tYXAuZmluZChpZGVudGlm
aWVyKTsKKyAgICBpZiAocmVzdWx0ID09IG1fbWFwLmVuZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXN1bHQtPnZhbHVlLT5maXJlZCgpOworICAgIHJldHVybiB0cnVlOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXJzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5YWJsZVRpbWVycy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4Nzhj
MzkyMDMzNGYwOGI1MmE4MTY3Yzg0MWYyNzJlODM4Mjk3MDUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5YWJsZVRpbWVycy5oCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3RvbiBub3IgdGhlIG5hbWVzIG9mCisgKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUworICogSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVECisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlcGxheWFi
bGVUaW1lcnNfaAorI2RlZmluZSBSZXBsYXlhYmxlVGltZXJzX2gKKworI2lmIEVOQUJMRShXRUJf
UkVQTEFZKQorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXBsYXlhYmxlVGltZXJC
YXNlOworCitjbGFzcyBSZXBsYXlhYmxlVGltZXJzIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShSZXBsYXlhYmxlVGltZXJzKTsKK3B1YmxpYzoKKyAgICBSZXBsYXlhYmxlVGltZXJzKCk7Cisg
ICAgdmlydHVhbCB+UmVwbGF5YWJsZVRpbWVycygpOworCisgICAgdW5zaWduZWQgaW50IHJlZ2lz
dGVyVGltZXIoUmVwbGF5YWJsZVRpbWVyQmFzZSopOworICAgIGJvb2wgZmlyZVRpbWVyKHVuc2ln
bmVkIGludCBpZGVudGlmaWVyKTsKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2ln
bmVkIGludCwgUmVwbGF5YWJsZVRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1f
bWFwOworICAgIHVuc2lnbmVkIGludCBtX25leHRJZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkpCisKKyNlbmRpZiAv
LyBSZXBsYXlhYmxlVGltZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9X
ZWJJbnB1dHMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgppbmRl
eCBlMjRmZDliYTQ4ODBjMDIzNTY5MmU3M2E2ODU0MTlhNGM2OWM2MTllLi5mMjBiZjcxMTFjZWE3
NzZkMjAwMDZhZTc5YmExMTA4NmViZjQ3YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvV2ViSW5wdXRzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0
cy5qc29uCkBAIC0xMDEsNiArMTAxLDE1IEBACiAKICAgICAiaW5wdXRzIjogWwogICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJBc3luY1RpbWVyRmlyZWQiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkEgUmVwbGF5YWJsZVRpbWVyIGluc3RhbmNlIGZpcmVkIHRoYXQgd2FzIGFz
c29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGZyYW1lLiIsCisgICAgICAgICAgICAicXVldWUi
OiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSW5kZXgiLCAidHlwZSI6ICJpbnQiIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgInR5cGUiOiAidW5zaWduZWQgaW50IiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogIkJl
Z2luU2VnbWVudFNlbnRpbmVsIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNlbnRp
bmVsIGlucHV0IHRvIHNpZ25hbCB0aGUgc3RhcnQgb2YgYSBzZWdtZW50LiIsCiAgICAgICAgICAg
ICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228571</attachid>
            <date>2014-04-03 18:19:31 -0700</date>
            <delta_ts>2014-04-04 12:09:16 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-129451-20140403181911.patch</filename>
            <type>text/plain</type>
            <size>50825</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YTU3ZTcyMDU1ZWJlMDZlYzZjYTg3Y2JkYmZjZjE0NGUwMGRiM2M1Li44N2RhMDMyNzBmYzYyM2I0
MjYxMzQ5Mjc2NTNkNWNiMDgwZDE2ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNC0wNC0wMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogbWFrZSBjYWxscyBpbnRvIEZyYW1lTG9hZGVy
OjpjaGVja0xvYWRDb21wbGV0ZSgpIGRldGVybWluaXN0aWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBlbmNvZGluZyBhbmQg
ZGVjb2RpbmcgdW5zaWduZWQgbG9uZyB2YWx1ZXMsIHdoaWNoIGhhdmUKKyAgICAgICAgYSBkaXN0
aW5jdCB0eXBlIGZyb20gdWludDMyX3QgYW5kIHVpbnQ2NF90LgorCisgICAgICAgICogcmVwbGF5
L0VuY29kZWRWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkVuY29kZWRWYWx1ZTo6Y29udmVydFRv
PHVuc2lnbmVkIGxvbmc+KTogQWRkZWQuCisgICAgICAgICogcmVwbGF5L0VuY29kZWRWYWx1ZS5o
OgorCiAyMDE0LTA0LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXggYml0IHJvdCBpbiBBUk12NyBKSVQgcHJvYmUgbWVjaGFuaXNtLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDU5ZTFiMThlZWIwMDcwMThjMWI3MjQ1MzBlNDk2M2Q4NzJjYWViMWQuLmFmMmI2NzZlOGU2ZmE5
ZWQ0ZDU1NjA2ODVlNjY2YWVjOWJmOGU1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MCBAQAor
MjAxNC0wNC0wMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKKyAg
ICAgICAgV2ViIFJlcGxheTogbWFrZSBjYWxscyBpbnRvIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRD
b21wbGV0ZSgpIGRldGVybWluaXN0aWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRvIGVuc3VyZSBkZXRlcm1pbmlzdGljIEphdmFTY3JpcHQgZXhlY3V0
aW9uLCBjYWxscyB0byBjaGVja0xvYWRDb21wbGV0ZSgpCisgICAgICAgIHRoYXQgb3JpZ2luYXRl
IGZyb20gYXN5bmNocm9ub3VzIFRpbWVyIGZpcmluZ3Mgc2hvdWxkIGJlIGNhcHR1cmVkIGFuZCBy
ZXBsYXllZC4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIFJlcGxheWFibGVU
aW1lciBjbGFzcywgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYSBkcm9wLWluCisgICAgICAgIHJlcGxh
Y2VtZW50IGZvciBvbmUtc2hvdCB0aW1lcnMuIEl0IHdpbGwgYXV0b21hdGljYWxseSBjYXB0dXJl
IG9yIHJlcGxheSB0aGUKKyAgICAgICAgdGltZXIgZGVwZW5kaW5nIG9uIHRoZSByZXBsYXkgc2Vz
c2lvbiBzdGF0ZS4gRHVyaW5nIGNhcHR1cmluZywgaXQgZm9yd2FyZHMgY2FsbHMKKyAgICAgICAg
dG8gYSByZWFsIFRpbWVyIGluc3RhbmNlIGFuZCByZWNvcmRzIHdoZW4gY2FsbGJhY2tzIGZpcmUu
IER1cmluZyBwbGF5YmFjaywgdGhlCisgICAgICAgIFRpbWVyIGluc3RhbmNlIGlzIG5vdCB1c2Vk
LCBhbmQgZGlzcGF0Y2ggaXMgaW5pdGlhdGVkIGJ5IEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlci4K
KworICAgICAgICBJZiByZXBsYXkgaXMgbm90IGFjdGl2ZSwgdGhlIHRpbWVyIHdpbGwgZm9yd2Fy
ZCBhbGwgY2FsbHMgdG8gYSByZWd1bGFyIFRpbWVyIGluc3RhbmNlLgorICAgICAgICBJZiAhRU5B
QkxFKFdFQl9SRVBMQVkpLCB0aGVuIGFuIGFsdGVybmF0ZSBpbXBsZW1lbnRhdGlvbiBvZiBSZXBs
YXlhYmxlVGltZXIgaXMKKyAgICAgICAgcHJvdmlkZWQgd2hpY2ggdW5jb25kaXRpb25hbGx5IGZv
cndhcmRzIFRpbWVyIEFQSSBjYWxscyB0byBhIHJlYWwgVGltZXIgaW5zdGFuY2UuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBUZXN0aW5nIHRoaXMgcmVsaWVzIG9uIGRldGVybWluaXN0aWMgcmVz
b3VyY2UgbG9hZGluZywgRE9NIHRpbWVycywKKyAgICAgICAgYW5kIGluaXRpYWwgYmFjay9mb3J3
YXJkIGhpc3RvcnksIG5vbmUgb2Ygd2hpY2ggaGF2ZSBsYW5kZWQgeWV0LiBPbmNlIHRoZXkgZG8g
bGFuZCwKKyAgICAgICAgbm9uZGV0ZXJtaW5pc20gb2YgY2hlY2tMb2FkQ29tcGxldGUoKSB3aWxs
IGJlIGNhdWdodCBieSBkaXZlcmdlbmNlIGFzc2VydGlvbnMuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0Zv
bnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmJlZ2lu
TG9hZGluZ0ZvbnRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6YmVn
aW5Mb2FkVGltZXJGaXJlZCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5oOiBVc2Ug
YSBSZXBsYXlhYmxlVGltZXIgZm9yIG1fYmVnaW5Mb2FkaW5nVGltZXIuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOiBVc2UgYSBSZXBsYXlhYmxlVGltZXIgZm9yIG1fbG9hZEV2ZW50RGVs
YXlUaW1lci4gS2VlcAorICAgICAgICBhIG1hcCBvZiByZXBsYXlhYmxlIHRpbWVycyBhY3RpdmUg
Zm9yIHRoZSBjdXJyZW50IGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZWNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpsb2FkRXZlbnREZWxheVRp
bWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnJlcGxheWFibGVUaW1lcnMpOgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDogVXNlIGEgUmVwbGF5YWJsZVRpbWVyIGZvciBtX2NoZWNrTG9hZFRpbWVyLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrVGltZXJGaXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RhcnRDaGVja0NvbXBsZXRlVGltZXIpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOgorCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlz
cGF0Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jVGltZXJGaXJlZDo6ZGlz
cGF0Y2gpOiBBZGRlZC4KKworICAgICAgICAqIHJlcGxheS9SZXBsYXlhYmxlVGltZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6OlJlcGxheWFibGVU
aW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6flJlcGxh
eWFibGVUaW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6
dGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJCYXNlOjpzdGFy
dE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6c3RvcCk6
CisgICAgICAgICogcmVwbGF5L1JlcGxheWFibGVUaW1lci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxheWFibGVUaW1lckJhc2U6Om9yZGluYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5
YWJsZVRpbWVyQmFzZTo6c2V0T3JkaW5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxl
VGltZXI6OlJlcGxheWFibGVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGlt
ZXJCYXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAqIHJlcGxheS9SZXBsYXlhYmxlVGltZXJz
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJzOjpSZXBsYXlh
YmxlVGltZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lcnM6OnJlZ2lzdGVy
VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyczo6ZmlyZVRpbWVyKToK
KyAgICAgICAgKiByZXBsYXkvUmVwbGF5YWJsZVRpbWVycy5oOiBBZGRlZC4KKworICAgICAgICAq
IHJlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHA6IEFkZCBtZXRob2RzIGZvciBlbmNvZGlu
ZyBhbmQgCisgICAgICAgIGRlY29kaW5nIGZyYW1lIHBvc2l0aW9ucyB3aXRoaW4gYSBmcmFtZSB0
cmVlLgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJbmRleEZyb21Eb2N1bWVudCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJbmRleEZyb21GcmFtZSk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6ZG9jdW1lbnRGcm9tRnJhbWVJbmRleCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6ZnJhbWVGcm9tRnJhbWVJbmRleCk6IEFkZGVkLgorICAgICAgICAqIHJlcGxheS9TZXJpYWxp
emF0aW9uTWV0aG9kcy5oOgorCisgICAgICAgICogcmVwbGF5L1dlYklucHV0cy5qc29uOgorCiAy
MDE0LTA0LTAzICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgogCiAgICAgICAg
IE1lcmdlIFNoYXBlSW5mbyAmIFNoYXBlT3V0c2lkZUluZm8gbm93IHRoYXQgU2hhcGVJbnNpZGVJ
bmZvIGlzIG5vIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkv
RW5jb2RlZFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZh
bHVlLmNwcAppbmRleCA0YzgwYmQyZTg1MzVhZTgxMDU0YmMzMThjNWYyZmE1MzZmMDI5MTQ4Li4z
N2JiMjQ4NzY2ZjUwNDkwNTcwNWQwMmVhYTNiODc5MTI3MmE3OTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuY3BwCkBAIC0xMjIsNiArMTIyLDE1IEBA
IHRlbXBsYXRlPD4gZmxvYXQgRW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88ZmxvYXQ+KCkKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCit0ZW1wbGF0ZTw+IHVuc2lnbmVkIGxvbmcgRW5jb2RlZFZhbHVl
Ojpjb252ZXJ0VG88dW5zaWduZWQgbG9uZz4oKQoreworICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0
OworICAgIGJvb2wgY2FzdFN1Y2NlZWRlZCA9IG1fdmFsdWUtPmFzTnVtYmVyKCZyZXN1bHQpOwor
ICAgIEFTU0VSVF9VTlVTRUQoY2FzdFN1Y2NlZWRlZCwgY2FzdFN1Y2NlZWRlZCk7CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiB0ZW1wbGF0ZTw+IGludDMyX3QgRW5jb2RlZFZhbHVlOjpjb252
ZXJ0VG88aW50MzJfdD4oKQogewogICAgIGludDMyX3QgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmgKaW5kZXggZmM3NGYxMzUzZTIwNjcwZmFlODgw
MmNkNjQwMGNmZDZlYzc0MzYwZi4uZDA4NDA5NGJhNjNjMDNlOTAyNjNhOGNiMTJlMGJhZGZmNGUw
MTYyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFs
dWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5oCkBA
IC04OCw2ICs4OCw3IEBAIHByaXZhdGU6CiB0ZW1wbGF0ZTw+IEpTX0VYUE9SVF9QUklWQVRFIGJv
b2wgRW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88Ym9vbD4oKTsKIHRlbXBsYXRlPD4gSlNfRVhQT1JU
X1BSSVZBVEUgZG91YmxlIEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPGRvdWJsZT4oKTsKIHRlbXBs
YXRlPD4gSlNfRVhQT1JUX1BSSVZBVEUgZmxvYXQgRW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88Zmxv
YXQ+KCk7Cit0ZW1wbGF0ZTw+IEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIGxvbmcgRW5jb2Rl
ZFZhbHVlOjpjb252ZXJ0VG88dW5zaWduZWQgbG9uZz4oKTsKIHRlbXBsYXRlPD4gSlNfRVhQT1JU
X1BSSVZBVEUgaW50MzJfdCBFbmNvZGVkVmFsdWU6OmNvbnZlcnRUbzxpbnQzMl90PigpOwogdGVt
cGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSBpbnQ2NF90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRv
PGludDY0X3Q+KCk7CiB0ZW1wbGF0ZTw+IEpTX0VYUE9SVF9QUklWQVRFIHVpbnQzMl90IEVuY29k
ZWRWYWx1ZTo6Y29udmVydFRvPHVpbnQzMl90PigpOwpAQCAtOTgsNyArOTksNiBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogc3RydWN0IEVuY29kaW5nVHJhaXRzIHsKICAgICB0eXBlZGVmIFQgRGVj
b2RlZFR5cGU7CiAKLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKERlY29kZWRU
eXBlKTsKICAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IERlY29kZWRU
eXBlJik7CiAKICAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBEZWNv
ZGVkVHlwZSYpOwpAQCAtMTUyLDYgKzE1Miw3IEBAIHN0cnVjdCBTY2FsYXJFbmNvZGluZ1RyYWl0
cyB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxib29sPiA6IHB1YmxpYyBTY2Fs
YXJFbmNvZGluZ1RyYWl0czxib29sPiB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1Ry
YWl0czxkb3VibGU+IDogcHVibGljIFNjYWxhckVuY29kaW5nVHJhaXRzPGRvdWJsZT4geyB9Owog
dGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8ZmxvYXQ+IDogcHVibGljIFNjYWxhckVu
Y29kaW5nVHJhaXRzPGZsb2F0PiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0
czx1bnNpZ25lZCBsb25nPiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czx1bnNpZ25lZCBs
b25nPiB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxpbnQzMl90PiA6IHB1
YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czxpbnQzMl90PiB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbmNvZGluZ1RyYWl0czxpbnQ2NF90PiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czxp
bnQ2NF90PiB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czx1aW50MzJfdD4g
OiBwdWJsaWMgU2NhbGFyRW5jb2RpbmdUcmFpdHM8dWludDMyX3Q+IHsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNzNlMmI0ZGQ4Njg1YThmYzdhMDIxMzFiNjM0NTBjMGY5NTliOGM2Yi4uNThj
YjZmMzg0MWIyNGFlMjY4YzM1MGY3NTgzZjdiYTBlM2NkNGM3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTIzMDUsNiArMjMwNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJp
bmcvc3ZnL1NWR1RleHRRdWVyeS5jcHAKICAgICByZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5k
ZXJpbmdDb250ZXh0LmNwcAogCisgICAgcmVwbGF5L1JlcGxheWFibGVUaW1lci5jcHAKICAgICBy
ZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcAogCiAgICAgc3RvcmFnZS9TdG9yYWdlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggODYx
MmQ3NDNiOWY1YTQ4ZjI2NjQ3MDU5MTE0YjdlZWEyYTNkNzA3YS4uNTg1NzFlOWFjYWFiNTk5N2M3
NDllODEwZWVmNmY2NDVkMTNiNWZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMjEyNSw2ICsxMjEyNSw3IEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVwbGF5XFJlcGxheWFibGVUaW1lci5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZXBsYXlcVXNlcklucHV0QnJpZGdl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcU2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx4bWxcRE9NUGFy
c2VyLmNwcCIgLz4KQEAgLTIwMTk5LDYgKzIwMjAwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1RleHRRdWVyeS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0UnVuUmVuZGVyaW5n
Q29udGV4dC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVwbGF5XFJlcGxheWFi
bGVUaW1lci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVwbGF5XFVzZXJJbnB1
dEJyaWRnZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXE5hdGl2ZVhQYXRoTlNSZXNvbHZl
ci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDI0MzU0YWJlZDRjNWY2ZGQ2YTdlODVkNjhiMGMwMWY1
NzgzMmUzMTguLmRmOWNjZjdhY2VkMDE3ZTNiZjE5YjAyMmMyMTdkZmViYmFlZWFiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKQEAgLTI5MTYsNiArMjkxNiw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcVGV4dFBhaW50ZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZXBs
YXlcUmVwbGF5YWJsZVRpbWVyLmNwcCI+CisgICAgICA8RmlsdGVyPnJlcGxheTwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVwbGF5XFVzZXJJ
bnB1dEJyaWRnZS5jcHAiPgogICAgICAgPEZpbHRlcj5yZXBsYXk8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTk4NjIsNiArOTg2NSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcc3ZnXFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiPgogICAgICAgPEZp
bHRlcj5yZW5kZXJpbmdcc3ZnPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZXBsYXlcUmVwbGF5YWJsZVRpbWVyLmgiPgorICAgICAgPEZpbHRl
cj5yZXBsYXk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlcGxheVxVc2VySW5wdXRCcmlkZ2UuaCI+CiAgICAgICA8RmlsdGVyPnJlcGxheTwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlMmNhOTZmYWMxMDE3ZDQ2NzY4MzJhNTUw
N2VjMDAxZjQ5ZGIxYmQuLjAxNGE5NjQwNWRhZWQzNWZmMGE2MzFmOGQxZDdmOGZjODY3ZTNkZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTQ1OTcsOSArNDU5Nyw2IEBACiAJCUIyQzNEQTYzMEQwMDZDRDYwMEVGNkYyNiAvKiBG
b250Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyQzNEQTUyMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMkMzREE2NDBEMDA2Q0Q2MDBFRjZG
MjYgLyogU2ltcGxlRm9udERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRh
LmNwcCAqLzsgfTsKIAkJQjJDM0RBNjUwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1
NDBEMDA2Q0Q2MDBFRjZGMjYgLyogU2ltcGxlRm9udERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMkQzREE2NDBEMDA2Q0Q2MDBFRjZGMjcg
LyogT3BlblR5cGVNYXRoRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMkQzREE1MzBEMDA2Q0Q2MDBFRjZGMjcgLyogT3BlblR5cGVNYXRoRGF0
YS5jcHAgKi87IH07Ci0JCUIyRDNEQTY1MEQwMDZDRDYwMEVGNkYyNyAvKiBPcGVuVHlwZU1hdGhE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkQz
REE1NDBEMDA2Q0Q2MDBFRjZGMjcgLyogT3BlblR5cGVNYXRoRGF0YS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUIyRDNFQTY1MEQwMDZDRDYwMEVG
NkYyOCAvKiBPcGVuVHlwZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMkQzRUE1NDBEMDA2Q0Q2MDBFRjZGMjggLyogT3BlblR5cGVUeXBlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzNE
QTY2MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTU1MEQwMDZDRDYwMEVGNkYyNiAv
KiBGb250RGVzY3JpcHRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCMkMzREE2NzBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEdseXBocy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1NjBE
MDA2Q0Q2MDBFRjZGMjYgLyogRm9udEdseXBocy5jcHAgKi87IH07CiAJCUIyQzNEQTY4MEQwMDZD
RDYwMEVGNkYyNiAvKiBGb250R2x5cGhzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1NzBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEdseXBocy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00NjEy
LDYgKzQ2MDksOSBAQAogCQlCMkNCOTI0NDBCNUJEOTcwMDA5QkFBNzggLyogSlNTVkdFbGVtZW50
SW5zdGFuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyQ0I5MjNDMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5oICovOyB9
OwogCQlCMkNCOTI0NjBCNUJEOTdCMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2VMaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5
MjNEMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwICovOyB9
OwogCQlCMkNCOTI0ODBCNUJEOTg0MDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2VMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkNCOTIz
RTBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2VMaXN0LmggKi87IH07CisJ
CUIyRDNEQTY0MEQwMDZDRDYwMEVGNkYyNyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRDNEQTUz
MEQwMDZDRDYwMEVGNkYyNyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcCAqLzsgfTsK
KwkJQjJEM0RBNjUwRDAwNkNENjAwRUY2RjI3IC8qIG9wZW50eXBlL09wZW5UeXBlTWF0aERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRDNEQTU0
MEQwMDZDRDYwMEVGNkYyNyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQjJEM0VBNjUwRDAwNkNE
NjAwRUY2RjI4IC8qIG9wZW50eXBlL09wZW5UeXBlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRDNFQTU0MEQwMDZDRDYwMEVGNkYyOCAvKiBv
cGVudHlwZS9PcGVuVHlwZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQjJFMjdDOUYwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQz
RC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkUy
N0M5RDBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmNwcCAqLzsgfTsKIAkJQjJFMjdD
QTAwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFMjdDOUUwQjBGMkIwOTAwRjE3QzdCIC8qIEZs
b2F0UG9pbnQzRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUIyRTRFQzk3MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNEVDOTQwRDAwQzIy
QjAwNDMyNjQzIC8qIFNWR1pvb21FdmVudC5jcHAgKi87IH07CkBAIC01NDM4LDYgKzU0MzgsMTAg
QEAKIAkJQzNDRjE3QTUxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzQ0YxN0ExMTVCMDA2
M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8qIElk
VGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDM0NGMTdBMjE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNl
cnZlclJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJQzNDRjE3QTcxNUIwMDYzRjAwMjc2RDM5IC8qIElk
VGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzNDRjE3QTMxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2
ZXJSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUM0MEE1MTlEMThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzQwQTUxOTkxOEVD
Q0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lci5jcHAgKi87IH07CisJCUM0MEE1MTlFMThF
Q0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0MEE1MTlBMThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBs
YXlhYmxlVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDNDBBNTE5RjE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVycy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNDBBNTE5QjE4
RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVycy5jcHAgKi87IH07CisJCUM0MEE1MUEw
MThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXJzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNDBBNTE5QzE4RUNDQ0I2MDBEOUY4MDkgLyog
UmVwbGF5YWJsZVRpbWVycy5oICovOyB9OwogCQlDNENENjI5QTE4MzgzNzY2MDA3RUJBRjEgLyog
RnJhbWVTbmFwc2hvdHRpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5n
LmNwcCAqLzsgfTsKIAkJQzRDRDYyOUIxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNENE
NjI5OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDNTBCNTYxNjEyMTE5RDIzMDA4
QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5n
cy5jcHAgKi87IH07CkBAIC0xMTg1Myw5ICsxMTg1Nyw2IEBACiAJCUIyQzNEQTUyMEQwMDZDRDYw
MEVGNkYyNiAvKiBGb250Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvbnRDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkMzREE1MzBEMDA2
Q0Q2MDBFRjZGMjYgLyogU2ltcGxlRm9udERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNpbXBsZUZvbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjJDM0RBNTQwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVGb250RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCMkQzREE1MzBEMDA2Q0Q2MDBFRjZGMjcgLyogT3BlblR5
cGVNYXRoRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gb3Bl
bnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUIyRDNEQTU0MEQwMDZDRDYwMEVGNkYyNyAvKiBPcGVuVHlwZU1hdGhEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyRDNFQTU0MEQwMDZDRDYwMEVGNkYyOCAvKiBP
cGVuVHlwZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBvcGVudHlw
ZS9PcGVuVHlwZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQzNEQTU1
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZvbnREZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCMkMzREE1NjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEdseXBocy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEdseXBocy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQzNEQTU3MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250R2x5
cGhzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250R2x5cGhzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTg2OCw2ICsxMTg2OSw5IEBACiAJCUIyQ0I5
MjNDMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDQjkyM0QwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxl
bWVudEluc3RhbmNlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNTVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjJDQjkyM0UwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFu
Y2VMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyRDNEQTUzMEQwMDZDRDYw
MEVGNkYyNyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJEM0RBNTQwRDAwNkNENjAwRUY2RjI3IC8qIG9w
ZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IG9wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQjJEM0VBNTQwRDAwNkNENjAwRUY2RjI4IC8qIG9wZW50eXBlL09wZW5UeXBlVHlwZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlVHlw
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJFMjdDOUQwQjBGMkIwOTAwRjE3
QzdCIC8qIEZsb2F0UG9pbnQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRmxvYXRQb2ludDNELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJF
MjdDOUUwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRQb2ludDNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIyRTRFQzk0MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1pvb21FdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjczOSw2ICsxMjc0MywxMCBAQAogCQlDM0NGMTdB
MjE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzQ0YxN0EzMTVCMDA2M0YwMDI3NkQz
OSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMzRTYxQzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MTWVuY2xv
c2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzQwQTUxOTkxOEVD
Q0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYXlhYmxlVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDNDBBNTE5QTE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxheWFibGVUaW1lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNDBBNTE5QjE4RUNDQ0I2MDBEOUY4MDkgLyogUmVw
bGF5YWJsZVRpbWVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZXBsYXlhYmxlVGltZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzQwQTUx
OUMxOEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVwbGF5YWJsZVRpbWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnJhbWVTbmFwc2hvdHRp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNENENjI5OTE4MzgzNzY2MDA3
RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRnJhbWVTbmFwc2hvdHRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODAzNSw2ICsxODA0MywxMCBAQAogCQkJCTk5Q0MwQjNEMThC
RTk4NDkwMDZDRUJDQyAvKiBGdW5jdG9ySW5wdXRDdXJzb3IuaCAqLywKIAkJCQk5OUM3Q0NCNDE4
QzZCODk5MDAzMkU0MTMgLyogTWVtb2l6ZWRET01SZXN1bHQuY3BwICovLAogCQkJCTk5QzdDQ0Iy
MThDNjYzRTQwMDMyRTQxMyAvKiBNZW1vaXplZERPTVJlc3VsdC5oICovLAorCQkJCUM0MEE1MTk5
MThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXIuY3BwICovLAorCQkJCUM0MEE1MTlB
MThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXIuaCAqLywKKwkJCQlDNDBBNTE5QjE4
RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVycy5jcHAgKi8sCisJCQkJQzQwQTUxOUMx
OEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuaCAqLywKIAkJCQk5OUNDMEIzRTE4
QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJOTlDQzBCM0Yx
OEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheUNvbnRyb2xsZXIuaCAqLywKIAkJCQk5OUNDMEI0MDE4
QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5aW5nSW5wdXRDdXJzb3IuY3BwICovLApAQCAtMjAxNDcs
OSArMjAxNTksOSBAQAogCQkJCTBGM0RENDRFMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVy
LmggKi8sCiAJCQkJQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmNw
cCAqLywKIAkJCQlCMkMzREE1NDBEMDA2Q0Q2MDBFRjZGMjYgLyogU2ltcGxlRm9udERhdGEuaCAq
LywKLQkJCQlCMkQzREE1MzBEMDA2Q0Q2MDBFRjZGMjcgLyogT3BlblR5cGVNYXRoRGF0YS5jcHAg
Ki8sCi0JCQkJQjJEM0RBNTQwRDAwNkNENjAwRUY2RjI3IC8qIE9wZW5UeXBlTWF0aERhdGEuaCAq
LywKLQkJCQlCMkQzRUE1NDBEMDA2Q0Q2MDBFRjZGMjggLyogT3BlblR5cGVUeXBlcy5oICovLAor
CQkJCUIyRDNEQTUzMEQwMDZDRDYwMEVGNkYyNyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRh
LmNwcCAqLywKKwkJCQlCMkQzREE1NDBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUvT3BlblR5
cGVNYXRoRGF0YS5oICovLAorCQkJCUIyRDNFQTU0MEQwMDZDRDYwMEVGNkYyOCAvKiBvcGVudHlw
ZS9PcGVuVHlwZVR5cGVzLmggKi8sCiAJCQkJQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGUuaCAqLywKIAkJCQlDREM2MURBMDE4MDg2N0Q4MDA0QjkxM0YgLyog
U291cmNlQnVmZmVyUHJpdmF0ZS5oICovLAogCQkJCUNEQzhCNUFDMTgwNEFFNUQwMDE2RTY4NSAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggKi8sCkBAIC0yNDM5NSw2ICsyNDQwNyw3IEBA
CiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRTJBQTk4MEExQ0REMkQwMEI0MkIyNSAvKiBKU0hUTUxJbWFn
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUUyMDA2MThFNzcxRkMwMDNFQzNFNSAv
KiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQlDNDBBNTFBMDE4
RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTdFOTcwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFBRDE0MjMxMjk1RUE3RjAwQUNBOTg5IC8qIEpTSFRNTElucHV0RWxlbWVu
dEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTYxNDhBNzkxMkU0MUUzQjAwNDRBNzg0IC8q
IEpTSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3NDAsNiArMjQ3NTMs
NyBAQAogCQkJCTA3ODQ2Mzg1MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzg0NjM0MzE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTdCNDkyMTE2QTlCOEZGMDAxQzg4MzkgLyogSlNUcmFu
c2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUM0MEE1MTlFMThFQ0NDQjYwMEQ5Rjgw
OSAvKiBSZXBsYXlhYmxlVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzUwRDVEMEE5MERF
RTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYyOUNG
MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBQTRG
QUQyMTc1RDVDQjMwMDc0Mzg3MyAvKiBKU1VJUmVxdWVzdEV2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTI1NDk3LDggKzI1NTExLDggQEAKIAkJCQlFMUI3ODM5QzE2Mzc0MEE3MDAwN0I2OTIgLyog
U2hhcmVkV29ya2VyU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDE2OEVFMTAyMjZF
ODkwMDlCQzgyNyAvKiBTaGFyZWRXb3JrZXJUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTY1MEQwMDZDRDYwMEVGNkYyNiAvKiBTaW1wbGVGb250RGF0YS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQjJEM0RBNjUwRDAwNkNENjAwRUY2RjI3IC8qIE9wZW5UeXBlTWF0aERhdGEuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUIyRDNFQTY1MEQwMDZDRDYwMEVGNkYyOCAvKiBPcGVuVHlwZVR5cGVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlCMkQzREE2NTBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5
cGUvT3BlblR5cGVNYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJEM0VBNjUwRDAwNkNE
NjAwRUY2RjI4IC8qIG9wZW50eXBlL09wZW5UeXBlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0ODk0NEEzMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNEU5QjExRDE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1
bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFOUIxMTkxODEwOTE2RjAwM0FDQ0RGIC8q
IFNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzQwOSw2ICsy
NzQyMyw3IEBACiAJCQkJRTE0RjFDNDQxNEI1REFDNjAwRUE5MDA5IC8qIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThERjNGQ0YwOTdGQTBG
QzAwNTI5ODFCIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4MTM2OUQxMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MRm9ybUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzQwQTUxOUQxOEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVU
aW1lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREUyMzBBMTUyQUM4MDBCMTJBNjggLyog
SFRNTEZyYW1lRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEZGRTMxRTBBRTE5NjMz
MDAxMzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTNFMjQyNUYwQjJCNTA5NTAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI4MzY5LDYgKzI4Mzg0LDcgQEAKIAkJCQkwN0E2RDFFQjE0OTExMzc3
MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREI4NTlGNzE2MEQ0OEE0MDBFNUIwN0YgLyogTWVkaWFLZXlFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDREE5OEREODE2MDI1QkVGMDBGRUEzQjEgLyogTWVkaWFLZXlNZXNzYWdlRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzQwQTUxOUYxOEVDQ0NCNjAwRDlGODA5IC8qIFJl
cGxheWFibGVUaW1lcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QxQjRBNjUxNjA3ODZBRTAw
MjgyREY5IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RB
OThFMEQxNjAzRkU0QTAwRkVBM0IxIC8qIE1lZGlhS2V5cy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREE5OEUwRTE2MDNGRTU4MDBGRUEzQjEgLyogTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjg4NjksNyArMjg4ODUsNyBAQAogCQkJCUUxQjc4NDIwMTYzOUNCQkUwMDA3
QjY5MiAvKiBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
RDE2OEVEMTAyMjZFODkwMDlCQzgyNyAvKiBTaGFyZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjJDM0RBNjQwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUIyRDNEQTY0MEQwMDZDRDYwMEVGNkYyNyAvKiBPcGVuVHlw
ZU1hdGhEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIyRDNEQTY0MEQwMDZDRDYwMEVGNkYy
NyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE2
M0U4OEY3MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3RTY1OTUwMTYzQjEwQzIwMEVCNDU3NCAvKiBTaW1wbGVGb250RGF0
YUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzdGMEQwMEE1QzEwMDMwMDc0RCAvKiBT
aW1wbGVGb250RGF0YU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFNlbGVjdG9yLmNwcAppbmRleCBmN2MwNDVlMDE0YmMxNTY0ZmM5NDZmNGY0NDJhNzE3NjAyOTc2
MDZkLi44Mzg5ZmU1OWU3YTJlY2MzODE3NGY5MjQyZDE0OGQ2N2VlMzFiMzhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApAQCAtNTg0LDEwICs1ODQsMTAgQEAgdm9pZCBD
U1NGb250U2VsZWN0b3I6OmJlZ2luTG9hZGluZ0ZvbnRTb29uKENhY2hlZEZvbnQqIGZvbnQpCiAg
ICAgLy8gYWZ0ZXIgdGhpcyBmb250IGhhcyBiZWVuIHJlcXVlc3RlZCBidXQgYmVmb3JlIGl0IGJl
Z2FuIGxvYWRpbmcuIEJhbGFuY2VkIGJ5CiAgICAgLy8gZGVjcmVtZW50UmVxdWVzdENvdW50KCkg
aW4gYmVnaW5Mb2FkVGltZXJGaXJlZCgpIGFuZCBpbiBjbGVhckRvY3VtZW50KCkuCiAgICAgbV9k
b2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+aW5jcmVtZW50UmVxdWVzdENvdW50KGZv
bnQpOwotICAgIG1fYmVnaW5Mb2FkaW5nVGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIG1fYmVn
aW5Mb2FkaW5nVGltZXIuc3RhcnRPbmVTaG90KDAsIG1fZG9jdW1lbnQpOwogfQogCi12b2lkIENT
U0ZvbnRTZWxlY3Rvcjo6YmVnaW5Mb2FkVGltZXJGaXJlZChUaW1lcjxXZWJDb3JlOjpDU1NGb250
U2VsZWN0b3I+JikKK3ZvaWQgQ1NTRm9udFNlbGVjdG9yOjpiZWdpbkxvYWRUaW1lckZpcmVkKFJl
cGxheWFibGVUaW1lcjxXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I+JikKIHsKICAgICBWZWN0b3I8
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4+IGZvbnRzVG9CZWdpbkxvYWRpbmc7CiAg
ICAgZm9udHNUb0JlZ2luTG9hZGluZy5zd2FwKG1fZm9udHNUb0JlZ2luTG9hZGluZyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggZTFlNWEwNWUwNTQ4Y2M3YTFmNTY1Yjcx
YzViMjFiNmRhMDg5NDhmNy4uNjk4YjQwOWI1ODA2NzFlNjE4MDY3YzdjNTNkNjMxM2ZmYjY2MDg3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaApAQCAtMjgsOCArMjgsOCBAQAog
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJGb250U2VsZWN0
b3IuaCIKKyNpbmNsdWRlICJSZXBsYXlhYmxlVGltZXIuaCIKICNpbmNsdWRlICJTaW1wbGVGb250
RGF0YS5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTg2LDcgKzg2LDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGF0Y2hJbnZhbGlkYXRpb25DYWxsYmFja3MoKTsK
IAotICAgIHZvaWQgYmVnaW5Mb2FkVGltZXJGaXJlZChUaW1lcjxDU1NGb250U2VsZWN0b3I+Jik7
CisgICAgdm9pZCBiZWdpbkxvYWRUaW1lckZpcmVkKFJlcGxheWFibGVUaW1lcjxDU1NGb250U2Vs
ZWN0b3I+Jik7CiAKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPFN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+Pj4sIENhc2VGb2xk
aW5nSGFzaD4gbV9mb250RmFjZXM7CkBAIC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgSGFz
aFNldDxGb250U2VsZWN0b3JDbGllbnQqPiBtX2NsaWVudHM7CiAKICAgICBWZWN0b3I8Q2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4+IG1fZm9udHNUb0JlZ2luTG9hZGluZzsKLSAgICBU
aW1lcjxDU1NGb250U2VsZWN0b3I+IG1fYmVnaW5Mb2FkaW5nVGltZXI7CisgICAgUmVwbGF5YWJs
ZVRpbWVyPENTU0ZvbnRTZWxlY3Rvcj4gbV9iZWdpbkxvYWRpbmdUaW1lcjsKIAogICAgIHVuc2ln
bmVkIG1fdW5pcXVlSWQ7CiAgICAgdW5zaWduZWQgbV92ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggMWViODA5MmI2YjJmMzM2Yjk3MmQxOTM0MWI2ZjJmZjAzMTBhOGU2ZC4uMjc2
MGE4Njg1YzgyYThiZTlhNjZhNDNkMmVkZmE1ZTFlYjNjYjY2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yMjAsNiArMjIwLDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9SRVBM
QVkpCisjaW5jbHVkZSAiUmVwbGF5YWJsZVRpbWVycy5oIgogI2luY2x1ZGUgPHJlcGxheS9FbXB0
eUlucHV0Q3Vyc29yLmg+CiAjZW5kaWYKIApAQCAtNTA4LDYgKzUwOSw3IEBAIERvY3VtZW50OjpE
b2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENs
YXNzZXMsIHVuc2lnCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICAgICAsIG1faW5w
dXRDdXJzb3IoRW1wdHlJbnB1dEN1cnNvcjo6Y3JlYXRlKCkpCisgICAgLCBtX3JlcGxheWFibGVU
aW1lcnMoc3RkOjptYWtlX3VuaXF1ZTxSZXBsYXlhYmxlVGltZXJzPigpKQogI2VuZGlmCiAgICAg
LCBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZCkKICAgICAsIG1fZGlzYWJsZWRGaWVsZHNldEVs
ZW1lbnRzQ291bnQoMCkKQEAgLTU1NTQsMTAgKzU1NTYsMTAgQEAgdm9pZCBEb2N1bWVudDo6ZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpCiAgICAgLS1tX2xvYWRFdmVudERlbGF5Q291bnQ7
CiAKICAgICBpZiAoZnJhbWUoKSAmJiAhbV9sb2FkRXZlbnREZWxheUNvdW50ICYmICFtX2xvYWRF
dmVudERlbGF5VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9sb2FkRXZlbnREZWxheVRpbWVy
LnN0YXJ0T25lU2hvdCgwKTsKKyAgICAgICAgbV9sb2FkRXZlbnREZWxheVRpbWVyLnN0YXJ0T25l
U2hvdCgwLCB0aGlzKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6bG9hZEV2ZW50RGVsYXlUaW1lckZp
cmVkKFRpbWVyPERvY3VtZW50PiYpCit2b2lkIERvY3VtZW50Ojpsb2FkRXZlbnREZWxheVRpbWVy
RmlyZWQoUmVwbGF5YWJsZVRpbWVyPERvY3VtZW50PiYpCiB7CiAgICAgaWYgKGZyYW1lKCkpCiAg
ICAgICAgIGZyYW1lKCktPmxvYWRlcigpLmNoZWNrQ29tcGxldGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGYxMWFjZjY4ZGQ5NWFiMWI3MjZjYzZlZjE3YjRjODIxZGE5OGExZmYuLjE2MmNi
ZTI2NDc4ODE4ODM4ZTA2MjkxOGU5ODk5MTRmN2JiMmIxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUg
IlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5jbHVkZSAiUmVw
bGF5YWJsZVRpbWVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVUcmVl
LmgiCkBAIC0xOTEsNiArMTkyLDEwIEBAIGNsYXNzIERPTVNlY3VyaXR5UG9saWN5OwogY2xhc3Mg
Rm9udExvYWRlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCitjbGFzcyBSZXBs
YXlhYmxlVGltZXJzOworI2VuZGlmCisKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKICNp
ZiBQTEFURk9STShJT1MpCkBAIC00ODAsNiArNDg1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShX
RUJfUkVQTEFZKQogICAgIElucHV0Q3Vyc29yJiBpbnB1dEN1cnNvcigpIGNvbnN0IHsgcmV0dXJu
ICptX2lucHV0Q3Vyc29yOyB9CiAgICAgdm9pZCBzZXRJbnB1dEN1cnNvcihQYXNzUmVmUHRyPElu
cHV0Q3Vyc29yPiBjdXJzb3IpIHsgbV9pbnB1dEN1cnNvciA9IGN1cnNvcjsgfQorCisgICAgUmVw
bGF5YWJsZVRpbWVycyYgcmVwbGF5YWJsZVRpbWVycygpIGNvbnN0IHsgcmV0dXJuICptX3JlcGxh
eWFibGVUaW1lcnM7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CkBAIC0xMzIyLDcgKzEzMjksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTdHlsZVJl
c29sdmVyKCk7CiAKLSAgICB2b2lkIGxvYWRFdmVudERlbGF5VGltZXJGaXJlZChUaW1lcjxEb2N1
bWVudD4mKTsKKyAgICB2b2lkIGxvYWRFdmVudERlbGF5VGltZXJGaXJlZChSZXBsYXlhYmxlVGlt
ZXI8RG9jdW1lbnQ+Jik7CiAKICAgICB2b2lkIHBlbmRpbmdUYXNrc1RpbWVyRmlyZWQoVGltZXI8
RG9jdW1lbnQ+Jik7CiAKQEAgLTE1NzEsNyArMTU3OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIGludCBtX2xvYWRFdmVudERlbGF5Q291bnQ7Ci0gICAgVGltZXI8RG9jdW1lbnQ+IG1fbG9h
ZEV2ZW50RGVsYXlUaW1lcjsKKyAgICBSZXBsYXlhYmxlVGltZXI8RG9jdW1lbnQ+IG1fbG9hZEV2
ZW50RGVsYXlUaW1lcjsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzIG1fdmlld3BvcnRBcmd1bWVu
dHM7CiAKQEAgLTE2ODIsNiArMTY4OSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0VCX1JF
UExBWSkKICAgICBSZWZQdHI8SW5wdXRDdXJzb3I+IG1faW5wdXRDdXJzb3I7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFJlcGxheWFibGVUaW1lcnM+IG1fcmVwbGF5YWJsZVRpbWVyczsKICNlbmRpZgog
CiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAzNmQ2NWE0YmQ2YTQ0ZmQ3MjA2
MmM2ZjkxN2VjOWIxMTFhMThiN2YzLi44YmE0OGFlODUzODFiODk3YTc1NzcxMzY2NDRmMTljNmQz
ODE2ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg0MSw3ICs4
NDEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAgICAgICAgIGNoZWNr
TG9hZENvbXBsZXRlKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrVGltZXJGaXJlZChU
aW1lcjxGcmFtZUxvYWRlcj4mKQordm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tUaW1lckZpcmVkKFJl
cGxheWFibGVUaW1lcjxGcmFtZUxvYWRlcj4mKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdCht
X2ZyYW1lKTsKIApAQCAtODYxLDcgKzg2MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0YXJ0Q2hl
Y2tDb21wbGV0ZVRpbWVyKCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX2NoZWNrVGltZXIu
aXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2hlY2tUaW1lci5zdGFydE9uZVNo
b3QoMCk7CisgICAgbV9jaGVja1RpbWVyLnN0YXJ0T25lU2hvdCgwLCBtX2ZyYW1lLmRvY3VtZW50
KCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzY2hlZHVsZUNoZWNrQ29tcGxldGVkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggOWY5MDc3NWE5MWE3OWMxMjc5Nzc0YmQ4
ZTMyMmM2MmVjMGYwNjM5Yy4uNGEzYjA5OWI4ZmY2NWJjMzJiMDY0ODJjYzBmNmYxZDkxNGE0Zjlh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM4LDEwICszOCwxMCBAQAog
I2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVzLmgiCiAjaW5j
bHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgorI2luY2x1ZGUgIlJlcGxheWFibGVUaW1lci5o
IgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlVHlwZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWROb3RpZmllci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgotI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogCkBAIC0zMDAsNyArMzAwLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgYWxsQ2hpbGRyZW5B
cmVDb21wbGV0ZSgpIGNvbnN0OyAvLyBpbW1lZGlhdGUgY2hpbGRyZW4sIG5vdCBhbGwgZGVzY2Vu
ZGFudHMKIAotICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKFRpbWVyPEZyYW1lTG9hZGVyPiYpOwor
ICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKFJlcGxheWFibGVUaW1lcjxGcmFtZUxvYWRlcj4mKTsK
ICAgICAKICAgICB2b2lkIGxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKik7CiAgICAg
dm9pZCBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlw
ZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kpOwpAQCAtNDI0LDcgKzQyNCw3IEBAIHBy
aXZhdGU6CiAKICAgICBVUkwgbV9zdWJtaXR0ZWRGb3JtVVJMOwogCi0gICAgVGltZXI8RnJhbWVM
b2FkZXI+IG1fY2hlY2tUaW1lcjsKKyAgICBSZXBsYXlhYmxlVGltZXI8RnJhbWVMb2FkZXI+IG1f
Y2hlY2tUaW1lcjsKICAgICBib29sIG1fc2hvdWxkQ2FsbENoZWNrQ29tcGxldGVkOwogICAgIGJv
b2wgbV9zaG91bGRDYWxsQ2hlY2tMb2FkQ29tcGxldGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwCmluZGV4IDEwNDVlNjVi
ZjgwNmMyZWJkYjZmMGFjMDI5MjNmYTY2MDE3ZTY3M2EuLmQyY2I0NzJhMTQ4YTRhNjAzOTNkN2Y0
OWEyOWRjNGZiYjYyMjAwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBs
YXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Jl
cGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcApAQCAtMjksMTAgKzI5LDEzIEBACiAjaWYgRU5B
QkxFKFdFQl9SRVBMQVkpCiAKICNpbmNsdWRlICJBbGxSZXBsYXlJbnB1dHMuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRp
b25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVwbGF5Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlJlcGxheWFibGVUaW1lcnMuaCIKKyNpbmNsdWRlICJTZXJpYWxp
emF0aW9uTWV0aG9kcy5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlVzZXJJbnB1dEJy
aWRnZS5oIgogCkBAIC03Nyw2ICs4MCwxNCBAQCB2b2lkIEhhbmRsZU1vdXNlUmVsZWFzZTo6ZGlz
cGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICBjb250cm9sbGVyLnBhZ2Uo
KS51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChwbGF0Zm9ybUV2ZW50
KCksIElucHV0U291cmNlOjpTeW50aGV0aWMpOwogfQogCisvLyBPdGhlciBldmVudCBsb29wIGlu
cHV0cy4KK3ZvaWQgQXN5bmNUaW1lckZpcmVkOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBj
b250cm9sbGVyKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvY3VtZW50RnJvbUZyYW1l
SW5kZXgoJmNvbnRyb2xsZXIucGFnZSgpLCBtX2ZyYW1lSW5kZXgpOworICAgIGlmICghZG9jdW1l
bnQgfHwgIWRvY3VtZW50LT5yZXBsYXlhYmxlVGltZXJzKCkuZmlyZVRpbWVyKG1fb3JkaW5hbCkp
CisgICAgICAgIExPR19FUlJPUigiJS0zMHMgUkVQTEFZIERJVkVSR0VOQ0UhIENvdWxkbid0IGZp
bmQgYXN5bmMgdGltZXIgJWQvJWx1LlxuIiwgIltSZXBsYXlDb250cm9sbGVyXSIsIG1fZnJhbWVJ
bmRleCwgbV9vcmRpbmFsKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9SRVBMQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
UmVwbGF5YWJsZVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGlt
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZkNDYwOTY5NjU0Njc2MGNjYWYyMjg3NDhhYWU2NjY2NTYxYjI2
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5YWJsZVRp
bWVyLmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxheWFibGVUaW1lci5oIgorCisjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCisKKyNpbmNsdWRlICJDYXB0dXJpbmdJbnB1dEN1cnNvci5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJl
cGxheWFibGVUaW1lcnMuaCIKKyNpbmNsdWRlICJTZXJpYWxpemF0aW9uTWV0aG9kcy5oIgorI2lu
Y2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgorI2luY2x1ZGUgPHJlcGxheS9JbnB1dEN1cnNvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxheWFibGVUaW1lckJhc2U6OlJlcGxheWFi
bGVUaW1lckJhc2UoKQorICAgIDogbV90aW1lcih0aGlzLCAmUmVwbGF5YWJsZVRpbWVyQmFzZTo6
dGltZXJGaXJlZCkKKyAgICAsIG1fZG9jdW1lbnQobnVsbHB0cikKKyAgICAsIG1fb3JkaW5hbCgw
KQoreworfQorCitSZXBsYXlhYmxlVGltZXJCYXNlOjp+UmVwbGF5YWJsZVRpbWVyQmFzZSgpCit7
Cit9CisKK3ZvaWQgUmVwbGF5YWJsZVRpbWVyQmFzZTo6dGltZXJGaXJlZChUaW1lcjxSZXBsYXlh
YmxlVGltZXJCYXNlPiYpCit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IG1fZG9jdW1lbnQ7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CisKKyAg
ICBJbnB1dEN1cnNvciYgY3Vyc29yID0gZG9jdW1lbnQtPmlucHV0Q3Vyc29yKCk7CisgICAgQVNT
RVJUKCFjdXJzb3IuaXNSZXBsYXlpbmcoKSk7CisKKyAgICBpZiAoY3Vyc29yLmlzQ2FwdHVyaW5n
KCkpIHsKKyAgICAgICAgTE9HKFdlYlJlcGxheSwgIlJlcGxheWFibGVUaW1lciglcCk6OnRpbWVy
RmlyZWQgbV9kb2N1bWVudD0lcCIsIHRoaXMsIGRvY3VtZW50KTsKKyAgICAgICAgY3Vyc29yLmFw
cGVuZElucHV0PEFzeW5jVGltZXJGaXJlZD4oZnJhbWVJbmRleEZyb21Eb2N1bWVudChkb2N1bWVu
dCksIG1fb3JkaW5hbCk7CisgICAgfQorCisgICAgZmlyZWQoKTsKK30KKwordm9pZCBSZXBsYXlh
YmxlVGltZXJCYXNlOjpzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsLCBEb2N1bWVudCogZG9j
dW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICBtX2RvY3VtZW50ID0gZG9jdW1l
bnQ7CisKKyAgICBpZiAoIW1fb3JkaW5hbCkKKyAgICAgICAgZG9jdW1lbnQtPnJlcGxheWFibGVU
aW1lcnMoKS5yZWdpc3RlclRpbWVyKHRoaXMpOworCisgICAgSW5wdXRDdXJzb3ImIGN1cnNvciA9
IGRvY3VtZW50LT5pbnB1dEN1cnNvcigpOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBpZiAoY3Vy
c29yLmlzQ2FwdHVyaW5nKCkgfHwgY3Vyc29yLmlzUmVwbGF5aW5nKCkpCisgICAgICAgIExPRyhX
ZWJSZXBsYXksICJSZXBsYXlhYmxlVGltZXIoJXApOjpzdGFydE9uZVNob3QgaW50ZXJ2YWw9JWYs
IGRvY3VtZW50PSVwIiwgdGhpcywgaW50ZXJ2YWwsIGRvY3VtZW50KTsKKyNlbmRpZgorICAgIGlm
ICghY3Vyc29yLmlzUmVwbGF5aW5nKCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGlu
dGVydmFsKTsKK30KKwordm9pZCBSZXBsYXlhYmxlVGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBp
ZiAoIW1fZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIElucHV0Q3Vyc29yJiBjdXJz
b3IgPSBtX2RvY3VtZW50LT5pbnB1dEN1cnNvcigpOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBp
ZiAoY3Vyc29yLmlzQ2FwdHVyaW5nKCkgfHwgY3Vyc29yLmlzUmVwbGF5aW5nKCkpCisgICAgICAg
IExPRyhXZWJSZXBsYXksICJSZXBsYXlhYmxlVGltZXIoJXApOjpzdG9wIG1fZG9jdW1lbnQ9JXAi
LCB0aGlzLCBtX2RvY3VtZW50KTsKKyNlbmRpZgorICAgIGlmICghY3Vyc29yLmlzUmVwbGF5aW5n
KCkpCisgICAgICAgIG1fdGltZXIuc3RvcCgpOworCisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUkVQ
TEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5o
IGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQz
ZGYwODk2YmRiOTE0YjExNGIwMGE0ZDdlZGM3NjdjZDBkZGY1NDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5YWJsZVRpbWVyLmgKQEAgLTAsMCArMSwxMjcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgVW5pdmVyc2l0eSBv
ZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVwbGF5
YWJsZVRpbWVyX2gKKyNkZWZpbmUgUmVwbGF5YWJsZVRpbWVyX2gKKworI2luY2x1ZGUgIlRpbWVy
LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpZiBFTkFCTEUoV0VCX1JFUExB
WSkKKyNpbmNsdWRlIDxyZXBsYXkvSW5wdXRDdXJzb3IuaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUmVwbGF5YWJsZVRpbWVyczsKKwor
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQorCitjbGFzcyBSZXBsYXlhYmxlVGltZXJCYXNlIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXBsYXlhYmxlVGltZXJCYXNlKTsKKworZnJpZW5kIGNs
YXNzIFJlcGxheWFibGVUaW1lcnM7CisKK3B1YmxpYzoKKyAgICBSZXBsYXlhYmxlVGltZXJCYXNl
KCk7CisgICAgdmlydHVhbCB+UmVwbGF5YWJsZVRpbWVyQmFzZSgpOworCisgICAgdm9pZCBzdGFy
dE9uZVNob3QoZG91YmxlIGludGVydmFsLCBEb2N1bWVudCopOworCisgICAgdm9pZCBzdG9wKCk7
CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKworICAg
IHVuc2lnbmVkIGxvbmcgb3JkaW5hbCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JkaW5hbDsgfQorcHJv
dGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0wOworcHJpdmF0ZToKKyAgICB2b2lk
IHRpbWVyRmlyZWQoVGltZXI8UmVwbGF5YWJsZVRpbWVyQmFzZT4mKTsKKworICAgIC8vIENhbGxl
ZCBieSBSZXBsYXlhYmxlVGltZXJzOjpyZWdpc3RlclRpbWVyCisgICAgdm9pZCBzZXRPcmRpbmFs
KHVuc2lnbmVkIGxvbmcgb3JkaW5hbCkgeyBtX29yZGluYWwgPSBvcmRpbmFsOyB9CisKKyAgICBU
aW1lcjxSZXBsYXlhYmxlVGltZXJCYXNlPiBtX3RpbWVyOworICAgIERvY3VtZW50KiBtX2RvY3Vt
ZW50OworICAgIC8vIFRpbWVycyBhcmUgb2Z0ZW4gaW5pdGlhbGl6ZWQgd2l0aG91dCBhbiBhc3Nv
Y2lhdGVkIGRvY3VtZW50LCBidXQgYXJlIGFsd2F5cworICAgIC8vIGFsd2F5cyBmaXJlZCB3aGVu
IG9uZSBpcyBhdmFpbGFibGUuIEFzc2lnbiB0aW1lciBvcmRpbmFscyBvbiBmaXJzdCBmaXJlLgor
ICAgIHVuc2lnbmVkIGxvbmcgbV9vcmRpbmFsOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFRp
bWVyRmlyZWRDbGFzcz4gY2xhc3MgUmVwbGF5YWJsZVRpbWVyIDogcHVibGljIFJlcGxheWFibGVU
aW1lckJhc2UgeworcHVibGljOgorICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoq
VGltZXJGaXJlZEZ1bmN0aW9uKShSZXBsYXlhYmxlVGltZXImKTsKKworICAgIFJlcGxheWFibGVU
aW1lcihUaW1lckZpcmVkQ2xhc3MqIG9iamVjdCwgVGltZXJGaXJlZEZ1bmN0aW9uIGZ1bmN0aW9u
KQorICAgICAgICA6IG1fZnVuY3Rpb24oc3RkOjpiaW5kKGZ1bmN0aW9uLCBvYmplY3QsIHN0ZDo6
cmVmKCp0aGlzKSkpCisgICAgeworICAgIH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2Z1bmN0aW9uKCk7CisgICAgfQor
CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBtX2Z1bmN0aW9uOworfTsKKworI2Vsc2UgLy8g
IUVOQUJMRShXRUJfUkVQTEFZKQorCisvLyBQcmVzZXJ2ZSBBUEkgY29tcGF0aWJpbGl0eSB3aXRo
IGN1c3RvbSB0aW1lciBzdWJjbGFzc2VzIHRoYXQgc2hvdWxkIGJlIGRldGVybWluaXN0aWMuCitj
bGFzcyBSZXBsYXlhYmxlVGltZXJCYXNlIDogcHVibGljIFRpbWVyQmFzZSB7CitwdWJsaWM6Cisg
ICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsLCBEb2N1bWVudCopCisgICAgewor
ICAgICAgICBUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CisgICAgfQorfTsKKwor
Ly8gVGhpcyBpcyB0aGUgc2FtZSBkZWZpbml0aW9uIGFzIGluIFRpbWVyLmgsIGJ1dCB0YWtlcyBh
cmd1bWVudHMKKy8vIHNvIHRoYXQgY2xpZW50cyBuZWVkIG5vdCBtYW51YWxseSBpbnN0YW50aWF0
ZSBkaWZmZXJlbnQgVGltZXJzIGJhc2VkIG9uIGd1YXJkcy4KK3RlbXBsYXRlIDx0eXBlbmFtZSBU
aW1lckZpcmVkQ2xhc3M+IGNsYXNzIFJlcGxheWFibGVUaW1lciA6IHB1YmxpYyBSZXBsYXlhYmxl
VGltZXJCYXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6
KlRpbWVyRmlyZWRGdW5jdGlvbikoUmVwbGF5YWJsZVRpbWVyJik7CisKKyAgICBSZXBsYXlhYmxl
VGltZXIoVGltZXJGaXJlZENsYXNzKiBvYmplY3QgLCBUaW1lckZpcmVkRnVuY3Rpb24gZnVuY3Rp
b24pCisgICAgICAgIDogbV9mdW5jdGlvbihzdGQ6OmJpbmQoZnVuY3Rpb24sIG9iamVjdCwgc3Rk
OjpyZWYoKnRoaXMpKSkKKyAgICB7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2
b2lkIGZpcmVkKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fZnVuY3Rpb24oKTsKKyAgICB9
CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247Cit9OworCisjZW5kaWYg
Ly8gIUVOQUJMRShXRUJfUkVQTEFZKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBSZXBsYXlhYmxlVGltZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1JlcGxheWFibGVUaW1lcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVU
aW1lcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNjRiNGU3NDc2Y2E3ZThhZWQzNzgyM2EyMmZkMGU4NzAx
MzRiZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5YWJs
ZVRpbWVycy5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYXlhYmxlVGltZXJzLmgi
CisKKyNpZiBFTkFCTEUoV0VCX1JFUExBWSkKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlICJSZXBsYXlhYmxlVGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYXlh
YmxlVGltZXJzOjpSZXBsYXlhYmxlVGltZXJzKCkKKyAgICA6IG1fbWFwKFRpbWVyTWFwKCkpCisg
ICAgLCBtX25leHRPcmRpbmFsKDEpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgUmVwbGF5YWJsZVRp
bWVyczo6cmVnaXN0ZXJUaW1lcihSZXBsYXlhYmxlVGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBB
U1NFUlQodGltZXIpOworCisgICAgYm9vbCBuZWVkc09yZGluYWwgPSBmYWxzZTsKKyAgICBpZiAo
IXRpbWVyLT5vcmRpbmFsKCkpCisgICAgICAgIG5lZWRzT3JkaW5hbCA9IHRydWU7CisgICAgZWxz
ZSB7CisgICAgICAgIFRpbWVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fbWFwLmZpbmQodGlt
ZXItPm9yZGluYWwoKSk7CisgICAgICAgIG5lZWRzT3JkaW5hbCB8PSBpdCA9PSBtX21hcC5lbmQo
KSB8fCBpdC0+dmFsdWUgIT0gdGltZXI7CisgICAgfQorCisgICAgaWYgKCFuZWVkc09yZGluYWwp
CisgICAgICAgIHJldHVybiB0aW1lci0+b3JkaW5hbCgpOworCisgICAgdW5zaWduZWQgbG9uZyBv
cmRpbmFsID0gbV9uZXh0T3JkaW5hbCsrOworICAgIFRpbWVyTWFwOjpBZGRSZXN1bHQgcmVzdWx0
ID0gbV9tYXAuc2V0KG9yZGluYWwsIHRpbWVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwg
cmVzdWx0LmlzTmV3RW50cnkpOworCisgICAgTE9HKFdlYlJlcGxheSwgIiUtMjBzIFJlZ2lzdGVy
aW5nIGFzeW5jIHRpbWVyICVwLyVsdS5cbiIsICJSZXBsYXlhYmxlVGltZXJzIiwgKHZvaWQqKXRo
aXMsIG9yZGluYWwpOworICAgIHJldHVybiBvcmRpbmFsOworfQorCitib29sIFJlcGxheWFibGVU
aW1lcnM6OmZpcmVUaW1lcih1bnNpZ25lZCBsb25nIG9yZGluYWwpCit7CisgICAgQVNTRVJUKG9y
ZGluYWwpOworCisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fbWFwLmZpbmQob3Jk
aW5hbCk7CisgICAgaWYgKHJlc3VsdCA9PSBtX21hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmVzdWx0LT52YWx1ZS0+ZmlyZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5YWJsZVRpbWVycy5oIGIv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lcnMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjdm
YzExZDAyZGJmNzI2NzM3ODFjNDFiNzVhM2I0MjgwMDYzODE4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lcnMuaApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZXBsYXlhYmxlVGlt
ZXJzX2gKKyNkZWZpbmUgUmVwbGF5YWJsZVRpbWVyc19oCisKKyNpZiBFTkFCTEUoV0VCX1JFUExB
WSkKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVwbGF5YWJsZVRpbWVyQmFzZTsK
KworY2xhc3MgUmVwbGF5YWJsZVRpbWVycyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVw
bGF5YWJsZVRpbWVycyk7CitwdWJsaWM6CisgICAgUmVwbGF5YWJsZVRpbWVycygpOworCisgICAg
dW5zaWduZWQgbG9uZyByZWdpc3RlclRpbWVyKFJlcGxheWFibGVUaW1lckJhc2UqKTsKKyAgICBi
b29sIGZpcmVUaW1lcih1bnNpZ25lZCBsb25nIG9yZGluYWwpOworcHJpdmF0ZToKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVwbGF5YWJsZVRpbWVyQmFzZSo+IFRpbWVyTWFw
OworICAgIFRpbWVyTWFwIG1fbWFwOworICAgIHVuc2lnbmVkIGxvbmcgbV9uZXh0T3JkaW5hbDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUkVQ
TEFZKQorCisjZW5kaWYgLy8gUmVwbGF5YWJsZVRpbWVyc19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAppbmRleCA1Y2I5ZWYxNmEzZDA2NzM1OTcw
YTI5NmFmMzQzY2Y5ZTQ3NDhkZjZmLi4yMWRmNWY4MTJiMWIyNGFhMDIxOTkyZTJkMmYzNTk3YTli
NmYxYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1l
dGhvZHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9k
cy5jcHAKQEAgLTMxLDYgKzMxLDEwIEBACiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAKICNpbmNs
dWRlICJBbGxSZXBsYXlJbnB1dHMuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkZyYW1lVHJlZS5oIgorI2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1v
dXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZXBsYXlJbnB1dFR5cGVzLmgiCkBAIC00OCw2ICs1Miw1
MCBAQCB1c2luZyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjsKIHVzaW5nIFdlYkNvcmU6OlVSTDsK
IHVzaW5nIFdlYkNvcmU6OmlucHV0VHlwZXM7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50
IGZyYW1lSW5kZXhGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAg
IEFTU0VSVChkb2N1bWVudCk7CisgICAgQVNTRVJUKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBy
ZXR1cm4gZnJhbWVJbmRleEZyb21GcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7Cit9CisKK2ludCBm
cmFtZUluZGV4RnJvbUZyYW1lKGNvbnN0IEZyYW1lKiB0YXJnZXRGcmFtZSkKK3sKKyAgICBBU1NF
UlQodGFyZ2V0RnJhbWUpOworCisgICAgaW50IGluZGV4ID0gMDsKKyAgICBjb25zdCBGcmFtZSog
bWFpbkZyYW1lID0gJnRhcmdldEZyYW1lLT50cmVlKCkudG9wKCk7CisgICAgZm9yIChjb25zdCBG
cmFtZSogZnJhbWUgPSBtYWluRnJhbWU7IGZyYW1lOyBpbmRleCsrLCBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KG1haW5GcmFtZSkpIHsKKyAgICAgICAgaWYgKGZyYW1lID09IHRh
cmdldEZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCitEb2N1bWVudCogZG9jdW1lbnRG
cm9tRnJhbWVJbmRleChQYWdlKiBwYWdlLCBpbnQgZnJhbWVJbmRleCkKK3sKKyAgICBGcmFtZSog
ZnJhbWUgPSBmcmFtZUZyb21GcmFtZUluZGV4KHBhZ2UsIGZyYW1lSW5kZXgpOworICAgIHJldHVy
biBmcmFtZSA/IGZyYW1lLT5kb2N1bWVudCgpIDogbnVsbHB0cjsKK30KKworRnJhbWUqIGZyYW1l
RnJvbUZyYW1lSW5kZXgoUGFnZSogcGFnZSwgaW50IGZyYW1lSW5kZXgpCit7CisgICAgQVNTRVJU
KHBhZ2UpOworICAgIEFTU0VSVChmcmFtZUluZGV4ID49IDApOworCisgICAgTWFpbkZyYW1lKiBt
YWluRnJhbWUgPSAmcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgRnJhbWUqIGZyYW1lID0gbWFpbkZy
YW1lOworICAgIGludCBpZHggPSAwOworICAgIGZvciAoOyBpZHggPCBmcmFtZUluZGV4ICYmIGZy
YW1lOyBpZHgrKywgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtYWluRnJhbWUp
KSB7IH0KKyAgICByZXR1cm4gZnJhbWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwog
I2RlZmluZSBJTVBPUlRfRlJPTV9XRUJDT1JFX05BTUVTUEFDRShuYW1lKSBcCiB1c2luZyBXZWJD
b3JlOjpuYW1lOyBcCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxp
emF0aW9uTWV0aG9kcy5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRo
b2RzLmgKaW5kZXggN2FmYTIzMmI2MjZkYTBkYTUwNDQxODFhYmY1MmY5NTI3ZDk3MDVlYi4uMjMw
YzIzOTk2MmE0OTYxOTc2MmU1NzQ1OGY3NGRlZmU0NmM5NTEzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgKQEAgLTQ2LDYgKzQ2LDEyIEBAIGNsYXNz
IFVSTDsKICNpZiBVU0UoQVBQS0lUKQogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKICNlbmRpZgor
CitpbnQgZnJhbWVJbmRleEZyb21Eb2N1bWVudChjb25zdCBEb2N1bWVudCopOworaW50IGZyYW1l
SW5kZXhGcm9tRnJhbWUoY29uc3QgRnJhbWUqKTsKK0RvY3VtZW50KiBkb2N1bWVudEZyb21GcmFt
ZUluZGV4KFBhZ2UqLCBpbnQgZnJhbWVJbmRleCk7CitGcmFtZSogZnJhbWVGcm9tRnJhbWVJbmRl
eChQYWdlKiwgaW50IGZyYW1lSW5kZXgpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIC8v
IFRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBtdXN0IGJlIGRlZmluZWQgaW4gdGhlIHNhbWUgbmFt
ZXNwYWNlIGFzIHRoZSB0ZW1wbGF0ZSBkZWNsYXJhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJ
bnB1dHMuanNvbgppbmRleCBlMjRmZDliYTQ4ODBjMDIzNTY5MmU3M2E2ODU0MTlhNGM2OWM2MTll
Li41NzU5NjdkNTAzY2VkMzU1N2IwOThkNDkzMTQ2ZTE4ZTU5YmQ3MWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1dlYklucHV0cy5qc29uCkBAIC0xMDEsNiArMTAxLDE1IEBACiAKICAgICAiaW5wdXRz
IjogWwogICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJBc3luY1RpbWVyRmlyZWQiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgUmVwbGF5YWJsZVRpbWVyIGluc3RhbmNlIGZp
cmVkIHRoYXQgd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGZyYW1lLiIsCisgICAg
ICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSW5kZXgiLCAidHlwZSI6ICJpbnQiIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmRpbmFsIiwgInR5cGUiOiAidW5zaWduZWQg
bG9uZyIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAg
ICAibmFtZSI6ICJCZWdpblNlZ21lbnRTZW50aW5lbCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiQSBzZW50aW5lbCBpbnB1dCB0byBzaWduYWwgdGhlIHN0YXJ0IG9mIGEgc2VnbWVudC4i
LAogICAgICAgICAgICAgInF1ZXVlIjogIkVWRU5UX0xPT1AiLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228612</attachid>
            <date>2014-04-04 12:09:25 -0700</date>
            <delta_ts>2015-08-05 11:29:29 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-129451-20140404120904.patch</filename>
            <type>text/plain</type>
            <size>54272</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YTU3ZTcyMDU1ZWJlMDZlYzZjYTg3Y2JkYmZjZjE0NGUwMGRiM2M1Li44N2RhMDMyNzBmYzYyM2I0
MjYxMzQ5Mjc2NTNkNWNiMDgwZDE2ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNC0wNC0wMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogbWFrZSBjYWxscyBpbnRvIEZyYW1lTG9hZGVy
OjpjaGVja0xvYWRDb21wbGV0ZSgpIGRldGVybWluaXN0aWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBlbmNvZGluZyBhbmQg
ZGVjb2RpbmcgdW5zaWduZWQgbG9uZyB2YWx1ZXMsIHdoaWNoIGhhdmUKKyAgICAgICAgYSBkaXN0
aW5jdCB0eXBlIGZyb20gdWludDMyX3QgYW5kIHVpbnQ2NF90LgorCisgICAgICAgICogcmVwbGF5
L0VuY29kZWRWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkVuY29kZWRWYWx1ZTo6Y29udmVydFRv
PHVuc2lnbmVkIGxvbmc+KTogQWRkZWQuCisgICAgICAgICogcmVwbGF5L0VuY29kZWRWYWx1ZS5o
OgorCiAyMDE0LTA0LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXggYml0IHJvdCBpbiBBUk12NyBKSVQgcHJvYmUgbWVjaGFuaXNtLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDU5ZTFiMThlZWIwMDcwMThjMWI3MjQ1MzBlNDk2M2Q4NzJjYWViMWQuLmU2MzM4MjQ5MjY5M2Q0
MjM2NDgyNTZjZjZkNTFmNDI4MGM5ZmQ3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAor
MjAxNC0wNC0wNCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKKyAg
ICAgICAgV2ViIFJlcGxheTogbWFrZSBjYWxscyBpbnRvIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRD
b21wbGV0ZSgpIGRldGVybWluaXN0aWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRvIGVuc3VyZSBkZXRlcm1pbmlzdGljIEphdmFTY3JpcHQgZXhlY3V0
aW9uLCBjYWxscyB0byBjaGVja0xvYWRDb21wbGV0ZSgpCisgICAgICAgIHRoYXQgb3JpZ2luYXRl
IGZyb20gYXN5bmNocm9ub3VzIFRpbWVyIGZpcmluZ3Mgc2hvdWxkIGJlIGNhcHR1cmVkIGFuZCBy
ZXBsYXllZC4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIFJlcGxheWFibGVU
aW1lciBjbGFzcywgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYSBkcm9wLWluCisgICAgICAgIHJlcGxh
Y2VtZW50IGZvciBvbmUtc2hvdCB0aW1lcnMuIEl0IHdpbGwgYXV0b21hdGljYWxseSBjYXB0dXJl
IG9yIHJlcGxheSB0aGUKKyAgICAgICAgdGltZXIgZGVwZW5kaW5nIG9uIHRoZSByZXBsYXkgc2Vz
c2lvbiBzdGF0ZS4gRHVyaW5nIGNhcHR1cmluZywgaXQgZm9yd2FyZHMgY2FsbHMKKyAgICAgICAg
dG8gYSByZWFsIFRpbWVyIGluc3RhbmNlIGFuZCByZWNvcmRzIHdoZW4gY2FsbGJhY2tzIGZpcmUu
IER1cmluZyBwbGF5YmFjaywgdGhlCisgICAgICAgIFRpbWVyIGluc3RhbmNlIGlzIG5vdCB1c2Vk
LCBhbmQgZGlzcGF0Y2ggaXMgaW5pdGlhdGVkIGJ5IEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlci4K
KworICAgICAgICBJZiByZXBsYXkgaXMgbm90IGFjdGl2ZSwgdGhlIHRpbWVyIHdpbGwgZm9yd2Fy
ZCBhbGwgY2FsbHMgdG8gYSByZWd1bGFyIFRpbWVyIGluc3RhbmNlLgorICAgICAgICBJZiAhRU5B
QkxFKFdFQl9SRVBMQVkpLCB0aGVuIGFuIGFsdGVybmF0ZSBpbXBsZW1lbnRhdGlvbiBvZiBSZXBs
YXlhYmxlVGltZXIgaXMKKyAgICAgICAgcHJvdmlkZWQgd2hpY2ggdW5jb25kaXRpb25hbGx5IGZv
cndhcmRzIFRpbWVyIEFQSSBjYWxscyB0byBhIHJlYWwgVGltZXIgaW5zdGFuY2UuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBUZXN0aW5nIHRoaXMgcmVsaWVzIG9uIGRldGVybWluaXN0aWMgcmVz
b3VyY2UgbG9hZGluZywgRE9NIHRpbWVycywKKyAgICAgICAgYW5kIGluaXRpYWwgYmFjay9mb3J3
YXJkIGhpc3RvcnksIG5vbmUgb2Ygd2hpY2ggaGF2ZSBsYW5kZWQgeWV0LiBPbmNlIHRoZXkgZG8g
bGFuZCwKKyAgICAgICAgbm9uZGV0ZXJtaW5pc20gb2YgY2hlY2tMb2FkQ29tcGxldGUoKSB3aWxs
IGJlIGNhdWdodCBieSBkaXZlcmdlbmNlIGFzc2VydGlvbnMuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovY29weUZvcndhcmRpbmdIZWFkZXJzLmNtZDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0ZvbnRT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmJlZ2luTG9h
ZGluZ0ZvbnRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6YmVnaW5M
b2FkVGltZXJGaXJlZCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5oOiBVc2UgYSBS
ZXBsYXlhYmxlVGltZXIgZm9yIG1fYmVnaW5Mb2FkaW5nVGltZXIuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOiBVc2UgYSBSZXBsYXlhYmxlVGltZXIgZm9yIG1fbG9hZEV2ZW50RGVsYXlU
aW1lci4gS2VlcAorICAgICAgICBhIG1hcCBvZiByZXBsYXlhYmxlIHRpbWVycyBhY3RpdmUgZm9y
IHRoZSBjdXJyZW50IGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZWNyZW1lbnRMb2FkRXZlbnREZWxh
eUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpsb2FkRXZlbnREZWxheVRpbWVy
RmlyZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnJlcGxheWFibGVUaW1lcnMpOgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDogVXNlIGEgUmVwbGF5YWJsZVRpbWVyIGZvciBtX2NoZWNrTG9hZFRpbWVyLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6c3RhcnRDaGVja0NvbXBsZXRlVGltZXIpOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5oOgorCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jVGltZXJGaXJlZDo6ZGlzcGF0
Y2gpOiBBZGRlZC4KKworICAgICAgICAqIHJlcGxheS9SZXBsYXlhYmxlVGltZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lckJhc2U6OlJlcGxheWFibGVUaW1l
ckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6flJlcGxheWFi
bGVUaW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6dGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJCYXNlOjpzdGFydE9u
ZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyQmFzZTo6c3RvcCk6Cisg
ICAgICAgICogcmVwbGF5L1JlcGxheWFibGVUaW1lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxheWFibGVUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxheWFibGVUaW1lckJhc2U6Om9yZGluYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJs
ZVRpbWVyQmFzZTo6c2V0T3JkaW5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGlt
ZXI6OlJlcGxheWFibGVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJC
YXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAqIHJlcGxheS9SZXBsYXlhYmxlVGltZXJzLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlhYmxlVGltZXJzOjpSZXBsYXlhYmxl
VGltZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWFibGVUaW1lcnM6OnJlZ2lzdGVyVGlt
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5YWJsZVRpbWVyczo6ZmlyZVRpbWVyKToKKyAg
ICAgICAgKiByZXBsYXkvUmVwbGF5YWJsZVRpbWVycy5oOiBBZGRlZC4KKworICAgICAgICAqIHJl
cGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHA6IEFkZCBtZXRob2RzIGZvciBlbmNvZGluZyBh
bmQgCisgICAgICAgIGRlY29kaW5nIGZyYW1lIHBvc2l0aW9ucyB3aXRoaW4gYSBmcmFtZSB0cmVl
LgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJbmRleEZyb21Eb2N1bWVudCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZnJhbWVJbmRleEZyb21GcmFtZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6ZG9jdW1lbnRGcm9tRnJhbWVJbmRleCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
ZnJhbWVGcm9tRnJhbWVJbmRleCk6IEFkZGVkLgorICAgICAgICAqIHJlcGxheS9TZXJpYWxpemF0
aW9uTWV0aG9kcy5oOgorCisgICAgICAgICogcmVwbGF5L1dlYklucHV0cy5qc29uOgorCiAyMDE0
LTA0LTAzICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgogCiAgICAgICAgIE1l
cmdlIFNoYXBlSW5mbyAmIFNoYXBlT3V0c2lkZUluZm8gbm93IHRoYXQgU2hhcGVJbnNpZGVJbmZv
IGlzIG5vIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGNjYWNkMjVkNjVkZDA1NDk2ZGRmMmE1YTMxNjNhODRm
YzU5ZDMzYy4uOTU4Y2JlNGZmZmNkZDMyMzVlNTFmNjg3ODkyOGVhMTNlZjFjZWZmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wNC0wNCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mu
d2FzaGluZ3Rvbi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogbWFrZSBjYWxscyBpbnRvIEZy
YW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZSgpIGRldGVybWluaXN0aWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTQ1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFk
ZCByZXBsYXkvIGRpcmVjdG9yeSB0byBoZWFkZXIgaW5jbHVkZSBwYXRocy4KKwogMjAxNC0wNC0w
MiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBSZW1vdmUgdGhlIGxlZ2FjeSBzdHJpbmcgZHJhd2luZyBjb2RlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWMx
NjAxZTdjNzAzNjhhZmMwYmRhY2E2MDVmOTNlODMzZmM4OGVjMC4uYTgzZjk1MjY3YjliNTU0ODNh
OWMzZjFmNjFiOTY1ZjJmMDkzMGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0
LTA0LTA0ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAg
ICBXZWIgUmVwbGF5OiBtYWtlIGNhbGxzIGludG8gRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBs
ZXRlKCkgZGV0ZXJtaW5pc3RpYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI5NDUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIHJlcGxheS8gZGlyZWN0b3J5IHRvIGhl
YWRlciBpbmNsdWRlIHBhdGhzLgorCiAyMDE0LTA0LTAzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdLV2ViVmlldyBkb2N1bWVudGF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5jcHAKaW5kZXggNGM4
MGJkMmU4NTM1YWU4MTA1NGJjMzE4YzVmMmZhNTM2ZjAyOTE0OC4uMzdiYjI0ODc2NmY1MDQ5MDU3
MDVkMDJlYWEzYjg3OTEyNzJhNzk3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3JlcGxheS9FbmNvZGVkVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBs
YXkvRW5jb2RlZFZhbHVlLmNwcApAQCAtMTIyLDYgKzEyMiwxNSBAQCB0ZW1wbGF0ZTw+IGZsb2F0
IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPGZsb2F0PigpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAordGVtcGxhdGU8PiB1bnNpZ25lZCBsb25nIEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPHVuc2ln
bmVkIGxvbmc+KCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKKyAgICBib29sIGNhc3RT
dWNjZWVkZWQgPSBtX3ZhbHVlLT5hc051bWJlcigmcmVzdWx0KTsKKyAgICBBU1NFUlRfVU5VU0VE
KGNhc3RTdWNjZWVkZWQsIGNhc3RTdWNjZWVkZWQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwogdGVtcGxhdGU8PiBpbnQzMl90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPGludDMyX3Q+KCkK
IHsKICAgICBpbnQzMl90IHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0Vu
Y29kZWRWYWx1ZS5oCmluZGV4IGZjNzRmMTM1M2UyMDY3MGZhZTg4MDJjZDY0MDBjZmQ2ZWM3NDM2
MGYuLmQwODQwOTRiYTYzYzAzZTkwMjYzYThjYjEyZTBiYWRmZjRlMDE2MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaApAQCAtODgsNiArODgsNyBAQCBw
cml2YXRlOgogdGVtcGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSBib29sIEVuY29kZWRWYWx1ZTo6
Y29udmVydFRvPGJvb2w+KCk7CiB0ZW1wbGF0ZTw+IEpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBF
bmNvZGVkVmFsdWU6OmNvbnZlcnRUbzxkb3VibGU+KCk7CiB0ZW1wbGF0ZTw+IEpTX0VYUE9SVF9Q
UklWQVRFIGZsb2F0IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPGZsb2F0PigpOwordGVtcGxhdGU8
PiBKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBsb25nIEVuY29kZWRWYWx1ZTo6Y29udmVydFRv
PHVuc2lnbmVkIGxvbmc+KCk7CiB0ZW1wbGF0ZTw+IEpTX0VYUE9SVF9QUklWQVRFIGludDMyX3Qg
RW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88aW50MzJfdD4oKTsKIHRlbXBsYXRlPD4gSlNfRVhQT1JU
X1BSSVZBVEUgaW50NjRfdCBFbmNvZGVkVmFsdWU6OmNvbnZlcnRUbzxpbnQ2NF90PigpOwogdGVt
cGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSB1aW50MzJfdCBFbmNvZGVkVmFsdWU6OmNvbnZlcnRU
bzx1aW50MzJfdD4oKTsKQEAgLTk4LDcgKzk5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0
cnVjdCBFbmNvZGluZ1RyYWl0cyB7CiAgICAgdHlwZWRlZiBUIERlY29kZWRUeXBlOwogCi0gICAg
c3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShEZWNvZGVkVHlwZSk7CiAgICAgc3RhdGlj
IEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShjb25zdCBEZWNvZGVkVHlwZSYpOwogCiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgRGVjb2RlZFR5cGUmKTsKQEAgLTE1
Miw2ICsxNTIsNyBAQCBzdHJ1Y3QgU2NhbGFyRW5jb2RpbmdUcmFpdHMgewogdGVtcGxhdGU8PiBz
dHJ1Y3QgRW5jb2RpbmdUcmFpdHM8Ym9vbD4gOiBwdWJsaWMgU2NhbGFyRW5jb2RpbmdUcmFpdHM8
Ym9vbD4geyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8ZG91YmxlPiA6IHB1
YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czxkb3VibGU+IHsgfTsKIHRlbXBsYXRlPD4gc3RydWN0
IEVuY29kaW5nVHJhaXRzPGZsb2F0PiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czxmbG9h
dD4geyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8dW5zaWduZWQgbG9uZz4g
OiBwdWJsaWMgU2NhbGFyRW5jb2RpbmdUcmFpdHM8dW5zaWduZWQgbG9uZz4geyB9OwogdGVtcGxh
dGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8aW50MzJfdD4gOiBwdWJsaWMgU2NhbGFyRW5jb2Rp
bmdUcmFpdHM8aW50MzJfdD4geyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8
aW50NjRfdD4gOiBwdWJsaWMgU2NhbGFyRW5jb2RpbmdUcmFpdHM8aW50NjRfdD4geyB9OwogdGVt
cGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8dWludDMyX3Q+IDogcHVibGljIFNjYWxhckVu
Y29kaW5nVHJhaXRzPHVpbnQzMl90PiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDczZTJi
NGRkODY4NWE4ZmM3YTAyMTMxYjYzNDUwYzBmOTU5YjhjNmIuLjU4Y2I2ZjM4NDFiMjRhZTI2OGMz
NTBmNzU4M2Y3YmEwZTNjZDRjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMzA1LDYgKzIz
MDUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVl
cnkuY3BwCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAK
IAorICAgIHJlcGxheS9SZXBsYXlhYmxlVGltZXIuY3BwCiAgICAgcmVwbGF5L1VzZXJJbnB1dEJy
aWRnZS5jcHAKIAogICAgIHN0b3JhZ2UvU3RvcmFnZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDg2MTJkNzQzYjlmNWE0OGYyNjY0
NzA1OTExNGI3ZWVhMmEzZDcwN2EuLjU4NTcxZTlhY2FhYjU5OTdjNzQ5ZTgxMGVlZjZmNjQ1ZDEz
YjVmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtMTIxMjUsNiArMTIxMjUsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJlcGxheVxSZXBsYXlhYmxlVGltZXIuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccmVwbGF5XFVzZXJJbnB1dEJyaWRnZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlx3b3JrZXJzXFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5jcHAiIC8+CkBAIC0y
MDE5OSw2ICsyMDIwMCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
c3ZnXFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0UXVlcnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlcGxheVxSZXBsYXlhYmxlVGltZXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlcGxheVxVc2VySW5wdXRCcmlkZ2UuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHhtbFxET01QYXJzZXIuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHhtbFxOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCIgLz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwppbmRleCAyNDM1NGFiZWQ0YzVmNmRkNmE3ZTg1ZDY4YjBjMDFmNTc4MzJlMzE4Li5kZjljY2Y3
YWNlZDAxN2UzYmYxOWIwMjJjMjE3ZGZlYmJhZWVhYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0yOTE2
LDYgKzI5MTYsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFRleHRQ
YWludGVyLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVwbGF5XFJlcGxheWFibGVUaW1l
ci5jcHAiPgorICAgICAgPEZpbHRlcj5yZXBsYXk8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlcGxheVxVc2VySW5wdXRCcmlkZ2UuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+cmVwbGF5PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC05ODYy
LDYgKzk4NjUsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN2Z1xT
VkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN2
ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cmVwbGF5XFJlcGxheWFibGVUaW1lci5oIj4KKyAgICAgIDxGaWx0ZXI+cmVwbGF5PC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZXBsYXlcVXNl
cklucHV0QnJpZGdlLmgiPgogICAgICAgPEZpbHRlcj5yZXBsYXk8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9jb3B5
Rm9yd2FyZGluZ0hlYWRlcnMuY21kIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2Nv
cHlGb3J3YXJkaW5nSGVhZGVycy5jbWQKaW5kZXggNjdkOGMyYmIyZDE1NTE3MjU0ZDMzMzgxZDZl
M2E5ZGM0ZmEyNzNiYi4uMWFlYjUwNzk4ODYzYzUzNGRhMjc3MjJjMDhhMjk2ZWZkMzA0MmIzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2NvcHlGb3J3YXJkaW5n
SGVhZGVycy5jbWQKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2NvcHlGb3J3
YXJkaW5nSGVhZGVycy5jbWQKQEAgLTgxLDYgKzgxLDcgQEAgeGNvcHkgL3kgL2QgIiVQcm9qZWN0
RGlyJS4uXHJlbmRlcmluZ1xsaW5lXCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1
ZGUKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxyZW5kZXJpbmdcc3R5bGVcKi5oIiAiJUNP
TkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlIgogeGNvcHkgL3kgL2QgIiVQcm9q
ZWN0RGlyJS4uXHJlbmRlcmluZ1xzaGFwZXNcKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVc
aW5jbHVkZVxXZWJDb3JlIgogeGNvcHkgL3kgL2QgIiVQcm9qZWN0RGlyJS4uXHJlbmRlcmluZ1xz
dmdcKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlIgoreGNvcHkg
L3kgL2QgIiVQcm9qZWN0RGlyJS4uXHJlcGxheVwqLmgiICIlQ09ORklHVVJBVElPTkJVSUxERElS
JVxpbmNsdWRlXFdlYkNvcmUiCiB4Y29weSAveSAvZCAiJVByb2plY3REaXIlLi5cZWRpdGluZ1wq
LmgiICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmUiCiB4Y29weSAveSAv
ZCAiJVByb2plY3REaXIlLi5cZG9tXCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1
ZGVcV2ViQ29yZSIKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlx4bWxccGFyc2VyXCouaCIg
IiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZTJjYTk2ZmFj
MTAxN2Q0Njc2ODMyYTU1MDdlYzAwMWY0OWRiMWJkLi4wMTRhOTY0MDVkYWVkMzVmZjBhNjMxZjhk
MWQ3ZjhmYzg2N2UzZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTk3LDkgKzQ1OTcsNiBAQAogCQlCMkMzREE2MzBEMDA2
Q0Q2MDBFRjZGMjYgLyogRm9udENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1MjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhY2hlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJDM0RB
NjQwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTUzMEQwMDZDRDYwMEVGNkYyNiAv
KiBTaW1wbGVGb250RGF0YS5jcHAgKi87IH07CiAJCUIyQzNEQTY1MEQwMDZDRDYwMEVGNkYyNiAv
KiBTaW1wbGVGb250RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjJDM0RBNTQwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjJEM0RBNjQw
RDAwNkNENjAwRUY2RjI3IC8qIE9wZW5UeXBlTWF0aERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEM0RBNTMwRDAwNkNENjAwRUY2RjI3IC8q
IE9wZW5UeXBlTWF0aERhdGEuY3BwICovOyB9OwotCQlCMkQzREE2NTBEMDA2Q0Q2MDBFRjZGMjcg
LyogT3BlblR5cGVNYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjJEM0RBNTQwRDAwNkNENjAwRUY2RjI3IC8qIE9wZW5UeXBlTWF0aERhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMkQz
RUE2NTBEMDA2Q0Q2MDBFRjZGMjggLyogT3BlblR5cGVUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEM0VBNTQwRDAwNkNENjAwRUY2RjI4IC8q
IE9wZW5UeXBlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCMkMzREE2NjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1NTBE
MDA2Q0Q2MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJDM0RBNjcwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnRHbHlwaHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJDM0RBNTYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRHbHlwaHMuY3BwICovOyB9Owog
CQlCMkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEdseXBocy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJDM0RBNTcwRDAwNkNENjAwRUY2RjI2
IC8qIEZvbnRHbHlwaHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNDYxMiw2ICs0NjA5LDkgQEAKIAkJQjJDQjkyNDQwQjVCRDk3MDAwOUJBQTc4
IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkNCOTIzQzBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50
SW5zdGFuY2UuaCAqLzsgfTsKIAkJQjJDQjkyNDYwQjVCRDk3QjAwOUJBQTc4IC8qIEpTU1ZHRWxl
bWVudEluc3RhbmNlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMkNCOTIzRDBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFu
Y2VMaXN0LmNwcCAqLzsgfTsKIAkJQjJDQjkyNDgwQjVCRDk4NDAwOUJBQTc4IC8qIEpTU1ZHRWxl
bWVudEluc3RhbmNlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjJDQjkyM0UwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNl
TGlzdC5oICovOyB9OworCQlCMkQzREE2NDBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUvT3Bl
blR5cGVNYXRoRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkQzREE1MzBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUvT3BlblR5cGVNYXRo
RGF0YS5jcHAgKi87IH07CisJCUIyRDNEQTY1MEQwMDZDRDYwMEVGNkYyNyAvKiBvcGVudHlwZS9P
cGVuVHlwZU1hdGhEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkQzREE1NDBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUvT3BlblR5cGVNYXRo
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUIyRDNFQTY1MEQwMDZDRDYwMEVGNkYyOCAvKiBvcGVudHlwZS9PcGVuVHlwZVR5cGVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkQzRUE1NDBEMDA2
Q0Q2MDBFRjZGMjggLyogb3BlbnR5cGUvT3BlblR5cGVUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyRTI3QzlGMEIwRjJCMDkwMEYxN0M3
QiAvKiBGbG9hdFBvaW50M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjJFMjdDOUQwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5jcHAg
Ki87IH07CiAJCUIyRTI3Q0EwMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTI3QzlFMEIwRjJC
MDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCMkU0RUM5NzBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9v
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyRTRFQzk0MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuY3BwICovOyB9OwpAQCAt
NTQzOCw2ICs1NDM4LDEwIEBACiAJCUMzQ0YxN0E1MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdl
dE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDM0NGMTdBMTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMzQ0YxN0E2MTVCMDA2
M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzNDRjE3QTIxNUIwMDYzRjAwMjc2RDM5
IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgKi87IH07CiAJCUMzQ0YxN0E3MTVCMDA2
M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzQ0YxN0EzMTVCMDA2M0YwMDI3NkQzOSAv
KiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlDNDBBNTE5RDE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5
YWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM0MEE1MTk5MThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXIuY3BwICovOyB9
OworCQlDNDBBNTE5RTE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNDBBNTE5QTE4RUNDQ0I2
MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzQwQTUxOUYxOEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxh
eWFibGVUaW1lcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzQwQTUxOUIxOEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuY3BwICov
OyB9OworCQlDNDBBNTFBMDE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzQwQTUxOUMxOEVD
Q0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuaCAqLzsgfTsKIAkJQzRDRDYyOUExODM4
Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAvKiBG
cmFtZVNuYXBzaG90dGluZy5jcHAgKi87IH07CiAJCUM0Q0Q2MjlCMTgzODM3NjYwMDdFQkFGMSAv
KiBGcmFtZVNuYXBzaG90dGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzRDRDYyOTkxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUw
QjU2MTYxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwQjU2MTQxMjExOUQyMzAwOEI0NkUw
IC8qIEdyb3VwU2V0dGluZ3MuY3BwICovOyB9OwpAQCAtMTE4NTMsOSArMTE4NTcsNiBAQAogCQlC
MkMzREE1MjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhY2hlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1wbGVGb250RGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQzNEQTU0MEQwMDZDRDYwMEVGNkYyNiAvKiBTaW1w
bGVGb250RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2ltcGxlRm9u
dERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJEM0RBNTMwRDAwNkNENjAw
RUY2RjI3IC8qIE9wZW5UeXBlTWF0aERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCMkQzREE1NDBEMDA2Q0Q2MDBFRjZGMjcgLyogT3BlblR5cGVNYXRo
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5
cGVNYXRoRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkQzRUE1NDBEMDA2
Q0Q2MDBFRjZGMjggLyogT3BlblR5cGVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCMkMzREE1NTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250RGVzY3JpcHRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDM0RBNTYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRH
bHlwaHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRHbHlw
aHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkMzREE1NzBEMDA2Q0Q2MDBF
RjZGMjYgLyogRm9udEdseXBocy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Rm9udEdseXBocy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE4NjgsNiArMTE4
NjksOSBAQAogCQlCMkNCOTIzQzBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFu
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHRWxlbWVudEluc3Rh
bmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQ0I5MjNEMEI1QkQ5NDEwMDlC
QUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQ0I5MjNFMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0Vs
ZW1lbnRJbnN0YW5jZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
MkQzREE1MzBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVN
YXRoRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyRDNEQTU0MEQwMDZD
RDYwMEVGNkYyNyAvKiBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUIyRDNFQTU0MEQwMDZDRDYwMEVGNkYyOCAvKiBvcGVudHlw
ZS9PcGVuVHlwZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBvcGVu
dHlwZS9PcGVuVHlwZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyRTI3
QzlEMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0UG9pbnQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUIyRTI3QzlFMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50M0QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0UG9pbnQzRC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCMkU0RUM5NDBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9v
bUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdab29t
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI3MzksNiArMTI3NDMs
MTAgQEAKIAkJQzNDRjE3QTIxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZFRhcmdldE9i
c2VydmVyUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDM0NGMTdB
MzE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDM0U2MUM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUM0MEE1MTk5MThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGF5YWJsZVRpbWVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzQwQTUxOUExOEVDQ0NCNjAwRDlGODA5IC8qIFJl
cGxheWFibGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYXlh
YmxlVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzQwQTUxOUIxOEVDQ0NC
NjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVwbGF5YWJsZVRpbWVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM0MEE1MTlDMThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXJzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxheWFibGVUaW1lcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8qIEZy
YW1lU25hcHNob3R0aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZyYW1lU25hcHNob3R0aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRD
RDYyOTkxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lU25hcHNob3R0aW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyb3VwU2V0dGluZ3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgwMzUsNiArMTgwNDMsMTAgQEAK
IAkJCQk5OUNDMEIzRDE4QkU5ODQ5MDA2Q0VCQ0MgLyogRnVuY3RvcklucHV0Q3Vyc29yLmggKi8s
CiAJCQkJOTlDN0NDQjQxOEM2Qjg5OTAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmNwcCAq
LywKIAkJCQk5OUM3Q0NCMjE4QzY2M0U0MDAzMkU0MTMgLyogTWVtb2l6ZWRET01SZXN1bHQuaCAq
LywKKwkJCQlDNDBBNTE5OTE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVyLmNwcCAq
LywKKwkJCQlDNDBBNTE5QTE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVyLmggKi8s
CisJCQkJQzQwQTUxOUIxOEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuY3BwICov
LAorCQkJCUM0MEE1MTlDMThFQ0NDQjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXJzLmggKi8s
CiAJCQkJOTlDQzBCM0UxOEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheUNvbnRyb2xsZXIuY3BwICov
LAogCQkJCTk5Q0MwQjNGMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmggKi8s
CiAJCQkJOTlDQzBCNDAxOEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheWluZ0lucHV0Q3Vyc29yLmNw
cCAqLywKQEAgLTIwMTQ3LDkgKzIwMTU5LDkgQEAKIAkJCQkwRjNERDQ0RTEyRjVFQTFCMDAwRDkx
OTAgLyogU2hhZG93Qmx1ci5oICovLAogCQkJCUIyQzNEQTUzMEQwMDZDRDYwMEVGNkYyNiAvKiBT
aW1wbGVGb250RGF0YS5jcHAgKi8sCiAJCQkJQjJDM0RBNTQwRDAwNkNENjAwRUY2RjI2IC8qIFNp
bXBsZUZvbnREYXRhLmggKi8sCi0JCQkJQjJEM0RBNTMwRDAwNkNENjAwRUY2RjI3IC8qIE9wZW5U
eXBlTWF0aERhdGEuY3BwICovLAotCQkJCUIyRDNEQTU0MEQwMDZDRDYwMEVGNkYyNyAvKiBPcGVu
VHlwZU1hdGhEYXRhLmggKi8sCi0JCQkJQjJEM0VBNTQwRDAwNkNENjAwRUY2RjI4IC8qIE9wZW5U
eXBlVHlwZXMuaCAqLywKKwkJCQlCMkQzREE1MzBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUv
T3BlblR5cGVNYXRoRGF0YS5jcHAgKi8sCisJCQkJQjJEM0RBNTQwRDAwNkNENjAwRUY2RjI3IC8q
IG9wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaCAqLywKKwkJCQlCMkQzRUE1NDBEMDA2Q0Q2MDBF
RjZGMjggLyogb3BlbnR5cGUvT3BlblR5cGVUeXBlcy5oICovLAogCQkJCUNENjQxRUIyMTgxOEY1
RUQwMEVFNEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggKi8sCiAJCQkJQ0RDNjFEQTAxODA4
NjdEODAwNEI5MTNGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGUuaCAqLywKIAkJCQlDREM4QjVBQzE4
MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovLApAQCAtMjQz
OTUsNiArMjQ0MDcsNyBAQAogCQkJCUJDNDkxOEM5MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxJ
RnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyQUE5ODBBMUNERDJEMDBCNDJC
MjUgLyogSlNIVE1MSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMjAwNjE4
RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQzQwQTUxQTAxOEVDQ0NCNjAwRDlGODA5IC8qIFJlcGxheWFibGVUaW1lcnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MEU3RTk3MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDIzMTI5NUVBN0YwMEFDQTk4OSAvKiBK
U0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUE2MTQ4QTc5MTJF
NDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI0NzQwLDYgKzI0NzUzLDcgQEAKIAkJCQkwNzg0NjM4NTE0NUIxQjhFMDBBNThERjEgLyogSlNU
cmFja0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4NDYzNDMxNDVCMTUxQTAwQTU4REYx
IC8qIEpTVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3QjQ5MjExNkE5QjhGRjAw
MUM4ODM5IC8qIEpTVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNDBBNTE5
RTE4RUNDQ0I2MDBEOUY4MDkgLyogUmVwbGF5YWJsZVRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTc1MEQ1RDBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQUE0RkFEMjE3NUQ1Q0IzMDA3NDM4NzMgLyogSlNVSVJlcXVlc3RFdmVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNTQ5Nyw4ICsyNTUxMSw4IEBACiAJCQkJRTFCNzgzOUMxNjM3
NDBBNzAwMDdCNjkyIC8qIFNoYXJlZFdvcmtlclN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUQxNjhFRTEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyVGhyZWFkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREE2NTBEMDA2Q0Q2MDBFRjZGMjYgLyogU2ltcGxlRm9udERhdGEu
aCBpbiBIZWFkZXJzICovLAotCQkJCUIyRDNEQTY1MEQwMDZDRDYwMEVGNkYyNyAvKiBPcGVuVHlw
ZU1hdGhEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMkQzRUE2NTBEMDA2Q0Q2MDBFRjZGMjgg
LyogT3BlblR5cGVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjJEM0RBNjUwRDAwNkNENjAw
RUY2RjI3IC8qIG9wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUIyRDNFQTY1MEQwMDZDRDYwMEVGNkYyOCAvKiBvcGVudHlwZS9PcGVuVHlwZVR5cGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDg5NDRBMzE4MEI1N0Q4MDBGMTY1RDggLyogU2ltcGxlTGluZUxh
eW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFOUIxMUQxODE0NTY5QzAwM0FDQ0RGIC8qIFNp
bXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RTlCMTE5MTgx
MDkxNkYwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMjc0MDksNiArMjc0MjMsNyBAQAogCQkJCUUxNEYxQzQ0MTRCNURBQzYwMEVBOTAwOSAv
KiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4REYzRkNGMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODEzNjlEMTA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEZv
cm1FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM0MEE1MTlEMThFQ0NDQjYwMEQ5Rjgw
OSAvKiBSZXBsYXlhYmxlVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURFMjMwQTE1
MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTRGRkUzMUUwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzRTI0MjVGMEIyQjUwOTUwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25l
ckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM2OSw2ICsyODM4NCw3IEBACiAJCQkJ
MDdBNkQxRUIxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RCODU5RjcxNjBENDhBNDAwRTVCMDdGIC8qIE1lZGlhS2V5RXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0IxIC8qIE1l
ZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM0MEE1MTlGMThFQ0ND
QjYwMEQ5RjgwOSAvKiBSZXBsYXlhYmxlVGltZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
MUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEQTk4RTBEMTYwM0ZFNEEwMEZFQTNCMSAvKiBNZWRpYUtleXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThFMEUxNjAzRkU1ODAwRkVBM0IxIC8qIE1lZGlhS2V5U2Vz
c2lvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODY5LDcgKzI4ODg1LDcgQEAKIAkJCQlFMUI3
ODQyMDE2MzlDQkJFMDAwN0I2OTIgLyogU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MUQxNjhFRDEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyVGhy
ZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTY0MEQwMDZDRDYwMEVGNkYyNiAvKiBT
aW1wbGVGb250RGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMkQzREE2NDBEMDA2Q0Q2MDBF
RjZGMjcgLyogT3BlblR5cGVNYXRoRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCMkQzREE2
NDBEMDA2Q0Q2MDBFRjZGMjcgLyogb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNjNFODhGNzExOEEzOUQyMDBFRDkyMzEgLyogU2ltcGxlRm9udERhdGFD
b3JlVGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0U2NTk1MDE2M0IxMEMyMDBFQjQ1NzQg
LyogU2ltcGxlRm9udERhdGFJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM3RjBEMDBB
NUMxMDAzMDA3NEQgLyogU2ltcGxlRm9udERhdGFNYWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggZjdjMDQ1ZTAxNGJjMTU2NGZjOTQ2
ZjRmNDQyYTcxNzYwMjk3NjA2ZC4uODM4OWZlNTllN2EyZWNjMzgxNzRmOTI0MmQxNDhkNjdlZTMx
YjM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTU4NCwxMCAr
NTg0LDEwIEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjpiZWdpbkxvYWRpbmdGb250U29vbihDYWNo
ZWRGb250KiBmb250KQogICAgIC8vIGFmdGVyIHRoaXMgZm9udCBoYXMgYmVlbiByZXF1ZXN0ZWQg
YnV0IGJlZm9yZSBpdCBiZWdhbiBsb2FkaW5nLiBCYWxhbmNlZCBieQogICAgIC8vIGRlY3JlbWVu
dFJlcXVlc3RDb3VudCgpIGluIGJlZ2luTG9hZFRpbWVyRmlyZWQoKSBhbmQgaW4gY2xlYXJEb2N1
bWVudCgpLgogICAgIG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmluY3JlbWVu
dFJlcXVlc3RDb3VudChmb250KTsKLSAgICBtX2JlZ2luTG9hZGluZ1RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKKyAgICBtX2JlZ2luTG9hZGluZ1RpbWVyLnN0YXJ0T25lU2hvdCgwLCBtX2RvY3VtZW50
KTsKIH0KIAotdm9pZCBDU1NGb250U2VsZWN0b3I6OmJlZ2luTG9hZFRpbWVyRmlyZWQoVGltZXI8
V2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yPiYpCit2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YmVnaW5M
b2FkVGltZXJGaXJlZChSZXBsYXlhYmxlVGltZXI8V2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yPiYp
CiB7CiAgICAgVmVjdG9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+PiBmb250c1Rv
QmVnaW5Mb2FkaW5nOwogICAgIGZvbnRzVG9CZWdpbkxvYWRpbmcuc3dhcChtX2ZvbnRzVG9CZWdp
bkxvYWRpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGUxZTVhMDVl
MDU0OGNjN2ExZjU2NWI3MWM1YjIxYjZkYTA4OTQ4ZjcuLjY5OGI0MDliNTgwNjcxZTYxODA2N2M3
YzUzZDYzMTNmZmI2NjA4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAg
LTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5j
bHVkZSAiRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiUmVwbGF5YWJsZVRpbWVyLmgiCiAjaW5j
bHVkZSAiU2ltcGxlRm9udERhdGEuaCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpc3BhdGNoSW52YWxpZGF0
aW9uQ2FsbGJhY2tzKCk7CiAKLSAgICB2b2lkIGJlZ2luTG9hZFRpbWVyRmlyZWQoVGltZXI8Q1NT
Rm9udFNlbGVjdG9yPiYpOworICAgIHZvaWQgYmVnaW5Mb2FkVGltZXJGaXJlZChSZXBsYXlhYmxl
VGltZXI8Q1NTRm9udFNlbGVjdG9yPiYpOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiAg
ICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPENTU0ZvbnRG
YWNlPj4+LCBDYXNlRm9sZGluZ0hhc2g+IG1fZm9udEZhY2VzOwpAQCAtOTUsNyArOTUsNyBAQCBw
cml2YXRlOgogICAgIEhhc2hTZXQ8Rm9udFNlbGVjdG9yQ2xpZW50Kj4gbV9jbGllbnRzOwogCiAg
ICAgVmVjdG9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+PiBtX2ZvbnRzVG9CZWdp
bkxvYWRpbmc7Ci0gICAgVGltZXI8Q1NTRm9udFNlbGVjdG9yPiBtX2JlZ2luTG9hZGluZ1RpbWVy
OworICAgIFJlcGxheWFibGVUaW1lcjxDU1NGb250U2VsZWN0b3I+IG1fYmVnaW5Mb2FkaW5nVGlt
ZXI7CiAKICAgICB1bnNpZ25lZCBtX3VuaXF1ZUlkOwogICAgIHVuc2lnbmVkIG1fdmVyc2lvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDFlYjgwOTJiNmIyZjMzNmI5NzJkMTkzNDFiNmYy
ZmYwMzEwYThlNmQuLjI3NjBhODY4NWM4MmE4YmU5YTY2YTQzZDJlZGZhNWUxZWIzY2I2NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjIwLDYgKzIyMCw3IEBACiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXRUJfUkVQTEFZKQorI2luY2x1ZGUgIlJlcGxheWFibGVUaW1lcnMuaCIKICNpbmNs
dWRlIDxyZXBsYXkvRW1wdHlJbnB1dEN1cnNvci5oPgogI2VuZGlmCiAKQEAgLTUwOCw2ICs1MDks
NyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5z
aWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SRVBM
QVkpCiAgICAgLCBtX2lucHV0Q3Vyc29yKEVtcHR5SW5wdXRDdXJzb3I6OmNyZWF0ZSgpKQorICAg
ICwgbV9yZXBsYXlhYmxlVGltZXJzKHN0ZDo6bWFrZV91bmlxdWU8UmVwbGF5YWJsZVRpbWVycz4o
KSkKICNlbmRpZgogICAgICwgbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcih0aGlzLCAm
RG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyRmlyZWQpCiAgICAgLCBtX2Rp
c2FibGVkRmllbGRzZXRFbGVtZW50c0NvdW50KDApCkBAIC01NTU0LDEwICs1NTU2LDEwIEBAIHZv
aWQgRG9jdW1lbnQ6OmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKQogICAgIC0tbV9sb2Fk
RXZlbnREZWxheUNvdW50OwogCiAgICAgaWYgKGZyYW1lKCkgJiYgIW1fbG9hZEV2ZW50RGVsYXlD
b3VudCAmJiAhbV9sb2FkRXZlbnREZWxheVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fbG9h
ZEV2ZW50RGVsYXlUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIG1fbG9hZEV2ZW50RGVs
YXlUaW1lci5zdGFydE9uZVNob3QoMCwgdGhpcyk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmxvYWRF
dmVudERlbGF5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4mKQordm9pZCBEb2N1bWVudDo6bG9h
ZEV2ZW50RGVsYXlUaW1lckZpcmVkKFJlcGxheWFibGVUaW1lcjxEb2N1bWVudD4mKQogewogICAg
IGlmIChmcmFtZSgpKQogICAgICAgICBmcmFtZSgpLT5sb2FkZXIoKS5jaGVja0NvbXBsZXRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmMTFhY2Y2OGRkOTVhYjFiNzI2Y2M2ZWYxN2I0Yzgy
MWRhOThhMWZmLi4xNjJjYmUyNjQ3ODgxODgzOGUwNjI5MThlOTg5OTE0ZjdiYjJiMThmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlF1YWxpZmllZE5h
bWUuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJlbmRlclB0ci5o
IgorI2luY2x1ZGUgIlJlcGxheWFibGVUaW1lci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAi
U3R5bGVSZXNvbHZlVHJlZS5oIgpAQCAtMTkxLDYgKzE5MiwxMCBAQCBjbGFzcyBET01TZWN1cml0
eVBvbGljeTsKIGNsYXNzIEZvbnRMb2FkZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUkVQ
TEFZKQorY2xhc3MgUmVwbGF5YWJsZVRpbWVyczsKKyNlbmRpZgorCiB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNDgwLDYgKzQ4NSw4IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICAgICBJbnB1dEN1cnNvciYgaW5wdXRDdXJzb3Io
KSBjb25zdCB7IHJldHVybiAqbV9pbnB1dEN1cnNvcjsgfQogICAgIHZvaWQgc2V0SW5wdXRDdXJz
b3IoUGFzc1JlZlB0cjxJbnB1dEN1cnNvcj4gY3Vyc29yKSB7IG1faW5wdXRDdXJzb3IgPSBjdXJz
b3I7IH0KKworICAgIFJlcGxheWFibGVUaW1lcnMmIHJlcGxheWFibGVUaW1lcnMoKSBjb25zdCB7
IHJldHVybiAqbV9yZXBsYXlhYmxlVGltZXJzOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQQUdF
X1ZJU0lCSUxJVFlfQVBJKQpAQCAtMTMyMiw3ICsxMzI5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgY3JlYXRlU3R5bGVSZXNvbHZlcigpOwogCi0gICAgdm9pZCBsb2FkRXZlbnREZWxheVRpbWVy
RmlyZWQoVGltZXI8RG9jdW1lbnQ+Jik7CisgICAgdm9pZCBsb2FkRXZlbnREZWxheVRpbWVyRmly
ZWQoUmVwbGF5YWJsZVRpbWVyPERvY3VtZW50PiYpOwogCiAgICAgdm9pZCBwZW5kaW5nVGFza3NU
aW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiYpOwogCkBAIC0xNTcxLDcgKzE1NzgsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICAgICBpbnQgbV9sb2FkRXZlbnREZWxheUNvdW50OwotICAgIFRpbWVy
PERvY3VtZW50PiBtX2xvYWRFdmVudERlbGF5VGltZXI7CisgICAgUmVwbGF5YWJsZVRpbWVyPERv
Y3VtZW50PiBtX2xvYWRFdmVudERlbGF5VGltZXI7CiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBt
X3ZpZXdwb3J0QXJndW1lbnRzOwogCkBAIC0xNjgyLDYgKzE2ODksNyBAQCBwcml2YXRlOgogCiAj
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAgICAgUmVmUHRyPElucHV0Q3Vyc29yPiBtX2lucHV0Q3Vy
c29yOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXBsYXlhYmxlVGltZXJzPiBtX3JlcGxheWFibGVU
aW1lcnM7CiAjZW5kaWYKIAogICAgIFRpbWVyPERvY3VtZW50PiBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMzZk
NjVhNGJkNmE0NGZkNzIwNjJjNmY5MTdlYzliMTExYTE4YjdmMy4uOGJhNDhhZTg1MzgxYjg5N2E3
NTc3MTM2NjQ0ZjE5YzZkMzgxNmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC04NDEsNyArODQxLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb21wbGV0ZWQo
KQogICAgICAgICBjaGVja0xvYWRDb21wbGV0ZSgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpj
aGVja1RpbWVyRmlyZWQoVGltZXI8RnJhbWVMb2FkZXI+JikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNo
ZWNrVGltZXJGaXJlZChSZXBsYXlhYmxlVGltZXI8RnJhbWVMb2FkZXI+JikKIHsKICAgICBSZWY8
RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CiAKQEAgLTg2MSw3ICs4NjEsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpzdGFydENoZWNrQ29tcGxldGVUaW1lcigpCiAgICAgICAgIHJldHVybjsKICAgICBp
ZiAobV9jaGVja1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NoZWNr
VGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIG1fY2hlY2tUaW1lci5zdGFydE9uZVNob3QoMCwg
bV9mcmFtZS5kb2N1bWVudCgpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2NoZWR1bGVDaGVj
a0NvbXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDlmOTA3NzVh
OTFhNzljMTI3OTc3NGJkOGUzMjJjNjJlYzBmMDYzOWMuLjRhM2IwOTliOGZmNjViYzMyYjA2NDgy
Y2MwZjZmMWQ5MTRhNGY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0z
OCwxMCArMzgsMTAgQEAKICNpbmNsdWRlICJJY29uVVJMLmgiCiAjaW5jbHVkZSAiTGF5b3V0TWls
ZXN0b25lcy5oIgogI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIuaCIKKyNpbmNsdWRlICJS
ZXBsYXlhYmxlVGltZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZVR5cGVzLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQu
aCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KIApAQCAtMzAwLDcgKzMwMCw3IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIGFsbENoaWxkcmVuQXJlQ29tcGxldGUoKSBjb25zdDsgLy8gaW1tZWRpYXRlIGNoaWxkcmVu
LCBub3QgYWxsIGRlc2NlbmRhbnRzCiAKLSAgICB2b2lkIGNoZWNrVGltZXJGaXJlZChUaW1lcjxG
cmFtZUxvYWRlcj4mKTsKKyAgICB2b2lkIGNoZWNrVGltZXJGaXJlZChSZXBsYXlhYmxlVGltZXI8
RnJhbWVMb2FkZXI+Jik7CiAgICAgCiAgICAgdm9pZCBsb2FkU2FtZURvY3VtZW50SXRlbShIaXN0
b3J5SXRlbSopOwogICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRl
bSosIEZyYW1lTG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2FjaGVMb2FkUG9saWN5KTsKQEAgLTQy
NCw3ICs0MjQsNyBAQCBwcml2YXRlOgogCiAgICAgVVJMIG1fc3VibWl0dGVkRm9ybVVSTDsKIAot
ICAgIFRpbWVyPEZyYW1lTG9hZGVyPiBtX2NoZWNrVGltZXI7CisgICAgUmVwbGF5YWJsZVRpbWVy
PEZyYW1lTG9hZGVyPiBtX2NoZWNrVGltZXI7CiAgICAgYm9vbCBtX3Nob3VsZENhbGxDaGVja0Nv
bXBsZXRlZDsKICAgICBib29sIG1fc2hvdWxkQ2FsbENoZWNrTG9hZENvbXBsZXRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNw
cAppbmRleCAxMDQ1ZTY1YmY4MDZjMmViZGI2ZjBhYzAyOTIzZmE2NjAxN2U2NzNhLi5kMmNiNDcy
YTE0OGE0YTYwMzkzZDdmNDlhMjlkYzRmYmI2MjIwMDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKQEAgLTI5LDEwICsy
OSwxMyBAQAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogCiAjaW5jbHVkZSAiQWxsUmVwbGF5SW5w
dXRzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNp
bmNsdWRlICJOYXZpZ2F0aW9uU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlJlcGxheUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJSZXBsYXlhYmxlVGltZXJzLmgiCisj
aW5jbHVkZSAiU2VyaWFsaXphdGlvbk1ldGhvZHMuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlICJVc2VySW5wdXRCcmlkZ2UuaCIKIApAQCAtNzcsNiArODAsMTQgQEAgdm9pZCBIYW5kbGVN
b3VzZVJlbGVhc2U6OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAgICAg
Y29udHJvbGxlci5wYWdlKCkudXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQocGxhdGZvcm1FdmVudCgpLCBJbnB1dFNvdXJjZTo6U3ludGhldGljKTsKIH0KIAorLy8gT3Ro
ZXIgZXZlbnQgbG9vcCBpbnB1dHMuCit2b2lkIEFzeW5jVGltZXJGaXJlZDo6ZGlzcGF0Y2goUmVw
bGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBk
b2N1bWVudEZyb21GcmFtZUluZGV4KCZjb250cm9sbGVyLnBhZ2UoKSwgbV9mcmFtZUluZGV4KTsK
KyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cmVwbGF5YWJsZVRpbWVycygpLmZpcmVU
aW1lcihtX29yZGluYWwpKQorICAgICAgICBMT0dfRVJST1IoIiUtMzBzIFJFUExBWSBESVZFUkdF
TkNFISBDb3VsZG4ndCBmaW5kIGFzeW5jIHRpbWVyICVkLyVsdS5cbiIsICJbUmVwbGF5Q29udHJv
bGxlcl0iLCBtX2ZyYW1lSW5kZXgsIG1fb3JkaW5hbCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUkVQTEFZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvUmVwbGF5YWJsZVRpbWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDQ2MDk2OTY1NDY3NjBjY2FmMjI4
NzQ4YWFlNjY2NjU2MWIyNjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVw
bGF5L1JlcGxheWFibGVUaW1lci5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYXlhYmxl
VGltZXIuaCIKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorCisjaW5jbHVkZSAiQ2FwdHVyaW5n
SW5wdXRDdXJzb3IuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJSZXBsYXlhYmxlVGltZXJzLmgiCisjaW5jbHVkZSAiU2VyaWFsaXphdGlv
bk1ldGhvZHMuaCIKKyNpbmNsdWRlICJXZWJSZXBsYXlJbnB1dHMuaCIKKyNpbmNsdWRlIDxyZXBs
YXkvSW5wdXRDdXJzb3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYXlhYmxlVGlt
ZXJCYXNlOjpSZXBsYXlhYmxlVGltZXJCYXNlKCkKKyAgICA6IG1fdGltZXIodGhpcywgJlJlcGxh
eWFibGVUaW1lckJhc2U6OnRpbWVyRmlyZWQpCisgICAgLCBtX2RvY3VtZW50KG51bGxwdHIpCisg
ICAgLCBtX29yZGluYWwoMCkKK3sKK30KKworUmVwbGF5YWJsZVRpbWVyQmFzZTo6flJlcGxheWFi
bGVUaW1lckJhc2UoKQoreworfQorCit2b2lkIFJlcGxheWFibGVUaW1lckJhc2U6OnRpbWVyRmly
ZWQoVGltZXI8UmVwbGF5YWJsZVRpbWVyQmFzZT4mKQoreworICAgIEFTU0VSVChtX2RvY3VtZW50
KTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2RvY3VtZW50OworICAgIG1fZG9jdW1lbnQg
PSBudWxscHRyOworCisgICAgSW5wdXRDdXJzb3ImIGN1cnNvciA9IGRvY3VtZW50LT5pbnB1dEN1
cnNvcigpOworICAgIEFTU0VSVCghY3Vyc29yLmlzUmVwbGF5aW5nKCkpOworCisgICAgaWYgKGN1
cnNvci5pc0NhcHR1cmluZygpKSB7CisgICAgICAgIExPRyhXZWJSZXBsYXksICJSZXBsYXlhYmxl
VGltZXIoJXApOjp0aW1lckZpcmVkIG1fZG9jdW1lbnQ9JXAiLCB0aGlzLCBkb2N1bWVudCk7Cisg
ICAgICAgIGN1cnNvci5hcHBlbmRJbnB1dDxBc3luY1RpbWVyRmlyZWQ+KGZyYW1lSW5kZXhGcm9t
RG9jdW1lbnQoZG9jdW1lbnQpLCBtX29yZGluYWwpOworICAgIH0KKworICAgIGZpcmVkKCk7Cit9
CisKK3ZvaWQgUmVwbGF5YWJsZVRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZh
bCwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgbV9k
b2N1bWVudCA9IGRvY3VtZW50OworCisgICAgaWYgKCFtX29yZGluYWwpCisgICAgICAgIGRvY3Vt
ZW50LT5yZXBsYXlhYmxlVGltZXJzKCkucmVnaXN0ZXJUaW1lcih0aGlzKTsKKworICAgIElucHV0
Q3Vyc29yJiBjdXJzb3IgPSBkb2N1bWVudC0+aW5wdXRDdXJzb3IoKTsKKyNpZiAhTE9HX0RJU0FC
TEVECisgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpIHx8IGN1cnNvci5pc1JlcGxheWluZygp
KQorICAgICAgICBMT0coV2ViUmVwbGF5LCAiUmVwbGF5YWJsZVRpbWVyKCVwKTo6c3RhcnRPbmVT
aG90IGludGVydmFsPSVmLCBkb2N1bWVudD0lcCIsIHRoaXMsIGludGVydmFsLCBkb2N1bWVudCk7
CisjZW5kaWYKKyAgICBpZiAoIWN1cnNvci5pc1JlcGxheWluZygpKQorICAgICAgICBtX3RpbWVy
LnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7Cit9CisKK3ZvaWQgUmVwbGF5YWJsZVRpbWVyQmFzZTo6
c3RvcCgpCit7CisgICAgaWYgKCFtX2RvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJ
bnB1dEN1cnNvciYgY3Vyc29yID0gbV9kb2N1bWVudC0+aW5wdXRDdXJzb3IoKTsKKyNpZiAhTE9H
X0RJU0FCTEVECisgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpIHx8IGN1cnNvci5pc1JlcGxh
eWluZygpKQorICAgICAgICBMT0coV2ViUmVwbGF5LCAiUmVwbGF5YWJsZVRpbWVyKCVwKTo6c3Rv
cCBtX2RvY3VtZW50PSVwIiwgdGhpcywgbV9kb2N1bWVudCk7CisjZW5kaWYKKyAgICBpZiAoIWN1
cnNvci5pc1JlcGxheWluZygpKQorICAgICAgICBtX3RpbWVyLnN0b3AoKTsKKworICAgIG1fZG9j
dW1lbnQgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX1JFUExBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9S
ZXBsYXlhYmxlVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kM2RmMDg5NmJkYjkxNGIxMTRiMDBhNGQ3ZWRjNzY3Y2QwZGRmNTQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWFibGVUaW1lci5o
CkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFJlcGxheWFibGVUaW1lcl9oCisjZGVmaW5lIFJlcGxheWFibGVUaW1lcl9oCisK
KyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCisjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+CisjZW5k
aWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFJlcGxh
eWFibGVUaW1lcnM7CisKKyNpZiBFTkFCTEUoV0VCX1JFUExBWSkKKworY2xhc3MgUmVwbGF5YWJs
ZVRpbWVyQmFzZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVwbGF5YWJsZVRpbWVyQmFz
ZSk7CisKK2ZyaWVuZCBjbGFzcyBSZXBsYXlhYmxlVGltZXJzOworCitwdWJsaWM6CisgICAgUmVw
bGF5YWJsZVRpbWVyQmFzZSgpOworICAgIHZpcnR1YWwgflJlcGxheWFibGVUaW1lckJhc2UoKTsK
KworICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCwgRG9jdW1lbnQqKTsKKwor
ICAgIHZvaWQgc3RvcCgpOworICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50OyB9CisKKyAgICB1bnNpZ25lZCBsb25nIG9yZGluYWwoKSBjb25zdCB7IHJldHVybiBt
X29yZGluYWw7IH0KK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9MDsKK3By
aXZhdGU6CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFJlcGxheWFibGVUaW1lckJhc2U+Jik7
CisKKyAgICAvLyBDYWxsZWQgYnkgUmVwbGF5YWJsZVRpbWVyczo6cmVnaXN0ZXJUaW1lcgorICAg
IHZvaWQgc2V0T3JkaW5hbCh1bnNpZ25lZCBsb25nIG9yZGluYWwpIHsgbV9vcmRpbmFsID0gb3Jk
aW5hbDsgfQorCisgICAgVGltZXI8UmVwbGF5YWJsZVRpbWVyQmFzZT4gbV90aW1lcjsKKyAgICBE
b2N1bWVudCogbV9kb2N1bWVudDsKKyAgICAvLyBUaW1lcnMgYXJlIG9mdGVuIGluaXRpYWxpemVk
IHdpdGhvdXQgYW4gYXNzb2NpYXRlZCBkb2N1bWVudCwgYnV0IGFyZSBhbHdheXMKKyAgICAvLyBh
bHdheXMgZmlyZWQgd2hlbiBvbmUgaXMgYXZhaWxhYmxlLiBBc3NpZ24gdGltZXIgb3JkaW5hbHMg
b24gZmlyc3QgZmlyZS4KKyAgICB1bnNpZ25lZCBsb25nIG1fb3JkaW5hbDsKK307CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+IGNsYXNzIFJlcGxheWFibGVUaW1lciA6IHB1
YmxpYyBSZXBsYXlhYmxlVGltZXJCYXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQgKFRp
bWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoUmVwbGF5YWJsZVRpbWVyJik7CisK
KyAgICBSZXBsYXlhYmxlVGltZXIoVGltZXJGaXJlZENsYXNzKiBvYmplY3QsIFRpbWVyRmlyZWRG
dW5jdGlvbiBmdW5jdGlvbikKKyAgICAgICAgOiBtX2Z1bmN0aW9uKHN0ZDo6YmluZChmdW5jdGlv
biwgb2JqZWN0LCBzdGQ6OnJlZigqdGhpcykpKQorICAgIHsKKyAgICB9CisKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9mdW5j
dGlvbigpOworICAgIH0KKworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gbV9mdW5jdGlvbjsK
K307CisKKyNlbHNlIC8vICFFTkFCTEUoV0VCX1JFUExBWSkKKworLy8gUHJlc2VydmUgQVBJIGNv
bXBhdGliaWxpdHkgd2l0aCBjdXN0b20gdGltZXIgc3ViY2xhc3NlcyB0aGF0IHNob3VsZCBiZSBk
ZXRlcm1pbmlzdGljLgorY2xhc3MgUmVwbGF5YWJsZVRpbWVyQmFzZSA6IHB1YmxpYyBUaW1lckJh
c2UgeworcHVibGljOgorICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCwgRG9j
dW1lbnQqKQorICAgIHsKKyAgICAgICAgVGltZXJCYXNlOjpzdGFydE9uZVNob3QoaW50ZXJ2YWwp
OworICAgIH0KK307CisKKy8vIFRoaXMgaXMgdGhlIHNhbWUgZGVmaW5pdGlvbiBhcyBpbiBUaW1l
ci5oLCBidXQgdGFrZXMgYXJndW1lbnRzCisvLyBzbyB0aGF0IGNsaWVudHMgbmVlZCBub3QgbWFu
dWFsbHkgaW5zdGFudGlhdGUgZGlmZmVyZW50IFRpbWVycyBiYXNlZCBvbiBndWFyZHMuCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPiBjbGFzcyBSZXBsYXlhYmxlVGltZXIgOiBw
dWJsaWMgUmVwbGF5YWJsZVRpbWVyQmFzZSB7CitwdWJsaWM6CisgICAgdHlwZWRlZiB2b2lkIChU
aW1lckZpcmVkQ2xhc3M6OipUaW1lckZpcmVkRnVuY3Rpb24pKFJlcGxheWFibGVUaW1lciYpOwor
CisgICAgUmVwbGF5YWJsZVRpbWVyKFRpbWVyRmlyZWRDbGFzcyogb2JqZWN0ICwgVGltZXJGaXJl
ZEZ1bmN0aW9uIGZ1bmN0aW9uKQorICAgICAgICA6IG1fZnVuY3Rpb24oc3RkOjpiaW5kKGZ1bmN0
aW9uLCBvYmplY3QsIHN0ZDo6cmVmKCp0aGlzKSkpCisgICAgeworICAgIH0KKworcHJvdGVjdGVk
OgorICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2Z1
bmN0aW9uKCk7CisgICAgfQorCisgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBtX2Z1bmN0aW9u
OworfTsKKworI2VuZGlmIC8vICFFTkFCTEUoV0VCX1JFUExBWSkKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGF5YWJsZVRpbWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9SZXBsYXlhYmxlVGltZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzY0YjRlNzQ3NmNhN2U4YWVk
Mzc4MjNhMjJmZDBlODcwMTM0YmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1JlcGxheWFibGVUaW1lcnMuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVw
bGF5YWJsZVRpbWVycy5oIgorCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiUmVwbGF5YWJsZVRpbWVyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUmVwbGF5YWJsZVRpbWVyczo6UmVwbGF5YWJsZVRpbWVycygpCisgICAgOiBtX21h
cChUaW1lck1hcCgpKQorICAgICwgbV9uZXh0T3JkaW5hbCgxKQoreworfQorCit1bnNpZ25lZCBs
b25nIFJlcGxheWFibGVUaW1lcnM6OnJlZ2lzdGVyVGltZXIoUmVwbGF5YWJsZVRpbWVyQmFzZSog
dGltZXIpCit7CisgICAgQVNTRVJUKHRpbWVyKTsKKworICAgIGJvb2wgbmVlZHNPcmRpbmFsID0g
ZmFsc2U7CisgICAgaWYgKCF0aW1lci0+b3JkaW5hbCgpKQorICAgICAgICBuZWVkc09yZGluYWwg
PSB0cnVlOworICAgIGVsc2UgeworICAgICAgICBUaW1lck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBtX21hcC5maW5kKHRpbWVyLT5vcmRpbmFsKCkpOworICAgICAgICBuZWVkc09yZGluYWwgfD0g
aXQgPT0gbV9tYXAuZW5kKCkgfHwgaXQtPnZhbHVlICE9IHRpbWVyOworICAgIH0KKworICAgIGlm
ICghbmVlZHNPcmRpbmFsKQorICAgICAgICByZXR1cm4gdGltZXItPm9yZGluYWwoKTsKKworICAg
IHVuc2lnbmVkIGxvbmcgb3JkaW5hbCA9IG1fbmV4dE9yZGluYWwrKzsKKyAgICBUaW1lck1hcDo6
QWRkUmVzdWx0IHJlc3VsdCA9IG1fbWFwLnNldChvcmRpbmFsLCB0aW1lcik7CisgICAgQVNTRVJU
X1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKKworICAgIExPRyhXZWJSZXBsYXks
ICIlLTIwcyBSZWdpc3RlcmluZyBhc3luYyB0aW1lciAlcC8lbHUuXG4iLCAiUmVwbGF5YWJsZVRp
bWVycyIsICh2b2lkKil0aGlzLCBvcmRpbmFsKTsKKyAgICByZXR1cm4gb3JkaW5hbDsKK30KKwor
Ym9vbCBSZXBsYXlhYmxlVGltZXJzOjpmaXJlVGltZXIodW5zaWduZWQgbG9uZyBvcmRpbmFsKQor
eworICAgIEFTU0VSVChvcmRpbmFsKTsKKworICAgIFRpbWVyTWFwOjppdGVyYXRvciByZXN1bHQg
PSBtX21hcC5maW5kKG9yZGluYWwpOworICAgIGlmIChyZXN1bHQgPT0gbV9tYXAuZW5kKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlc3VsdC0+dmFsdWUtPmZpcmVkKCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJfUkVQTEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxh
eWFibGVUaW1lcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2Y3ZmMxMWQwMmRiZjcyNjczNzgxYzQxYjc1YTNiNDI4MDA2MzgxOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlhYmxlVGltZXJzLmgK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBVbml2ZXJz
aXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUmVwbGF5YWJsZVRpbWVyc19oCisjZGVmaW5lIFJlcGxheWFibGVUaW1lcnNfaAorCisjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxh
eWFibGVUaW1lckJhc2U7CisKK2NsYXNzIFJlcGxheWFibGVUaW1lcnMgeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFJlcGxheWFibGVUaW1lcnMpOworcHVibGljOgorICAgIFJlcGxheWFibGVU
aW1lcnMoKTsKKworICAgIHVuc2lnbmVkIGxvbmcgcmVnaXN0ZXJUaW1lcihSZXBsYXlhYmxlVGlt
ZXJCYXNlKik7CisgICAgYm9vbCBmaXJlVGltZXIodW5zaWduZWQgbG9uZyBvcmRpbmFsKTsKK3By
aXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlcGxheWFibGVUaW1l
ckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX21hcDsKKyAgICB1bnNpZ25lZCBsb25n
IG1fbmV4dE9yZGluYWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX1JFUExBWSkKKworI2VuZGlmIC8vIFJlcGxheWFibGVUaW1lcnNfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKaW5kZXggNWNi
OWVmMTZhM2QwNjczNTk3MGEyOTZhZjM0M2NmOWU0NzQ4ZGY2Zi4uMjFkZjVmODEyYjFiMjRhYTAy
MTk5MmUyZDJmMzU5N2E5YjZmMWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2Vy
aWFsaXphdGlvbk1ldGhvZHMuY3BwCkBAIC0zMSw2ICszMSwxMCBAQAogI2lmIEVOQUJMRShXRUJf
UkVQTEFZKQogCiAjaW5jbHVkZSAiQWxsUmVwbGF5SW5wdXRzLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVwbGF5SW5wdXRUeXBlcy5o
IgpAQCAtNDgsNiArNTIsNTAgQEAgdXNpbmcgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW47CiB1c2lu
ZyBXZWJDb3JlOjpVUkw7CiB1c2luZyBXZWJDb3JlOjppbnB1dFR5cGVzOwogCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2ludCBmcmFtZUluZGV4RnJvbURvY3VtZW50KGNvbnN0IERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIEFTU0VSVChkb2N1bWVudC0+
ZnJhbWUoKSk7CisgICAgcmV0dXJuIGZyYW1lSW5kZXhGcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1l
KCkpOworfQorCitpbnQgZnJhbWVJbmRleEZyb21GcmFtZShjb25zdCBGcmFtZSogdGFyZ2V0RnJh
bWUpCit7CisgICAgQVNTRVJUKHRhcmdldEZyYW1lKTsKKworICAgIGludCBpbmRleCA9IDA7Cisg
ICAgY29uc3QgRnJhbWUqIG1haW5GcmFtZSA9ICZ0YXJnZXRGcmFtZS0+dHJlZSgpLnRvcCgpOwor
ICAgIGZvciAoY29uc3QgRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lOyBmcmFtZTsgaW5kZXgrKywg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtYWluRnJhbWUpKSB7CisgICAgICAg
IGlmIChmcmFtZSA9PSB0YXJnZXRGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAg
ICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRG9j
dW1lbnQqIGRvY3VtZW50RnJvbUZyYW1lSW5kZXgoUGFnZSogcGFnZSwgaW50IGZyYW1lSW5kZXgp
Cit7CisgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVGcm9tRnJhbWVJbmRleChwYWdlLCBmcmFtZUlu
ZGV4KTsKKyAgICByZXR1cm4gZnJhbWUgPyBmcmFtZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7Cit9
CisKK0ZyYW1lKiBmcmFtZUZyb21GcmFtZUluZGV4KFBhZ2UqIHBhZ2UsIGludCBmcmFtZUluZGV4
KQoreworICAgIEFTU0VSVChwYWdlKTsKKyAgICBBU1NFUlQoZnJhbWVJbmRleCA+PSAwKTsKKwor
ICAgIE1haW5GcmFtZSogbWFpbkZyYW1lID0gJnBhZ2UtPm1haW5GcmFtZSgpOworICAgIEZyYW1l
KiBmcmFtZSA9IG1haW5GcmFtZTsKKyAgICBpbnQgaWR4ID0gMDsKKyAgICBmb3IgKDsgaWR4IDwg
ZnJhbWVJbmRleCAmJiBmcmFtZTsgaWR4KyssIGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQobWFpbkZyYW1lKSkgeyB9CisgICAgcmV0dXJuIGZyYW1lOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKICNkZWZpbmUgSU1QT1JUX0ZST01fV0VCQ09SRV9OQU1FU1BBQ0UobmFt
ZSkgXAogdXNpbmcgV2ViQ29yZTo6bmFtZTsgXAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9T
ZXJpYWxpemF0aW9uTWV0aG9kcy5oCmluZGV4IDdhZmEyMzJiNjI2ZGEwZGE1MDQ0MTgxYWJmNTJm
OTUyN2Q5NzA1ZWIuLjIzMGMyMzk5NjJhNDk2MTk3NjJlNTc0NThmNzRkZWZlNDZjOTUxMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5oCkBAIC00Niw2
ICs0NiwxMiBAQCBjbGFzcyBVUkw7CiAjaWYgVVNFKEFQUEtJVCkKIHN0cnVjdCBLZXlwcmVzc0Nv
bW1hbmQ7CiAjZW5kaWYKKworaW50IGZyYW1lSW5kZXhGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1l
bnQqKTsKK2ludCBmcmFtZUluZGV4RnJvbUZyYW1lKGNvbnN0IEZyYW1lKik7CitEb2N1bWVudCog
ZG9jdW1lbnRGcm9tRnJhbWVJbmRleChQYWdlKiwgaW50IGZyYW1lSW5kZXgpOworRnJhbWUqIGZy
YW1lRnJvbUZyYW1lSW5kZXgoUGFnZSosIGludCBmcmFtZUluZGV4KTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAvLyBUZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMgbXVzdCBiZSBkZWZpbmVk
IGluIHRoZSBzYW1lIG5hbWVzcGFjZSBhcyB0aGUgdGVtcGxhdGUgZGVjbGFyYXRpb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24KaW5kZXggZTI0ZmQ5YmE0ODgwYzAyMzU2OTJlNzNh
Njg1NDE5YTRjNjljNjE5ZS4uNTc1OTY3ZDUwM2NlZDM1NTdiMDk4ZDQ5MzE0NmUxOGU1OWJkNzFk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29uCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgpAQCAtMTAxLDYgKzEwMSwxNSBA
QAogCiAgICAgImlucHV0cyI6IFsKICAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiQXN5
bmNUaW1lckZpcmVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIFJlcGxheWFibGVU
aW1lciBpbnN0YW5jZSBmaXJlZCB0aGF0IHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmll
ZCBmcmFtZS4iLAorICAgICAgICAgICAgInF1ZXVlIjogIkVWRU5UX0xPT1AiLAorICAgICAgICAg
ICAgIm1lbWJlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUluZGV4Iiwg
InR5cGUiOiAiaW50IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3JkaW5hbCIsICJ0
eXBlIjogInVuc2lnbmVkIGxvbmciIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgewogICAgICAgICAgICAgIm5hbWUiOiAiQmVnaW5TZWdtZW50U2VudGluZWwiLAogICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkEgc2VudGluZWwgaW5wdXQgdG8gc2lnbmFsIHRoZSBzdGFy
dCBvZiBhIHNlZ21lbnQuIiwKICAgICAgICAgICAgICJxdWV1ZSI6ICJFVkVOVF9MT09QIiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGU4ZDY5MmVhZTNmMTgxODk3ZGE1NWFmZWY2NDVlZDAwYzlhNTNk
NzQuLmY2MGJjNzdjOWJmM2NkYmRlYTQ2Mzc2YWI5Mjk0Y2NmMDExMWM3ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtNTUsNiArNTUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL2xpbmUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3JlbmRlcmluZy9zaGFwZXMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRlcmluZy9zdHlsZSIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vcmVwbGF5IgogICAgICIke1dFQkNPUkVfRElSfS9zdG9yYWdl
IgogICAgICIke1dFQkNPUkVfRElSfS9zdHlsZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vc3ZnIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBiYmJlNDZiYjRjNGJiYmZmOTY3Zjg5ZjFiZjRmYmEzNzlk
M2QzNDc5Li5jZDNlMzNiZGViYjAyZGIxZGI1Zjc1ODM5MWZjNWY4NmExYWY5OTk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dApAQCAtMTA2LDYgKzEwNiw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL2xpbmUiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3JlbmRlcmluZy9zaGFwZXMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRlcmlu
Zy9zdHlsZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcmVwbGF5IgogICAgICIke1dFQkNPUkVfRElS
fS9zdG9yYWdlIgogICAgICIke1dFQkNPUkVfRElSfS9zdHlsZSIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vc3ZnIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>