<?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>97822</bug_id>
          
          <creation_ts>2012-09-27 14:30:42 -0700</creation_ts>
          <short_desc>Remove support for CFM plug-ins in WebKit1</short_desc>
          <delta_ts>2012-09-27 14:36:30 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>729868</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-09-27 14:30:42 -0700</bug_when>
    <thetext>Remove support for CFM plug-ins in WebKit1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729871</commentid>
    <comment_count>1</comment_count>
      <attachid>166065</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-09-27 14:32:22 -0700</bug_when>
    <thetext>Created attachment 166065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729877</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-09-27 14:36:30 -0700</bug_when>
    <thetext>Committed r129801: &lt;http://trac.webkit.org/changeset/129801&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166065</attachid>
            <date>2012-09-27 14:32:22 -0700</date>
            <delta_ts>2012-09-27 14:34:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97822-20120927143140.patch</filename>
            <type>text/plain</type>
            <size>34399</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNmY2YTFjYmY0
MjNjNTAwNzNlOGM2OWJlYjU3ZTBhN2I1NTMzYzAyMi4uY2JlZjU0YWUwNzEyN2RmYzBjM2IxYTMz
YTVlMmUzYTVmM2FmMDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEy
LTA5LTI3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIENGTSBwbHVnLWlucyBpbiBXZWJLaXQxCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzgyMgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEknbSBwcmV0dHkgc3VyZSB0aGF0IENG
TSBzdHlsZSBwbHVnLWlucyBoYXZlbid0IGJlZW4gdXNlZCBmb3IgdGhlIGxhc3QgdGVuIHllYXJz
IG9yIHNvLAorICAgICAgICBzbyBpdCdzIHNhZmUgdG8gcmVtb3ZlIHRoZW0gKGVzcGVjaWFsbHkg
c2luY2UgdGhleSdyZSBQUEMgb25seSkuCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luUGFja2FnZS5oOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlLm1tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2Ugb3BlblJlc291cmNl
RmlsZV0pOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgY2xvc2VSZXNvdXJj
ZUZpbGU6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBfaW5pdFdpdGhQ
YXRoOl0pOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgX3RyeUxvYWRdKToK
KyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIF91bmxvYWRXaXRoU2h1dGRvd246
XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbToKKyAgICAgICAgKFBs
dWdpblBhY2thZ2VDYW5kaWRhdGVzOjpQbHVnaW5QYWNrYWdlQ2FuZGlkYXRlcyk6CisgICAgICAg
IChQbHVnaW5QYWNrYWdlQ2FuZGlkYXRlczo6dXBkYXRlKToKKyAgICAgICAgKFBsdWdpblBhY2th
Z2VDYW5kaWRhdGVzOjpiZXN0Q2FuZGlkYXRlKToKKyAgICAgICAgKFBsdWdpblBhY2thZ2VDYW5k
aWRhdGVzKToKKwogMjAxMi0wOS0yNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcga0NGVVJMSEZTUGF0aFN0eWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5oIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UuaAppbmRl
eCBiODJiMzdmZDBiY2FmNjkzNTQ5MjY2ZmM1NDJhZWUwOTZjMjcxNjM5Li41MzEzY2VhNDVlMmMw
ZTBmN2EwMzhjNGNiY2M2MDU2MTFlMDljZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgKQEAgLTMwLDE1ICszMCw2IEBA
CiAjaW1wb3J0ICJXZWJCYXNlUGx1Z2luUGFja2FnZS5oIgogCiAKLSNpZiBkZWZpbmVkKF9fcHBj
X18pICYmICFkZWZpbmVkKF9fTFA2NF9fKQotI2RlZmluZSBTVVBQT1JUX0NGTQotI2VuZGlmCi0K
LXR5cGVkZWYgZW51bSB7Ci0gICAgV2ViQ0ZNRXhlY3V0YWJsZVR5cGUsCi0gICAgV2ViTWFjaE9F
eGVjdXRhYmxlVHlwZQotfSBXZWJFeGVjdXRhYmxlVHlwZTsKLQogQGludGVyZmFjZSBXZWJOZXRz
Y2FwZVBsdWdpblBhY2thZ2UgOiBXZWJCYXNlUGx1Z2luUGFja2FnZQogewogICAgIE5QUGx1Z2lu
RnVuY3MgcGx1Z2luRnVuY3M7CkBAIC01OCwxMiArNDksNiBAQCB0eXBlZGVmIGVudW0gewogI2lm
IFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKQogICAgIGNwdV90eXBlX3QgcGx1Z2luSG9zdEFyY2hp
dGVjdHVyZTsKICNlbmRpZgotICAgIAotI2lmZGVmIFNVUFBPUlRfQ0ZNCi0gICAgQk9PTCBpc0J1
bmRsZTsKLSAgICBCT09MIGlzQ0ZNOwotICAgIENGcmFnQ29ubmVjdGlvbklEIGNvbm5JRDsKLSNl
bmRpZgogfQogCiAvLyBOZXRzY2FwZSBwbHVnLWluIHBhY2thZ2VzIG11c3QgYmUgZXhwbGljaXRs
eSBvcGVuZWQgYW5kIGNsb3NlZCBieSBlYWNoIHBsdWctaW4gaW5zdGFuY2UuCkBAIC03MSw3ICs1
Niw2IEBAIHR5cGVkZWYgZW51bSB7CiAtICh2b2lkKW9wZW47CiAtICh2b2lkKWNsb3NlOwogCi0t
IChXZWJFeGVjdXRhYmxlVHlwZSlleGVjdXRhYmxlVHlwZTsKIC0gKE5QUGx1Z2luRnVuY3MgKilw
bHVnaW5GdW5jczsKIC0gKE5QTmV0c2NhcGVGdW5jcyAqKWJyb3dzZXJGdW5jczsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2Uu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5t
bQppbmRleCA1MzNiNTM5NzVhYzQwMmVhOTNiNGM5ODc1ZjAxM2IwYzQ1ODc1ZjE2Li43YTg0ZGM4
MDhhMmVhMTZmNmMxMmI3N2U4MTk3MmJhYjAxNWIwOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5tbQpAQCAtNTcsOSAr
NTcsNiBAQCBzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVy
KEZ1bmN0aW9uUG9pbnRlcik7CiAjZGVmaW5lIE1JTUVEZXNjcmlwdGlvblN0cmluZ051bWJlciAg
ICAgICAgICAgICAxMjcKICNkZWZpbmUgTUlNRUxpc3RTdHJpbmdTdHJpbmdOdW1iZXIgICAgICAg
ICAgICAgIDEyOAogCi0jZGVmaW5lIFJlYWxQbGF5ZXJBcHBJbmRlbnRpZmllciAgICAgICAgICAg
ICAgICBAImNvbS5SZWFsTmV0d29ya3MuUmVhbE9uZSBQbGF5ZXIiCi0jZGVmaW5lIFJlYWxQbGF5
ZXJQbHVnaW5GaWxlbmFtZSAgICAgICAgICAgICAgICAiUmVhbFBsYXllciBQbHVnaW4iCi0KIEBp
bnRlcmZhY2UgV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIChJbnRlcm5hbCkKIC0gKHZvaWQpX3Vu
bG9hZFdpdGhTaHV0ZG93bjooQk9PTClzaHV0ZG93bjsKIEBlbmQKQEAgLTEwNywyOSArMTA0LDEx
IEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoRnVu
Y3Rpb25Qb2ludGVyKTsKIAogLSAoUmVzRmlsZVJlZk51bSlvcGVuUmVzb3VyY2VGaWxlCiB7Ci0j
aWZkZWYgU1VQUE9SVF9DRk0KLSAgICBpZiAoIWlzQnVuZGxlKSB7Ci0gICAgICAgIEZTUmVmIGZy
ZWY7Ci0gICAgICAgIE9TRXJyIGVyciA9IEZTUGF0aE1ha2VSZWYoKGNvbnN0IFVJbnQ4ICopWyhO
U1N0cmluZyAqKXBhdGggZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXSwgJmZyZWYsIE5VTEwpOwot
ICAgICAgICBpZiAoZXJyICE9IG5vRXJyKQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
ICAKLSAgICAgICAgcmV0dXJuIEZTT3BlblJlc0ZpbGUoJmZyZWYsIGZzUmRQZXJtKTsKLSAgICB9
Ci0jZW5kaWYKLQogICAgIHJldHVybiBDRkJ1bmRsZU9wZW5CdW5kbGVSZXNvdXJjZU1hcChjZkJ1
bmRsZS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpY2xvc2VSZXNvdXJjZUZpbGU6KFJlc0ZpbGVSZWZO
dW0pcmVzUmVmCiB7Ci0jaWZkZWYgU1VQUE9SVF9DRk0KLSAgICBpZiAoIWlzQnVuZGxlKSB7Ci0g
ICAgICAgIENsb3NlUmVzRmlsZShyZXNSZWYpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2Vu
ZGlmCi0KICAgICBDRkJ1bmRsZUNsb3NlQnVuZGxlUmVzb3VyY2VNYXAoY2ZCdW5kbGUuZ2V0KCks
IHJlc1JlZik7CiB9CiAKQEAgLTIyNyw2MCArMjA2LDMxIEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVj
dG9yIHRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoRnVuY3Rpb25Qb2ludGVyKTsKICAgICAKICAg
ICBPU1R5cGUgdHlwZSA9IDA7CiAKLSAgICBpZiAoY2ZCdW5kbGUpIHsKLSAgICAgICAgLy8gQnVu
ZGxlCi0gICAgICAgIENGQnVuZGxlR2V0UGFja2FnZUluZm8oY2ZCdW5kbGUuZ2V0KCksICZ0eXBl
LCBOVUxMKTsKLSNpZmRlZiBTVVBQT1JUX0NGTQotICAgICAgICBpc0J1bmRsZSA9IFlFUzsKLSNl
bmRpZgotICAgIH0gZWxzZSB7Ci0jaWZkZWYgU1VQUE9SVF9DRk0KLSAgICAgICAgLy8gU2luZ2xl
LWZpbGUgcGx1Zy1pbiB3aXRoIHJlc291cmNlIGZvcmsKLSAgICAgICAgTlNTdHJpbmcgKmRlc3Rp
bmF0aW9uUGF0aCA9IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZGVzdGluYXRpb25P
ZlN5bWJvbGljTGlua0F0UGF0aDpwYXRoIGVycm9yOjBdOwotICAgICAgICB0eXBlID0gW1tbTlNG
aWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gYXR0cmlidXRlc09mSXRlbUF0UGF0aDpkZXN0aW5h
dGlvblBhdGggZXJyb3I6MF0gZmlsZUhGU1R5cGVDb2RlXTsKLSAgICAgICAgaXNCdW5kbGUgPSBO
TzsKLSAgICAgICAgaXNDRk0gPSBZRVM7Ci0jZWxzZQorICAgIGlmICghY2ZCdW5kbGUpCiAgICAg
ICAgIHJldHVybiBOTzsKLSNlbmRpZgotICAgIH0KKworICAgIENGQnVuZGxlR2V0UGFja2FnZUlu
Zm8oY2ZCdW5kbGUuZ2V0KCksICZ0eXBlLCBOVUxMKTsKICAgICAKICAgICBpZiAodHlwZSAhPSBG
T1VSX0NIQVJfQ09ERSgnQlJQTCcpKQogICAgICAgICByZXR1cm4gTk87CiAKLSAgICAvLyBDaGVj
ayBpZiB0aGUgZXhlY3V0YWJsZSBpcyBNYWNoLU8gb3IgQ0ZNLgotICAgIGlmIChjZkJ1bmRsZSkg
ewotICAgICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGV4ZWN1dGFibGVVUkwoQWRvcHRDRiwgQ0ZC
dW5kbGVDb3B5RXhlY3V0YWJsZVVSTChjZkJ1bmRsZS5nZXQoKSkpOwotICAgICAgICBpZiAoIWV4
ZWN1dGFibGVVUkwpCi0gICAgICAgICAgICByZXR1cm4gTk87Ci0gICAgICAgIE5TRmlsZUhhbmRs
ZSAqZXhlY3V0YWJsZUZpbGUgPSBbTlNGaWxlSGFuZGxlIGZpbGVIYW5kbGVGb3JSZWFkaW5nQXRQ
YXRoOlsoTlNVUkwgKilleGVjdXRhYmxlVVJMLmdldCgpIHBhdGhdXTsKLSAgICAgICAgTlNEYXRh
ICpkYXRhID0gW2V4ZWN1dGFibGVGaWxlIHJlYWREYXRhT2ZMZW5ndGg6NTEyXTsKLSAgICAgICAg
W2V4ZWN1dGFibGVGaWxlIGNsb3NlRmlsZV07Ci0gICAgICAgIC8vIENoZWNrIHRoZSBsZW5ndGgg
b2YgdGhlIGRhdGEgYmVmb3JlIGNhbGxpbmcgbWVtY21wLiBXZSB0aGluayB0aGlzIGZpeGVzIDM3
ODI1NDMuCi0gICAgICAgIGlmIChkYXRhID09IG5pbCB8fCBbZGF0YSBsZW5ndGhdIDwgOCkKLSAg
ICAgICAgICAgIHJldHVybiBOTzsKLSAgICAgICAgQk9PTCBoYXNDRk1IZWFkZXIgPSBtZW1jbXAo
W2RhdGEgYnl0ZXNdLCAiSm95IXBlZmYiLCA4KSA9PSAwOwotI2lmZGVmIFNVUFBPUlRfQ0ZNCi0g
ICAgICAgIGlzQ0ZNID0gaGFzQ0ZNSGVhZGVyOwotI2Vsc2UKLSAgICAgICAgaWYgKGhhc0NGTUhl
YWRlcikKLSAgICAgICAgICAgIHJldHVybiBOTzsKLSNlbmRpZgotCiAjaWYgVVNFKFBMVUdJTl9I
T1NUX1BST0NFU1MpCi0gICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBhcmNocyhBZG9wdENG
LCBDRkJ1bmRsZUNvcHlFeGVjdXRhYmxlQXJjaGl0ZWN0dXJlcyhjZkJ1bmRsZS5nZXQoKSkpOwot
ICAgICAgICAKLSAgICAgICAgaWYgKFsoTlNBcnJheSAqKWFyY2hzLmdldCgpIGNvbnRhaW5zT2Jq
ZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50ZWdlcjpOU0J1bmRsZUV4ZWN1dGFibGVBcmNoaXRl
Y3R1cmVYODZfNjRdXSkKLSAgICAgICAgICAgIHBsdWdpbkhvc3RBcmNoaXRlY3R1cmUgPSBDUFVf
VFlQRV9YODZfNjQ7Ci0gICAgICAgIGVsc2UgaWYgKFsoTlNBcnJheSAqKWFyY2hzLmdldCgpIGNv
bnRhaW5zT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50ZWdlcjpOU0J1bmRsZUV4ZWN1dGFi
bGVBcmNoaXRlY3R1cmVJMzg2XV0pCi0gICAgICAgICAgICBwbHVnaW5Ib3N0QXJjaGl0ZWN0dXJl
ID0gQ1BVX1RZUEVfWDg2OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gTk87Cisg
ICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGFyY2hzKEFkb3B0Q0YsIENGQnVuZGxlQ29weUV4ZWN1
dGFibGVBcmNoaXRlY3R1cmVzKGNmQnVuZGxlLmdldCgpKSk7CisKKyAgICBpZiAoWyhOU0FycmF5
ICopYXJjaHMuZ2V0KCkgY29udGFpbnNPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnRlZ2Vy
Ok5TQnVuZGxlRXhlY3V0YWJsZUFyY2hpdGVjdHVyZVg4Nl82NF1dKQorICAgICAgICBwbHVnaW5I
b3N0QXJjaGl0ZWN0dXJlID0gQ1BVX1RZUEVfWDg2XzY0OworICAgIGVsc2UgaWYgKFsoTlNBcnJh
eSAqKWFyY2hzLmdldCgpIGNvbnRhaW5zT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50ZWdl
cjpOU0J1bmRsZUV4ZWN1dGFibGVBcmNoaXRlY3R1cmVJMzg2XV0pCisgICAgICAgIHBsdWdpbkhv
c3RBcmNoaXRlY3R1cmUgPSBDUFVfVFlQRV9YODY7CisgICAgZWxzZQorICAgICAgICByZXR1cm4g
Tk87CiAjZWxzZQotICAgICAgICBpZiAoIVtzZWxmIGlzTmF0aXZlTGlicmFyeURhdGE6ZGF0YV0p
Ci0gICAgICAgICAgICByZXR1cm4gTk87CisgICAgUmV0YWluUHRyPENGVVJMUmVmPiBleGVjdXRh
YmxlVVJMKEFkb3B0Q0YsIENGQnVuZGxlQ29weUV4ZWN1dGFibGVVUkwoY2ZCdW5kbGUuZ2V0KCkp
KTsKKyAgICBpZiAoIWV4ZWN1dGFibGVVUkwpCisgICAgICAgIHJldHVybiBOTzsKKyAgICBOU0Zp
bGVIYW5kbGUgKmV4ZWN1dGFibGVGaWxlID0gW05TRmlsZUhhbmRsZSBmaWxlSGFuZGxlRm9yUmVh
ZGluZ0F0UGF0aDpbKE5TVVJMICopZXhlY3V0YWJsZVVSTC5nZXQoKSBwYXRoXV07CisgICAgTlNE
YXRhICpkYXRhID0gW2V4ZWN1dGFibGVGaWxlIHJlYWREYXRhT2ZMZW5ndGg6NTEyXTsKKyAgICBb
ZXhlY3V0YWJsZUZpbGUgY2xvc2VGaWxlXTsKICNlbmRpZgotICAgIH0KIAogICAgIGlmICghW3Nl
bGYgZ2V0UGx1Z2luSW5mb0Zyb21QTGlzdHNdICYmICFbc2VsZiBnZXRQbHVnaW5JbmZvRnJvbVJl
c291cmNlc10pCiAgICAgICAgIHJldHVybiBOTzsKQEAgLTMwNCwxNSArMjU0LDYgQEAgc3RhdGlj
IFRyYW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcihGdW5jdGlvblBvaW50
ZXIpOwogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChXZWJFeGVjdXRhYmxlVHlwZSlleGVjdXRh
YmxlVHlwZQotewotI2lmZGVmIFNVUFBPUlRfQ0ZNCi0gICAgaWYgKGlzQ0ZNKQotICAgICAgICBy
ZXR1cm4gV2ViQ0ZNRXhlY3V0YWJsZVR5cGU7Ci0jZW5kaWYKLSAgICByZXR1cm4gV2ViTWFjaE9F
eGVjdXRhYmxlVHlwZTsKLX0KLQogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKQogLSAoY3B1
X3R5cGVfdClwbHVnaW5Ib3N0QXJjaGl0ZWN0dXJlCiB7CkBAIC0zMjYsMzQgKzI2Nyw2IEBAIHN0
YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoRnVuY3Rpb25Q
b2ludGVyKTsKIAogI2VuZGlmCiAKLS0gKHZvaWQpbGF1bmNoUmVhbFBsYXllcgotewotICAgIENG
VVJMUmVmIGFwcFVSTCA9IE5VTEw7Ci0gICAgT1NTdGF0dXMgZXJyb3IgPSBMU0ZpbmRBcHBsaWNh
dGlvbkZvckluZm8oa0xTVW5rbm93bkNyZWF0b3IsIChDRlN0cmluZ1JlZilSZWFsUGxheWVyQXBw
SW5kZW50aWZpZXIsIE5VTEwsIE5VTEwsICZhcHBVUkwpOwotICAgIGlmICghZXJyb3IpIHsKLSAg
ICAgICAgTFNMYXVuY2hVUkxTcGVjIFVSTFNwZWM7Ci0gICAgICAgIGJ6ZXJvKCZVUkxTcGVjLCBz
aXplb2YoVVJMU3BlYykpOwotICAgICAgICBVUkxTcGVjLmxhdW5jaEZsYWdzID0ga0xTTGF1bmNo
RGVmYXVsdHMgfCBrTFNMYXVuY2hEb250U3dpdGNoOwotICAgICAgICBVUkxTcGVjLmFwcFVSTCA9
IGFwcFVSTDsKLSAgICAgICAgTFNPcGVuRnJvbVVSTFNwZWMoJlVSTFNwZWMsIE5VTEwpOwotICAg
ICAgICBDRlJlbGVhc2UoYXBwVVJMKTsKLSAgICB9Ci19Ci0KLS0gKHZvaWQpX2FwcGx5RGpWdVdv
cmthcm91bmQKLXsKLSAgICBpZiAoIWNmQnVuZGxlKQotICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgaWYgKFtzZWxmIGJ1bmRsZUlkZW50aWZpZXJdID09ICJjb20ubGl6YXJkdGVjaC5OUERqVnUi
KSB7Ci0gICAgICAgIC8vIFRoZSBEalZ1IHBsdWctaW4gd2lsbCBjcmFzaCBjb3B5aW5nIHRoZSB2
dGFibGUgaWYgaXQncyB0b28gYmlnIHNvIHdlIGNhcCBpdCB0byAKLSAgICAgICAgLy8gd2hhdCB0
aGUgcGx1Zy1pbiBleHBlY3RzIGhlcmUuIAotICAgICAgICAvLyBzaXplICsgdmVyc2lvbiArIDQw
IGZ1bmN0aW9uIHBvaW50ZXJzLgotICAgICAgICBicm93c2VyRnVuY3Muc2l6ZSA9IDIgKyAyICsg
c2l6ZW9mKHZvaWQgKikgKiA0MDsKLSAgICB9Ci0gICAgICAgIAotfQotCiAtICh2b2lkKXVubG9h
ZAogewogICAgIFtzZWxmIF91bmxvYWRXaXRoU2h1dGRvd246WUVTXTsKQEAgLTM3OSw3MCArMjky
LDIwIEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIo
RnVuY3Rpb25Qb2ludGVyKTsKICAgICBpZiAoaXNMb2FkZWQpCiAgICAgICAgIHJldHVybiBZRVM7
CiAgICAgCi0jaWZkZWYgU1VQUE9SVF9DRk0KLSAgICBpZiAoaXNCdW5kbGUpIHsKLSNlbmRpZgot
ICAgICAgICBpZiAoIUNGQnVuZGxlTG9hZEV4ZWN1dGFibGUoY2ZCdW5kbGUuZ2V0KCkpKQotICAg
ICAgICAgICAgcmV0dXJuIE5POwotI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgY3VycmVudFRp
bWUgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKLSAgICAgICAgZHVyYXRpb24gPSBjdXJy
ZW50VGltZSAtIHN0YXJ0OwotI2VuZGlmCi0gICAgICAgIExPRyhQbHVnaW5zLCAiJWYgQ0ZCdW5k
bGVMb2FkRXhlY3V0YWJsZSB0b29rICVmIHNlY29uZHMiLCBjdXJyZW50VGltZSwgZHVyYXRpb24p
OwotICAgICAgICBpc0xvYWRlZCA9IFlFUzsKLSAgICAgICAgCi0jaWZkZWYgU1VQUE9SVF9DRk0K
LSAgICAgICAgaWYgKGlzQ0ZNKSB7Ci0gICAgICAgICAgICBwbHVnaW5NYWluRnVuYyA9IChNYWlu
RnVuY1B0cilDRkJ1bmRsZUdldEZ1bmN0aW9uUG9pbnRlckZvck5hbWUoY2ZCdW5kbGUuZ2V0KCks
IENGU1RSKCJtYWluIikgKTsKLSAgICAgICAgICAgIGlmICghcGx1Z2luTWFpbkZ1bmMpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5POwotICAgICAgICB9IGVsc2UgewotI2VuZGlmCi0gICAgICAg
ICAgICBOUF9Jbml0aWFsaXplID0gKE5QX0luaXRpYWxpemVGdW5jUHRyKUNGQnVuZGxlR2V0RnVu
Y3Rpb25Qb2ludGVyRm9yTmFtZShjZkJ1bmRsZS5nZXQoKSwgQ0ZTVFIoIk5QX0luaXRpYWxpemUi
KSk7Ci0gICAgICAgICAgICBOUF9HZXRFbnRyeVBvaW50cyA9IChOUF9HZXRFbnRyeVBvaW50c0Z1
bmNQdHIpQ0ZCdW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JOYW1lKGNmQnVuZGxlLmdldCgpLCBD
RlNUUigiTlBfR2V0RW50cnlQb2ludHMiKSk7Ci0gICAgICAgICAgICBOUF9TaHV0ZG93biA9IChO
UFBfU2h1dGRvd25Qcm9jUHRyKUNGQnVuZGxlR2V0RnVuY3Rpb25Qb2ludGVyRm9yTmFtZShjZkJ1
bmRsZS5nZXQoKSwgQ0ZTVFIoIk5QX1NodXRkb3duIikpOwotICAgICAgICAgICAgaWYgKCFOUF9J
bml0aWFsaXplIHx8ICFOUF9HZXRFbnRyeVBvaW50cyB8fCAhTlBfU2h1dGRvd24pCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIE5POwotI2lmZGVmIFNVUFBPUlRfQ0ZNCi0gICAgICAgIH0KLSAgICB9
IGVsc2UgewotICAgICAgICAvLyBzaW5nbGUgQ0ZNIGZpbGUKLSAgICAgICAgRlNTcGVjIHNwZWM7
Ci0gICAgICAgIEZTUmVmIGZyZWY7Ci0gICAgICAgIE9TRXJyIGVycjsKLSAgICAgICAgCi0gICAg
ICAgIGVyciA9IEZTUGF0aE1ha2VSZWYoKFVJbnQ4ICopWyhOU1N0cmluZyAqKXBhdGggZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uXSwgJmZyZWYsIE5VTEwpOwotICAgICAgICBpZiAoZXJyICE9IG5v
RXJyKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkZTUGF0aE1ha2VSZWYgZmFpbGVkLiBFcnJv
cj0lZCIsIGVycik7Ci0gICAgICAgICAgICByZXR1cm4gTk87Ci0gICAgICAgIH0KLSAgICAgICAg
ZXJyID0gRlNHZXRDYXRhbG9nSW5mbygmZnJlZiwga0ZTQ2F0SW5mb05vbmUsIE5VTEwsIE5VTEws
ICZzcGVjLCBOVUxMKTsKLSAgICAgICAgaWYgKGVyciAhPSBub0VycikgewotICAgICAgICAgICAg
TE9HX0VSUk9SKCJGU0dldENhdGFsb2dJbmZvIGZhaWxlZC4gRXJyb3I9JWQiLCBlcnIpOwotICAg
ICAgICAgICAgcmV0dXJuIE5POwotICAgICAgICB9Ci0gICAgICAgIGVyciA9IFdlYkdldERpc2tG
cmFnbWVudCgmc3BlYywgMCwga0NGcmFnR29lc1RvRU9GLCBuaWwsIGtQcml2YXRlQ0ZyYWdDb3B5
LCAmY29ubklELCAoUHRyICopJnBsdWdpbk1haW5GdW5jLCBuaWwpOwotICAgICAgICBpZiAoZXJy
ICE9IG5vRXJyKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIldlYkdldERpc2tGcmFnbWVudCBm
YWlsZWQuIEVycm9yPSVkIiwgZXJyKTsKLSAgICAgICAgICAgIHJldHVybiBOTzsKLSAgICAgICAg
fQorICAgIGlmICghQ0ZCdW5kbGVMb2FkRXhlY3V0YWJsZShjZkJ1bmRsZS5nZXQoKSkpCisgICAg
ICAgIHJldHVybiBOTzsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGN1cnJlbnRUaW1lID0g
Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCk7Ci0gICAgICAgIGR1cmF0aW9uID0gY3VycmVudFRp
bWUgLSBzdGFydDsKKyAgICBjdXJyZW50VGltZSA9IENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgp
OworICAgIGR1cmF0aW9uID0gY3VycmVudFRpbWUgLSBzdGFydDsKICNlbmRpZgotICAgICAgICBM
T0coUGx1Z2lucywgIiVmIFdlYkdldERpc2tGcmFnbWVudCB0b29rICVmIHNlY29uZHMiLCBjdXJy
ZW50VGltZSwgZHVyYXRpb24pOwotICAgICAgICBpc0xvYWRlZCA9IFlFUzsKLSAgICAgICAgCi0g
ICAgICAgIHBsdWdpbk1haW5GdW5jID0gKE1haW5GdW5jUHRyKWZ1bmN0aW9uUG9pbnRlckZvclRW
ZWN0b3IoKFRyYW5zaXRpb25WZWN0b3IpcGx1Z2luTWFpbkZ1bmMpOwotICAgICAgICBpZiAoIXBs
dWdpbk1haW5GdW5jKSB7Ci0gICAgICAgICAgICByZXR1cm4gTk87Ci0gICAgICAgIH0KKyAgICBM
T0coUGx1Z2lucywgIiVmIENGQnVuZGxlTG9hZEV4ZWN1dGFibGUgdG9vayAlZiBzZWNvbmRzIiwg
Y3VycmVudFRpbWUsIGR1cmF0aW9uKTsKKyAgICBpc0xvYWRlZCA9IFlFUzsKIAotICAgICAgICAv
LyBOT1RFOiBwbHVnaW5NYWluRnVuYyBpcyBmcmVlZCBhZnRlciBpdCBpcyBjYWxsZWQuIEJlIHN1
cmUgbm90IHRvIHJldHVybiBiZWZvcmUgdGhhdC4KLSAgICAgICAgCi0gICAgICAgIGlzQ0ZNID0g
WUVTOwotICAgIH0KLSNlbmRpZiAvKiBTVVBQT1JUX0NGTSAqLworICAgIE5QX0luaXRpYWxpemUg
PSAoTlBfSW5pdGlhbGl6ZUZ1bmNQdHIpQ0ZCdW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JOYW1l
KGNmQnVuZGxlLmdldCgpLCBDRlNUUigiTlBfSW5pdGlhbGl6ZSIpKTsKKyAgICBOUF9HZXRFbnRy
eVBvaW50cyA9IChOUF9HZXRFbnRyeVBvaW50c0Z1bmNQdHIpQ0ZCdW5kbGVHZXRGdW5jdGlvblBv
aW50ZXJGb3JOYW1lKGNmQnVuZGxlLmdldCgpLCBDRlNUUigiTlBfR2V0RW50cnlQb2ludHMiKSk7
CisgICAgTlBfU2h1dGRvd24gPSAoTlBQX1NodXRkb3duUHJvY1B0cilDRkJ1bmRsZUdldEZ1bmN0
aW9uUG9pbnRlckZvck5hbWUoY2ZCdW5kbGUuZ2V0KCksIENGU1RSKCJOUF9TaHV0ZG93biIpKTsK
KyAgICBpZiAoIU5QX0luaXRpYWxpemUgfHwgIU5QX0dldEVudHJ5UG9pbnRzIHx8ICFOUF9TaHV0
ZG93bikKKyAgICAgICAgcmV0dXJuIE5POwogCiAjaWYgQ09NUElMRVIoQ0xBTkcpCiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaApAQCAtNDU3LDIxMCArMzIwLDg4IEBAIHN0YXRpYyBUcmFu
c2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoRnVuY3Rpb25Qb2ludGVyKTsK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICNlbmRpZgogCi0gICAgLy8gc3dhcCBmdW5j
dGlvbiB0YWJsZXMKLSNpZmRlZiBTVVBQT1JUX0NGTQotICAgIGlmIChpc0NGTSkgewotICAgICAg
ICBicm93c2VyRnVuY3MudmVyc2lvbiA9IE5QX1ZFUlNJT05fTUlOT1I7Ci0gICAgICAgIGJyb3dz
ZXJGdW5jcy5zaXplID0gc2l6ZW9mKE5QTmV0c2NhcGVGdW5jcyk7Ci0gICAgICAgIGJyb3dzZXJG
dW5jcy5nZXR1cmwgPSAoTlBOX0dldFVSTFByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRl
cigoRnVuY3Rpb25Qb2ludGVyKU5QTl9HZXRVUkwpOwotICAgICAgICBicm93c2VyRnVuY3MucG9z
dHVybCA9IChOUE5fUG9zdFVSTFByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVu
Y3Rpb25Qb2ludGVyKU5QTl9Qb3N0VVJMKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlcXVlc3Ry
ZWFkID0gKE5QTl9SZXF1ZXN0UmVhZFByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigo
RnVuY3Rpb25Qb2ludGVyKU5QTl9SZXF1ZXN0UmVhZCk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5u
ZXdzdHJlYW0gPSAoTlBOX05ld1N0cmVhbVByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRl
cigoRnVuY3Rpb25Qb2ludGVyKU5QTl9OZXdTdHJlYW0pOwotICAgICAgICBicm93c2VyRnVuY3Mu
d3JpdGUgPSAoTlBOX1dyaXRlUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5j
dGlvblBvaW50ZXIpTlBOX1dyaXRlKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmRlc3Ryb3lzdHJl
YW0gPSAoTlBOX0Rlc3Ryb3lTdHJlYW1Qcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIo
KEZ1bmN0aW9uUG9pbnRlcilOUE5fRGVzdHJveVN0cmVhbSk7Ci0gICAgICAgIGJyb3dzZXJGdW5j
cy5zdGF0dXMgPSAoTlBOX1N0YXR1c1Byb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigo
RnVuY3Rpb25Qb2ludGVyKU5QTl9TdGF0dXMpOwotICAgICAgICBicm93c2VyRnVuY3MudWFnZW50
ID0gKE5QTl9Vc2VyQWdlbnRQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0
aW9uUG9pbnRlcilOUE5fVXNlckFnZW50KTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLm1lbWFsbG9j
ID0gKE5QTl9NZW1BbGxvY1Byb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rp
b25Qb2ludGVyKU5QTl9NZW1BbGxvYyk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5tZW1mcmVlID0g
KE5QTl9NZW1GcmVlUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBv
aW50ZXIpTlBOX01lbUZyZWUpOwotICAgICAgICBicm93c2VyRnVuY3MubWVtZmx1c2ggPSAoTlBO
X01lbUZsdXNoUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50
ZXIpTlBOX01lbUZsdXNoKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlbG9hZHBsdWdpbnMgPSAo
TlBOX1JlbG9hZFBsdWdpbnNQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0
aW9uUG9pbnRlcilOUE5fUmVsb2FkUGx1Z2lucyk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5nZXR1
cmxub3RpZnkgPSAoTlBOX0dldFVSTE5vdGlmeVByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9p
bnRlcigoRnVuY3Rpb25Qb2ludGVyKU5QTl9HZXRVUkxOb3RpZnkpOwotICAgICAgICBicm93c2Vy
RnVuY3MucG9zdHVybG5vdGlmeSA9IChOUE5fUG9zdFVSTE5vdGlmeVByb2NQdHIpdFZlY3RvckZv
ckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKU5QTl9Qb3N0VVJMTm90aWZ5KTsKLSAg
ICAgICAgYnJvd3NlckZ1bmNzLmdldHZhbHVlID0gKE5QTl9HZXRWYWx1ZVByb2NQdHIpdFZlY3Rv
ckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKU5QTl9HZXRWYWx1ZSk7Ci0gICAg
ICAgIGJyb3dzZXJGdW5jcy5zZXR2YWx1ZSA9IChOUE5fU2V0VmFsdWVQcm9jUHRyKXRWZWN0b3JG
b3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilOUE5fU2V0VmFsdWUpOwotICAgICAg
ICBicm93c2VyRnVuY3MuaW52YWxpZGF0ZXJlY3QgPSAoTlBOX0ludmFsaWRhdGVSZWN0UHJvY1B0
cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50ZXIpTlBOX0ludmFsaWRh
dGVSZWN0KTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmludmFsaWRhdGVyZWdpb24gPSAoTlBOX0lu
dmFsaWRhdGVSZWdpb25Qcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9u
UG9pbnRlcilOUE5fSW52YWxpZGF0ZVJlZ2lvbik7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5mb3Jj
ZXJlZHJhdyA9IChOUE5fRm9yY2VSZWRyYXdQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50
ZXIoKEZ1bmN0aW9uUG9pbnRlcilOUE5fRm9yY2VSZWRyYXcpOwotICAgICAgICBicm93c2VyRnVu
Y3MuZ2V0SmF2YUVudiA9IChOUE5fR2V0SmF2YUVudlByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9u
UG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKU5QTl9HZXRKYXZhRW52KTsKLSAgICAgICAgYnJvd3Nl
ckZ1bmNzLmdldEphdmFQZWVyID0gKE5QTl9HZXRKYXZhUGVlclByb2NQdHIpdFZlY3RvckZvckZ1
bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKU5QTl9HZXRKYXZhUGVlcik7Ci0gICAgICAg
IGJyb3dzZXJGdW5jcy5wdXNocG9wdXBzZW5hYmxlZHN0YXRlID0gKE5QTl9QdXNoUG9wdXBzRW5h
YmxlZFN0YXRlUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50
ZXIpTlBOX1B1c2hQb3B1cHNFbmFibGVkU3RhdGUpOwotICAgICAgICBicm93c2VyRnVuY3MucG9w
cG9wdXBzZW5hYmxlZHN0YXRlID0gKE5QTl9Qb3BQb3B1cHNFbmFibGVkU3RhdGVQcm9jUHRyKXRW
ZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilOUE5fUG9wUG9wdXBzRW5h
YmxlZFN0YXRlKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnBsdWdpbnRocmVhZGFzeW5jY2FsbCA9
IChOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxsUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2lu
dGVyKChGdW5jdGlvblBvaW50ZXIpTlBOX1BsdWdpblRocmVhZEFzeW5jQ2FsbCk7Ci0gICAgICAg
IGJyb3dzZXJGdW5jcy5nZXR2YWx1ZWZvcnVybCA9IChOUE5fR2V0VmFsdWVGb3JVUkxQcm9jUHRy
KXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilOUE5fR2V0VmFsdWVG
b3JVUkwpOwotICAgICAgICBicm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1cmwgPSAoTlBOX1NldFZh
bHVlRm9yVVJMUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50
ZXIpTlBOX1NldFZhbHVlRm9yVVJMKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmdldGF1dGhlbnRp
Y2F0aW9uaW5mbyA9IChOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvUHJvY1B0cil0VmVjdG9yRm9y
RnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50ZXIpTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5m
byk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5zY2hlZHVsZXRpbWVyID0gKE5QTl9TY2hlZHVsZVRp
bWVyUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50ZXIpTlBO
X1NjaGVkdWxlVGltZXIpOwotICAgICAgICBicm93c2VyRnVuY3MudW5zY2hlZHVsZXRpbWVyID0g
KE5QTl9VbnNjaGVkdWxlVGltZXJQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1
bmN0aW9uUG9pbnRlcilOUE5fVW5zY2hlZHVsZVRpbWVyKTsKLSAgICAgICAgYnJvd3NlckZ1bmNz
LnBvcHVwY29udGV4dG1lbnUgPSAoTlBOX1BvcFVwQ29udGV4dE1lbnVQcm9jUHRyKXRWZWN0b3JG
b3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilOUE5fUG9wVXBDb250ZXh0TWVudSk7
Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5jb252ZXJ0cG9pbnQgPSAoTlBOX0NvbnZlcnRQb2ludFBy
b2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKU5QTl9Db252
ZXJ0UG9pbnQpOwotICAgICAgICAKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlbGVhc2V2YXJpYW50
dmFsdWUgPSAoTlBOX1JlbGVhc2VWYXJpYW50VmFsdWVQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlv
blBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX1JlbGVhc2VWYXJpYW50VmFsdWUpOwotICAg
ICAgICBicm93c2VyRnVuY3MuZ2V0c3RyaW5naWRlbnRpZmllciA9IChOUE5fR2V0U3RyaW5nSWRl
bnRpZmllclByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVy
KV9OUE5fR2V0U3RyaW5nSWRlbnRpZmllcik7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5nZXRzdHJp
bmdpZGVudGlmaWVycyA9IChOUE5fR2V0U3RyaW5nSWRlbnRpZmllcnNQcm9jUHRyKXRWZWN0b3JG
b3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX0dldFN0cmluZ0lkZW50aWZp
ZXJzKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmdldGludGlkZW50aWZpZXIgPSAoTlBOX0dldElu
dElkZW50aWZpZXJQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9p
bnRlcilfTlBOX0dldEludElkZW50aWZpZXIpOwotICAgICAgICBicm93c2VyRnVuY3MuaWRlbnRp
Zmllcmlzc3RyaW5nID0gKE5QTl9JZGVudGlmaWVySXNTdHJpbmdQcm9jUHRyKXRWZWN0b3JGb3JG
dW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX0lkZW50aWZpZXJJc1N0cmluZyk7
Ci0gICAgICAgIGJyb3dzZXJGdW5jcy51dGY4ZnJvbWlkZW50aWZpZXIgPSAoTlBOX1VURjhGcm9t
SWRlbnRpZmllclByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2lu
dGVyKV9OUE5fVVRGOEZyb21JZGVudGlmaWVyKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmludGZy
b21pZGVudGlmaWVyID0gKE5QTl9JbnRGcm9tSWRlbnRpZmllclByb2NQdHIpdFZlY3RvckZvckZ1
bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKV9OUE5fSW50RnJvbUlkZW50aWZpZXIpOwot
ICAgICAgICBicm93c2VyRnVuY3MuY3JlYXRlb2JqZWN0ID0gKE5QTl9DcmVhdGVPYmplY3RQcm9j
UHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX0NyZWF0
ZU9iamVjdCk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5yZXRhaW5vYmplY3QgPSAoTlBOX1JldGFp
bk9iamVjdFByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVy
KV9OUE5fUmV0YWluT2JqZWN0KTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlbGVhc2VvYmplY3Qg
PSAoTlBOX1JlbGVhc2VPYmplY3RQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1
bmN0aW9uUG9pbnRlcilfTlBOX1JlbGVhc2VPYmplY3QpOwotICAgICAgICBicm93c2VyRnVuY3Mu
aGFzbWV0aG9kID0gKE5QTl9IYXNNZXRob2RQcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50
ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX0hhc1Byb3BlcnR5KTsKLSAgICAgICAgYnJvd3NlckZ1
bmNzLmludm9rZSA9IChOUE5fSW52b2tlUHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVy
KChGdW5jdGlvblBvaW50ZXIpX05QTl9JbnZva2UpOwotICAgICAgICBicm93c2VyRnVuY3MuaW52
b2tlRGVmYXVsdCA9IChOUE5fSW52b2tlRGVmYXVsdFByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9u
UG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKV9OUE5fSW52b2tlRGVmYXVsdCk7Ci0gICAgICAgIGJy
b3dzZXJGdW5jcy5ldmFsdWF0ZSA9IChOUE5fRXZhbHVhdGVQcm9jUHRyKXRWZWN0b3JGb3JGdW5j
dGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX0V2YWx1YXRlKTsKLSAgICAgICAgYnJv
d3NlckZ1bmNzLmhhc3Byb3BlcnR5ID0gKE5QTl9IYXNQcm9wZXJ0eVByb2NQdHIpdFZlY3RvckZv
ckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKV9OUE5fSGFzUHJvcGVydHkpOwotICAg
ICAgICBicm93c2VyRnVuY3MuZ2V0cHJvcGVydHkgPSAoTlBOX0dldFByb3BlcnR5UHJvY1B0cil0
VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKChGdW5jdGlvblBvaW50ZXIpX05QTl9HZXRQcm9wZXJ0
eSk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5zZXRwcm9wZXJ0eSA9IChOUE5fU2V0UHJvcGVydHlQ
cm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX1Nl
dFByb3BlcnR5KTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlbW92ZXByb3BlcnR5ID0gKE5QTl9S
ZW1vdmVQcm9wZXJ0eVByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcigoRnVuY3Rpb25Q
b2ludGVyKV9OUE5fUmVtb3ZlUHJvcGVydHkpOwotICAgICAgICBicm93c2VyRnVuY3Muc2V0ZXhj
ZXB0aW9uID0gKE5QTl9TZXRFeGNlcHRpb25Qcm9jUHRyKXRWZWN0b3JGb3JGdW5jdGlvblBvaW50
ZXIoKEZ1bmN0aW9uUG9pbnRlcilfTlBOX1NldEV4Y2VwdGlvbik7Ci0gICAgICAgIGJyb3dzZXJG
dW5jcy5lbnVtZXJhdGUgPSAoTlBOX0VudW1lcmF0ZVByb2NQdHIpdFZlY3RvckZvckZ1bmN0aW9u
UG9pbnRlcigoRnVuY3Rpb25Qb2ludGVyKV9OUE5fRW51bWVyYXRlKTsKLSAgICAgICAgYnJvd3Nl
ckZ1bmNzLmNvbnN0cnVjdCA9IChOUE5fQ29uc3RydWN0UHJvY1B0cil0VmVjdG9yRm9yRnVuY3Rp
b25Qb2ludGVyKChGdW5jdGlvblBvaW50ZXIpX05QTl9Db25zdHJ1Y3QpOwotICAgICAgICAKLSAg
ICAgICAgW3NlbGYgX2FwcGx5RGpWdVdvcmthcm91bmRdOwotICAgICAgICAKKyAgICBicm93c2Vy
RnVuY3MudmVyc2lvbiA9IE5QX1ZFUlNJT05fTUlOT1I7CisgICAgYnJvd3NlckZ1bmNzLnNpemUg
PSBzaXplb2YoTlBOZXRzY2FwZUZ1bmNzKTsKKyAgICBicm93c2VyRnVuY3MuZ2V0dXJsID0gTlBO
X0dldFVSTDsKKyAgICBicm93c2VyRnVuY3MucG9zdHVybCA9IE5QTl9Qb3N0VVJMOworICAgIGJy
b3dzZXJGdW5jcy5yZXF1ZXN0cmVhZCA9IE5QTl9SZXF1ZXN0UmVhZDsKKyAgICBicm93c2VyRnVu
Y3MubmV3c3RyZWFtID0gTlBOX05ld1N0cmVhbTsKKyAgICBicm93c2VyRnVuY3Mud3JpdGUgPSBO
UE5fV3JpdGU7CisgICAgYnJvd3NlckZ1bmNzLmRlc3Ryb3lzdHJlYW0gPSBOUE5fRGVzdHJveVN0
cmVhbTsKKyAgICBicm93c2VyRnVuY3Muc3RhdHVzID0gTlBOX1N0YXR1czsKKyAgICBicm93c2Vy
RnVuY3MudWFnZW50ID0gTlBOX1VzZXJBZ2VudDsKKyAgICBicm93c2VyRnVuY3MubWVtYWxsb2Mg
PSBOUE5fTWVtQWxsb2M7CisgICAgYnJvd3NlckZ1bmNzLm1lbWZyZWUgPSBOUE5fTWVtRnJlZTsK
KyAgICBicm93c2VyRnVuY3MubWVtZmx1c2ggPSBOUE5fTWVtRmx1c2g7CisgICAgYnJvd3NlckZ1
bmNzLnJlbG9hZHBsdWdpbnMgPSBOUE5fUmVsb2FkUGx1Z2luczsKKyAgICBicm93c2VyRnVuY3Mu
Z2V0dXJsbm90aWZ5ID0gTlBOX0dldFVSTE5vdGlmeTsKKyAgICBicm93c2VyRnVuY3MucG9zdHVy
bG5vdGlmeSA9IE5QTl9Qb3N0VVJMTm90aWZ5OworICAgIGJyb3dzZXJGdW5jcy5nZXR2YWx1ZSA9
IE5QTl9HZXRWYWx1ZTsKKyAgICBicm93c2VyRnVuY3Muc2V0dmFsdWUgPSBOUE5fU2V0VmFsdWU7
CisgICAgYnJvd3NlckZ1bmNzLmludmFsaWRhdGVyZWN0ID0gTlBOX0ludmFsaWRhdGVSZWN0Owor
ICAgIGJyb3dzZXJGdW5jcy5pbnZhbGlkYXRlcmVnaW9uID0gTlBOX0ludmFsaWRhdGVSZWdpb247
CisgICAgYnJvd3NlckZ1bmNzLmZvcmNlcmVkcmF3ID0gTlBOX0ZvcmNlUmVkcmF3OworICAgIGJy
b3dzZXJGdW5jcy5nZXRKYXZhRW52ID0gTlBOX0dldEphdmFFbnY7CisgICAgYnJvd3NlckZ1bmNz
LmdldEphdmFQZWVyID0gTlBOX0dldEphdmFQZWVyOworICAgIGJyb3dzZXJGdW5jcy5wdXNocG9w
dXBzZW5hYmxlZHN0YXRlID0gTlBOX1B1c2hQb3B1cHNFbmFibGVkU3RhdGU7CisgICAgYnJvd3Nl
ckZ1bmNzLnBvcHBvcHVwc2VuYWJsZWRzdGF0ZSA9IE5QTl9Qb3BQb3B1cHNFbmFibGVkU3RhdGU7
CisgICAgYnJvd3NlckZ1bmNzLnBsdWdpbnRocmVhZGFzeW5jY2FsbCA9IE5QTl9QbHVnaW5UaHJl
YWRBc3luY0NhbGw7CisgICAgYnJvd3NlckZ1bmNzLmdldHZhbHVlZm9ydXJsID0gTlBOX0dldFZh
bHVlRm9yVVJMOworICAgIGJyb3dzZXJGdW5jcy5zZXR2YWx1ZWZvcnVybCA9IE5QTl9TZXRWYWx1
ZUZvclVSTDsKKyAgICBicm93c2VyRnVuY3MuZ2V0YXV0aGVudGljYXRpb25pbmZvID0gTlBOX0dl
dEF1dGhlbnRpY2F0aW9uSW5mbzsKKyAgICBicm93c2VyRnVuY3Muc2NoZWR1bGV0aW1lciA9IE5Q
Tl9TY2hlZHVsZVRpbWVyOworICAgIGJyb3dzZXJGdW5jcy51bnNjaGVkdWxldGltZXIgPSBOUE5f
VW5zY2hlZHVsZVRpbWVyOworICAgIGJyb3dzZXJGdW5jcy5wb3B1cGNvbnRleHRtZW51ID0gTlBO
X1BvcFVwQ29udGV4dE1lbnU7CisgICAgYnJvd3NlckZ1bmNzLmNvbnZlcnRwb2ludCA9IE5QTl9D
b252ZXJ0UG9pbnQ7CisKKyAgICBicm93c2VyRnVuY3MucmVsZWFzZXZhcmlhbnR2YWx1ZSA9IF9O
UE5fUmVsZWFzZVZhcmlhbnRWYWx1ZTsKKyAgICBicm93c2VyRnVuY3MuZ2V0c3RyaW5naWRlbnRp
ZmllciA9IF9OUE5fR2V0U3RyaW5nSWRlbnRpZmllcjsKKyAgICBicm93c2VyRnVuY3MuZ2V0c3Ry
aW5naWRlbnRpZmllcnMgPSBfTlBOX0dldFN0cmluZ0lkZW50aWZpZXJzOworICAgIGJyb3dzZXJG
dW5jcy5nZXRpbnRpZGVudGlmaWVyID0gX05QTl9HZXRJbnRJZGVudGlmaWVyOworICAgIGJyb3dz
ZXJGdW5jcy5pZGVudGlmaWVyaXNzdHJpbmcgPSBfTlBOX0lkZW50aWZpZXJJc1N0cmluZzsKKyAg
ICBicm93c2VyRnVuY3MudXRmOGZyb21pZGVudGlmaWVyID0gX05QTl9VVEY4RnJvbUlkZW50aWZp
ZXI7CisgICAgYnJvd3NlckZ1bmNzLmludGZyb21pZGVudGlmaWVyID0gX05QTl9JbnRGcm9tSWRl
bnRpZmllcjsKKyAgICBicm93c2VyRnVuY3MuY3JlYXRlb2JqZWN0ID0gX05QTl9DcmVhdGVPYmpl
Y3Q7CisgICAgYnJvd3NlckZ1bmNzLnJldGFpbm9iamVjdCA9IF9OUE5fUmV0YWluT2JqZWN0Owor
ICAgIGJyb3dzZXJGdW5jcy5yZWxlYXNlb2JqZWN0ID0gX05QTl9SZWxlYXNlT2JqZWN0OworICAg
IGJyb3dzZXJGdW5jcy5oYXNtZXRob2QgPSBfTlBOX0hhc01ldGhvZDsKKyAgICBicm93c2VyRnVu
Y3MuaW52b2tlID0gX05QTl9JbnZva2U7CisgICAgYnJvd3NlckZ1bmNzLmludm9rZURlZmF1bHQg
PSBfTlBOX0ludm9rZURlZmF1bHQ7CisgICAgYnJvd3NlckZ1bmNzLmV2YWx1YXRlID0gX05QTl9F
dmFsdWF0ZTsKKyAgICBicm93c2VyRnVuY3MuaGFzcHJvcGVydHkgPSBfTlBOX0hhc1Byb3BlcnR5
OworICAgIGJyb3dzZXJGdW5jcy5nZXRwcm9wZXJ0eSA9IF9OUE5fR2V0UHJvcGVydHk7CisgICAg
YnJvd3NlckZ1bmNzLnNldHByb3BlcnR5ID0gX05QTl9TZXRQcm9wZXJ0eTsKKyAgICBicm93c2Vy
RnVuY3MucmVtb3ZlcHJvcGVydHkgPSBfTlBOX1JlbW92ZVByb3BlcnR5OworICAgIGJyb3dzZXJG
dW5jcy5zZXRleGNlcHRpb24gPSBfTlBOX1NldEV4Y2VwdGlvbjsKKyAgICBicm93c2VyRnVuY3Mu
ZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CisgICAgYnJvd3NlckZ1bmNzLmNvbnN0cnVjdCA9
IF9OUE5fQ29uc3RydWN0OworCiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBDRkFic29sdXRl
VGltZSBtYWluU3RhcnQgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKKyAgICBDRkFic29s
dXRlVGltZSBpbml0aWFsaXplU3RhcnQgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKICNl
bmRpZgotICAgICAgICBMT0coUGx1Z2lucywgIiVmIG1haW4gdGltaW5nIHN0YXJ0ZWQiLCBtYWlu
U3RhcnQpOwotICAgICAgICBOUFBfU2h1dGRvd25Qcm9jUHRyIHNodXRkb3duRnVuY3Rpb247Ci0g
ICAgICAgIG5wRXJyID0gcGx1Z2luTWFpbkZ1bmMoJmJyb3dzZXJGdW5jcywgJnBsdWdpbkZ1bmNz
LCAmc2h1dGRvd25GdW5jdGlvbik7Ci0gICAgICAgIE5QX1NodXRkb3duID0gKE5QUF9TaHV0ZG93
blByb2NQdHIpZnVuY3Rpb25Qb2ludGVyRm9yVFZlY3RvcigoVHJhbnNpdGlvblZlY3RvcilzaHV0
ZG93bkZ1bmN0aW9uKTsKLSAgICAgICAgaWYgKCFpc0J1bmRsZSkKLSAgICAgICAgICAgIC8vIERv
bid0IGZyZWUgcGx1Z2luTWFpbkZ1bmMgaWYgd2UgZ290IGl0IGZyb20gYSBidW5kbGUgYmVjYXVz
ZSBpdCBpcyBvd25lZCBieSBDRkJ1bmRsZSBpbiB0aGF0IGNhc2UuCi0gICAgICAgICAgICBmcmVl
KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHBsdWdpbk1haW5GdW5jKSk7Ci0gICAgICAgIAotICAg
ICAgICAvLyBXb3JrYXJvdW5kIGZvciAzMjcwNTc2LiBUaGUgUmVhbFBsYXllciBwbHVnLWluIGZh
aWxzIHRvIGxvYWQgaWYgaXRzIHByZWZlcmVuY2UgZmlsZSBpcyBvdXQgb2YgZGF0ZS4KLSAgICAg
ICAgLy8gTGF1bmNoIHRoZSBSZWFsUGxheWVyIGFwcGxpY2F0aW9uIHRvIHJlZnJlc2ggdGhlIGZp
bGUuCi0gICAgICAgIGlmIChucEVyciAhPSBOUEVSUl9OT19FUlJPUikgewotICAgICAgICAgICAg
aWYgKG5wRXJyID09IE5QRVJSX01PRFVMRV9MT0FEX0ZBSUxFRF9FUlJPUiAmJiBlcXVhbElnbm9y
aW5nQ2FzZShwbHVnaW5JbmZvLmZpbGUsIFJlYWxQbGF5ZXJQbHVnaW5GaWxlbmFtZSkpCi0gICAg
ICAgICAgICAgICAgW3NlbGYgbGF1bmNoUmVhbFBsYXllcl07Ci0gICAgICAgICAgICByZXR1cm4g
Tk87Ci0gICAgICAgIH0KKyAgICBMT0coUGx1Z2lucywgIiVmIE5QX0luaXRpYWxpemUgdGltaW5n
IHN0YXJ0ZWQiLCBpbml0aWFsaXplU3RhcnQpOworICAgIG5wRXJyID0gTlBfSW5pdGlhbGl6ZSgm
YnJvd3NlckZ1bmNzKTsKKyAgICBpZiAobnBFcnIgIT0gTlBFUlJfTk9fRVJST1IpCisgICAgICAg
IHJldHVybiBOTzsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGN1cnJlbnRUaW1lID0gQ0ZB
YnNvbHV0ZVRpbWVHZXRDdXJyZW50KCk7Ci0gICAgICAgIGR1cmF0aW9uID0gY3VycmVudFRpbWUg
LSBtYWluU3RhcnQ7Ci0jZW5kaWYKLSAgICAgICAgTE9HKFBsdWdpbnMsICIlZiBtYWluIHRvb2sg
JWYgc2Vjb25kcyIsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Ci0gICAgICAgIAotICAgICAgICBw
bHVnaW5TaXplID0gcGx1Z2luRnVuY3Muc2l6ZTsKLSAgICAgICAgcGx1Z2luVmVyc2lvbiA9IHBs
dWdpbkZ1bmNzLnZlcnNpb247Ci0gICAgICAgIExPRyhQbHVnaW5zLCAicGx1Z2luTWFpbkZ1bmM6
ICVkLCBzaXplPSVkLCB2ZXJzaW9uPSVkIiwgbnBFcnIsIHBsdWdpblNpemUsIHBsdWdpblZlcnNp
b24pOwotICAgICAgICAKLSAgICAgICAgcGx1Z2luRnVuY3MubmV3cCA9IChOUFBfTmV3UHJvY1B0
cilmdW5jdGlvblBvaW50ZXJGb3JUVmVjdG9yKChUcmFuc2l0aW9uVmVjdG9yKXBsdWdpbkZ1bmNz
Lm5ld3ApOwotICAgICAgICBwbHVnaW5GdW5jcy5kZXN0cm95ID0gKE5QUF9EZXN0cm95UHJvY1B0
cilmdW5jdGlvblBvaW50ZXJGb3JUVmVjdG9yKChUcmFuc2l0aW9uVmVjdG9yKXBsdWdpbkZ1bmNz
LmRlc3Ryb3kpOwotICAgICAgICBwbHVnaW5GdW5jcy5zZXR3aW5kb3cgPSAoTlBQX1NldFdpbmRv
d1Byb2NQdHIpZnVuY3Rpb25Qb2ludGVyRm9yVFZlY3RvcigoVHJhbnNpdGlvblZlY3RvcilwbHVn
aW5GdW5jcy5zZXR3aW5kb3cpOwotICAgICAgICBwbHVnaW5GdW5jcy5uZXdzdHJlYW0gPSAoTlBQ
X05ld1N0cmVhbVByb2NQdHIpZnVuY3Rpb25Qb2ludGVyRm9yVFZlY3RvcigoVHJhbnNpdGlvblZl
Y3RvcilwbHVnaW5GdW5jcy5uZXdzdHJlYW0pOwotICAgICAgICBwbHVnaW5GdW5jcy5kZXN0cm95
c3RyZWFtID0gKE5QUF9EZXN0cm95U3RyZWFtUHJvY1B0cilmdW5jdGlvblBvaW50ZXJGb3JUVmVj
dG9yKChUcmFuc2l0aW9uVmVjdG9yKXBsdWdpbkZ1bmNzLmRlc3Ryb3lzdHJlYW0pOwotICAgICAg
ICBwbHVnaW5GdW5jcy5hc2ZpbGUgPSAoTlBQX1N0cmVhbUFzRmlsZVByb2NQdHIpZnVuY3Rpb25Q
b2ludGVyRm9yVFZlY3RvcigoVHJhbnNpdGlvblZlY3RvcilwbHVnaW5GdW5jcy5hc2ZpbGUpOwot
ICAgICAgICBwbHVnaW5GdW5jcy53cml0ZXJlYWR5ID0gKE5QUF9Xcml0ZVJlYWR5UHJvY1B0cilm
dW5jdGlvblBvaW50ZXJGb3JUVmVjdG9yKChUcmFuc2l0aW9uVmVjdG9yKXBsdWdpbkZ1bmNzLndy
aXRlcmVhZHkpOwotICAgICAgICBwbHVnaW5GdW5jcy53cml0ZSA9IChOUFBfV3JpdGVQcm9jUHRy
KWZ1bmN0aW9uUG9pbnRlckZvclRWZWN0b3IoKFRyYW5zaXRpb25WZWN0b3IpcGx1Z2luRnVuY3Mu
d3JpdGUpOwotICAgICAgICBwbHVnaW5GdW5jcy5wcmludCA9IChOUFBfUHJpbnRQcm9jUHRyKWZ1
bmN0aW9uUG9pbnRlckZvclRWZWN0b3IoKFRyYW5zaXRpb25WZWN0b3IpcGx1Z2luRnVuY3MucHJp
bnQpOwotICAgICAgICBwbHVnaW5GdW5jcy5ldmVudCA9IChOUFBfSGFuZGxlRXZlbnRQcm9jUHRy
KWZ1bmN0aW9uUG9pbnRlckZvclRWZWN0b3IoKFRyYW5zaXRpb25WZWN0b3IpcGx1Z2luRnVuY3Mu
ZXZlbnQpOwotICAgICAgICBwbHVnaW5GdW5jcy51cmxub3RpZnkgPSAoTlBQX1VSTE5vdGlmeVBy
b2NQdHIpZnVuY3Rpb25Qb2ludGVyRm9yVFZlY3RvcigoVHJhbnNpdGlvblZlY3RvcilwbHVnaW5G
dW5jcy51cmxub3RpZnkpOwotICAgICAgICBwbHVnaW5GdW5jcy5nZXR2YWx1ZSA9IChOUFBfR2V0
VmFsdWVQcm9jUHRyKWZ1bmN0aW9uUG9pbnRlckZvclRWZWN0b3IoKFRyYW5zaXRpb25WZWN0b3Ip
cGx1Z2luRnVuY3MuZ2V0dmFsdWUpOwotICAgICAgICBwbHVnaW5GdW5jcy5zZXR2YWx1ZSA9IChO
UFBfU2V0VmFsdWVQcm9jUHRyKWZ1bmN0aW9uUG9pbnRlckZvclRWZWN0b3IoKFRyYW5zaXRpb25W
ZWN0b3IpcGx1Z2luRnVuY3Muc2V0dmFsdWUpOwotCi0gICAgICAgIC8vIExpdmVDb25uZWN0IHN1
cHBvcnQKLSAgICAgICAgcGx1Z2luRnVuY3MuamF2YUNsYXNzID0gKEpSSUdsb2JhbFJlZilmdW5j
dGlvblBvaW50ZXJGb3JUVmVjdG9yKChUcmFuc2l0aW9uVmVjdG9yKXBsdWdpbkZ1bmNzLmphdmFD
bGFzcyk7Ci0gICAgICAgIGlmIChwbHVnaW5GdW5jcy5qYXZhQ2xhc3MpIHsKLSAgICAgICAgICAg
IExPRyhMaXZlQ29ubmVjdCwgIiVAOiAgQ0ZNIGVudHJ5IHBvaW50IGZvciBOUFBfR2V0SmF2YUNs
YXNzID0gJXAiLCAoTlNTdHJpbmcgKilbc2VsZiBwbHVnaW5JbmZvXS5uYW1lLCBwbHVnaW5GdW5j
cy5qYXZhQ2xhc3MpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9HKExpdmVDb25u
ZWN0LCAiJUA6ICBubyBlbnRyeSBwb2ludCBmb3IgTlBQX0dldEphdmFDbGFzcyIsIChOU1N0cmlu
ZyAqKVtzZWxmIHBsdWdpbkluZm9dLm5hbWUpOwotICAgICAgICB9Ci0KLSAgICB9IGVsc2Ugewot
CisgICAgY3VycmVudFRpbWUgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKKyAgICBkdXJh
dGlvbiA9IGN1cnJlbnRUaW1lIC0gaW5pdGlhbGl6ZVN0YXJ0OwogI2VuZGlmCisgICAgTE9HKFBs
dWdpbnMsICIlZiBOUF9Jbml0aWFsaXplIHRvb2sgJWYgc2Vjb25kcyIsIGN1cnJlbnRUaW1lLCBk
dXJhdGlvbik7CiAKLSAgICAgICAgLy8gbm8gZnVuY3Rpb24gcG9pbnRlciBjb252ZXJzaW9uIG5l
Y2Vzc2FyeSBmb3IgTWFjaC1PCi0gICAgICAgIGJyb3dzZXJGdW5jcy52ZXJzaW9uID0gTlBfVkVS
U0lPTl9NSU5PUjsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnNpemUgPSBzaXplb2YoTlBOZXRzY2Fw
ZUZ1bmNzKTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmdldHVybCA9IE5QTl9HZXRVUkw7Ci0gICAg
ICAgIGJyb3dzZXJGdW5jcy5wb3N0dXJsID0gTlBOX1Bvc3RVUkw7Ci0gICAgICAgIGJyb3dzZXJG
dW5jcy5yZXF1ZXN0cmVhZCA9IE5QTl9SZXF1ZXN0UmVhZDsKLSAgICAgICAgYnJvd3NlckZ1bmNz
Lm5ld3N0cmVhbSA9IE5QTl9OZXdTdHJlYW07Ci0gICAgICAgIGJyb3dzZXJGdW5jcy53cml0ZSA9
IE5QTl9Xcml0ZTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmRlc3Ryb3lzdHJlYW0gPSBOUE5fRGVz
dHJveVN0cmVhbTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnN0YXR1cyA9IE5QTl9TdGF0dXM7Ci0g
ICAgICAgIGJyb3dzZXJGdW5jcy51YWdlbnQgPSBOUE5fVXNlckFnZW50OwotICAgICAgICBicm93
c2VyRnVuY3MubWVtYWxsb2MgPSBOUE5fTWVtQWxsb2M7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5t
ZW1mcmVlID0gTlBOX01lbUZyZWU7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5tZW1mbHVzaCA9IE5Q
Tl9NZW1GbHVzaDsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlbG9hZHBsdWdpbnMgPSBOUE5fUmVs
b2FkUGx1Z2luczsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmdldHVybG5vdGlmeSA9IE5QTl9HZXRV
UkxOb3RpZnk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5wb3N0dXJsbm90aWZ5ID0gTlBOX1Bvc3RV
UkxOb3RpZnk7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5nZXR2YWx1ZSA9IE5QTl9HZXRWYWx1ZTsK
LSAgICAgICAgYnJvd3NlckZ1bmNzLnNldHZhbHVlID0gTlBOX1NldFZhbHVlOwotICAgICAgICBi
cm93c2VyRnVuY3MuaW52YWxpZGF0ZXJlY3QgPSBOUE5fSW52YWxpZGF0ZVJlY3Q7Ci0gICAgICAg
IGJyb3dzZXJGdW5jcy5pbnZhbGlkYXRlcmVnaW9uID0gTlBOX0ludmFsaWRhdGVSZWdpb247Ci0g
ICAgICAgIGJyb3dzZXJGdW5jcy5mb3JjZXJlZHJhdyA9IE5QTl9Gb3JjZVJlZHJhdzsKLSAgICAg
ICAgYnJvd3NlckZ1bmNzLmdldEphdmFFbnYgPSBOUE5fR2V0SmF2YUVudjsKLSAgICAgICAgYnJv
d3NlckZ1bmNzLmdldEphdmFQZWVyID0gTlBOX0dldEphdmFQZWVyOwotICAgICAgICBicm93c2Vy
RnVuY3MucHVzaHBvcHVwc2VuYWJsZWRzdGF0ZSA9IE5QTl9QdXNoUG9wdXBzRW5hYmxlZFN0YXRl
OwotICAgICAgICBicm93c2VyRnVuY3MucG9wcG9wdXBzZW5hYmxlZHN0YXRlID0gTlBOX1BvcFBv
cHVwc0VuYWJsZWRTdGF0ZTsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnBsdWdpbnRocmVhZGFzeW5j
Y2FsbCA9IE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGw7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5n
ZXR2YWx1ZWZvcnVybCA9IE5QTl9HZXRWYWx1ZUZvclVSTDsKLSAgICAgICAgYnJvd3NlckZ1bmNz
LnNldHZhbHVlZm9ydXJsID0gTlBOX1NldFZhbHVlRm9yVVJMOwotICAgICAgICBicm93c2VyRnVu
Y3MuZ2V0YXV0aGVudGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKLSAg
ICAgICAgYnJvd3NlckZ1bmNzLnNjaGVkdWxldGltZXIgPSBOUE5fU2NoZWR1bGVUaW1lcjsKLSAg
ICAgICAgYnJvd3NlckZ1bmNzLnVuc2NoZWR1bGV0aW1lciA9IE5QTl9VbnNjaGVkdWxlVGltZXI7
Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5wb3B1cGNvbnRleHRtZW51ID0gTlBOX1BvcFVwQ29udGV4
dE1lbnU7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5jb252ZXJ0cG9pbnQgPSBOUE5fQ29udmVydFBv
aW50OwotCi0gICAgICAgIGJyb3dzZXJGdW5jcy5yZWxlYXNldmFyaWFudHZhbHVlID0gX05QTl9S
ZWxlYXNlVmFyaWFudFZhbHVlOwotICAgICAgICBicm93c2VyRnVuY3MuZ2V0c3RyaW5naWRlbnRp
ZmllciA9IF9OUE5fR2V0U3RyaW5nSWRlbnRpZmllcjsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmdl
dHN0cmluZ2lkZW50aWZpZXJzID0gX05QTl9HZXRTdHJpbmdJZGVudGlmaWVyczsKLSAgICAgICAg
YnJvd3NlckZ1bmNzLmdldGludGlkZW50aWZpZXIgPSBfTlBOX0dldEludElkZW50aWZpZXI7Ci0g
ICAgICAgIGJyb3dzZXJGdW5jcy5pZGVudGlmaWVyaXNzdHJpbmcgPSBfTlBOX0lkZW50aWZpZXJJ
c1N0cmluZzsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnV0Zjhmcm9taWRlbnRpZmllciA9IF9OUE5f
VVRGOEZyb21JZGVudGlmaWVyOwotICAgICAgICBicm93c2VyRnVuY3MuaW50ZnJvbWlkZW50aWZp
ZXIgPSBfTlBOX0ludEZyb21JZGVudGlmaWVyOwotICAgICAgICBicm93c2VyRnVuY3MuY3JlYXRl
b2JqZWN0ID0gX05QTl9DcmVhdGVPYmplY3Q7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5yZXRhaW5v
YmplY3QgPSBfTlBOX1JldGFpbk9iamVjdDsKLSAgICAgICAgYnJvd3NlckZ1bmNzLnJlbGVhc2Vv
YmplY3QgPSBfTlBOX1JlbGVhc2VPYmplY3Q7Ci0gICAgICAgIGJyb3dzZXJGdW5jcy5oYXNtZXRo
b2QgPSBfTlBOX0hhc01ldGhvZDsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmludm9rZSA9IF9OUE5f
SW52b2tlOwotICAgICAgICBicm93c2VyRnVuY3MuaW52b2tlRGVmYXVsdCA9IF9OUE5fSW52b2tl
RGVmYXVsdDsKLSAgICAgICAgYnJvd3NlckZ1bmNzLmV2YWx1YXRlID0gX05QTl9FdmFsdWF0ZTsK
LSAgICAgICAgYnJvd3NlckZ1bmNzLmhhc3Byb3BlcnR5ID0gX05QTl9IYXNQcm9wZXJ0eTsKLSAg
ICAgICAgYnJvd3NlckZ1bmNzLmdldHByb3BlcnR5ID0gX05QTl9HZXRQcm9wZXJ0eTsKLSAgICAg
ICAgYnJvd3NlckZ1bmNzLnNldHByb3BlcnR5ID0gX05QTl9TZXRQcm9wZXJ0eTsKLSAgICAgICAg
YnJvd3NlckZ1bmNzLnJlbW92ZXByb3BlcnR5ID0gX05QTl9SZW1vdmVQcm9wZXJ0eTsKLSAgICAg
ICAgYnJvd3NlckZ1bmNzLnNldGV4Y2VwdGlvbiA9IF9OUE5fU2V0RXhjZXB0aW9uOwotICAgICAg
ICBicm93c2VyRnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7Ci0gICAgICAgIGJyb3dz
ZXJGdW5jcy5jb25zdHJ1Y3QgPSBfTlBOX0NvbnN0cnVjdDsKLSAgICAgICAgCi0gICAgICAgIFtz
ZWxmIF9hcHBseURqVnVXb3JrYXJvdW5kXTsKKyAgICBwbHVnaW5GdW5jcy5zaXplID0gc2l6ZW9m
KE5QUGx1Z2luRnVuY3MpOwogCi0jaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBDRkFic29sdXRl
VGltZSBpbml0aWFsaXplU3RhcnQgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKLSNlbmRp
ZgotICAgICAgICBMT0coUGx1Z2lucywgIiVmIE5QX0luaXRpYWxpemUgdGltaW5nIHN0YXJ0ZWQi
LCBpbml0aWFsaXplU3RhcnQpOwotICAgICAgICBucEVyciA9IE5QX0luaXRpYWxpemUoJmJyb3dz
ZXJGdW5jcyk7Ci0gICAgICAgIGlmIChucEVyciAhPSBOUEVSUl9OT19FUlJPUikKLSAgICAgICAg
ICAgIHJldHVybiBOTzsKLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGN1cnJlbnRUaW1lID0g
Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCk7Ci0gICAgICAgIGR1cmF0aW9uID0gY3VycmVudFRp
bWUgLSBpbml0aWFsaXplU3RhcnQ7Ci0jZW5kaWYKLSAgICAgICAgTE9HKFBsdWdpbnMsICIlZiBO
UF9Jbml0aWFsaXplIHRvb2sgJWYgc2Vjb25kcyIsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cisg
ICAgbnBFcnIgPSBOUF9HZXRFbnRyeVBvaW50cygmcGx1Z2luRnVuY3MpOworICAgIGlmIChucEVy
ciAhPSBOUEVSUl9OT19FUlJPUikKKyAgICAgICAgcmV0dXJuIE5POwogCi0gICAgICAgIHBsdWdp
bkZ1bmNzLnNpemUgPSBzaXplb2YoTlBQbHVnaW5GdW5jcyk7Ci0gICAgICAgIAotICAgICAgICBu
cEVyciA9IE5QX0dldEVudHJ5UG9pbnRzKCZwbHVnaW5GdW5jcyk7Ci0gICAgICAgIGlmIChucEVy
ciAhPSBOUEVSUl9OT19FUlJPUikKLSAgICAgICAgICAgIHJldHVybiBOTzsKLSAgICAgICAgCi0g
ICAgICAgIHBsdWdpblNpemUgPSBwbHVnaW5GdW5jcy5zaXplOwotICAgICAgICBwbHVnaW5WZXJz
aW9uID0gcGx1Z2luRnVuY3MudmVyc2lvbjsKLSAgICAgICAgCi0gICAgICAgIGlmIChwbHVnaW5G
dW5jcy5qYXZhQ2xhc3MpCi0gICAgICAgICAgICBMT0coTGl2ZUNvbm5lY3QsICIlQDogIG1hY2gt
byBlbnRyeSBwb2ludCBmb3IgTlBQX0dldEphdmFDbGFzcyA9ICVwIiwgKE5TU3RyaW5nICopW3Nl
bGYgcGx1Z2luSW5mb10ubmFtZSwgcGx1Z2luRnVuY3MuamF2YUNsYXNzKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgTE9HKExpdmVDb25uZWN0LCAiJUA6ICBubyBlbnRyeSBwb2ludCBmb3Ig
TlBQX0dldEphdmFDbGFzcyIsIChOU1N0cmluZyAqKVtzZWxmIHBsdWdpbkluZm9dLm5hbWUpOwor
ICAgIHBsdWdpblNpemUgPSBwbHVnaW5GdW5jcy5zaXplOworICAgIHBsdWdpblZlcnNpb24gPSBw
bHVnaW5GdW5jcy52ZXJzaW9uOwogCi0jaWZkZWYgU1VQUE9SVF9DRk0KLSAgICB9Ci0jZW5kaWYK
KyAgICBpZiAocGx1Z2luRnVuY3MuamF2YUNsYXNzKQorICAgICAgICBMT0coTGl2ZUNvbm5lY3Qs
ICIlQDogIG1hY2gtbyBlbnRyeSBwb2ludCBmb3IgTlBQX0dldEphdmFDbGFzcyA9ICVwIiwgKE5T
U3RyaW5nICopW3NlbGYgcGx1Z2luSW5mb10ubmFtZSwgcGx1Z2luRnVuY3MuamF2YUNsYXNzKTsK
KyAgICBlbHNlCisgICAgICAgIExPRyhMaXZlQ29ubmVjdCwgIiVAOiAgbm8gZW50cnkgcG9pbnQg
Zm9yIE5QUF9HZXRKYXZhQ2xhc3MiLCAoTlNTdHJpbmcgKilbc2VsZiBwbHVnaW5JbmZvXS5uYW1l
KTsKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBjdXJyZW50VGltZSA9IENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpOwpAQCAtNzQxLDQ0ICs0ODIsNiBAQCBzdGF0aWMgVHJhbnNpdGlvblZlY3Rv
ciB0VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKEZ1bmN0aW9uUG9pbnRlcik7CiAKIEBlbmQKIAot
I2lmZGVmIFNVUFBPUlRfQ0ZNCi0KLS8vIGZ1bmN0aW9uIHBvaW50ZXIgY29udmVydGVycwotCi1G
dW5jdGlvblBvaW50ZXIgZnVuY3Rpb25Qb2ludGVyRm9yVFZlY3RvcihUcmFuc2l0aW9uVmVjdG9y
IHR2cCkKLXsKLSAgICBjb25zdCB1aW50MzJfdCB0ZW1wWzZdID0gezB4M0Q4MDAwMDAsIDB4NjE4
QzAwMDAsIDB4ODAwQzAwMDAsIDB4ODA0QzAwMDQsIDB4N0MwOTAzQTYsIDB4NEU4MDA0MjB9Owot
ICAgIHVpbnQzMl90ICpuZXdHbHVlID0gTlVMTDsKLQotICAgIGlmICh0dnAgIT0gTlVMTCkgewot
ICAgICAgICBuZXdHbHVlID0gKHVpbnQzMl90ICopbWFsbG9jKHNpemVvZih0ZW1wKSk7Ci0gICAg
ICAgIGlmIChuZXdHbHVlICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGk7Ci0gICAg
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSBuZXdHbHVlW2ldID0gdGVtcFtpXTsKLSAg
ICAgICAgICAgIG5ld0dsdWVbMF0gfD0gKCh1aW50cHRyX3QpdHZwID4+IDE2KTsKLSAgICAgICAg
ICAgIG5ld0dsdWVbMV0gfD0gKCh1aW50cHRyX3QpdHZwICYgMHhGRkZGKTsKLSAgICAgICAgICAg
IE1ha2VEYXRhRXhlY3V0YWJsZShuZXdHbHVlLCBzaXplb2YodGVtcCkpOwotICAgICAgICB9Ci0g
ICAgfQotICAgIAotICAgIHJldHVybiAoRnVuY3Rpb25Qb2ludGVyKW5ld0dsdWU7Ci19Ci0KLVRy
YW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0aW9uUG9pbnRlcihGdW5jdGlvblBvaW50ZXIg
ZnApCi17Ci0gICAgRnVuY3Rpb25Qb2ludGVyICpuZXdHbHVlID0gTlVMTDsKLSAgICBpZiAoZnAg
IT0gTlVMTCkgewotICAgICAgICBuZXdHbHVlID0gKEZ1bmN0aW9uUG9pbnRlciAqKW1hbGxvYygy
ICogc2l6ZW9mKEZ1bmN0aW9uUG9pbnRlcikpOwotICAgICAgICBpZiAobmV3R2x1ZSAhPSBOVUxM
KSB7Ci0gICAgICAgICAgICBuZXdHbHVlWzBdID0gZnA7Ci0gICAgICAgICAgICBuZXdHbHVlWzFd
ID0gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gKFRyYW5zaXRpb25WZWN0b3Ip
bmV3R2x1ZTsKLX0KLQotI2VuZGlmCi0KIEBpbXBsZW1lbnRhdGlvbiBXZWJOZXRzY2FwZVBsdWdp
blBhY2thZ2UgKEludGVybmFsKQogCiAtICh2b2lkKV91bmxvYWRXaXRoU2h1dGRvd246KEJPT0wp
c2h1dGRvd24KQEAgLTgwMCwxMSArNTAzLDYgQEAgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9y
RnVuY3Rpb25Qb2ludGVyKEZ1bmN0aW9uUG9pbnRlciBmcCkKICAgICBpZiAocmVzb3VyY2VSZWYg
IT0gLTEpCiAgICAgICAgIFtzZWxmIGNsb3NlUmVzb3VyY2VGaWxlOnJlc291cmNlUmVmXTsKIAot
I2lmZGVmIFNVUFBPUlRfQ0ZNCi0gICAgaWYgKCFpc0J1bmRsZSkKLSAgICAgICAgV2ViQ2xvc2VD
b25uZWN0aW9uKCZjb25uSUQpOwotI2VuZGlmCi0KICAgICBMT0coUGx1Z2lucywgIlBsdWdpbiBV
bmxvYWRlZCIpOwogICAgIGlzTG9hZGVkID0gTk87CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbQppbmRleCBlN2ZhZTFiZWMyYjMxODNhNDgxMTY5
ZWMxZDFlZTU1OGJhZDcwODdhLi4wMjlkY2I4ZmJkYjIwMTlkZmYwYWZmYmY4NTZlMWZlMTMzODNi
YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFi
YXNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2Uu
bW0KQEAgLTkxLDEwICs5MSw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrQ2FuZGlkYXRlKFdlYkJhc2VQ
bHVnaW5QYWNrYWdlICoqY3VycmVudFBsdWdpbiwgV2ViQmFzZVBsdWdpblBhCiBzdHJ1Y3QgUGx1
Z2luUGFja2FnZUNhbmRpZGF0ZXMgewogICAgIFBsdWdpblBhY2thZ2VDYW5kaWRhdGVzKCkKICAg
ICAgICAgOiB3ZWJQbHVnaW4obmlsKQotICAgICAgICAsIG1hY2hvUGx1Z2luKG5pbCkKLSNpZmRl
ZiBTVVBQT1JUX0NGTQotICAgICAgICAsIENGTVBsdWdpbihuaWwpCi0jZW5kaWYKKyAgICAgICAg
LCBuZXRzY2FwZVBsdWdpbihuaWwpCiAgICAgewogICAgIH0KICAgICAKQEAgLTEwNywxNyArMTA0
LDggQEAgc3RydWN0IFBsdWdpblBhY2thZ2VDYW5kaWRhdGVzIHsKICAgICAgICAgICAgIAogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBpZihbcGx1Z2luIGlzS2luZE9m
Q2xhc3M6W1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBjbGFzc11dKSB7Ci0gICAgICAgICAgICBX
ZWJFeGVjdXRhYmxlVHlwZSBleGVjdXRhYmxlVHlwZSA9IFsoV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlICopcGx1Z2luIGV4ZWN1dGFibGVUeXBlXTsKLSNpZmRlZiBTVVBQT1JUX0NGTQotICAgICAg
ICAgICAgaWYgKGV4ZWN1dGFibGVUeXBlID09IFdlYkNGTUV4ZWN1dGFibGVUeXBlKSB7Ci0gICAg
ICAgICAgICAgICAgY2hlY2tDYW5kaWRhdGUoJkNGTVBsdWdpbiwgJnBsdWdpbik7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotI2VuZGlmIC8vIFNVUFBPUlRfQ0ZNCi0g
ICAgICAgICAgICBpZiAoZXhlY3V0YWJsZVR5cGUgPT0gV2ViTWFjaE9FeGVjdXRhYmxlVHlwZSkg
ewotICAgICAgICAgICAgICAgIGNoZWNrQ2FuZGlkYXRlKCZtYWNob1BsdWdpbiwgJnBsdWdpbik7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hl
Y2tDYW5kaWRhdGUoJm5ldHNjYXBlUGx1Z2luLCAmcGx1Z2luKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MTMwLDMwICsxMTgsMTkgQEAgc3RydWN0IFBsdWdpblBhY2thZ2VDYW5kaWRhdGVzIHsKICAgICAg
ICAgaWYgKHdlYlBsdWdpbiAmJiAhW3dlYlBsdWdpbiBpc1F1aWNrVGltZVBsdWdJbl0pCiAgICAg
ICAgICAgICByZXR1cm4gd2ViUGx1Z2luOwogICAgIAotICAgICAgICBpZiAobWFjaG9QbHVnaW4g
JiYgIVttYWNob1BsdWdpbiBpc1F1aWNrVGltZVBsdWdJbl0pCi0gICAgICAgICAgICByZXR1cm4g
bWFjaG9QbHVnaW47Ci0gICAgICAgIAotI2lmZGVmIFNVUFBPUlRfQ0ZNCi0gICAgICAgIGlmIChD
Rk1QbHVnaW4gJiYgIVtDRk1QbHVnaW4gaXNRdWlja1RpbWVQbHVnSW5dKQotICAgICAgICAgICAg
cmV0dXJuIENGTVBsdWdpbjsKLSNlbmRpZiAvLyBTVVBQT1JUX0NGTQorICAgICAgICBpZiAobmV0
c2NhcGVQbHVnaW4gJiYgIVtuZXRzY2FwZVBsdWdpbiBpc1F1aWNrVGltZVBsdWdJbl0pCisgICAg
ICAgICAgICByZXR1cm4gbmV0c2NhcGVQbHVnaW47CiAgICAgICAgIAogICAgICAgICBpZiAod2Vi
UGx1Z2luKQogICAgICAgICAgICAgcmV0dXJuIHdlYlBsdWdpbjsKLSAgICAgICAgaWYgKG1hY2hv
UGx1Z2luKQotICAgICAgICAgICAgcmV0dXJuIG1hY2hvUGx1Z2luOwotI2lmZGVmIFNVUFBPUlRf
Q0ZNCi0gICAgICAgIGlmIChDRk1QbHVnaW4pCi0gICAgICAgICAgICByZXR1cm4gQ0ZNUGx1Z2lu
OwotI2VuZGlmCisgICAgICAgIGlmIChuZXRzY2FwZVBsdWdpbikKKyAgICAgICAgICAgIHJldHVy
biBuZXRzY2FwZVBsdWdpbjsKKwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KICAgICAKICAg
ICBXZWJCYXNlUGx1Z2luUGFja2FnZSAqd2ViUGx1Z2luOwotICAgIFdlYkJhc2VQbHVnaW5QYWNr
YWdlICptYWNob1BsdWdpbjsKLSNpZmRlZiBTVVBQT1JUX0NGTQotICAgIFdlYkJhc2VQbHVnaW5Q
YWNrYWdlICpDRk1QbHVnaW47Ci0jZW5kaWYKKyAgICBXZWJCYXNlUGx1Z2luUGFja2FnZSAqbmV0
c2NhcGVQbHVnaW47CiB9OwogCiAtIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqKXBsdWdpbkZvck1J
TUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlCg==
</data>
<flag name="review"
          id="178284"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>