<?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>47106</bug_id>
          
          <creation_ts>2010-10-04 12:53:00 -0700</creation_ts>
          <short_desc>Implement IndexedDB&apos;s oncomplete and ontimeout.</short_desc>
          <delta_ts>2010-11-18 06:41:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>289089</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-04 12:53:00 -0700</bug_when>
    <thetext>Implement IndexedDB&apos;s oncomplete and ontimeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289092</commentid>
    <comment_count>1</comment_count>
      <attachid>69671</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-04 13:02:18 -0700</bug_when>
    <thetext>Created attachment 69671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289105</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-04 13:36:51 -0700</bug_when>
    <thetext>We should also update the rest of the layout tests as they all use transactions now.

&gt; window.completeEventFired = false;

Wrong indent

&gt; m_onAbortTimer.startOneShot(0);

Here and below: maybe assert that the timer is not active? If it is, something&apos;s wrong but we won&apos;t see this as the timer will just be postponed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289160</commentid>
    <comment_count>3</comment_count>
      <attachid>69687</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-04 14:46:43 -0700</bug_when>
    <thetext>Created attachment 69687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310833</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-18 06:37:47 -0800</bug_when>
    <thetext>Was landed in 69052</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69671</attachid>
            <date>2010-10-04 13:02:18 -0700</date>
            <delta_ts>2010-10-04 14:46:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47106-20101004130217.patch</filename>
            <type>text/plain</type>
            <size>17170</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NWI3MjY4NTY4YjA4YzdlMzRhYmZlYzJjYTMzZWI4ZjYwZWU0ZDg1Li5jOGVhZWE2
