<?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>158905</bug_id>
          
          <creation_ts>2016-06-18 01:47:45 -0700</creation_ts>
          <short_desc>Use time literals in WebCore</short_desc>
          <delta_ts>2016-06-18 04:46:42 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203571</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-18 01:47:45 -0700</bug_when>
    <thetext>std::chrono::milliseconds(1) -&gt; 1ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203572</commentid>
    <comment_count>1</comment_count>
      <attachid>281612</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-18 01:52:03 -0700</bug_when>
    <thetext>Created attachment 281612
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203574</commentid>
    <comment_count>2</comment_count>
      <attachid>281614</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-18 02:56:25 -0700</bug_when>
    <thetext>Created attachment 281614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203576</commentid>
    <comment_count>3</comment_count>
      <attachid>281616</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-18 03:23:09 -0700</bug_when>
    <thetext>Created attachment 281616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203578</commentid>
    <comment_count>4</comment_count>
      <attachid>281617</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-18 03:53:09 -0700</bug_when>
    <thetext>Created attachment 281617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203579</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-18 04:46:42 -0700</bug_when>
    <thetext>https://trac.webkit.org/r202198</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281612</attachid>
            <date>2016-06-18 01:52:03 -0700</date>
            <delta_ts>2016-06-18 02:56:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>time-literals.patch</filename>
            <type>text/plain</type>
            <size>15968</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdGltZSBsaXRlcmFscyBp
biBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEpIC0+IDFtcyBldGMuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1MYXlv
dXREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZWxhcHNlZFRpbWUpOgorICAg
ICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVh
ZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dQYWludFJlY3QpOgorICAg
ICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUpOgorICAgICAgICAqIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZnJlc2huZXNzTGlmZXRpbWUpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VUaHJl
YWQ6OnRocmVhZEJvZHkpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6cmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Zm9udEZvckZhbWlseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9DYWNoZVZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUN1cnJlbnRB
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUZyZXNobmVzc0xpZmV0aW1lRm9ySFRUUEZh
bWlseSk6CisKIDIwMTYtMDYtMTcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIDppbmRldGVybWluYXRlIHBzZXVkby1jbGFzcyBzaG91bGQgbWF0Y2gg
cmFkaW9zIHdob3NlIGdyb3VwIGhhcyBubyBjaGVja2VkIHJhZGlvCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksMTMgKzI4NDksMTMgQEAgYm9vbCBEb2N1
bWVudDo6aXNMYXlvdXRUaW1lckFjdGl2ZSgpCiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERv
Y3VtZW50OjptaW5pbXVtTGF5b3V0RGVsYXkoKQogewogICAgIGlmIChtX292ZXJNaW5pbXVtTGF5
b3V0VGhyZXNob2xkKQotICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygw
KTsKKyAgICAgICAgcmV0dXJuIDBtczsKICAgICAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGVsYXBzZWQgPSBlbGFwc2VkVGltZSgpOworICAgIGF1dG8gZWxhcHNlZCA9IGVsYXBzZWRU
aW1lKCk7CiAgICAgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZCA9IGVsYXBzZWQgPiBzZXR0
aW5ncygpLT5sYXlvdXRJbnRlcnZhbCgpOwogCiAgICAgLy8gV2UnbGwgd2FudCB0byBzY2hlZHVs
ZSB0aGUgdGltZXIgdG8gZmlyZSBhdCB0aGUgbWluaW11bSBsYXlvdXQgdGhyZXNob2xkLgotICAg
IHJldHVybiBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDApLCBzZXR0aW5ncygp
LT5sYXlvdXRJbnRlcnZhbCgpIC0gZWxhcHNlZCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KDBtcywg
c2V0dGluZ3MoKS0+bGF5b3V0SW50ZXJ2YWwoKSAtIGVsYXBzZWQpOwogfQogCiBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIERvY3VtZW50OjplbGFwc2VkVGltZSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgYXV0byBwcm9n
cmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MCk7
CitzdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gNTBtczsK
IAogUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNyArNTA1
LDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KGNvbgogCiAgICAgSW50
UmVjdCByb290UmVjdCA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290
VmlldyhlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKIAotICAgIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgcmVtb3ZlRGVsYXkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDI1MCk7
CisgICAgY29uc3QgYXV0byByZW1vdmVEZWxheSA9IDI1MG1zOwogCiAgICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCByZW1vdmVUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCkgKyByZW1vdmVEZWxheTsKICAgICBtX3BhaW50UmVjdHMuYXBwZW5kKFRp
bWVSZWN0UGFpcihyZW1vdmVUaW1lLCByb290UmVjdCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNw
cAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIHZhbHVlcyBhcmUgYXQgdGhlIGRpc2Ny
ZXRpb24gb2YgdGhlIHVzZXIgYWdlbnQuCi1zdGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxp
Z2h0Q2FjaGVUaW1lb3V0ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoNSk7Ci1zdGF0aWMgY29uc3Qg
YXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg2MDAp
OyAvLyBTaG91bGQgYmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5n
IGEgcG9pc29uZWQgY2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCitz
dGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0ID0gNXM7CitzdGF0
aWMgY29uc3QgYXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSA2MDBzOyAvLyBTaG91bGQg
YmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5nIGEgcG9pc29uZWQg
Y2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCiAKIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUoKQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHJldmlz
aW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBs
b2FkU3RhbGxlZEhlYXJ0YmUKIC8vIEhvdyBtYW55IGJ5dGVzIGFyZSByZXF1aXJlZCBiZXR3ZWVu
IGhlYXJ0YmVhdHMgdG8gY29uc2lkZXIgaXQgcHJvZ3Jlc3MuCiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbWludW11bUJ5dGVzUGVySGVhcnRiZWF0Rm9yUHJvZ3Jlc3MgPSAxMDI0OwogCi1zdGF0aWMg
Y29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBwcm9ncmVzc05vdGlmaWNhdGlvblRpbWVJ
bnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKTsKK3N0YXRpYyBjb25zdCBh
dXRvIHByb2dyZXNzTm90aWZpY2F0aW9uVGltZUludGVydmFsID0gMjAwbXM7CiAKIHN0cnVjdCBQ
cm9ncmVzc0l0ZW0gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzSXRlbSk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUHJvZ3Jlc3NU
cmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnIKICAgICAgICAgYm9vbCBpc01haW5GcmFtZSA9ICFt
X29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZS0+dHJlZSgpLnBhcmVudCgpOwogICAgICAgICBhdXRv
IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jazo6bm93KCkgLSBtX21haW5Mb2FkQ29tcGxldGlvblRpbWU7CiAKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGF1dG8gc3ViZnJhbWVQYXJ0T2ZNYWluTG9hZFRocmVzaG9sZCA9IHN0ZDo6Y2hyb25v
OjpzZWNvbmRzKDEpOworICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJmcmFtZVBhcnRPZk1h
aW5Mb2FkVGhyZXNob2xkID0gMXM7CiAgICAgICAgIG1faXNNYWluTG9hZCA9IGlzTWFpbkZyYW1l
IHx8IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlIDwgc3ViZnJhbWVQYXJ0T2ZNYWlu
TG9hZFRocmVzaG9sZDsKIAogICAgICAgICBtX2NsaWVudC5wcm9ncmVzc1N0YXJ0ZWQoKm1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzkyLDcgKzM5Miw3IEBAIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgQ2FjaGVkUmVzb3VyY2UK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IGNhY2hlIHN1YnJlc291cmNlcyBl
aXRoZXIsIGJ1dCB3aGVuIHdlIHRyaWVkIHRoaXMKICAgICAgICAgICAgIC8vIGl0IGNhdXNlZCBw
ZXJmb3JtYW5jZSBhbmQgZmxha2luZXNzIGlzc3VlcyBpbiBvdXIgdGVzdCBpbmZyYXN0cnVjdHVy
ZS4KICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTWFpblJlc291cmNlIHx8IFNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRBbHdheXNSZXZhbGlkYXRlVVJMU2NoZW1lKHByb3RvY29sKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczo6emVybygpOworICAgICAg
ICAgICAgICAgIHJldHVybiAwdXM7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kczo6bWF4KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw3ICsyMzksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSA9IDA7CiAjZW5kaWYKIAotICAg
IHZpcnR1YWwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgp
IHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKTsgfTsKKyAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSB7IHJl
dHVybiAwbXM7IH07CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1heEludGVydmFsRm9y
VXNlckdlc3R1cmVGb3J3YXJkaW5nID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMDAwKTsg
Ly8gT25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgotc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyA9
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAwMCk7IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IGF1dG8gbWF4SW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8vIE9uZSBzZWNvbmQgbWF0Y2hl
cyBHZWNrby4KK3N0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFi
bGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5IGRldGVybWluZWQgdG8gbWF4
aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5lc3RpbmdMZXZl
bCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTQwNiw3ICs0MDYsNyBAQCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiAgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRp
bWVyTmVzdGluZ0xldmVsKTsKIAotICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOworICAgIGF1dG8gaW50
ZXJ2YWwgPSBzdGQ6Om1heCgxbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAKICAgICAvLyBPbmx5
IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBpZiAobV9uZXN0aW5n
TGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiBPcHRpb25hbDxzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiB7CiAgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKSkKKyAgICBpZiAoYWxpZ25t
ZW50SW50ZXJ2YWwgPT0gMG1zKQogICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICAKICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0aW9uID0gcmFuZG9tTnVtYmVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDkgQEAg
Y2xhc3MgRE9NVGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZAogcHVibGljOgogICAgIHZp
cnR1YWwgfkRPTVRpbWVyKCk7CiAKLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyg0KTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlZmF1bHRB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onpl
cm8oKTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGhpZGRlblBhZ2VB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAw
MCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0TWluaW11
bUludGVydmFsKCkgeyByZXR1cm4gNG1zOyB9CisgICAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkgeyByZXR1cm4gMG1zOyB9CisgICAg
c3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaGlkZGVuUGFnZUFsaWdubWVudEludGVy
dmFsKCkgeyByZXR1cm4gMTAwMG1zOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRpbWVyIG93
bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQKICAgICAv
LyBhbmQgcmV0dXJucyBpdHMgSWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShy
ZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyMjIsOSArMjIyMiw5IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxP
ZmZzZXRDaGFuZ2VkVmlhUGwKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIG9sZFBvc2l0aW9uLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYg
bmV3UG9zaXRpb24pCiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwotICAgIGF1
dG8gdGhyb3R0bGluZ0RlbGF5ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV2ZW50
VGhyb3R0bGluZ0RlbGF5KCkgOiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7Cisg
ICAgYXV0byB0aHJvdHRsaW5nRGVsYXkgPSBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSA6IDBtczsKIAotICAgIGlmICh0aHJvdHRsaW5nRGVsYXkg
PT0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVybygpKSB7CisgICAgaWYgKHRocm90dGxp
bmdEZWxheSA9PSAwbXMpIHsKICAgICAgICAgbV9kZWxheWVkU2Nyb2xsRXZlbnRUaW1lci5zdG9w
KCk7CiAgICAgICAgIHNlbmRTY3JvbGxFdmVudCgpOwogICAgIH0gZWxzZSBpZiAoIW1fZGVsYXll
ZFNjcm9sbEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5
LDggKzExOSw4IEBAIE5PX1JFVFVSTiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmUKICAg
ICAgICAgcGxhdGZvcm1UaHJlYWRCb2R5KG1fdm0sIGRhdGEpOwogICAgICAgICBub3RpZnlPYnNl
cnZlcnMoV1RGTW92ZShkYXRhKSk7CiAKLSAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hy
b25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQpOwotICAgICAgICBhdXRvIGRpZmZlcmVuY2Ug
PSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCkgLSBkdXJhdGlvbjsKKyAgICAgICAgYXV0
byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQ7Cisg
ICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMG1zIC0gZHVyYXRpb247CiAgICAgICAgIHN0ZDo6
dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihkaWZmZXJlbmNlKTsKICAgICB9CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXCiAvLyBUaGlzIGFtb3VudCBvZiB0
aW1lIG11c3QgaGF2ZSBlbGFwc2VkIGJlZm9yZSB3ZSB3aWxsIGV2ZW4gY29uc2lkZXIgc2NoZWR1
bGluZyBhIGxheW91dCB3aXRob3V0IGEgZGVsYXkuCiAvLyBGSVhNRTogRm9yIGZhc3RlciBtYWNo
aW5lcyB0aGlzIHZhbHVlIGNhbiByZWFsbHkgYmUgbG93ZXJlZCB0byAyMDAuIDI1MCBpcyBhZGVx
dWF0ZSwgYnV0IGEgbGl0dGxlIGhpZ2gKIC8vIGZvciBkdWFsIEc1cy4gOikKLXN0YXRpYyBjb25z
dCBhdXRvIGxheW91dFNjaGVkdWxlVGhyZXNob2xkID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cygyNTApOworc3RhdGljIGNvbnN0IGF1dG8gbGF5b3V0U2NoZWR1bGVUaHJlc2hvbGQgPSAyNTBt
czsKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UobnVsbHB0
cikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDM2
LDcgKzQzNiw3IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6bW91c2VJc08KIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6cmVtYWlu
aW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bihIaWdobGlnaHQqIGhpZ2hsaWdodCkg
Y29uc3QKIHsKICAgICBpZiAoIWhpZ2hsaWdodCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6Onplcm8oKTsKKyAgICAgICAgcmV0dXJuIDBtczsKIAogICAgIGF1dG8g
bWluaW11bVRpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24gPSAyMDBtczsKICAgICBQYWdl
KiBwYWdlID0gbV9tYWluRnJhbWUucGFnZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMjcsNyArMzI3LDcgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldFVuZGVyTWVtb3J5UHJl
c3N1cgogUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6Zm9udEZvckZhbWlseShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJp
YW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBib29sIGNoZWNraW5nQWx0ZXJu
YXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8o
KSk7CisgICAgICAgIG1fcHVyZ2VUaW1lci5zdGFydE9uZVNob3QoMG1zKTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHksIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlVmFyaWFudFNl
dHRpbmdzLCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpOwogICAgIGlmICghcGxhdGZvcm1EYXRhKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsOCArMTAz
LDggQEAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBjb21wdXRlQ3VycmVudAogICAgIC8vIGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzQjc2VjdGlvbi00LjIuMwogICAgIC8vIE5v
IGNvbXBlbnNhdGlvbiBmb3IgbGF0ZW5jeSBhcyB0aGF0IGlzIG5vdCB0ZXJyaWJseSBpbXBvcnRh
bnQgaW4gcHJhY3RpY2UuCiAgICAgYXV0byBkYXRlVmFsdWUgPSByZXNwb25zZS5kYXRlKCk7Ci0g
ICAgYXV0byBhcHBhcmVudEFnZSA9IGRhdGVWYWx1ZSA/IHN0ZDo6bWF4KG1pY3Jvc2Vjb25kczo6
emVybygpLCBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4ocmVzcG9uc2VUaW1lIC0gZGF0ZVZh
bHVlLnZhbHVlKCkpKSA6IG1pY3Jvc2Vjb25kczo6emVybygpOwotICAgIGF1dG8gYWdlVmFsdWUg
PSByZXNwb25zZS5hZ2UoKS52YWx1ZU9yKG1pY3Jvc2Vjb25kczo6emVybygpKTsKKyAgICBhdXRv
IGFwcGFyZW50QWdlID0gZGF0ZVZhbHVlID8gc3RkOjptYXgoMHVzLCBkdXJhdGlvbl9jYXN0PG1p
Y3Jvc2Vjb25kcz4ocmVzcG9uc2VUaW1lIC0gZGF0ZVZhbHVlLnZhbHVlKCkpKSA6IDB1czsKKyAg
ICBhdXRvIGFnZVZhbHVlID0gcmVzcG9uc2UuYWdlKCkudmFsdWVPcigwdXMpOwogICAgIGF1dG8g
Y29ycmVjdGVkSW5pdGlhbEFnZSA9IHN0ZDo6bWF4KGFwcGFyZW50QWdlLCBhZ2VWYWx1ZSk7CiAg
ICAgYXV0byByZXNpZGVudFRpbWUgPSBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4oc3lzdGVt
X2Nsb2NrOjpub3coKSAtIHJlc3BvbnNlVGltZSk7CiAgICAgcmV0dXJuIGNvcnJlY3RlZEluaXRp
YWxBZ2UgKyByZXNpZGVudFRpbWU7CkBAIC0xMzEsMTQgKzEzMSwxNCBAQCBzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzIGNvbXB1dGVGcmVzaG5lCiAgICAgY2FzZSAzMDE6IC8vIE1vdmVkIFBlcm1h
bmVudGx5CiAgICAgY2FzZSA0MTA6IC8vIEdvbmUKICAgICAgICAgLy8gVGhlc2UgYXJlIHNlbWFu
dGljYWxseSBwZXJtYW5lbnQgYW5kIHNvIGdldCBsb25nIGltcGxpY2l0IGxpZmV0aW1lLgotICAg
ICAgICByZXR1cm4gaG91cnMoMzY1ICogMjQpOworICAgICAgICByZXR1cm4gMzY1ICogMjRoOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIEhldXJpc3RpYyBGcmVzaG5lc3M6CiAgICAgICAgIC8v
IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzQjc2VjdGlvbi00LjIuMgogICAgICAg
ICBhdXRvIGxhc3RNb2RpZmllZCA9IHJlc3BvbnNlLmxhc3RNb2RpZmllZCgpOwogICAgICAgICBp
ZiAobGFzdE1vZGlmaWVkKQogICAgICAgICAgICAgcmV0dXJuIGR1cmF0aW9uX2Nhc3Q8bWljcm9z
ZWNvbmRzPigoZGF0ZVZhbHVlIC0gbGFzdE1vZGlmaWVkLnZhbHVlKCkpICogMC4xKTsKLSAgICAg
ICAgcmV0dXJuIG1pY3Jvc2Vjb25kczo6emVybygpOworICAgICAgICByZXR1cm4gMHVzOwogICAg
IH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281614</attachid>
            <date>2016-06-18 02:56:25 -0700</date>
            <delta_ts>2016-06-18 03:23:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>time-literals-2.patch</filename>
            <type>text/plain</type>
            <size>16793</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdGltZSBsaXRlcmFscyBp
biBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEpIC0+IDFtcyBldGMuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1MYXlv
dXREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZWxhcHNlZFRpbWUpOgorICAg
ICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVh
ZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dQYWludFJlY3QpOgorICAg
ICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUpOgorICAgICAgICAqIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZnJlc2huZXNzTGlmZXRpbWUpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VUaHJl
YWQ6OnRocmVhZEJvZHkpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6cmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Zm9udEZvckZhbWlseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9DYWNoZVZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUN1cnJlbnRB
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUZyZXNobmVzc0xpZmV0aW1lRm9ySFRUUEZh
bWlseSk6CisKIDIwMTYtMDYtMTcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIDppbmRldGVybWluYXRlIHBzZXVkby1jbGFzcyBzaG91bGQgbWF0Y2gg
cmFkaW9zIHdob3NlIGdyb3VwIGhhcyBubyBjaGVja2VkIHJhZGlvCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksMTMgKzI4NDksMTMgQEAgYm9vbCBEb2N1
bWVudDo6aXNMYXlvdXRUaW1lckFjdGl2ZSgpCiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERv
Y3VtZW50OjptaW5pbXVtTGF5b3V0RGVsYXkoKQogewogICAgIGlmIChtX292ZXJNaW5pbXVtTGF5
b3V0VGhyZXNob2xkKQotICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygw
KTsKKyAgICAgICAgcmV0dXJuIDBtczsKICAgICAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGVsYXBzZWQgPSBlbGFwc2VkVGltZSgpOworICAgIGF1dG8gZWxhcHNlZCA9IGVsYXBzZWRU
aW1lKCk7CiAgICAgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZCA9IGVsYXBzZWQgPiBzZXR0
aW5ncygpLT5sYXlvdXRJbnRlcnZhbCgpOwogCiAgICAgLy8gV2UnbGwgd2FudCB0byBzY2hlZHVs
ZSB0aGUgdGltZXIgdG8gZmlyZSBhdCB0aGUgbWluaW11bSBsYXlvdXQgdGhyZXNob2xkLgotICAg
IHJldHVybiBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDApLCBzZXR0aW5ncygp
LT5sYXlvdXRJbnRlcnZhbCgpIC0gZWxhcHNlZCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KDBtcywg
c2V0dGluZ3MoKS0+bGF5b3V0SW50ZXJ2YWwoKSAtIGVsYXBzZWQpOwogfQogCiBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIERvY3VtZW50OjplbGFwc2VkVGltZSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgYXV0byBwcm9n
cmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MCk7
CitzdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gNTBtczsK
IAogUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNyArNTA1
LDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KGNvbgogCiAgICAgSW50
UmVjdCByb290UmVjdCA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290
VmlldyhlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKIAotICAgIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgcmVtb3ZlRGVsYXkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDI1MCk7
CisgICAgY29uc3QgYXV0byByZW1vdmVEZWxheSA9IDI1MG1zOwogCiAgICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCByZW1vdmVUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCkgKyByZW1vdmVEZWxheTsKICAgICBtX3BhaW50UmVjdHMuYXBwZW5kKFRp
bWVSZWN0UGFpcihyZW1vdmVUaW1lLCByb290UmVjdCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNw
cAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIHZhbHVlcyBhcmUgYXQgdGhlIGRpc2Ny
ZXRpb24gb2YgdGhlIHVzZXIgYWdlbnQuCi1zdGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxp
Z2h0Q2FjaGVUaW1lb3V0ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoNSk7Ci1zdGF0aWMgY29uc3Qg
YXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg2MDAp
OyAvLyBTaG91bGQgYmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5n
IGEgcG9pc29uZWQgY2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCitz
dGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0ID0gNXM7CitzdGF0
aWMgY29uc3QgYXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSA2MDBzOyAvLyBTaG91bGQg
YmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5nIGEgcG9pc29uZWQg
Y2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCiAKIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUoKQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHJldmlz
aW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBs
b2FkU3RhbGxlZEhlYXJ0YmUKIC8vIEhvdyBtYW55IGJ5dGVzIGFyZSByZXF1aXJlZCBiZXR3ZWVu
IGhlYXJ0YmVhdHMgdG8gY29uc2lkZXIgaXQgcHJvZ3Jlc3MuCiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbWludW11bUJ5dGVzUGVySGVhcnRiZWF0Rm9yUHJvZ3Jlc3MgPSAxMDI0OwogCi1zdGF0aWMg
Y29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBwcm9ncmVzc05vdGlmaWNhdGlvblRpbWVJ
bnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKTsKK3N0YXRpYyBjb25zdCBh
dXRvIHByb2dyZXNzTm90aWZpY2F0aW9uVGltZUludGVydmFsID0gMjAwbXM7CiAKIHN0cnVjdCBQ
cm9ncmVzc0l0ZW0gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzSXRlbSk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUHJvZ3Jlc3NU
cmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnIKICAgICAgICAgYm9vbCBpc01haW5GcmFtZSA9ICFt
X29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZS0+dHJlZSgpLnBhcmVudCgpOwogICAgICAgICBhdXRv
IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jazo6bm93KCkgLSBtX21haW5Mb2FkQ29tcGxldGlvblRpbWU7CiAKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGF1dG8gc3ViZnJhbWVQYXJ0T2ZNYWluTG9hZFRocmVzaG9sZCA9IHN0ZDo6Y2hyb25v
OjpzZWNvbmRzKDEpOworICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJmcmFtZVBhcnRPZk1h
aW5Mb2FkVGhyZXNob2xkID0gMXM7CiAgICAgICAgIG1faXNNYWluTG9hZCA9IGlzTWFpbkZyYW1l
IHx8IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlIDwgc3ViZnJhbWVQYXJ0T2ZNYWlu
TG9hZFRocmVzaG9sZDsKIAogICAgICAgICBtX2NsaWVudC5wcm9ncmVzc1N0YXJ0ZWQoKm1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzkyLDcgKzM5Miw3IEBAIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgQ2FjaGVkUmVzb3VyY2UK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IGNhY2hlIHN1YnJlc291cmNlcyBl
aXRoZXIsIGJ1dCB3aGVuIHdlIHRyaWVkIHRoaXMKICAgICAgICAgICAgIC8vIGl0IGNhdXNlZCBw
ZXJmb3JtYW5jZSBhbmQgZmxha2luZXNzIGlzc3VlcyBpbiBvdXIgdGVzdCBpbmZyYXN0cnVjdHVy
ZS4KICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTWFpblJlc291cmNlIHx8IFNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRBbHdheXNSZXZhbGlkYXRlVVJMU2NoZW1lKHByb3RvY29sKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczo6emVybygpOworICAgICAg
ICAgICAgICAgIHJldHVybiAwdXM7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kczo6bWF4KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw3ICsyMzksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSA9IDA7CiAjZW5kaWYKIAotICAg
IHZpcnR1YWwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgp
IHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKTsgfTsKKyAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSB7IHJl
dHVybiAwbXM7IH07CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1heEludGVydmFsRm9y
VXNlckdlc3R1cmVGb3J3YXJkaW5nID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMDAwKTsg
Ly8gT25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgotc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyA9
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAwMCk7IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IGF1dG8gbWF4SW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8vIE9uZSBzZWNvbmQgbWF0Y2hl
cyBHZWNrby4KK3N0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFi
bGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5IGRldGVybWluZWQgdG8gbWF4
aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5lc3RpbmdMZXZl
bCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTQwNiw3ICs0MDYsNyBAQCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiAgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRp
bWVyTmVzdGluZ0xldmVsKTsKIAotICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOworICAgIGF1dG8gaW50
ZXJ2YWwgPSBzdGQ6Om1heCgxbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAKICAgICAvLyBPbmx5
IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBpZiAobV9uZXN0aW5n
TGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiBPcHRpb25hbDxzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiB7CiAgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKSkKKyAgICBpZiAoYWxpZ25t
ZW50SW50ZXJ2YWwgPT0gMG1zKQogICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICAKICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0aW9uID0gcmFuZG9tTnVtYmVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDkgQEAg
Y2xhc3MgRE9NVGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZAogcHVibGljOgogICAgIHZp
cnR1YWwgfkRPTVRpbWVyKCk7CiAKLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyg0KTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlZmF1bHRB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onpl
cm8oKTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGhpZGRlblBhZ2VB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAw
MCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0TWluaW11
bUludGVydmFsKCkgeyByZXR1cm4gNG1zOyB9CisgICAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkgeyByZXR1cm4gMG1zOyB9CisgICAg
c3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaGlkZGVuUGFnZUFsaWdubWVudEludGVy
dmFsKCkgeyByZXR1cm4gMTAwMG1zOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRpbWVyIG93
bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQKICAgICAv
LyBhbmQgcmV0dXJucyBpdHMgSWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShy
ZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyMjIsOSArMjIyMiw5IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxP
ZmZzZXRDaGFuZ2VkVmlhUGwKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIG9sZFBvc2l0aW9uLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYg
bmV3UG9zaXRpb24pCiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwotICAgIGF1
dG8gdGhyb3R0bGluZ0RlbGF5ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV2ZW50
VGhyb3R0bGluZ0RlbGF5KCkgOiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7Cisg
ICAgYXV0byB0aHJvdHRsaW5nRGVsYXkgPSBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSA6IDBtczsKIAotICAgIGlmICh0aHJvdHRsaW5nRGVsYXkg
PT0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVybygpKSB7CisgICAgaWYgKHRocm90dGxp
bmdEZWxheSA9PSAwbXMpIHsKICAgICAgICAgbV9kZWxheWVkU2Nyb2xsRXZlbnRUaW1lci5zdG9w
KCk7CiAgICAgICAgIHNlbmRTY3JvbGxFdmVudCgpOwogICAgIH0gZWxzZSBpZiAoIW1fZGVsYXll
ZFNjcm9sbEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5
LDggKzExOSw4IEBAIE5PX1JFVFVSTiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmUKICAg
ICAgICAgcGxhdGZvcm1UaHJlYWRCb2R5KG1fdm0sIGRhdGEpOwogICAgICAgICBub3RpZnlPYnNl
cnZlcnMoV1RGTW92ZShkYXRhKSk7CiAKLSAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hy
b25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQpOwotICAgICAgICBhdXRvIGRpZmZlcmVuY2Ug
PSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCkgLSBkdXJhdGlvbjsKKyAgICAgICAgYXV0
byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQ7Cisg
ICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMG1zIC0gZHVyYXRpb247CiAgICAgICAgIHN0ZDo6
dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihkaWZmZXJlbmNlKTsKICAgICB9CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXCiAvLyBUaGlzIGFtb3VudCBvZiB0
aW1lIG11c3QgaGF2ZSBlbGFwc2VkIGJlZm9yZSB3ZSB3aWxsIGV2ZW4gY29uc2lkZXIgc2NoZWR1
bGluZyBhIGxheW91dCB3aXRob3V0IGEgZGVsYXkuCiAvLyBGSVhNRTogRm9yIGZhc3RlciBtYWNo
aW5lcyB0aGlzIHZhbHVlIGNhbiByZWFsbHkgYmUgbG93ZXJlZCB0byAyMDAuIDI1MCBpcyBhZGVx
dWF0ZSwgYnV0IGEgbGl0dGxlIGhpZ2gKIC8vIGZvciBkdWFsIEc1cy4gOikKLXN0YXRpYyBjb25z
dCBhdXRvIGxheW91dFNjaGVkdWxlVGhyZXNob2xkID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cygyNTApOworc3RhdGljIGNvbnN0IGF1dG8gbGF5b3V0U2NoZWR1bGVUaHJlc2hvbGQgPSAyNTBt
czsKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UobnVsbHB0
cikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDM2
LDcgKzQzNiw3IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6bW91c2VJc08KIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6cmVtYWlu
aW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bihIaWdobGlnaHQqIGhpZ2hsaWdodCkg
Y29uc3QKIHsKICAgICBpZiAoIWhpZ2hsaWdodCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6Onplcm8oKTsKKyAgICAgICAgcmV0dXJuIDBtczsKIAogICAgIGF1dG8g
bWluaW11bVRpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24gPSAyMDBtczsKICAgICBQYWdl
KiBwYWdlID0gbV9tYWluRnJhbWUucGFnZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMjcsNyArMzI3LDcgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldFVuZGVyTWVtb3J5UHJl
c3N1cgogUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6Zm9udEZvckZhbWlseShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJp
YW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBib29sIGNoZWNraW5nQWx0ZXJu
YXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8o
KSk7CisgICAgICAgIG1fcHVyZ2VUaW1lci5zdGFydE9uZVNob3QoMG1zKTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHksIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlVmFyaWFudFNl
dHRpbmdzLCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpOwogICAgIGlmICghcGxhdGZvcm1EYXRhKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTAgKzEw
MywxMCBAQCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGNvbXB1dGVDdXJyZW50CiAgICAgLy8g
aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzNCNzZWN0aW9uLTQuMi4zCiAgICAgLy8g
Tm8gY29tcGVuc2F0aW9uIGZvciBsYXRlbmN5IGFzIHRoYXQgaXMgbm90IHRlcnJpYmx5IGltcG9y
dGFudCBpbiBwcmFjdGljZS4KICAgICBhdXRvIGRhdGVWYWx1ZSA9IHJlc3BvbnNlLmRhdGUoKTsK
LSAgICBhdXRvIGFwcGFyZW50QWdlID0gZGF0ZVZhbHVlID8gc3RkOjptYXgobWljcm9zZWNvbmRz
Ojp6ZXJvKCksIGR1cmF0aW9uX2Nhc3Q8bWljcm9zZWNvbmRzPihyZXNwb25zZVRpbWUgLSBkYXRl
VmFsdWUudmFsdWUoKSkpIDogbWljcm9zZWNvbmRzOjp6ZXJvKCk7Ci0gICAgYXV0byBhZ2VWYWx1
ZSA9IHJlc3BvbnNlLmFnZSgpLnZhbHVlT3IobWljcm9zZWNvbmRzOjp6ZXJvKCkpOworICAgIGF1
dG8gYXBwYXJlbnRBZ2UgPSBkYXRlVmFsdWUgPyBzdGQ6Om1heCgwdXMsIGR1cmF0aW9uX2Nhc3Q8
bWljcm9zZWNvbmRzPihyZXNwb25zZVRpbWUgLSAqZGF0ZVZhbHVlKSkgOiAwdXM7CisgICAgYXV0
byBhZ2VWYWx1ZSA9IHJlc3BvbnNlLmFnZSgpLnZhbHVlT3IoMHVzKTsKICAgICBhdXRvIGNvcnJl
Y3RlZEluaXRpYWxBZ2UgPSBzdGQ6Om1heChhcHBhcmVudEFnZSwgYWdlVmFsdWUpOwotICAgIGF1
dG8gcmVzaWRlbnRUaW1lID0gZHVyYXRpb25fY2FzdDxtaWNyb3NlY29uZHM+KHN5c3RlbV9jbG9j
azo6bm93KCkgLSByZXNwb25zZVRpbWUpOworICAgIGF1dG8gcmVzaWRlbnRUaW1lID0gc3lzdGVt
X2Nsb2NrOjpub3coKSAtIHJlc3BvbnNlVGltZTsKICAgICByZXR1cm4gY29ycmVjdGVkSW5pdGlh
bEFnZSArIHJlc2lkZW50VGltZTsKIH0KIApAQCAtMTE5LDI2ICsxMTksMjUgQEAgc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcyBjb21wdXRlRnJlc2huZQogICAgIC8vIGh0dHA6Ly90b29scy5pZXRm
Lm9yZy9odG1sL3JmYzcyMzQjc2VjdGlvbi00LjIuMQogICAgIGF1dG8gbWF4QWdlID0gcmVzcG9u
c2UuY2FjaGVDb250cm9sTWF4QWdlKCk7CiAgICAgaWYgKG1heEFnZSkKLSAgICAgICAgcmV0dXJu
IG1heEFnZS52YWx1ZSgpOwotICAgIGF1dG8gZXhwaXJlcyA9IHJlc3BvbnNlLmV4cGlyZXMoKTsK
KyAgICAgICAgcmV0dXJuICptYXhBZ2U7CisKICAgICBhdXRvIGRhdGUgPSByZXNwb25zZS5kYXRl
KCk7Ci0gICAgYXV0byBkYXRlVmFsdWUgPSBkYXRlID8gZGF0ZS52YWx1ZSgpIDogcmVzcG9uc2VU
aW1lOwotICAgIGlmIChleHBpcmVzKQotICAgICAgICByZXR1cm4gZHVyYXRpb25fY2FzdDxtaWNy
b3NlY29uZHM+KGV4cGlyZXMudmFsdWUoKSAtIGRhdGVWYWx1ZSk7CisgICAgYXV0byBlZmZlY3Rp
dmVEYXRlID0gZGF0ZS52YWx1ZU9yKHJlc3BvbnNlVGltZSk7CisgICAgaWYgKGF1dG8gZXhwaXJl
cyA9IHJlc3BvbnNlLmV4cGlyZXMoKSkKKyAgICAgICAgcmV0dXJuICpleHBpcmVzIC0gZWZmZWN0
aXZlRGF0ZTsKIAogICAgIC8vIEltcGxpY2l0IGxpZmV0aW1lLgogICAgIHN3aXRjaCAocmVzcG9u
c2UuaHR0cFN0YXR1c0NvZGUoKSkgewogICAgIGNhc2UgMzAxOiAvLyBNb3ZlZCBQZXJtYW5lbnRs
eQogICAgIGNhc2UgNDEwOiAvLyBHb25lCiAgICAgICAgIC8vIFRoZXNlIGFyZSBzZW1hbnRpY2Fs
bHkgcGVybWFuZW50IGFuZCBzbyBnZXQgbG9uZyBpbXBsaWNpdCBsaWZldGltZS4KLSAgICAgICAg
cmV0dXJuIGhvdXJzKDM2NSAqIDI0KTsKKyAgICAgICAgcmV0dXJuIDM2NSAqIDI0aDsKICAgICBk
ZWZhdWx0OgogICAgICAgICAvLyBIZXVyaXN0aWMgRnJlc2huZXNzOgogICAgICAgICAvLyBodHRw
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjM0I3NlY3Rpb24tNC4yLjIKLSAgICAgICAgYXV0
byBsYXN0TW9kaWZpZWQgPSByZXNwb25zZS5sYXN0TW9kaWZpZWQoKTsKLSAgICAgICAgaWYgKGxh
c3RNb2RpZmllZCkKLSAgICAgICAgICAgIHJldHVybiBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25k
cz4oKGRhdGVWYWx1ZSAtIGxhc3RNb2RpZmllZC52YWx1ZSgpKSAqIDAuMSk7Ci0gICAgICAgIHJl
dHVybiBtaWNyb3NlY29uZHM6Onplcm8oKTsKKyAgICAgICAgaWYgKGF1dG8gbGFzdE1vZGlmaWVk
ID0gcmVzcG9uc2UubGFzdE1vZGlmaWVkKCkpCisgICAgICAgICAgICByZXR1cm4gZHVyYXRpb25f
Y2FzdDxtaWNyb3NlY29uZHM+KChlZmZlY3RpdmVEYXRlIC0gKmxhc3RNb2RpZmllZCkgKiAwLjEp
OworICAgICAgICByZXR1cm4gMHVzOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281616</attachid>
            <date>2016-06-18 03:23:09 -0700</date>
            <delta_ts>2016-06-18 03:53:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>time-literals-3.patch</filename>
            <type>text/plain</type>
            <size>16725</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdGltZSBsaXRlcmFscyBp
biBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEpIC0+IDFtcyBldGMuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1MYXlv
dXREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZWxhcHNlZFRpbWUpOgorICAg
ICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVh
ZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dQYWludFJlY3QpOgorICAg
ICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUpOgorICAgICAgICAqIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZnJlc2huZXNzTGlmZXRpbWUpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VUaHJl
YWQ6OnRocmVhZEJvZHkpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6cmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Zm9udEZvckZhbWlseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9DYWNoZVZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUN1cnJlbnRB
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUZyZXNobmVzc0xpZmV0aW1lRm9ySFRUUEZh
bWlseSk6CisKIDIwMTYtMDYtMTcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIDppbmRldGVybWluYXRlIHBzZXVkby1jbGFzcyBzaG91bGQgbWF0Y2gg
cmFkaW9zIHdob3NlIGdyb3VwIGhhcyBubyBjaGVja2VkIHJhZGlvCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksMTMgKzI4NDksMTMgQEAgYm9vbCBEb2N1
bWVudDo6aXNMYXlvdXRUaW1lckFjdGl2ZSgpCiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERv
Y3VtZW50OjptaW5pbXVtTGF5b3V0RGVsYXkoKQogewogICAgIGlmIChtX292ZXJNaW5pbXVtTGF5
b3V0VGhyZXNob2xkKQotICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygw
KTsKKyAgICAgICAgcmV0dXJuIDBtczsKICAgICAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGVsYXBzZWQgPSBlbGFwc2VkVGltZSgpOworICAgIGF1dG8gZWxhcHNlZCA9IGVsYXBzZWRU
aW1lKCk7CiAgICAgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZCA9IGVsYXBzZWQgPiBzZXR0
aW5ncygpLT5sYXlvdXRJbnRlcnZhbCgpOwogCiAgICAgLy8gV2UnbGwgd2FudCB0byBzY2hlZHVs
ZSB0aGUgdGltZXIgdG8gZmlyZSBhdCB0aGUgbWluaW11bSBsYXlvdXQgdGhyZXNob2xkLgotICAg
IHJldHVybiBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDApLCBzZXR0aW5ncygp
LT5sYXlvdXRJbnRlcnZhbCgpIC0gZWxhcHNlZCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KDBtcywg
c2V0dGluZ3MoKS0+bGF5b3V0SW50ZXJ2YWwoKSAtIGVsYXBzZWQpOwogfQogCiBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIERvY3VtZW50OjplbGFwc2VkVGltZSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgYXV0byBwcm9n
cmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MCk7
CitzdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gNTBtczsK
IAogUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNyArNTA1
LDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KGNvbgogCiAgICAgSW50
UmVjdCByb290UmVjdCA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290
VmlldyhlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKIAotICAgIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgcmVtb3ZlRGVsYXkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDI1MCk7
CisgICAgY29uc3QgYXV0byByZW1vdmVEZWxheSA9IDI1MG1zOwogCiAgICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCByZW1vdmVUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCkgKyByZW1vdmVEZWxheTsKICAgICBtX3BhaW50UmVjdHMuYXBwZW5kKFRp
bWVSZWN0UGFpcihyZW1vdmVUaW1lLCByb290UmVjdCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNw
cAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIHZhbHVlcyBhcmUgYXQgdGhlIGRpc2Ny
ZXRpb24gb2YgdGhlIHVzZXIgYWdlbnQuCi1zdGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxp
Z2h0Q2FjaGVUaW1lb3V0ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoNSk7Ci1zdGF0aWMgY29uc3Qg
YXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg2MDAp
OyAvLyBTaG91bGQgYmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5n
IGEgcG9pc29uZWQgY2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCitz
dGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0ID0gNXM7CitzdGF0
aWMgY29uc3QgYXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSA2MDBzOyAvLyBTaG91bGQg
YmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5nIGEgcG9pc29uZWQg
Y2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCiAKIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUoKQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHJldmlz
aW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBs
b2FkU3RhbGxlZEhlYXJ0YmUKIC8vIEhvdyBtYW55IGJ5dGVzIGFyZSByZXF1aXJlZCBiZXR3ZWVu
IGhlYXJ0YmVhdHMgdG8gY29uc2lkZXIgaXQgcHJvZ3Jlc3MuCiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbWludW11bUJ5dGVzUGVySGVhcnRiZWF0Rm9yUHJvZ3Jlc3MgPSAxMDI0OwogCi1zdGF0aWMg
Y29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBwcm9ncmVzc05vdGlmaWNhdGlvblRpbWVJ
bnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKTsKK3N0YXRpYyBjb25zdCBh
dXRvIHByb2dyZXNzTm90aWZpY2F0aW9uVGltZUludGVydmFsID0gMjAwbXM7CiAKIHN0cnVjdCBQ
cm9ncmVzc0l0ZW0gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzSXRlbSk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUHJvZ3Jlc3NU
cmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnIKICAgICAgICAgYm9vbCBpc01haW5GcmFtZSA9ICFt
X29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZS0+dHJlZSgpLnBhcmVudCgpOwogICAgICAgICBhdXRv
IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jazo6bm93KCkgLSBtX21haW5Mb2FkQ29tcGxldGlvblRpbWU7CiAKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGF1dG8gc3ViZnJhbWVQYXJ0T2ZNYWluTG9hZFRocmVzaG9sZCA9IHN0ZDo6Y2hyb25v
OjpzZWNvbmRzKDEpOworICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJmcmFtZVBhcnRPZk1h
aW5Mb2FkVGhyZXNob2xkID0gMXM7CiAgICAgICAgIG1faXNNYWluTG9hZCA9IGlzTWFpbkZyYW1l
IHx8IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlIDwgc3ViZnJhbWVQYXJ0T2ZNYWlu
TG9hZFRocmVzaG9sZDsKIAogICAgICAgICBtX2NsaWVudC5wcm9ncmVzc1N0YXJ0ZWQoKm1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzkyLDcgKzM5Miw3IEBAIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgQ2FjaGVkUmVzb3VyY2UK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IGNhY2hlIHN1YnJlc291cmNlcyBl
aXRoZXIsIGJ1dCB3aGVuIHdlIHRyaWVkIHRoaXMKICAgICAgICAgICAgIC8vIGl0IGNhdXNlZCBw
ZXJmb3JtYW5jZSBhbmQgZmxha2luZXNzIGlzc3VlcyBpbiBvdXIgdGVzdCBpbmZyYXN0cnVjdHVy
ZS4KICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTWFpblJlc291cmNlIHx8IFNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRBbHdheXNSZXZhbGlkYXRlVVJMU2NoZW1lKHByb3RvY29sKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczo6emVybygpOworICAgICAg
ICAgICAgICAgIHJldHVybiAwdXM7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kczo6bWF4KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw3ICsyMzksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSA9IDA7CiAjZW5kaWYKIAotICAg
IHZpcnR1YWwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgp
IHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKTsgfTsKKyAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSB7IHJl
dHVybiAwbXM7IH07CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1heEludGVydmFsRm9y
VXNlckdlc3R1cmVGb3J3YXJkaW5nID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMDAwKTsg
Ly8gT25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgotc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyA9
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAwMCk7IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IGF1dG8gbWF4SW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8vIE9uZSBzZWNvbmQgbWF0Y2hl
cyBHZWNrby4KK3N0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFi
bGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5IGRldGVybWluZWQgdG8gbWF4
aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5lc3RpbmdMZXZl
bCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTQwNiw3ICs0MDYsNyBAQCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiAgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRp
bWVyTmVzdGluZ0xldmVsKTsKIAotICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOworICAgIGF1dG8gaW50
ZXJ2YWwgPSBzdGQ6Om1heCgxbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAKICAgICAvLyBPbmx5
IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBpZiAobV9uZXN0aW5n
TGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiBPcHRpb25hbDxzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiB7CiAgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKSkKKyAgICBpZiAoYWxpZ25t
ZW50SW50ZXJ2YWwgPT0gMG1zKQogICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICAKICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0aW9uID0gcmFuZG9tTnVtYmVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDkgQEAg
Y2xhc3MgRE9NVGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZAogcHVibGljOgogICAgIHZp
cnR1YWwgfkRPTVRpbWVyKCk7CiAKLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyg0KTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlZmF1bHRB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onpl
cm8oKTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGhpZGRlblBhZ2VB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAw
MCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0TWluaW11
bUludGVydmFsKCkgeyByZXR1cm4gNG1zOyB9CisgICAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkgeyByZXR1cm4gMG1zOyB9CisgICAg
c3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaGlkZGVuUGFnZUFsaWdubWVudEludGVy
dmFsKCkgeyByZXR1cm4gMTAwMG1zOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRpbWVyIG93
bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQKICAgICAv
LyBhbmQgcmV0dXJucyBpdHMgSWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShy
ZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyMjIsOSArMjIyMiw5IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxP
ZmZzZXRDaGFuZ2VkVmlhUGwKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIG9sZFBvc2l0aW9uLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYg
bmV3UG9zaXRpb24pCiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwotICAgIGF1
dG8gdGhyb3R0bGluZ0RlbGF5ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV2ZW50
VGhyb3R0bGluZ0RlbGF5KCkgOiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7Cisg
ICAgYXV0byB0aHJvdHRsaW5nRGVsYXkgPSBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSA6IDBtczsKIAotICAgIGlmICh0aHJvdHRsaW5nRGVsYXkg
PT0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVybygpKSB7CisgICAgaWYgKHRocm90dGxp
bmdEZWxheSA9PSAwbXMpIHsKICAgICAgICAgbV9kZWxheWVkU2Nyb2xsRXZlbnRUaW1lci5zdG9w
KCk7CiAgICAgICAgIHNlbmRTY3JvbGxFdmVudCgpOwogICAgIH0gZWxzZSBpZiAoIW1fZGVsYXll
ZFNjcm9sbEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5
LDggKzExOSw4IEBAIE5PX1JFVFVSTiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmUKICAg
ICAgICAgcGxhdGZvcm1UaHJlYWRCb2R5KG1fdm0sIGRhdGEpOwogICAgICAgICBub3RpZnlPYnNl
cnZlcnMoV1RGTW92ZShkYXRhKSk7CiAKLSAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hy
b25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQpOwotICAgICAgICBhdXRvIGRpZmZlcmVuY2Ug
PSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCkgLSBkdXJhdGlvbjsKKyAgICAgICAgYXV0
byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQ7Cisg
ICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMG1zIC0gZHVyYXRpb247CiAgICAgICAgIHN0ZDo6
dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihkaWZmZXJlbmNlKTsKICAgICB9CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXCiAvLyBUaGlzIGFtb3VudCBvZiB0
aW1lIG11c3QgaGF2ZSBlbGFwc2VkIGJlZm9yZSB3ZSB3aWxsIGV2ZW4gY29uc2lkZXIgc2NoZWR1
bGluZyBhIGxheW91dCB3aXRob3V0IGEgZGVsYXkuCiAvLyBGSVhNRTogRm9yIGZhc3RlciBtYWNo
aW5lcyB0aGlzIHZhbHVlIGNhbiByZWFsbHkgYmUgbG93ZXJlZCB0byAyMDAuIDI1MCBpcyBhZGVx
dWF0ZSwgYnV0IGEgbGl0dGxlIGhpZ2gKIC8vIGZvciBkdWFsIEc1cy4gOikKLXN0YXRpYyBjb25z
dCBhdXRvIGxheW91dFNjaGVkdWxlVGhyZXNob2xkID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cygyNTApOworc3RhdGljIGNvbnN0IGF1dG8gbGF5b3V0U2NoZWR1bGVUaHJlc2hvbGQgPSAyNTBt
czsKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UobnVsbHB0
cikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDM2
LDcgKzQzNiw3IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6bW91c2VJc08KIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6cmVtYWlu
aW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bihIaWdobGlnaHQqIGhpZ2hsaWdodCkg
Y29uc3QKIHsKICAgICBpZiAoIWhpZ2hsaWdodCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6Onplcm8oKTsKKyAgICAgICAgcmV0dXJuIDBtczsKIAogICAgIGF1dG8g
bWluaW11bVRpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24gPSAyMDBtczsKICAgICBQYWdl
KiBwYWdlID0gbV9tYWluRnJhbWUucGFnZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMjcsNyArMzI3LDcgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldFVuZGVyTWVtb3J5UHJl
c3N1cgogUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6Zm9udEZvckZhbWlseShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJp
YW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBib29sIGNoZWNraW5nQWx0ZXJu
YXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8o
KSk7CisgICAgICAgIG1fcHVyZ2VUaW1lci5zdGFydE9uZVNob3QoMG1zKTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHksIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlVmFyaWFudFNl
dHRpbmdzLCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpOwogICAgIGlmICghcGxhdGZvcm1EYXRhKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsOCArMTAz
LDggQEAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBjb21wdXRlQ3VycmVudAogICAgIC8vIGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzQjc2VjdGlvbi00LjIuMwogICAgIC8vIE5v
IGNvbXBlbnNhdGlvbiBmb3IgbGF0ZW5jeSBhcyB0aGF0IGlzIG5vdCB0ZXJyaWJseSBpbXBvcnRh
bnQgaW4gcHJhY3RpY2UuCiAgICAgYXV0byBkYXRlVmFsdWUgPSByZXNwb25zZS5kYXRlKCk7Ci0g
ICAgYXV0byBhcHBhcmVudEFnZSA9IGRhdGVWYWx1ZSA/IHN0ZDo6bWF4KG1pY3Jvc2Vjb25kczo6
emVybygpLCBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4ocmVzcG9uc2VUaW1lIC0gZGF0ZVZh
bHVlLnZhbHVlKCkpKSA6IG1pY3Jvc2Vjb25kczo6emVybygpOwotICAgIGF1dG8gYWdlVmFsdWUg
PSByZXNwb25zZS5hZ2UoKS52YWx1ZU9yKG1pY3Jvc2Vjb25kczo6emVybygpKTsKKyAgICBhdXRv
IGFwcGFyZW50QWdlID0gZGF0ZVZhbHVlID8gc3RkOjptYXgoMHVzLCBkdXJhdGlvbl9jYXN0PG1p
Y3Jvc2Vjb25kcz4ocmVzcG9uc2VUaW1lIC0gKmRhdGVWYWx1ZSkpIDogMHVzOworICAgIGF1dG8g
YWdlVmFsdWUgPSByZXNwb25zZS5hZ2UoKS52YWx1ZU9yKDB1cyk7CiAgICAgYXV0byBjb3JyZWN0
ZWRJbml0aWFsQWdlID0gc3RkOjptYXgoYXBwYXJlbnRBZ2UsIGFnZVZhbHVlKTsKICAgICBhdXRv
IHJlc2lkZW50VGltZSA9IGR1cmF0aW9uX2Nhc3Q8bWljcm9zZWNvbmRzPihzeXN0ZW1fY2xvY2s6
Om5vdygpIC0gcmVzcG9uc2VUaW1lKTsKICAgICByZXR1cm4gY29ycmVjdGVkSW5pdGlhbEFnZSAr
IHJlc2lkZW50VGltZTsKQEAgLTExOSwyNiArMTE5LDI1IEBAIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMgY29tcHV0ZUZyZXNobmUKICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmM3MjM0I3NlY3Rpb24tNC4yLjEKICAgICBhdXRvIG1heEFnZSA9IHJlc3BvbnNlLmNhY2hlQ29u
dHJvbE1heEFnZSgpOwogICAgIGlmIChtYXhBZ2UpCi0gICAgICAgIHJldHVybiBtYXhBZ2UudmFs
dWUoKTsKLSAgICBhdXRvIGV4cGlyZXMgPSByZXNwb25zZS5leHBpcmVzKCk7CisgICAgICAgIHJl
dHVybiAqbWF4QWdlOworCiAgICAgYXV0byBkYXRlID0gcmVzcG9uc2UuZGF0ZSgpOwotICAgIGF1
dG8gZGF0ZVZhbHVlID0gZGF0ZSA/IGRhdGUudmFsdWUoKSA6IHJlc3BvbnNlVGltZTsKLSAgICBp
ZiAoZXhwaXJlcykKLSAgICAgICAgcmV0dXJuIGR1cmF0aW9uX2Nhc3Q8bWljcm9zZWNvbmRzPihl
eHBpcmVzLnZhbHVlKCkgLSBkYXRlVmFsdWUpOworICAgIGF1dG8gZWZmZWN0aXZlRGF0ZSA9IGRh
dGUudmFsdWVPcihyZXNwb25zZVRpbWUpOworICAgIGlmIChhdXRvIGV4cGlyZXMgPSByZXNwb25z
ZS5leHBpcmVzKCkpCisgICAgICAgIHJldHVybiAqZXhwaXJlcyAtIGVmZmVjdGl2ZURhdGU7CiAK
ICAgICAvLyBJbXBsaWNpdCBsaWZldGltZS4KICAgICBzd2l0Y2ggKHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCkpIHsKICAgICBjYXNlIDMwMTogLy8gTW92ZWQgUGVybWFuZW50bHkKICAgICBjYXNl
IDQxMDogLy8gR29uZQogICAgICAgICAvLyBUaGVzZSBhcmUgc2VtYW50aWNhbGx5IHBlcm1hbmVu
dCBhbmQgc28gZ2V0IGxvbmcgaW1wbGljaXQgbGlmZXRpbWUuCi0gICAgICAgIHJldHVybiBob3Vy
cygzNjUgKiAyNCk7CisgICAgICAgIHJldHVybiAzNjUgKiAyNGg7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgLy8gSGV1cmlzdGljIEZyZXNobmVzczoKICAgICAgICAgLy8gaHR0cDovL3Rvb2xzLmll
dGYub3JnL2h0bWwvcmZjNzIzNCNzZWN0aW9uLTQuMi4yCi0gICAgICAgIGF1dG8gbGFzdE1vZGlm
aWVkID0gcmVzcG9uc2UubGFzdE1vZGlmaWVkKCk7Ci0gICAgICAgIGlmIChsYXN0TW9kaWZpZWQp
Ci0gICAgICAgICAgICByZXR1cm4gZHVyYXRpb25fY2FzdDxtaWNyb3NlY29uZHM+KChkYXRlVmFs
dWUgLSBsYXN0TW9kaWZpZWQudmFsdWUoKSkgKiAwLjEpOwotICAgICAgICByZXR1cm4gbWljcm9z
ZWNvbmRzOjp6ZXJvKCk7CisgICAgICAgIGlmIChhdXRvIGxhc3RNb2RpZmllZCA9IHJlc3BvbnNl
Lmxhc3RNb2RpZmllZCgpKQorICAgICAgICAgICAgcmV0dXJuIGR1cmF0aW9uX2Nhc3Q8bWljcm9z
ZWNvbmRzPigoZWZmZWN0aXZlRGF0ZSAtICpsYXN0TW9kaWZpZWQpICogMC4xKTsKKyAgICAgICAg
cmV0dXJuIDB1czsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281617</attachid>
            <date>2016-06-18 03:53:09 -0700</date>
            <delta_ts>2016-06-18 04:04:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>time-literals-4.patch</filename>
            <type>text/plain</type>
            <size>16754</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdGltZSBsaXRlcmFscyBp
biBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEpIC0+IDFtcyBldGMuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1MYXlv
dXREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZWxhcHNlZFRpbWUpOgorICAg
ICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVh
ZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dQYWludFJlY3QpOgorICAg
ICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUpOgorICAgICAgICAqIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZnJlc2huZXNzTGlmZXRpbWUpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VUaHJl
YWQ6OnRocmVhZEJvZHkpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6cmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Zm9udEZvckZhbWlseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9DYWNoZVZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUN1cnJlbnRB
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUZyZXNobmVzc0xpZmV0aW1lRm9ySFRUUEZh
bWlseSk6CisKIDIwMTYtMDYtMTcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIDppbmRldGVybWluYXRlIHBzZXVkby1jbGFzcyBzaG91bGQgbWF0Y2gg
cmFkaW9zIHdob3NlIGdyb3VwIGhhcyBubyBjaGVja2VkIHJhZGlvCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksMTMgKzI4NDksMTMgQEAgYm9vbCBEb2N1
bWVudDo6aXNMYXlvdXRUaW1lckFjdGl2ZSgpCiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERv
Y3VtZW50OjptaW5pbXVtTGF5b3V0RGVsYXkoKQogewogICAgIGlmIChtX292ZXJNaW5pbXVtTGF5
b3V0VGhyZXNob2xkKQotICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygw
KTsKKyAgICAgICAgcmV0dXJuIDBtczsKICAgICAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGVsYXBzZWQgPSBlbGFwc2VkVGltZSgpOworICAgIGF1dG8gZWxhcHNlZCA9IGVsYXBzZWRU
aW1lKCk7CiAgICAgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZCA9IGVsYXBzZWQgPiBzZXR0
aW5ncygpLT5sYXlvdXRJbnRlcnZhbCgpOwogCiAgICAgLy8gV2UnbGwgd2FudCB0byBzY2hlZHVs
ZSB0aGUgdGltZXIgdG8gZmlyZSBhdCB0aGUgbWluaW11bSBsYXlvdXQgdGhyZXNob2xkLgotICAg
IHJldHVybiBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDApLCBzZXR0aW5ncygp
LT5sYXlvdXRJbnRlcnZhbCgpIC0gZWxhcHNlZCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KDBtcywg
c2V0dGluZ3MoKS0+bGF5b3V0SW50ZXJ2YWwoKSAtIGVsYXBzZWQpOwogfQogCiBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIERvY3VtZW50OjplbGFwc2VkVGltZSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgYXV0byBwcm9n
cmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MCk7
CitzdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gNTBtczsK
IAogUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNyArNTA1
LDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KGNvbgogCiAgICAgSW50
UmVjdCByb290UmVjdCA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290
VmlldyhlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKIAotICAgIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgcmVtb3ZlRGVsYXkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDI1MCk7
CisgICAgY29uc3QgYXV0byByZW1vdmVEZWxheSA9IDI1MG1zOwogCiAgICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCByZW1vdmVUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCkgKyByZW1vdmVEZWxheTsKICAgICBtX3BhaW50UmVjdHMuYXBwZW5kKFRp
bWVSZWN0UGFpcihyZW1vdmVUaW1lLCByb290UmVjdCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNw
cAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIHZhbHVlcyBhcmUgYXQgdGhlIGRpc2Ny
ZXRpb24gb2YgdGhlIHVzZXIgYWdlbnQuCi1zdGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxp
Z2h0Q2FjaGVUaW1lb3V0ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoNSk7Ci1zdGF0aWMgY29uc3Qg
YXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg2MDAp
OyAvLyBTaG91bGQgYmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5n
IGEgcG9pc29uZWQgY2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCitz
dGF0aWMgY29uc3QgYXV0byBkZWZhdWx0UHJlZmxpZ2h0Q2FjaGVUaW1lb3V0ID0gNXM7CitzdGF0
aWMgY29uc3QgYXV0byBtYXhQcmVmbGlnaHRDYWNoZVRpbWVvdXQgPSA2MDBzOyAvLyBTaG91bGQg
YmUgc2hvcnQgZW5vdWdoIHRvIG1pbmltaXplIHRoZSByaXNrIG9mIHVzaW5nIGEgcG9pc29uZWQg
Y2FjaGUgYWZ0ZXIgc3dpdGNoaW5nIHRvIGEgc2VjdXJlIG5ldHdvcmsuCiAKIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUoKQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHJldmlz
aW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBs
b2FkU3RhbGxlZEhlYXJ0YmUKIC8vIEhvdyBtYW55IGJ5dGVzIGFyZSByZXF1aXJlZCBiZXR3ZWVu
IGhlYXJ0YmVhdHMgdG8gY29uc2lkZXIgaXQgcHJvZ3Jlc3MuCiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbWludW11bUJ5dGVzUGVySGVhcnRiZWF0Rm9yUHJvZ3Jlc3MgPSAxMDI0OwogCi1zdGF0aWMg
Y29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBwcm9ncmVzc05vdGlmaWNhdGlvblRpbWVJ
bnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKTsKK3N0YXRpYyBjb25zdCBh
dXRvIHByb2dyZXNzTm90aWZpY2F0aW9uVGltZUludGVydmFsID0gMjAwbXM7CiAKIHN0cnVjdCBQ
cm9ncmVzc0l0ZW0gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzSXRlbSk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUHJvZ3Jlc3NU
cmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnIKICAgICAgICAgYm9vbCBpc01haW5GcmFtZSA9ICFt
X29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZS0+dHJlZSgpLnBhcmVudCgpOwogICAgICAgICBhdXRv
IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jazo6bm93KCkgLSBtX21haW5Mb2FkQ29tcGxldGlvblRpbWU7CiAKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGF1dG8gc3ViZnJhbWVQYXJ0T2ZNYWluTG9hZFRocmVzaG9sZCA9IHN0ZDo6Y2hyb25v
OjpzZWNvbmRzKDEpOworICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJmcmFtZVBhcnRPZk1h
aW5Mb2FkVGhyZXNob2xkID0gMXM7CiAgICAgICAgIG1faXNNYWluTG9hZCA9IGlzTWFpbkZyYW1l
IHx8IGVsYXBzZWRUaW1lU2luY2VNYWluTG9hZENvbXBsZXRlIDwgc3ViZnJhbWVQYXJ0T2ZNYWlu
TG9hZFRocmVzaG9sZDsKIAogICAgICAgICBtX2NsaWVudC5wcm9ncmVzc1N0YXJ0ZWQoKm1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzkyLDcgKzM5Miw3IEBAIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgQ2FjaGVkUmVzb3VyY2UK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IGNhY2hlIHN1YnJlc291cmNlcyBl
aXRoZXIsIGJ1dCB3aGVuIHdlIHRyaWVkIHRoaXMKICAgICAgICAgICAgIC8vIGl0IGNhdXNlZCBw
ZXJmb3JtYW5jZSBhbmQgZmxha2luZXNzIGlzc3VlcyBpbiBvdXIgdGVzdCBpbmZyYXN0cnVjdHVy
ZS4KICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTWFpblJlc291cmNlIHx8IFNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRBbHdheXNSZXZhbGlkYXRlVVJMU2NoZW1lKHByb3RvY29sKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczo6emVybygpOworICAgICAg
ICAgICAgICAgIHJldHVybiAwdXM7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kczo6bWF4KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHJldmlzaW9uIDIwMjE5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw3ICsyMzksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSA9IDA7CiAjZW5kaWYKIAotICAg
IHZpcnR1YWwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgp
IHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKTsgfTsKKyAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSB7IHJl
dHVybiAwbXM7IH07CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1heEludGVydmFsRm9y
VXNlckdlc3R1cmVGb3J3YXJkaW5nID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMDAwKTsg
Ly8gT25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgotc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyA9
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAwMCk7IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IGF1dG8gbWF4SW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8vIE9uZSBzZWNvbmQgbWF0Y2hl
cyBHZWNrby4KK3N0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFi
bGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5IGRldGVybWluZWQgdG8gbWF4
aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5lc3RpbmdMZXZl
bCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTQwNiw3ICs0MDYsNyBAQCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiAgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRp
bWVyTmVzdGluZ0xldmVsKTsKIAotICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOworICAgIGF1dG8gaW50
ZXJ2YWwgPSBzdGQ6Om1heCgxbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAKICAgICAvLyBPbmx5
IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBpZiAobV9uZXN0aW5n
TGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlCiBPcHRpb25hbDxzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiB7CiAgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKSkKKyAgICBpZiAoYWxpZ25t
ZW50SW50ZXJ2YWwgPT0gMG1zKQogICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICAKICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0aW9uID0gcmFuZG9tTnVtYmVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDkgQEAg
Y2xhc3MgRE9NVGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZAogcHVibGljOgogICAgIHZp
cnR1YWwgfkRPTVRpbWVyKCk7CiAKLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyg0KTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlZmF1bHRB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onpl
cm8oKTsgfQotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGhpZGRlblBhZ2VB
bGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAw
MCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0TWluaW11
bUludGVydmFsKCkgeyByZXR1cm4gNG1zOyB9CisgICAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkgeyByZXR1cm4gMG1zOyB9CisgICAg
c3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaGlkZGVuUGFnZUFsaWdubWVudEludGVy
dmFsKCkgeyByZXR1cm4gMTAwMG1zOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRpbWVyIG93
bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQKICAgICAv
LyBhbmQgcmV0dXJucyBpdHMgSWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShy
ZXZpc2lvbiAyMDIxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyMjIsOSArMjIyMiw5IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxP
ZmZzZXRDaGFuZ2VkVmlhUGwKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIG9sZFBvc2l0aW9uLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYg
bmV3UG9zaXRpb24pCiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwotICAgIGF1
dG8gdGhyb3R0bGluZ0RlbGF5ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV2ZW50
VGhyb3R0bGluZ0RlbGF5KCkgOiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7Cisg
ICAgYXV0byB0aHJvdHRsaW5nRGVsYXkgPSBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSA6IDBtczsKIAotICAgIGlmICh0aHJvdHRsaW5nRGVsYXkg
PT0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVybygpKSB7CisgICAgaWYgKHRocm90dGxp
bmdEZWxheSA9PSAwbXMpIHsKICAgICAgICAgbV9kZWxheWVkU2Nyb2xsRXZlbnRUaW1lci5zdG9w
KCk7CiAgICAgICAgIHNlbmRTY3JvbGxFdmVudCgpOwogICAgIH0gZWxzZSBpZiAoIW1fZGVsYXll
ZFNjcm9sbEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5
LDggKzExOSw4IEBAIE5PX1JFVFVSTiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmUKICAg
ICAgICAgcGxhdGZvcm1UaHJlYWRCb2R5KG1fdm0sIGRhdGEpOwogICAgICAgICBub3RpZnlPYnNl
cnZlcnMoV1RGTW92ZShkYXRhKSk7CiAKLSAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hy
b25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQpOwotICAgICAgICBhdXRvIGRpZmZlcmVuY2Ug
PSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCkgLSBkdXJhdGlvbjsKKyAgICAgICAgYXV0
byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQ7Cisg
ICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMG1zIC0gZHVyYXRpb247CiAgICAgICAgIHN0ZDo6
dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihkaWZmZXJlbmNlKTsKICAgICB9CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXCiAvLyBUaGlzIGFtb3VudCBvZiB0
aW1lIG11c3QgaGF2ZSBlbGFwc2VkIGJlZm9yZSB3ZSB3aWxsIGV2ZW4gY29uc2lkZXIgc2NoZWR1
bGluZyBhIGxheW91dCB3aXRob3V0IGEgZGVsYXkuCiAvLyBGSVhNRTogRm9yIGZhc3RlciBtYWNo
aW5lcyB0aGlzIHZhbHVlIGNhbiByZWFsbHkgYmUgbG93ZXJlZCB0byAyMDAuIDI1MCBpcyBhZGVx
dWF0ZSwgYnV0IGEgbGl0dGxlIGhpZ2gKIC8vIGZvciBkdWFsIEc1cy4gOikKLXN0YXRpYyBjb25z
dCBhdXRvIGxheW91dFNjaGVkdWxlVGhyZXNob2xkID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cygyNTApOworc3RhdGljIGNvbnN0IGF1dG8gbGF5b3V0U2NoZWR1bGVUaHJlc2hvbGQgPSAyNTBt
czsKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UobnVsbHB0
cikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDM2
LDcgKzQzNiw3IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6bW91c2VJc08KIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6cmVtYWlu
aW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bihIaWdobGlnaHQqIGhpZ2hsaWdodCkg
Y29uc3QKIHsKICAgICBpZiAoIWhpZ2hsaWdodCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6Onplcm8oKTsKKyAgICAgICAgcmV0dXJuIDBtczsKIAogICAgIGF1dG8g
bWluaW11bVRpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24gPSAyMDBtczsKICAgICBQYWdl
KiBwYWdlID0gbV9tYWluRnJhbWUucGFnZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCShyZXZpc2lvbiAyMDIxOTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMjcsNyArMzI3LDcgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldFVuZGVyTWVtb3J5UHJl
c3N1cgogUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6Zm9udEZvckZhbWlseShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJp
YW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBib29sIGNoZWNraW5nQWx0ZXJu
YXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8o
KSk7CisgICAgICAgIG1fcHVyZ2VUaW1lci5zdGFydE9uZVNob3QoMG1zKTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHksIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlVmFyaWFudFNl
dHRpbmdzLCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpOwogICAgIGlmICghcGxhdGZvcm1EYXRhKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcAkocmV2aXNpb24gMjAyMTk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsOCArMTAz
LDggQEAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBjb21wdXRlQ3VycmVudAogICAgIC8vIGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzQjc2VjdGlvbi00LjIuMwogICAgIC8vIE5v
IGNvbXBlbnNhdGlvbiBmb3IgbGF0ZW5jeSBhcyB0aGF0IGlzIG5vdCB0ZXJyaWJseSBpbXBvcnRh
bnQgaW4gcHJhY3RpY2UuCiAgICAgYXV0byBkYXRlVmFsdWUgPSByZXNwb25zZS5kYXRlKCk7Ci0g
ICAgYXV0byBhcHBhcmVudEFnZSA9IGRhdGVWYWx1ZSA/IHN0ZDo6bWF4KG1pY3Jvc2Vjb25kczo6
emVybygpLCBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4ocmVzcG9uc2VUaW1lIC0gZGF0ZVZh
bHVlLnZhbHVlKCkpKSA6IG1pY3Jvc2Vjb25kczo6emVybygpOwotICAgIGF1dG8gYWdlVmFsdWUg
PSByZXNwb25zZS5hZ2UoKS52YWx1ZU9yKG1pY3Jvc2Vjb25kczo6emVybygpKTsKKyAgICBhdXRv
IGFwcGFyZW50QWdlID0gZGF0ZVZhbHVlID8gc3RkOjptYXgoMHVzLCBkdXJhdGlvbl9jYXN0PG1p
Y3Jvc2Vjb25kcz4ocmVzcG9uc2VUaW1lIC0gKmRhdGVWYWx1ZSkpIDogMHVzOworICAgIGF1dG8g
YWdlVmFsdWUgPSByZXNwb25zZS5hZ2UoKS52YWx1ZU9yKDB1cyk7CiAgICAgYXV0byBjb3JyZWN0
ZWRJbml0aWFsQWdlID0gc3RkOjptYXgoYXBwYXJlbnRBZ2UsIGFnZVZhbHVlKTsKICAgICBhdXRv
IHJlc2lkZW50VGltZSA9IGR1cmF0aW9uX2Nhc3Q8bWljcm9zZWNvbmRzPihzeXN0ZW1fY2xvY2s6
Om5vdygpIC0gcmVzcG9uc2VUaW1lKTsKICAgICByZXR1cm4gY29ycmVjdGVkSW5pdGlhbEFnZSAr
IHJlc2lkZW50VGltZTsKQEAgLTExOSwyNiArMTE5LDI1IEBAIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMgY29tcHV0ZUZyZXNobmUKICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmM3MjM0I3NlY3Rpb24tNC4yLjEKICAgICBhdXRvIG1heEFnZSA9IHJlc3BvbnNlLmNhY2hlQ29u
dHJvbE1heEFnZSgpOwogICAgIGlmIChtYXhBZ2UpCi0gICAgICAgIHJldHVybiBtYXhBZ2UudmFs
dWUoKTsKLSAgICBhdXRvIGV4cGlyZXMgPSByZXNwb25zZS5leHBpcmVzKCk7CisgICAgICAgIHJl
dHVybiAqbWF4QWdlOworCiAgICAgYXV0byBkYXRlID0gcmVzcG9uc2UuZGF0ZSgpOwotICAgIGF1
dG8gZGF0ZVZhbHVlID0gZGF0ZSA/IGRhdGUudmFsdWUoKSA6IHJlc3BvbnNlVGltZTsKLSAgICBp
ZiAoZXhwaXJlcykKLSAgICAgICAgcmV0dXJuIGR1cmF0aW9uX2Nhc3Q8bWljcm9zZWNvbmRzPihl
eHBpcmVzLnZhbHVlKCkgLSBkYXRlVmFsdWUpOworICAgIGF1dG8gZWZmZWN0aXZlRGF0ZSA9IGRh
dGUudmFsdWVPcihyZXNwb25zZVRpbWUpOworICAgIGlmIChhdXRvIGV4cGlyZXMgPSByZXNwb25z
ZS5leHBpcmVzKCkpCisgICAgICAgIHJldHVybiBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4o
KmV4cGlyZXMgLSBlZmZlY3RpdmVEYXRlKTsKIAogICAgIC8vIEltcGxpY2l0IGxpZmV0aW1lLgog
ICAgIHN3aXRjaCAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSkgewogICAgIGNhc2UgMzAxOiAv
LyBNb3ZlZCBQZXJtYW5lbnRseQogICAgIGNhc2UgNDEwOiAvLyBHb25lCiAgICAgICAgIC8vIFRo
ZXNlIGFyZSBzZW1hbnRpY2FsbHkgcGVybWFuZW50IGFuZCBzbyBnZXQgbG9uZyBpbXBsaWNpdCBs
aWZldGltZS4KLSAgICAgICAgcmV0dXJuIGhvdXJzKDM2NSAqIDI0KTsKKyAgICAgICAgcmV0dXJu
IDM2NSAqIDI0aDsKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBIZXVyaXN0aWMgRnJlc2huZXNz
OgogICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjM0I3NlY3Rpb24t
NC4yLjIKLSAgICAgICAgYXV0byBsYXN0TW9kaWZpZWQgPSByZXNwb25zZS5sYXN0TW9kaWZpZWQo
KTsKLSAgICAgICAgaWYgKGxhc3RNb2RpZmllZCkKLSAgICAgICAgICAgIHJldHVybiBkdXJhdGlv
bl9jYXN0PG1pY3Jvc2Vjb25kcz4oKGRhdGVWYWx1ZSAtIGxhc3RNb2RpZmllZC52YWx1ZSgpKSAq
IDAuMSk7Ci0gICAgICAgIHJldHVybiBtaWNyb3NlY29uZHM6Onplcm8oKTsKKyAgICAgICAgaWYg
KGF1dG8gbGFzdE1vZGlmaWVkID0gcmVzcG9uc2UubGFzdE1vZGlmaWVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gZHVyYXRpb25fY2FzdDxtaWNyb3NlY29uZHM+KChlZmZlY3RpdmVEYXRlIC0gKmxh
c3RNb2RpZmllZCkgKiAwLjEpOworICAgICAgICByZXR1cm4gMHVzOwogICAgIH0KIH0KIAo=
</data>
<flag name="review"
          id="305442"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>