ZDU0ZTk1Njc1ZmFiNGYxOTZhZWMzN2I2MmRhMWE4YTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMTAtMDQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEluZGV4
ZWREQidzIG9uY29tcGxldGUgYW5kIG9udGltZW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTA2CisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAodmVyaWZ5Q29tcGxldGVFdmVudCk6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWw6CisK
IDIwMTAtMTAtMDIgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAK
ICAgICAgICAgTm90IHJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKaW5kZXggZWE0YTUyNTk1OGMzM2E3N2MxNDliN2YyZDRm
MDY3MzQzMTZkMDgzOC4uN2UxMTQwNmE0OWUyYmNlN2NlYWJjMGQ2ODAyODlhODk4ODUzMTllNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJl
ZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVk
LmpzCkBAIC00MCw2ICs0MCwxMiBAQCBmdW5jdGlvbiB2ZXJpZnlBYm9ydEV2ZW50KGV2ZW50KQog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJhYm9ydCIpOwogfQogCitm
dW5jdGlvbiB2ZXJpZnlDb21wbGV0ZUV2ZW50KGV2ZW50KQoreworICAgIGRlYnVnKCJDb21wbGV0
ZSBldmVudCBmaXJlZDoiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUi
LCAiY29tcGxldGUiKTsKK30KKwogZnVuY3Rpb24gdmVyaWZ5UmVzdWx0KHJlc3VsdCkKIHsKICAg
ICBzaG91bGRCZVRydWUoIidvbnN1Y2Nlc3MnIGluIHJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MuaHRtbAppbmRleCA4
ZmI2NDkzNjYwNDhhMDhkNWVjN2FlYTM3YWUwYjcwNGEzZTEwZTQyLi44ZjhjZjE0MzU1MDhlZjRi
YzVkYjk5MDU1OGE3ZTJmMjlmOWMzOGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MuaHRtbApAQCAtNDQsMTAgKzQ0LDE4IEBA
IGZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKICAgICB3aW5kb3cudHJhbnMgPSBldmFsQW5k
TG9nKCJ0cmFucyA9IGV2ZW50LnJlc3VsdCIpOwogICAgIHNob3VsZEJlVHJ1ZSgidHJhbnMgIT09
IG51bGwiKTsKICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cisg
ICAgdHJhbnMub25jb21wbGV0ZSA9IGNvbXBsZXRlQ2FsbGJhY2s7CisgICAgIHdpbmRvdy5jb21w
bGV0ZUV2ZW50RmlyZWQgPSBmYWxzZTsKIAogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYiwg
ZmluaXNoZWREZWxldGluZyk7CiB9CiAKK2Z1bmN0aW9uIGNvbXBsZXRlQ2FsbGJhY2soKQorewor
ICAgIHZlcmlmeUNvbXBsZXRlRXZlbnQoZXZlbnQpOworICAgIHdpbmRvdy5jb21wbGV0ZUV2ZW50
RmlyZWQgPSB0cnVlOworfQorCiBmdW5jdGlvbiBmaW5pc2hlZERlbGV0aW5nKCkKIHsKICAgICBy
ZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVs
bCkiKTsKQEAgLTY4LDEzICs3NiwyMiBAQCBmdW5jdGlvbiBjcmVhdGVTdWNjZXNzKCkKIGZ1bmN0
aW9uIGFib3J0Q2FsbGJhY2soKQogewogICAgIHZlcmlmeUFib3J0RXZlbnQoZXZlbnQpOwotICAg
IGRvbmUoKTsKKyAgICBjaGVja0ZvckNvbXBsZXRlRXZlbnQoKTsKIH0KIAotdGVzdCgpOworZnVu
Y3Rpb24gY2hlY2tGb3JDb21wbGV0ZUV2ZW50KCkKK3sKKyAgICBpZiAoY29tcGxldGVFdmVudEZp
cmVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIm9uY29tcGxldGUgZXZlbnQgaGFkIGZpcmVkIik7
CisgICAgICAgIGRvbmUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0VGltZW91dChjaGVja0Zv
ckNvbXBsZXRlRXZlbnQsIDEpOworfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IAordGVzdCgpOworCiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U0ZTkxYmNkOWY0MWMw
YzQwMGY0ZGI5NDhhMTg4NTk2Y2RiMGViMS4uZjNiMmE5MGY1ZDdkNjQ3MzIzZDEwYTBiYjBiMzhj
OTAyNzcwY2NlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wNCAgSmVyZW15IE9ybG93ICA8am9y
bG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgSW5kZXhlZERCJ3Mgb25jb21wbGV0ZSBhbmQgb250aW1lb3V0
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcxMDYK
KworICAgICAgICBBZGQgb250aW1lb3V0IGFuZCBvbmNvbXBsZXRlIHRvIElEQlRyYW5zYWN0aW9u
IGFuZCBwbHVtYgorICAgICAgICB0aGVtLiAgVGVzdCB0aGlzIGJlaGF2aW9yIGluIHRoZSBleGlz
dGluZyBJREJUcmFuc2FjdGlvbi1iYXNpY3MKKyAgICAgICAgdGVzdC4KKworICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbjo6b2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246
OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkFib3J0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvblRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Om9u
QWJvcnRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNv
bXBsZXRlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b25U
aW1lb3V0VGltZXJGaXJlZCk6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNv
bW1pdCk6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOgorCiAy
MDEwLTEwLTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNmUwYzM5NjhkOWVhOTRlOTY0
MDU3ZjY5ODNlNjMxNzYwOTVmMTM3ZS4uNDFiNDU5OTkwMDFjNDU0YTUzMjI1M2YyYzYxMzc3ODE1
YmFjMjliMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTM3NTgsNiArMzc1OCw4IEBACiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJBbnkuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkFueS5oJywKICAgICAgICAgICAg
ICdzdG9yYWdlL0lEQkNhbGxiYWNrcy5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkNvbXBs
ZXRlRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkNvbXBsZXRlRXZlbnQuaCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3IuY3BwJywKICAgICAgICAgICAgICdzdG9y
YWdlL0lEQkN1cnNvci5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmNwcCcsCkBAIC0zODA1LDYgKzM4MDcsOCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURC
UmVxdWVzdC5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5jcHAnLAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCVGltZW91dEV2ZW50LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJUaW1l
b3V0RXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5jcHAnLAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0
aW9uLmNwcAppbmRleCBhMjIzYjdmOWI1YmYxMTQ5NTM0MWFiYjJhMTkxZTVjNzIwYjNjZjRhLi40
ZTRmNzUxZTJhMmI5YTVmY2I5MjkwZjFlNWE0MGI5NzM5YmM4NDBmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJU
cmFuc2FjdGlvbi5jcHAKQEAgLTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJBYm9ydEV2ZW50LmgiCisj
aW5jbHVkZSAiSURCQ29tcGxldGVFdmVudC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9y
ZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1
ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKKyNpbmNsdWRlICJJREJUaW1lb3V0
RXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQ0LDggKzQ2LDEwIEBAIElEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2Fj
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYmFja2VuZChiYWNr
ZW5kKQogICAgICwgbV9kYXRhYmFzZShkYikKLSAgICAsIG1fc3RvcHBlZChmYWxzZSkKLSAgICAs
IG1fdGltZXIodGhpcywgJklEQlRyYW5zYWN0aW9uOjp0aW1lckZpcmVkKQorICAgICwgbV9tb2Rl
KG1fYmFja2VuZC0+bW9kZSgpKQorICAgICwgbV9vbkFib3J0VGltZXIodGhpcywgJklEQlRyYW5z
YWN0aW9uOjpvbkFib3J0VGltZXJGaXJlZCkKKyAgICAsIG1fb25Db21wbGV0ZVRpbWVyKHRoaXMs
ICZJREJUcmFuc2FjdGlvbjo6b25Db21wbGV0ZVRpbWVyRmlyZWQpCisgICAgLCBtX29uVGltZW91
dFRpbWVyKHRoaXMsICZJREJUcmFuc2FjdGlvbjo6b25UaW1lb3V0VGltZXJGaXJlZCkKIHsKICAg
ICBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yOjphZGRQZW5kaW5nVHJhbnNhY3Rpb24obV9i
YWNrZW5kLmdldCgpKTsKIH0KQEAgLTU2LDcgKzYwLDcgQEAgSURCVHJhbnNhY3Rpb246On5JREJU
cmFuc2FjdGlvbigpCiAKIHVuc2lnbmVkIHNob3J0IElEQlRyYW5zYWN0aW9uOjptb2RlKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9iYWNrZW5kLT5tb2RlKCk7CisgICAgcmV0dXJuIG1fbW9kZTsK
IH0KIAogSURCRGF0YWJhc2UqIElEQlRyYW5zYWN0aW9uOjpkYigpCkBAIC02Niw2ICs3MCwxMCBA
QCBJREJEYXRhYmFzZSogSURCVHJhbnNhY3Rpb246OmRiKCkKIAogUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZT4gSURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgRXhjZXB0aW9uQ29kZSYpCiB7CisgICAgaWYgKCFtX2JhY2tlbmQpIHsKKyAgICAgICAg
Ly8gRklYTUU6IHRocm93IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfQUxMT1dFRF9FUlIuCisg
ICAgICAgIHJldHVybiAwOworICAgIH0KICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlPiBvYmplY3RTdG9yZUJhY2tlbmQgPSBtX2JhY2tlbmQtPm9iamVjdFN0b3JlKG5h
bWUpOwogICAgIGlmICghb2JqZWN0U3RvcmVCYWNrZW5kKSB7CiAgICAgICAgIC8vIEZJWE1FOiB0
aHJvdyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0FMTE9XRURfRVJSLgpAQCAtNzcsNyArODUs
OCBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3Rv
cmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdAogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjphYm9y
dCgpCiB7Ci0gICAgbV9iYWNrZW5kLT5hYm9ydCgpOworICAgIGlmIChtX2JhY2tlbmQpCisgICAg
ICAgIG1fYmFja2VuZC0+YWJvcnQoKTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSURC
VHJhbnNhY3Rpb246OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApAQCAtODcsMTggKzk2
LDIzIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIElEQlRyYW5zYWN0aW9uOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3QKIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6b25BYm9ydCgpCiB7
Ci0gICAgaWYgKCFtX3N0b3BwZWQpIHsKLSAgICAgICAgbV9zZWxmUmVmID0gdGhpczsKLSAgICAg
ICAgbV9zdG9wcGVkID0gdHJ1ZTsKLSAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Ci0g
ICAgfQotICAgIC8vIFJlbGVhc2UgdGhlIGJhY2tlbmQgYXMgaXQgaG9sZHMgYSAoY2lyY3VsYXIp
IHJlZmVyZW5jZSBiYWNrIHRvIHVzLgotICAgIG1fYmFja2VuZC5jbGVhcigpOworICAgIG1fc2Vs
ZlJlZiA9IHRoaXM7CisgICAgbV9vbkFib3J0VGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIG1f
YmFja2VuZC5jbGVhcigpOyAvLyBSZWxlYXNlIHRoZSBiYWNrZW5kIGFzIGl0IGhvbGRzIGEgKGNp
cmN1bGFyKSByZWZlcmVuY2UgYmFjayB0byB1cy4KIH0KIAotaW50IElEQlRyYW5zYWN0aW9uOjpp
ZCgpIGNvbnN0Cit2b2lkIElEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRlKCkKIHsKLSAgICByZXR1
cm4gbV9iYWNrZW5kLT5pZCgpOworICAgIG1fc2VsZlJlZiA9IHRoaXM7CisgICAgbV9vbkNvbXBs
ZXRlVGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIG1fYmFja2VuZC5jbGVhcigpOyAvLyBSZWxl
YXNlIHRoZSBiYWNrZW5kIGFzIGl0IGhvbGRzIGEgKGNpcmN1bGFyKSByZWZlcmVuY2UgYmFjayB0
byB1cy4KK30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6b25UaW1lb3V0KCkKK3sKKyAgICBtX3Nl
bGZSZWYgPSB0aGlzOworICAgIG1fb25UaW1lb3V0VGltZXIuc3RhcnRPbmVTaG90KDApOworICAg
IG1fYmFja2VuZC5jbGVhcigpOyAvLyBSZWxlYXNlIHRoZSBiYWNrZW5kIGFzIGl0IGhvbGRzIGEg
KGNpcmN1bGFyKSByZWZlcmVuY2UgYmFjayB0byB1cy4KIH0KIAogYm9vbCBJREJUcmFuc2FjdGlv
bjo6Y2FuU3VzcGVuZCgpIGNvbnN0CkBAIC0xMTAsMTEgKzEyNCw4IEBAIGJvb2wgSURCVHJhbnNh
Y3Rpb246OmNhblN1c3BlbmQoKSBjb25zdAogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpzdG9wKCkK
IHsKLSAgICBpZiAoIW1fc3RvcHBlZCkgewotICAgICAgICAvLyBUaGUgZG9jdW1lbnQgaXMgZ2V0
dGluZyBkZXRhY2hlZC4gQWJvcnQhCi0gICAgICAgIG1fc3RvcHBlZCA9IHRydWU7CisgICAgaWYg
KG1fYmFja2VuZCkKICAgICAgICAgbV9iYWNrZW5kLT5hYm9ydCgpOwotICAgIH0KIH0KIAogRXZl
bnRUYXJnZXREYXRhKiBJREJUcmFuc2FjdGlvbjo6ZXZlbnRUYXJnZXREYXRhKCkKQEAgLTEyNywx
NCArMTM4LDI4IEBAIEV2ZW50VGFyZ2V0RGF0YSogSURCVHJhbnNhY3Rpb246OmVuc3VyZUV2ZW50
VGFyZ2V0RGF0YSgpCiAgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKIH0KIAotdm9pZCBJ
REJUcmFuc2FjdGlvbjo6dGltZXJGaXJlZChUaW1lcjxJREJUcmFuc2FjdGlvbj4qIHRyYW5zYWN0
aW9uKQordm9pZCBJREJUcmFuc2FjdGlvbjo6b25BYm9ydFRpbWVyRmlyZWQoVGltZXI8SURCVHJh
bnNhY3Rpb24+KiB0cmFuc2FjdGlvbikKIHsKICAgICBBU1NFUlQobV9zZWxmUmVmKTsKLQogICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gc2VsZlJlZiA9IG1fc2VsZlJlZi5yZWxlYXNlKCk7CiAg
ICAgZGlzcGF0Y2hFdmVudChJREJBYm9ydEV2ZW50OjpjcmVhdGUoKSk7CiB9CiAKK3ZvaWQgSURC
VHJhbnNhY3Rpb246Om9uQ29tcGxldGVUaW1lckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uPiog
dHJhbnNhY3Rpb24pCit7CisgICAgQVNTRVJUKG1fc2VsZlJlZik7CisgICAgUmVmUHRyPElEQlRy
YW5zYWN0aW9uPiBzZWxmUmVmID0gbV9zZWxmUmVmLnJlbGVhc2UoKTsKKyAgICBkaXNwYXRjaEV2
ZW50KElEQkNvbXBsZXRlRXZlbnQ6OmNyZWF0ZSgpKTsKK30KKworCit2b2lkIElEQlRyYW5zYWN0
aW9uOjpvblRpbWVvdXRUaW1lckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uPiogdHJhbnNhY3Rp
b24pCit7CisgICAgQVNTRVJUKG1fc2VsZlJlZik7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9u
PiBzZWxmUmVmID0gbV9zZWxmUmVmLnJlbGVhc2UoKTsKKyAgICBkaXNwYXRjaEV2ZW50KElEQlRp
bWVvdXRFdmVudDo6Y3JlYXRlKCkpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5o
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggMGQ2ZjNlYWNkYjBhMzAz
YzBiODU0NjNjOGNlYjI5OGE2MWM2MzExZS4uMjZjOTIxNTc4NjI0MTI1MzZiNzRlMTE0YTZlY2U3
ZmVkZWViOGRjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTY5LDcgKzY5LDggQEAg
cHVibGljOgogCiAgICAgLy8gSURCVHJhbnNhY3Rpb25DYWxsYmFja3MKICAgICB2aXJ0dWFsIHZv
aWQgb25BYm9ydCgpOwotICAgIHZpcnR1YWwgaW50IGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIG9uQ29tcGxldGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25UaW1lb3V0KCk7CiAKICAgICAv
LyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgSURCVHJhbnNhY3Rpb24qIHRvSURCVHJhbnNhY3Rp
b24oKSB7IHJldHVybiB0aGlzOyB9CkBAIC05MSwxNCArOTIsMTggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgdmlydHVhbCBF
dmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCi0gICAgdm9pZCB0aW1l
ckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uPiopOworICAgIHZvaWQgb25BYm9ydFRpbWVyRmly
ZWQoVGltZXI8SURCVHJhbnNhY3Rpb24+Kik7CisgICAgdm9pZCBvbkNvbXBsZXRlVGltZXJGaXJl
ZChUaW1lcjxJREJUcmFuc2FjdGlvbj4qKTsKKyAgICB2b2lkIG9uVGltZW91dFRpbWVyRmlyZWQo
VGltZXI8SURCVHJhbnNhY3Rpb24+Kik7CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRh
cmdldERhdGE7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9i
YWNrZW5kOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAgICB1bnNpZ25l
ZCBzaG9ydCBtX21vZGU7CiAKLSAgICBib29sIG1fc3RvcHBlZDsKLSAgICBUaW1lcjxJREJUcmFu
c2FjdGlvbj4gbV90aW1lcjsKKyAgICBUaW1lcjxJREJUcmFuc2FjdGlvbj4gbV9vbkFib3J0VGlt
ZXI7CisgICAgVGltZXI8SURCVHJhbnNhY3Rpb24+IG1fb25Db21wbGV0ZVRpbWVyOworICAgIFRp
bWVyPElEQlRyYW5zYWN0aW9uPiBtX29uVGltZW91dFRpbWVyOwogICAgIFJlZlB0cjxJREJUcmFu
c2FjdGlvbj4gbV9zZWxmUmVmOyAvLyBUaGlzIGlzIHNldCB0byB1cyBpZmYgdGhlcmUncyBhbiBl
dmVudCBwZW5kaW5nLgogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZEltcGwuY3BwCmluZGV4IDE3NTcyOTUzZDI0MTljNjJjNTcwMDIyNWE5ZGIyMzlkZWI1Y2Nm
YzUuLjMyYTdkNzBjMzU0ZjEyOTJkNTFmMTI2Y2U3NjUzZjc1NDRjMTU3MmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsOjpjcmVhdGUoRE9NU3RyaW4KIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OklE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGwoRE9NU3RyaW5nTGlzdCogb2JqZWN0U3RvcmVzLCB1bnNp
Z25lZCBzaG9ydCBtb2RlLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQsIGludCBpZCwgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbCogZGF0YWJhc2UpCiAgICAgOiBtX29iamVjdFN0b3JlTmFtZXMob2JqZWN0
U3RvcmVzKQogICAgICwgbV9tb2RlKG1vZGUpCi0gICAgLCBtX3RpbWVvdXQodGltZW91dCkKKyAg
ICAsIG1fdGltZW91dCh0aW1lb3V0KSAvLyBGSVhNRTogSW1wbGVtZW50IHRpbWVvdXQuCiAgICAg
LCBtX2lkKGlkKQogICAgICwgbV9zdGF0ZShVbnVzZWQpCiAgICAgLCBtX2RhdGFiYXNlKGRhdGFi
YXNlKQpAQCAtMTI5LDYgKzEyOSw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6
Y29tbWl0KCkKIAogICAgIG1fc3RhdGUgPSBGaW5pc2hlZDsKICAgICBtX3RyYW5zYWN0aW9uLT5j
b21taXQoKTsKKyAgICBtX2NhbGxiYWNrcy0+b25Db21wbGV0ZSgpOwogICAgIG1fZGF0YWJhc2Ut
PnRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKS0+ZGlkRmluaXNoVHJhbnNhY3Rpb24odGhpcyk7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5o
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgKaW5kZXggMzgxODFm
Y2NmM2NiZDEwNDdlMjIyZjE4ZWZhOGMzZjY2M2NkZDMzZC4uMzQ4NjA4ZGEzZWM2MjE1MzFiMDU1
YTZjNzU4MDc3OWViMGNiZjZiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzLmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydCgpID0gMDsK
LSAgICB2aXJ0dWFsIGludCBpZCgpIGNvbnN0ID0gMDsKLSAgICAvLyBGSVhNRTogYWRkIHRoZSBy
ZXN0CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IG9uVGltZW91dCgpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IGU2YzgwMGI2ZmVjOGJjY2FmODhiYzBjYjViZTcwZmIxYjJkZTAxNzkuLmU1ODUyZjlm
YTBjOGEyMWY3NjBkZWRlY2U2NGVjZTk1NDMzYTFjY2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDEwLTEwLTA0ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCBJbmRleGVkREIncyBvbmNvbXBsZXRlIGFuZCBvbnRpbWVvdXQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzEwNgorCisgICAgICAgICogcHVibGlj
L1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzOjppZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzOjpvbkFib3J0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3M6Om9uQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrczo6b25UaW1lb3V0KToKKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25D
YWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkNhbGxi
YWNrc1Byb3h5OjpvbkNvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHk6Om9uVGltZW91dCk6CisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
SW1wbDo6b25Db21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGw6Om9uVGltZW91dCk6CisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbC5oOgorCiAyMDEwLTEwLTAxICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5hdGUgQ2hhcGluLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5o
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oCmlu
ZGV4IDRiOTIyMTc5ZDMwNDI0NWI5YjU5MTM1MDJjZWE4NjFlNTI5ODRjMTguLjUwODkyNWRiZjNm
OGM2YmEwMjY4MWQxZThkY2E3OTY0Njc2OTdmNDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgKQEAgLTMzLDEyICszMywxNiBA
QCBjbGFzcyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBv
bkFib3J0KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIGlu
dCBpZCgpIGNvbnN0Ci0gICAgeyAKKyAgICAvLyBGSVhNRTogUmVtb3ZlLgorICAgIHZpcnR1YWwg
aW50IGlkKCkKKyAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQorCisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoKSB7IFdF
QktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRl
KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25U
aW1lb3V0KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc1Byb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NQcm94eS5jcHAKaW5kZXggYmU3ZDQ0ZjE5ZDI1NjNjODQyM2NlNjEwMjNhODgx
NDBlNmY4M2E3Ny4uM2ExOWZlMmVkZjY4ZmNmMWI5YjIyZjEzYjlkMmVhNDk1MDIwMWUzZSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5
LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJv
eHkuY3BwCkBAIC01NSw5ICs1NSwxNiBAQCB2b2lkIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJv
eHk6Om9uQWJvcnQoKQogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKLWludCBJREJUcmFu
c2FjdGlvbkNhbGxiYWNrc1Byb3h5OjppZCgpIGNvbnN0Cit2b2lkIElEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzUHJveHk6Om9uQ29tcGxldGUoKQogewotICAgIHJldHVybiBtX2NhbGxiYWNrcy0+aWQo
KTsKKyAgICBtX2NhbGxiYWNrcy0+b25Db21wbGV0ZSgpOworICAgIG1fY2FsbGJhY2tzLmNsZWFy
KCk7Cit9CisKK3ZvaWQgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6b25UaW1lb3V0KCkK
K3sKKyAgICBtX2NhbGxiYWNrcy0+b25UaW1lb3V0KCk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIo
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaAppbmRleCA4MjFlZmY0ZDJiOGMyNTA3
N2MyOWYyMmMzOGU0ZDg5ODExZjhjODZjLi44OTFkNWM5MGVjODUxZWUxZmM4NjVlODJmMGIyYjZh
ZjdjNmMyZDQ4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHkuaApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uQWJv
cnQoKTsKLSAgICB2aXJ0dWFsIGludCBpZCgpIGNvbnN0OwotICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb25Db21wbGV0ZSgpLgorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCk7CisgICAgdmly
dHVhbCB2b2lkIG9uVGltZW91dCgpOwogCiBwcml2YXRlOgogICAgIElEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
Pik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzSW1wbC5jcHAKaW5kZXggMjY0ZGRjNTJjZjQwMmVhZmM2YzY1ZmM2NDM5MTNlNzU3NGZj
YzkwNC4uOTY5MjRjZjFiN2RhYzgzMzIxZWRmOTNiODEyZWFjOWE0NWE0OWRkYiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3Bw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBs
LmNwcApAQCAtNDYsOSArNDYsMTQgQEAgdm9pZCBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0lt
cGw6Om9uQWJvcnQoKQogICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KCk7CiB9CiAKLWludCBXZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6OmlkKCkgY29uc3QKK3ZvaWQgV2ViSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NJbXBsOjpvbkNvbXBsZXRlKCkKIHsKLSAgICByZXR1cm4gbV9jYWxsYmFj
a3MtPmlkKCk7CisgICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUoKTsKK30KKwordm9pZCBXZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6Om9uVGltZW91dCgpCit7CisgICAgbV9jYWxsYmFj
a3MtPm9uVGltZW91dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuaAppbmRl
eCAzOThhNjc5YTk3OGZlYzFkMzFhNGMyMmQ1YzM0NDVkNjU1ZTZhM2ZiLi44OWI5Y2JlMmMxYWNk
YTFhNDRkYjg0MTkwNGQwY2I4ZjRhYzliYjU0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgKQEAgLTQyLDcgKzQyLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbCgpOwog
CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoKTsKLSAgICB2aXJ0dWFsIGludCBpZCgpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCk7CisgICAgdmlydHVhbCB2b2lkIG9uVGlt
ZW91dCgpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4g
bV9jYWxsYmFja3M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69687</attachid>
            <date>2010-10-04 14:46:43 -0700</date>
            <delta_ts>2010-11-18 06:41:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47106-20101004144641.patch</filename>
            <type>text/plain</type>
            <size>27207</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjcyNDM4NjE4OGFmNTEwOTNhOGUxMGZkOTNjMmM5NWE1MzcxMTZiLi44MGVjNWVk
NmUyODNlYmJhZTE4NjRlNjdiYzZiMzNmNmRhMzdkZWUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMTAtMDQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEluZGV4
ZWREQidzIG9uY29tcGxldGUgYW5kIG9udGltZW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTA2CisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAodmVyaWZ5Q29tcGxldGVFdmVudCk6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWw6CisK
IDIwMTAtMTAtMDQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCmluZGV4IGVhNGE1MjU5NThjMzNhNzdjMTQ5Yjdm
MmQ0ZjA2NzM0MzE2ZDA4MzguLjdlMTE0MDZhNDllMmJjZTdjZWFiYzBkNjgwMjg5YTg5ODg1MzE5
ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9z
aGFyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3No
YXJlZC5qcwpAQCAtNDAsNiArNDAsMTIgQEAgZnVuY3Rpb24gdmVyaWZ5QWJvcnRFdmVudChldmVu
dCkKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiYWJvcnQiKTsKIH0K
IAorZnVuY3Rpb24gdmVyaWZ5Q29tcGxldGVFdmVudChldmVudCkKK3sKKyAgICBkZWJ1ZygiQ29t
cGxldGUgZXZlbnQgZmlyZWQ6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
eXBlIiwgImNvbXBsZXRlIik7Cit9CisKIGZ1bmN0aW9uIHZlcmlmeVJlc3VsdChyZXN1bHQpCiB7
CiAgICAgc2hvdWxkQmVUcnVlKCInb25zdWNjZXNzJyBpbiByZXN1bHQiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwKaW5k
ZXggOGZiNjQ5MzY2MDQ4YTA4ZDVlYzdhZWEzN2FlMGI3MDRhM2UxMGU0Mi4uNjIzNjNkYmE5Njc5
ZjViNGZlOGEwZGNkYWM3MGFjNGVmMjZlZDkwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwKQEAgLTQ0LDEwICs0NCwx
OCBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCiAgICAgd2luZG93LnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsKICAgICBzaG91bGRCZVRydWUoInRyYW5z
ICE9PSBudWxsIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OworICAgIHRyYW5zLm9uY29tcGxldGUgPSBjb21wbGV0ZUNhbGxiYWNrOworICAgIHdpbmRvdy5j
b21wbGV0ZUV2ZW50RmlyZWQgPSBmYWxzZTsKIAogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
YiwgZmluaXNoZWREZWxldGluZyk7CiB9CiAKK2Z1bmN0aW9uIGNvbXBsZXRlQ2FsbGJhY2soKQor
eworICAgIHZlcmlmeUNvbXBsZXRlRXZlbnQoZXZlbnQpOworICAgIHdpbmRvdy5jb21wbGV0ZUV2
ZW50RmlyZWQgPSB0cnVlOworfQorCiBmdW5jdGlvbiBmaW5pc2hlZERlbGV0aW5nKCkKIHsKICAg
ICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywg
bnVsbCkiKTsKQEAgLTY4LDEzICs3NiwyMiBAQCBmdW5jdGlvbiBjcmVhdGVTdWNjZXNzKCkKIGZ1
bmN0aW9uIGFib3J0Q2FsbGJhY2soKQogewogICAgIHZlcmlmeUFib3J0RXZlbnQoZXZlbnQpOwot
ICAgIGRvbmUoKTsKKyAgICBjaGVja0ZvckNvbXBsZXRlRXZlbnQoKTsKIH0KIAotdGVzdCgpOwor
ZnVuY3Rpb24gY2hlY2tGb3JDb21wbGV0ZUV2ZW50KCkKK3sKKyAgICBpZiAoY29tcGxldGVFdmVu
dEZpcmVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIm9uY29tcGxldGUgZXZlbnQgaGFkIGZpcmVk
Iik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0VGltZW91dChjaGVj
a0ZvckNvbXBsZXRlRXZlbnQsIDEpOworfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKIAordGVzdCgpOworCiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzOTBmZDg3Mzlh
MzliMWUxZTA0MWExZTkzNjgwNTFhMzdhZjA0YS4uNGM5MGQyMTlmYTE3ZTM4YjRkNjcxNjdiMjFm
NjMyYzJkNDFmNTI0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wNCAgSmVyZW15IE9ybG93ICA8
am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgSW5kZXhlZERCJ3Mgb25jb21wbGV0ZSBhbmQgb250aW1l
b3V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcx
MDYKKworICAgICAgICBBZGQgb250aW1lb3V0IGFuZCBvbmNvbXBsZXRlIHRvIElEQlRyYW5zYWN0
aW9uIGFuZCBwbHVtYgorICAgICAgICB0aGVtLiAgVGVzdCB0aGlzIGJlaGF2aW9yIGluIHRoZSBl
eGlzdGluZyBJREJUcmFuc2FjdGlvbi1iYXNpY3MKKyAgICAgICAgdGVzdC4KKworICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b246OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkFib3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvblRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246
Om9uQWJvcnRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpv
bkNvbXBsZXRlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
b25UaW1lb3V0VGltZXJGaXJlZCk6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5o
OgorICAgICAgICAqIHN0b3JhZ2UvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6
OmNvbW1pdCk6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOgor
CiAyMDEwLTEwLTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGExN2Y2MWNhZWQ4YzJjOWY5YzE3NDI1
YWZlZTZlOWM2N2Q4NWVjY2QuLjhiNjFmOWM4OGM4YjZmNjk0MTIyNDE1ZDdhMjVjMWExNWRmMGJk
YTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0zNzYwLDYgKzM3NjAsOCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55
LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJBbnkuaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJDYWxsYmFja3MuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDb21wbGV0ZUV2
ZW50LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDb21wbGV0ZUV2ZW50LmgnLAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCQ3Vyc29yLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJDdXJzb3IuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5j
cHAnLApAQCAtMzgwNyw2ICszODA5LDggQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVl
c3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5oJywKKyAgICAgICAgICAgICdzdG9yYWdl
L0lEQlRpbWVvdXRFdmVudC5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVGltZW91dEV2
ZW50LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2Uv
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0lEQkNvbXBsZXRlRXZlbnQuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNvbXBsZXRlRXZl
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYwYWQ5ZmM1MThkZmJiMGE1YjY4MzNkMTE5MzRkZTJlNmU3OTNk
NDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ29tcGxldGVFdmVudC5j
cHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJD
b21wbGV0ZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJJREJBbnkuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPElEQkNvbXBsZXRlRXZlbnQ+IElEQkNvbXBsZXRlRXZlbnQ6OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDb21wbGV0ZUV2ZW50KCkpOwor
fQorCitJREJDb21wbGV0ZUV2ZW50OjpJREJDb21wbGV0ZUV2ZW50KCkKKyAgICA6IElEQkV2ZW50
KGV2ZW50TmFtZXMoKS5jb21wbGV0ZUV2ZW50LCAwKSAvLyBGSVhNRTogc2V0IHRoZSBzb3VyY2Ug
dG8gdGhlIHRyYW5zYWN0aW9uCit7Cit9CisKK0lEQkNvbXBsZXRlRXZlbnQ6On5JREJDb21wbGV0
ZUV2ZW50KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDb21wbGV0ZUV2ZW50LmggYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCQ29tcGxldGVFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0MDcwOTZiN2MwYjZhYmNjM2Y2NmFl
ZTQ2NzBkMDYwNmRmMjdhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
Q29tcGxldGVFdmVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkNvbXBsZXRlRXZl
bnRfaAorI2RlZmluZSBJREJDb21wbGV0ZUV2ZW50X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQorCisjaW5jbHVkZSAiSURCRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkNvbXBsZXRlRXZlbnQgOiBwdWJs
aWMgSURCRXZlbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkNvbXBsZXRl
RXZlbnQ+IGNyZWF0ZSgpOworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFsbG93IGNyZWF0aW9uIG9m
IHRoZXNlIGV2ZW50cyBmcm9tIEpTLgorICAgIHZpcnR1YWwgfklEQkNvbXBsZXRlRXZlbnQoKTsK
KworICAgIHZpcnR1YWwgYm9vbCBpc0lEQkNvbXBsZXRlRXZlbnQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisKK3ByaXZhdGU6CisgICAgSURCQ29tcGxldGVFdmVudCgpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisK
KyNlbmRpZiAvLyBJREJDb21wbGV0ZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJUaW1lb3V0RXZlbnQuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRpbWVvdXRFdmVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjYxZWU0NzQ0NDg1N2VlNjE3YjUzMTMwN2UwYTU3MzNjZDU2YTdhYQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJUaW1lb3V0RXZlbnQuY3BwCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCVGltZW91
dEV2ZW50LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJJREJBbnkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPElEQlRpbWVvdXRFdmVudD4gSURCVGltZW91dEV2ZW50OjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVGltZW91dEV2ZW50KCkpOworfQorCitJREJU
aW1lb3V0RXZlbnQ6OklEQlRpbWVvdXRFdmVudCgpCisgICAgOiBJREJFdmVudChldmVudE5hbWVz
KCkuYWJvcnRFdmVudCwgMCkgLy8gRklYTUU6IHNldCB0aGUgc291cmNlIHRvIHRoZSB0cmFuc2Fj
dGlvbgoreworfQorCitJREJUaW1lb3V0RXZlbnQ6On5JREJUaW1lb3V0RXZlbnQoKQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQlRpbWVvdXRFdmVudC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRpbWVvdXRFdmVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmYzliYTQ4OGVlMzA4ZTZlMTc0MzUwYzMyMGYyZTI2Mzc1N2Q1ODkK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCVGltZW91dEV2ZW50LmgKQEAg
LTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSURCVGltZW91dEV2ZW50X2gKKyNkZWZpbmUgSURCVGlt
ZW91dEV2ZW50X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAi
SURCRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIElEQlRpbWVvdXRFdmVudCA6IHB1YmxpYyBJREJFdmVudCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVGltZW91dEV2ZW50PiBjcmVhdGUoKTsKKyAgICAv
LyBGSVhNRTogTmVlZCB0byBhbGxvdyBjcmVhdGlvbiBvZiB0aGVzZSBldmVudHMgZnJvbSBKUy4K
KyAgICB2aXJ0dWFsIH5JREJUaW1lb3V0RXZlbnQoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0lE
QlRpbWVvdXRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBJ
REJUaW1lb3V0RXZlbnQoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCVGltZW91dEV2ZW50
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5jcHAgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGEyMjNiN2Y5YjViZjExNDk1MzQx
YWJiMmExOTFlNWM3MjBiM2NmNGEuLjFlMTQzMjY3MWI5YWMyOTUwOThjZjE3ZDNlZDVjYTNkZGU5
ZjFhNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5jcHAKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBA
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1
ZGUgIklEQkFib3J0RXZlbnQuaCIKKyNpbmNsdWRlICJJREJDb21wbGV0ZUV2ZW50LmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgog
I2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5o
IgorI2luY2x1ZGUgIklEQlRpbWVvdXRFdmVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsOCArNDYsMTAgQEAgSURC
VHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8SURCVHIKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlz
KQogICAgICwgbV9iYWNrZW5kKGJhY2tlbmQpCiAgICAgLCBtX2RhdGFiYXNlKGRiKQotICAgICwg
bV9zdG9wcGVkKGZhbHNlKQotICAgICwgbV90aW1lcih0aGlzLCAmSURCVHJhbnNhY3Rpb246OnRp
bWVyRmlyZWQpCisgICAgLCBtX21vZGUobV9iYWNrZW5kLT5tb2RlKCkpCisgICAgLCBtX29uQWJv
cnRUaW1lcih0aGlzLCAmSURCVHJhbnNhY3Rpb246Om9uQWJvcnRUaW1lckZpcmVkKQorICAgICwg
bV9vbkNvbXBsZXRlVGltZXIodGhpcywgJklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRlVGltZXJG
aXJlZCkKKyAgICAsIG1fb25UaW1lb3V0VGltZXIodGhpcywgJklEQlRyYW5zYWN0aW9uOjpvblRp
bWVvdXRUaW1lckZpcmVkKQogewogICAgIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3I6OmFk
ZFBlbmRpbmdUcmFuc2FjdGlvbihtX2JhY2tlbmQuZ2V0KCkpOwogfQpAQCAtNTYsNyArNjAsNyBA
QCBJREJUcmFuc2FjdGlvbjo6fklEQlRyYW5zYWN0aW9uKCkKIAogdW5zaWduZWQgc2hvcnQgSURC
VHJhbnNhY3Rpb246Om1vZGUoKSBjb25zdAogewotICAgIHJldHVybiBtX2JhY2tlbmQtPm1vZGUo
KTsKKyAgICByZXR1cm4gbV9tb2RlOwogfQogCiBJREJEYXRhYmFzZSogSURCVHJhbnNhY3Rpb246
OmRiKCkKQEAgLTY2LDYgKzcwLDEwIEBAIElEQkRhdGFiYXNlKiBJREJUcmFuc2FjdGlvbjo6ZGIo
KQogCiBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3Rv
cmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBFeGNlcHRpb25Db2RlJikKIHsKKyAgICBpZiAo
IW1fYmFja2VuZCkgeworICAgICAgICAvLyBGSVhNRTogdGhyb3cgSURCRGF0YWJhc2VFeGNlcHRp
b246Ok5PVF9BTExPV0VEX0VSUi4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQogICAgIFJlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IG9iamVjdFN0b3JlQmFja2VuZCA9IG1f
YmFja2VuZC0+b2JqZWN0U3RvcmUobmFtZSk7CiAgICAgaWYgKCFvYmplY3RTdG9yZUJhY2tlbmQp
IHsKICAgICAgICAgLy8gRklYTUU6IHRocm93IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfQUxM
T1dFRF9FUlIuCkBAIC03Nyw3ICs4NSw4IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElE
QlRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0CiAKIHZv
aWQgSURCVHJhbnNhY3Rpb246OmFib3J0KCkKIHsKLSAgICBtX2JhY2tlbmQtPmFib3J0KCk7Cisg
ICAgaWYgKG1fYmFja2VuZCkKKyAgICAgICAgbV9iYWNrZW5kLT5hYm9ydCgpOwogfQogCiBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBJREJUcmFuc2FjdGlvbjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0CkBAIC04NywxOCArOTYsMzIgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSURC
VHJhbnNhY3Rpb246OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogCiB2b2lkIElEQlRy
YW5zYWN0aW9uOjpvbkFib3J0KCkKIHsKLSAgICBpZiAoIW1fc3RvcHBlZCkgewotICAgICAgICBt
X3NlbGZSZWYgPSB0aGlzOwotICAgICAgICBtX3N0b3BwZWQgPSB0cnVlOwotICAgICAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICB9Ci0gICAgLy8gUmVsZWFzZSB0aGUgYmFja2VuZCBh
cyBpdCBob2xkcyBhIChjaXJjdWxhcikgcmVmZXJlbmNlIGJhY2sgdG8gdXMuCi0gICAgbV9iYWNr
ZW5kLmNsZWFyKCk7CisgICAgQVNTRVJUKCFtX29uQWJvcnRUaW1lci5pc0FjdGl2ZSgpKTsKKyAg
ICBBU1NFUlQoIW1fb25Db21wbGV0ZVRpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VSVCghbV9v
blRpbWVvdXRUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBtX3NlbGZSZWYgPSB0aGlzOworICAgIG1f
b25BYm9ydFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICBtX2JhY2tlbmQuY2xlYXIoKTsgLy8g
UmVsZWFzZSB0aGUgYmFja2VuZCBhcyBpdCBob2xkcyBhIChjaXJjdWxhcikgcmVmZXJlbmNlIGJh
Y2sgdG8gdXMuCiB9CiAKLWludCBJREJUcmFuc2FjdGlvbjo6aWQoKSBjb25zdAordm9pZCBJREJU
cmFuc2FjdGlvbjo6b25Db21wbGV0ZSgpCiB7Ci0gICAgcmV0dXJuIG1fYmFja2VuZC0+aWQoKTsK
KyAgICBBU1NFUlQoIW1fb25BYm9ydFRpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VSVCghbV9v
bkNvbXBsZXRlVGltZXIuaXNBY3RpdmUoKSk7CisgICAgQVNTRVJUKCFtX29uVGltZW91dFRpbWVy
LmlzQWN0aXZlKCkpOworICAgIG1fc2VsZlJlZiA9IHRoaXM7CisgICAgbV9vbkNvbXBsZXRlVGlt
ZXIuc3RhcnRPbmVTaG90KDApOworICAgIG1fYmFja2VuZC5jbGVhcigpOyAvLyBSZWxlYXNlIHRo
ZSBiYWNrZW5kIGFzIGl0IGhvbGRzIGEgKGNpcmN1bGFyKSByZWZlcmVuY2UgYmFjayB0byB1cy4K
K30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6b25UaW1lb3V0KCkKK3sKKyAgICBBU1NFUlQoIW1f
b25BYm9ydFRpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VSVCghbV9vbkNvbXBsZXRlVGltZXIu
aXNBY3RpdmUoKSk7CisgICAgQVNTRVJUKCFtX29uVGltZW91dFRpbWVyLmlzQWN0aXZlKCkpOwor
ICAgIG1fc2VsZlJlZiA9IHRoaXM7CisgICAgbV9vblRpbWVvdXRUaW1lci5zdGFydE9uZVNob3Qo
MCk7CisgICAgbV9iYWNrZW5kLmNsZWFyKCk7IC8vIFJlbGVhc2UgdGhlIGJhY2tlbmQgYXMgaXQg
aG9sZHMgYSAoY2lyY3VsYXIpIHJlZmVyZW5jZSBiYWNrIHRvIHVzLgogfQogCiBib29sIElEQlRy
YW5zYWN0aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKQEAgLTExMCwxMSArMTMzLDggQEAgYm9vbCBJ
REJUcmFuc2FjdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246
OnN0b3AoKQogewotICAgIGlmICghbV9zdG9wcGVkKSB7Ci0gICAgICAgIC8vIFRoZSBkb2N1bWVu
dCBpcyBnZXR0aW5nIGRldGFjaGVkLiBBYm9ydCEKLSAgICAgICAgbV9zdG9wcGVkID0gdHJ1ZTsK
KyAgICBpZiAobV9iYWNrZW5kKQogICAgICAgICBtX2JhY2tlbmQtPmFib3J0KCk7Ci0gICAgfQog
fQogCiBFdmVudFRhcmdldERhdGEqIElEQlRyYW5zYWN0aW9uOjpldmVudFRhcmdldERhdGEoKQpA
QCAtMTI3LDE0ICsxNDcsMjggQEAgRXZlbnRUYXJnZXREYXRhKiBJREJUcmFuc2FjdGlvbjo6ZW5z
dXJlRXZlbnRUYXJnZXREYXRhKCkKICAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwogfQog
Ci12b2lkIElEQlRyYW5zYWN0aW9uOjp0aW1lckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uPiog
dHJhbnNhY3Rpb24pCit2b2lkIElEQlRyYW5zYWN0aW9uOjpvbkFib3J0VGltZXJGaXJlZChUaW1l
cjxJREJUcmFuc2FjdGlvbj4qIHRyYW5zYWN0aW9uKQogewogICAgIEFTU0VSVChtX3NlbGZSZWYp
OwotCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBzZWxmUmVmID0gbV9zZWxmUmVmLnJlbGVh
c2UoKTsKICAgICBkaXNwYXRjaEV2ZW50KElEQkFib3J0RXZlbnQ6OmNyZWF0ZSgpKTsKIH0KIAor
dm9pZCBJREJUcmFuc2FjdGlvbjo6b25Db21wbGV0ZVRpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNh
Y3Rpb24+KiB0cmFuc2FjdGlvbikKK3sKKyAgICBBU1NFUlQobV9zZWxmUmVmKTsKKyAgICBSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IHNlbGZSZWYgPSBtX3NlbGZSZWYucmVsZWFzZSgpOworICAgIGRp
c3BhdGNoRXZlbnQoSURCQ29tcGxldGVFdmVudDo6Y3JlYXRlKCkpOworfQorCisKK3ZvaWQgSURC
VHJhbnNhY3Rpb246Om9uVGltZW91dFRpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNhY3Rpb24+KiB0
cmFuc2FjdGlvbikKK3sKKyAgICBBU1NFUlQobV9zZWxmUmVmKTsKKyAgICBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+IHNlbGZSZWYgPSBtX3NlbGZSZWYucmVsZWFzZSgpOworICAgIGRpc3BhdGNoRXZl
bnQoSURCVGltZW91dEV2ZW50OjpjcmVhdGUoKSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5z
YWN0aW9uLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaAppbmRleCAwZDZmM2Vh
Y2RiMGEzMDNjMGI4NTQ2M2M4Y2ViMjk4YTYxYzYzMTFlLi4yNmM5MjE1Nzg2MjQxMjUzNmI3NGUx
MTRhNmVjZTdmZWRlZWI4ZGNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNh
Y3Rpb24uaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaApAQCAtNjksNyAr
NjksOCBAQCBwdWJsaWM6CiAKICAgICAvLyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcwogICAgIHZp
cnR1YWwgdm9pZCBvbkFib3J0KCk7Ci0gICAgdmlydHVhbCBpbnQgaWQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgb25Db21wbGV0ZSgpOworICAgIHZpcnR1YWwgdm9pZCBvblRpbWVvdXQoKTsK
IAogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmlydHVhbCBJREJUcmFuc2FjdGlvbiogdG9JREJU
cmFuc2FjdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0KQEAgLTkxLDE0ICs5MiwxOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CiAKLSAgICB2
b2lkIHRpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNhY3Rpb24+Kik7CisgICAgdm9pZCBvbkFib3J0
VGltZXJGaXJlZChUaW1lcjxJREJUcmFuc2FjdGlvbj4qKTsKKyAgICB2b2lkIG9uQ29tcGxldGVU
aW1lckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uPiopOworICAgIHZvaWQgb25UaW1lb3V0VGlt
ZXJGaXJlZChUaW1lcjxJREJUcmFuc2FjdGlvbj4qKTsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBt
X2V2ZW50VGFyZ2V0RGF0YTsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiBtX2JhY2tlbmQ7CiAgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBtX2RhdGFiYXNlOworICAg
IHVuc2lnbmVkIHNob3J0IG1fbW9kZTsKIAotICAgIGJvb2wgbV9zdG9wcGVkOwotICAgIFRpbWVy
PElEQlRyYW5zYWN0aW9uPiBtX3RpbWVyOworICAgIFRpbWVyPElEQlRyYW5zYWN0aW9uPiBtX29u
QWJvcnRUaW1lcjsKKyAgICBUaW1lcjxJREJUcmFuc2FjdGlvbj4gbV9vbkNvbXBsZXRlVGltZXI7
CisgICAgVGltZXI8SURCVHJhbnNhY3Rpb24+IG1fb25UaW1lb3V0VGltZXI7CiAgICAgUmVmUHRy
PElEQlRyYW5zYWN0aW9uPiBtX3NlbGZSZWY7IC8vIFRoaXMgaXMgc2V0IHRvIHVzIGlmZiB0aGVy
ZSdzIGFuIGV2ZW50IHBlbmRpbmcuCiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbC5jcHAKaW5kZXggMTc1NzI5NTNkMjQxOWM2MmM1NzAwMjI1YTlkYjIz
OWRlYjVjY2ZjNS4uMzJhN2Q3MGMzNTRmMTI5MmQ1MWYxMjZjZTc2NTNmNzU0NGMxNTcyYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcApAQCAtNDIs
NyArNDIsNyBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZShET01TdHJpbgogSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChET01TdHJpbmdMaXN0KiBvYmplY3RTdG9y
ZXMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIHVuc2lnbmVkIGxvbmcgdGltZW91dCwgaW50IGlkLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKICAgICA6IG1fb2JqZWN0U3RvcmVOYW1l
cyhvYmplY3RTdG9yZXMpCiAgICAgLCBtX21vZGUobW9kZSkKLSAgICAsIG1fdGltZW91dCh0aW1l
b3V0KQorICAgICwgbV90aW1lb3V0KHRpbWVvdXQpIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGltZW91
dC4KICAgICAsIG1faWQoaWQpCiAgICAgLCBtX3N0YXRlKFVudXNlZCkKICAgICAsIG1fZGF0YWJh
c2UoZGF0YWJhc2UpCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsOjpjb21taXQoKQogCiAgICAgbV9zdGF0ZSA9IEZpbmlzaGVkOwogICAgIG1fdHJhbnNh
Y3Rpb24tPmNvbW1pdCgpOworICAgIG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7CiAgICAgbV9k
YXRhYmFzZS0+dHJhbnNhY3Rpb25Db29yZGluYXRvcigpLT5kaWRGaW5pc2hUcmFuc2FjdGlvbih0
aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaAppbmRl
eCAzODE4MWZjY2YzY2JkMTA0N2UyMjJmMThlZmE4YzNmNjYzY2RkMzNkLi4zNDg2MDhkYTNlYzYy
MTUzMWIwNTVhNmM3NTgwNzc5ZWIwY2JmNmJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MuaApAQCAtNDEsOCArNDEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0
KCkgPSAwOwotICAgIHZpcnR1YWwgaW50IGlkKCkgY29uc3QgPSAwOwotICAgIC8vIEZJWE1FOiBh
ZGQgdGhlIHJlc3QKKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZSgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb25UaW1lb3V0KCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggNDQwMjI5M2FjYmY4YjM2YzNlMmZiZmFhOTY3OWRkYTQ4NWEyMGM1Zi4u
MWY3YzM5M2EyODMzNzZlYzFlMzE1MmRlMmMzMmQyYWNkN2Y4NTE0ZSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMTAtMDQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IEluZGV4ZWREQidzIG9uY29tcGxldGUgYW5kIG9udGltZW91dC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTA2CisKKyAgICAgICAg
KiBwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M6OmlkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3M6Om9uQWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrczo6b25Db21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzOjpvblRpbWVvdXQpOgorICAgICAgICAqIHNyYy9JREJUcmFu
c2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzUHJveHk6Om9uQ29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25DYWxsYmFja3NQcm94eTo6b25UaW1lb3V0KToKKyAgICAgICAgKiBzcmMvSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCVHJhbnNhY3Rpb25D
YWxsYmFja3NJbXBsOjpvbkNvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25UaW1lb3V0KToKKyAgICAgICAgKiBzcmMvV2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NJbXBsLmg6CisKIDIwMTAtMTAtMDEgIFZpY3RvcmlhIEtpcnN0ICA8
dnJrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
LmgKaW5kZXggNGI5MjIxNzlkMzA0MjQ1YjliNTkxMzUwMmNlYTg2MWU1Mjk4NGMxOC4uNTA4OTI1
ZGJmM2Y4YzZiYTAyNjgxZDFlOGRjYTc5NjQ2NzY5N2Y0NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaApAQCAtMzMsMTIgKzMz
LDE2IEBAIGNsYXNzIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzIHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcygpIHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIG9uQWJvcnQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1
YWwgaW50IGlkKCkgY29uc3QKLSAgICB7IAorICAgIC8vIEZJWE1FOiBSZW1vdmUuCisgICAgdmly
dHVhbCBpbnQgaWQoKQorICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gMDsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydCgp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uQ29t
cGxldGUoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBvblRpbWVvdXQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFu
c2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCBiZTdkNDRmMTlkMjU2M2M4NDIzY2U2MTAy
M2E4ODE0MGU2ZjgzYTc3Li4zYTE5ZmUyZWRmNjhmY2YxYjliMjJmMTNiOWQyZWE0OTUwMjAxZTNl
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
UHJveHkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NQcm94eS5jcHAKQEAgLTU1LDkgKzU1LDE2IEBAIHZvaWQgSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NQcm94eTo6b25BYm9ydCgpCiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0KIAotaW50IElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OmlkKCkgY29uc3QKK3ZvaWQgSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NQcm94eTo6b25Db21wbGV0ZSgpCiB7Ci0gICAgcmV0dXJuIG1fY2FsbGJhY2tz
LT5pZCgpOworICAgIG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7CisgICAgbV9jYWxsYmFja3Mu
Y2xlYXIoKTsKK30KKwordm9pZCBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5OjpvblRpbWVv
dXQoKQoreworICAgIG1fY2FsbGJhY2tzLT5vblRpbWVvdXQoKTsKKyAgICBtX2NhbGxiYWNrcy5j
bGVhcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oCmluZGV4IDgyMWVmZjRkMmI4
YzI1MDc3YzI5ZjIyYzM4ZTRkODk4MTFmOGM4NmMuLjg5MWQ1YzkwZWM4NTFlZTFmYzg2NWU4MmYw
YjJiNmFmN2M2YzJkNDggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NQcm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NQcm94eS5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
b25BYm9ydCgpOwotICAgIHZpcnR1YWwgaW50IGlkKCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6IGlt
cGxlbWVudCBvbkNvbXBsZXRlKCkuCisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgb25UaW1lb3V0KCk7CiAKIHByaXZhdGU6CiAgICAgSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NQcm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCVHJhbnNhY3Rpb25DYWxs
YmFja3M+KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NJbXBsLmNwcAppbmRleCAyNjRkZGM1MmNmNDAyZWFmYzZjNjVmYzY0MzkxM2U3
NTc0ZmNjOTA0Li45NjkyNGNmMWI3ZGFjODMzMjFlZGY5M2I4MTJlYWM5YTQ1YTQ5ZGRiIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1w
bC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNr
c0ltcGwuY3BwCkBAIC00Niw5ICs0NiwxNCBAQCB2b2lkIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzSW1wbDo6b25BYm9ydCgpCiAgICAgbV9jYWxsYmFja3MtPm9uQWJvcnQoKTsKIH0KIAotaW50
IFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6aWQoKSBjb25zdAordm9pZCBXZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUoKQogewotICAgIHJldHVybiBtX2Nh
bGxiYWNrcy0+aWQoKTsKKyAgICBtX2NhbGxiYWNrcy0+b25Db21wbGV0ZSgpOworfQorCit2b2lk
IFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25UaW1lb3V0KCkKK3sKKyAgICBtX2Nh
bGxiYWNrcy0+b25UaW1lb3V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5o
CmluZGV4IDM5OGE2NzlhOTc4ZmVjMWQzMWE0YzIyZDVjMzQ0NWQ2NTVlNmEzZmIuLjg5YjljYmUy
YzFhY2RhMWE0NGRiODQxOTA0ZDBjYjhmNGFjOWJiNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuaApAQCAtNDIsNyArNDIs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBs
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydCgpOwotICAgIHZpcnR1YWwgaW50IGlkKCkg
Y29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
b25UaW1lb3V0KCk7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzPiBtX2NhbGxiYWNrczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>