<?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>101379</bug_id>
          
          <creation_ts>2012-11-06 11:29:29 -0800</creation_ts>
          <short_desc>Indentation of JSCell.h is wrong</short_desc>
          <delta_ts>2012-11-06 13:14:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759913</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-06 11:29:29 -0800</bug_when>
    <thetext>patch forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759955</commentid>
    <comment_count>1</comment_count>
      <attachid>172630</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-06 12:27:31 -0800</bug_when>
    <thetext>Created attachment 172630
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759956</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 12:30:47 -0800</bug_when>
    <thetext>Attachment 172630 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/runtime/JSCell.h:91:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Source/JavaScriptCore/runtime/JSCell.h:92:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759958</commentid>
    <comment_count>3</comment_count>
      <attachid>172630</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-06 12:34:45 -0800</bug_when>
    <thetext>Comment on attachment 172630
the patch

rs=me.

Changes like this can be just rubber-stamped on IRC, without going through Bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759984</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-06 13:14:02 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/133661</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172630</attachid>
            <date>2012-11-06 12:27:31 -0800</date>
            <delta_ts>2012-11-06 12:34:45 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>indent.patch</filename>
            <type>text/plain</type>
            <size>22340</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzNjUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTExLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SW5kZW50YXRpb24gb2YgSlNDZWxsLmggaXMgd3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEp1c3QgcmVtb3ZlZCBmb3VyIHNwYWNlcyBvbiBhIGJ1
bmNoIG9mIGxpbmVzLgorCisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKwogMjAxMi0xMS0w
NSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEluZGVudGF0aW9u
IG9mIEpTT2JqZWN0LmggaXMgd3JvbmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCShyZXZpc2lvbiAxMzM1NjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMzI3ICszOCwzMjcgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLSAgICBjbGFzcyBDb3B5VmlzaXRvcjsKLSAgICBjbGFzcyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdDsKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKLSAgICBjbGFzcyBMTElu
dE9mZnNldHNFeHRyYWN0b3I7Ci0gICAgY2xhc3MgUHJvcGVydHlEZXNjcmlwdG9yOwotICAgIGNs
YXNzIFByb3BlcnR5TmFtZUFycmF5OwotICAgIGNsYXNzIFN0cnVjdHVyZTsKLQotICAgIGVudW0g
RW51bWVyYXRpb25Nb2RlIHsKLSAgICAgICAgRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcywKLSAg
ICAgICAgSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcwotICAgIH07Ci0KLSAgICBjbGFzcyBKU0Nl
bGwgewotICAgICAgICBmcmllbmQgY2xhc3MgSlNWYWx1ZTsKLSAgICAgICAgZnJpZW5kIGNsYXNz
IE1hcmtlZEJsb2NrOwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBmcmllbmQgdm9pZCog
YWxsb2NhdGVDZWxsKEhlYXAmKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gZnJpZW5k
IHZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiwgc2l6ZV90KTsKLQotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKLQotICAgICAgICBz
dGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIGhhc0ltbW9ydGFsU3RydWN0dXJlID0gZmFsc2U7Ci0KLSAgICAgICAgZW51
bSBDcmVhdGluZ0Vhcmx5Q2VsbFRhZyB7IENyZWF0aW5nRWFybHlDZWxsIH07Ci0gICAgICAgIEpT
Q2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZyk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIEpT
Q2VsbChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLQotICAgIHB1YmxpYzoKLSAgICAgICAg
Ly8gUXVlcnlpbmcgdGhlIHR5cGUuCi0gICAgICAgIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKLSAg
ICAgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0OwotICAgICAgICBib29sIGlzR2V0dGVyU2V0dGVy
KCkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNQcm94eSgpIGNvbnN0OwotICAgICAgICBib29sIGlu
aGVyaXRzKGNvbnN0IENsYXNzSW5mbyopIGNvbnN0OwotICAgICAgICBib29sIGlzQVBJVmFsdWVX
cmFwcGVyKCkgY29uc3Q7Ci0KLSAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSBjb25zdDsK
LSAgICAgICAgdm9pZCBzZXRTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7Ci0g
ICAgICAgIHZvaWQgY2xlYXJTdHJ1Y3R1cmUoKSB7IG1fc3RydWN0dXJlLmNsZWFyKCk7IH0KLQot
ICAgICAgICBjb25zdCBjaGFyKiBjbGFzc05hbWUoKTsKLQotICAgICAgICAvLyBFeHRyYWN0aW5n
IHRoZSB2YWx1ZS4KLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBnZXRTdHJpbmcoRXhl
Y1N0YXRlKiwgU3RyaW5nJikgY29uc3Q7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmlu
ZyBnZXRTdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7IC8vIG51bGwgc3RyaW5nIGlmIG5vdCBhIHN0
cmluZwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogZ2V0T2JqZWN0KCk7IC8v
IE5VTEwgaWYgbm90IGFuIG9iamVjdAotICAgICAgICBjb25zdCBKU09iamVjdCogZ2V0T2JqZWN0
KCkgY29uc3Q7IC8vIE5VTEwgaWYgbm90IGFuIG9iamVjdAorY2xhc3MgQ29weVZpc2l0b3I7Citj
bGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3Mg
TExJbnRPZmZzZXRzRXh0cmFjdG9yOworY2xhc3MgUHJvcGVydHlEZXNjcmlwdG9yOworY2xhc3Mg
UHJvcGVydHlOYW1lQXJyYXk7CitjbGFzcyBTdHJ1Y3R1cmU7CisKK2VudW0gRW51bWVyYXRpb25N
b2RlIHsKKyAgICBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzLAorICAgIEluY2x1ZGVEb250RW51
bVByb3BlcnRpZXMKK307CisKK2NsYXNzIEpTQ2VsbCB7CisgICAgZnJpZW5kIGNsYXNzIEpTVmFs
dWU7CisgICAgZnJpZW5kIGNsYXNzIE1hcmtlZEJsb2NrOworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGZyaWVuZCB2b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYpOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGZyaWVuZCB2b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYsIHNpemVfdCk7CisKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOworCisgICAg
c3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBj
b25zdCBib29sIGhhc0ltbW9ydGFsU3RydWN0dXJlID0gZmFsc2U7CisKKyAgICBlbnVtIENyZWF0
aW5nRWFybHlDZWxsVGFnIHsgQ3JlYXRpbmdFYXJseUNlbGwgfTsKKyAgICBKU0NlbGwoQ3JlYXRp
bmdFYXJseUNlbGxUYWcpOworCitwcm90ZWN0ZWQ6CisgICAgSlNDZWxsKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSopOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
SlNDZWxsKik7CisKK3B1YmxpYzoKKyAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KKyAgICBib29s
IGlzU3RyaW5nKCkgY29uc3Q7CisgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0OworICAgIGJvb2wg
aXNHZXR0ZXJTZXR0ZXIoKSBjb25zdDsKKyAgICBib29sIGlzUHJveHkoKSBjb25zdDsKKyAgICBi
b29sIGluaGVyaXRzKGNvbnN0IENsYXNzSW5mbyopIGNvbnN0OworICAgIGJvb2wgaXNBUElWYWx1
ZVdyYXBwZXIoKSBjb25zdDsKKworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAgdm9p
ZCBjbGVhclN0cnVjdHVyZSgpIHsgbV9zdHJ1Y3R1cmUuY2xlYXIoKTsgfQorCisgICAgY29uc3Qg
Y2hhciogY2xhc3NOYW1lKCk7CisKKyAgICAvLyBFeHRyYWN0aW5nIHRoZSB2YWx1ZS4KKyAgICBK
U19FWFBPUlRfUFJJVkFURSBib29sIGdldFN0cmluZyhFeGVjU3RhdGUqLCBTdHJpbmcmKSBjb25z
dDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZ2V0U3RyaW5nKEV4ZWNTdGF0ZSopIGNv
bnN0OyAvLyBudWxsIHN0cmluZyBpZiBub3QgYSBzdHJpbmcKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSBKU09iamVjdCogZ2V0T2JqZWN0KCk7IC8vIE5VTEwgaWYgbm90IGFuIG9iamVjdAorICAgIGNv
bnN0IEpTT2JqZWN0KiBnZXRPYmplY3QoKSBjb25zdDsgLy8gTlVMTCBpZiBub3QgYW4gb2JqZWN0
CiAgICAgICAgIAotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7CiAKLSAg
ICAgICAgLy8gQmFzaWMgY29udmVyc2lvbnMuCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpT
VmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29u
c3Q7Ci0gICAgICAgIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSosIGRvdWJsZSYg
bnVtYmVyLCBKU1ZhbHVlJikgY29uc3Q7Ci0gICAgICAgIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0
ZSopIGNvbnN0OwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgdG9OdW1iZXIoRXhl
Y1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiB0b09i
amVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwotCi0gICAgICAgIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKLSAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgY29weUJhY2tpbmdTdG9yZShKU0NlbGwqLCBDb3B5
VmlzaXRvciYpOwotCi0gICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLCB3aXRoIHRoZSB0b09i
amVjdCBvcGVyYXRpb24gaW5jbHVkZWQuCi0gICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvKCkgY29uc3Q7Ci0gICAgICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNv
bnN0OwotICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgc3RhdGljIHZvaWQg
cHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOworICAgIC8vIEJhc2ljIGNvbnZlcnNpb25zLgorICAg
IEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVy
cmVkUHJpbWl0aXZlVHlwZSkgY29uc3Q7CisgICAgYm9vbCBnZXRQcmltaXRpdmVOdW1iZXIoRXhl
Y1N0YXRlKiwgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmKSBjb25zdDsKKyAgICBib29sIHRvQm9v
bGVhbihFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgdG9O
dW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3Qq
IHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisKKyAgICBzdGF0
aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgY29weUJhY2tpbmdTdG9yZShKU0NlbGwqLCBDb3B5Vmlz
aXRvciYpOworCisgICAgLy8gT2JqZWN0IG9wZXJhdGlvbnMsIHdpdGggdGhlIHRvT2JqZWN0IG9w
ZXJhdGlvbiBpbmNsdWRlZC4KKyAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
OworICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNvbnN0OworICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRocm93
KTsKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVBy
b3BlcnR5QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUp
OworICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFBy
b3BlcnR5TmFtZSk7CisgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKLSAgICAgICAgc3RhdGlj
IEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CisgICAgc3RhdGlj
IEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CiAKLSAgICAgICAg
dm9pZCB6YXAoKSB7ICpyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCoqPih0aGlzKSA9IDA7IH0K
LSAgICAgICAgYm9vbCBpc1phcHBlZCgpIGNvbnN0IHsgcmV0dXJuICEqcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3QqIGNvbnN0Kj4odGhpcyk7IH0KKyAgICB2b2lkIHphcCgpIHsgKnJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Kio+KHRoaXMpID0gMDsgfQorICAgIGJvb2wgaXNaYXBwZWQoKSBj
b25zdCB7IHJldHVybiAhKnJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90KiBjb25zdCo+KHRoaXMp
OyB9CiAKLSAgICAgICAgLy8gRklYTUU6IFJlbmFtZSBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gdmly
dHVhbEdldE93blByb3BlcnR5U2xvdCwgYW5kCi0gICAgICAgIC8vIGZhc3RHZXRPd25Qcm9wZXJ0
eVNsb3QgdG8gZ2V0T3duUHJvcGVydHlTbG90LiBDYWxsZXJzIHNob3VsZCBhbHdheXMKLSAgICAg
ICAgLy8gY2FsbCB0aGlzIGZ1bmN0aW9uLCBub3QgaXRzIHNsb3dlciB2aXJ0dWFsIGNvdW50ZXJw
YXJ0LiAoRm9yIGludGVnZXIKLSAgICAgICAgLy8gcHJvcGVydHkgbmFtZXMsIHdlIHdhbnQgYSBz
aW1pbGFyIGludGVyZmFjZSB3aXRoIGFwcHJvcHJpYXRlIG9wdGltaXphdGlvbnMuKQotICAgICAg
ICBib29sIGZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgSlNWYWx1ZSBmYXN0R2V0T3duUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJik7Ci0KLSAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBzdHJ1Y3R1
cmVPZmZzZXQoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KEpTQ2VsbCwgbV9zdHJ1Y3R1cmUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCogc3RydWN0
dXJlQWRkcmVzcygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAmbV9zdHJ1Y3R1cmU7
Ci0gICAgICAgIH0KKyAgICAvLyBGSVhNRTogUmVuYW1lIGdldE93blByb3BlcnR5U2xvdCB0byB2
aXJ0dWFsR2V0T3duUHJvcGVydHlTbG90LCBhbmQKKyAgICAvLyBmYXN0R2V0T3duUHJvcGVydHlT
bG90IHRvIGdldE93blByb3BlcnR5U2xvdC4gQ2FsbGVycyBzaG91bGQgYWx3YXlzCisgICAgLy8g
Y2FsbCB0aGlzIGZ1bmN0aW9uLCBub3QgaXRzIHNsb3dlciB2aXJ0dWFsIGNvdW50ZXJwYXJ0LiAo
Rm9yIGludGVnZXIKKyAgICAvLyBwcm9wZXJ0eSBuYW1lcywgd2Ugd2FudCBhIHNpbWlsYXIgaW50
ZXJmYWNlIHdpdGggYXBwcm9wcmlhdGUgb3B0aW1pemF0aW9ucy4pCisgICAgYm9vbCBmYXN0R2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CisgICAgSlNWYWx1ZSBmYXN0R2V0T3duUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICBzdGF0aWMgcHRyZGlmZl90IHN0cnVjdHVyZU9mZnNldCgpCisgICAgeworICAg
ICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTQ2VsbCwgbV9zdHJ1Y3R1cmUpOworICAgIH0K
KworICAgIHZvaWQqIHN0cnVjdHVyZUFkZHJlc3MoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZt
X3N0cnVjdHVyZTsKKyAgICB9CiAgICAgICAgIAogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQot
ICAgICAgICBTdHJ1Y3R1cmUqIHVudmFsaWRhdGVkU3RydWN0dXJlKCkgeyByZXR1cm4gbV9zdHJ1
Y3R1cmUudW52YWxpZGF0ZWRHZXQoKTsgfQorICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX3N0cnVjdHVyZS51bnZhbGlkYXRlZEdldCgpOyB9CiAjZW5kaWYK
ICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBlZEFycmF5VHlwZSBUeXBlZEFycmF5
U3RvcmFnZVR5cGUgPSBUeXBlZEFycmF5Tm9uZTsKLSAgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGlj
IGNvbnN0IFR5cGVkQXJyYXlUeXBlIFR5cGVkQXJyYXlTdG9yYWdlVHlwZSA9IFR5cGVkQXJyYXlO
b25lOworcHJvdGVjdGVkOgogCi0gICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJik7Ci0gICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKiwgQ3JlYXRpbmdFYXJseUNlbGxUYWcpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxEYXRhJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBTdHJ1
Y3R1cmUqLCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZyk7CiAKLSAgICAgICAgLy8gQmFzZSBpbXBsZW1l
bnRhdGlvbjsgZm9yIG5vbi1vYmplY3QgY2xhc3NlcyBpbXBsZW1lbnRzIGdldFByb3BlcnR5U2xv
dC4KLSAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLQotICAgICAgICAvLyBEdW1teSBpbXBsZW1l
bnRhdGlvbnMgb2Ygb3ZlcnJpZGUtYWJsZSBzdGF0aWMgZnVuY3Rpb25zIGZvciBjbGFzc2VzIHRv
IHB1dCBpbiB0aGVpciBNZXRob2RUYWJsZQotICAgICAgICBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0
VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
KTsKLSAgICAgICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51
bWVyYXRpb25Nb2RlKTsKLSAgICAgICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgZ2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwotICAgICAgICBzdGF0aWMgTk9fUkVU
VVJOX0RVRV9UT19BU1NFUlQgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwotICAgICAgICBzdGF0
aWMgU3RyaW5nIGNsYXNzTmFtZShjb25zdCBKU09iamVjdCopOwotICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSBzdGF0aWMgYm9vbCBjdXN0b21IYXNJbnN0YW5jZShKU09iamVjdCosIEV4ZWNTdGF0
ZSosIEpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9p
ZCBwdXREaXJlY3RWaXJ0dWFsKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVmaW5l
T3duUHJvcGVydHkoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwotICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIC8vIEJhc2UgaW1wbGVtZW50YXRpb247IGZvciBu
b24tb2JqZWN0IGNsYXNzZXMgaW1wbGVtZW50cyBnZXRQcm9wZXJ0eVNsb3QuCisgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOworCisgICAgLy8gRHVtbXkgaW1wbGVtZW50YXRpb25zIG9mIG92ZXJyaWRlLWFibGUg
c3RhdGljIGZ1bmN0aW9ucyBmb3IgY2xhc3NlcyB0byBwdXQgaW4gdGhlaXIgTWV0aG9kVGFibGUK
KyAgICBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19BU1NFUlQgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHN0YXRpYyBOT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIGdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVj
dCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKKyAg
ICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUp
OworICAgIHN0YXRpYyBTdHJpbmcgY2xhc3NOYW1lKGNvbnN0IEpTT2JqZWN0Kik7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgY3VzdG9tSGFzSW5zdGFuY2UoSlNPYmplY3QqLCBF
eGVjU3RhdGUqLCBKU1ZhbHVlKTsKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQg
dm9pZCBwdXREaXJlY3RWaXJ0dWFsKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKKyAgICBzdGF0aWMgYm9vbCBkZWZpbmVP
d25Qcm9wZXJ0eShKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBM
TEludE9mZnNldHNFeHRyYWN0b3I7Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBMTEludE9m
ZnNldHNFeHRyYWN0b3I7CiAgICAgICAgIAotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJl
PiBtX3N0cnVjdHVyZTsKLSAgICB9OworICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc3Ry
dWN0dXJlOworfTsKIAotICAgIGlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2Vs
bFRhZykKLSAgICB7Ci0gICAgfQoraW5saW5lIEpTQ2VsbDo6SlNDZWxsKENyZWF0aW5nRWFybHlD
ZWxsVGFnKQoreworfQogCi0gICAgaW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi0gICAgeworaW5saW5lIHZvaWQgSlNDZWxsOjpmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCit7CiAjaWYgRU5BQkxFKEdDX1ZB
TElEQVRJT04pCi0gICAgICAgIEFTU0VSVChnbG9iYWxEYXRhLmlzSW5pdGlhbGl6aW5nT2JqZWN0
KCkpOwotICAgICAgICBnbG9iYWxEYXRhLnNldEluaXRpYWxpemluZ09iamVjdENsYXNzKDApOwor
ICAgIEFTU0VSVChnbG9iYWxEYXRhLmlzSW5pdGlhbGl6aW5nT2JqZWN0KCkpOworICAgIGdsb2Jh
bERhdGEuc2V0SW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCk7CiAjZWxzZQotICAgICAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsRGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogI2Vu
ZGlmCi0gICAgICAgIEFTU0VSVChtX3N0cnVjdHVyZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIFN0
cnVjdHVyZSogSlNDZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IG1fc3RydWN0dXJlLmdldCgpOwotICAgIH0KLQotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotICAgIHsKLSAg
ICAgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwotCi0gICAgICAgIHZpc2l0b3Iu
YXBwZW5kKCZjZWxsLT5tX3N0cnVjdHVyZSk7Ci0gICAgfQotCi0gICAgLy8gLS0tIEpTVmFsdWUg
aW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc1N0cmluZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNDZWxsKCkg
JiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNQcmltaXRpdmUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICFpc0NlbGwoKSB8
fCBhc0NlbGwoKS0+aXNTdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppc0dldHRlclNldHRlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNDZWxsKCkg
JiYgYXNDZWxsKCktPmlzR2V0dGVyU2V0dGVyKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNPYmplY3QoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2VsbCgp
ICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotICAgIH0KKyAgICBBU1NFUlQobV9zdHJ1Y3R1cmUp
OworfQogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YywgU3RyaW5nJiBzKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFz
Q2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci0gICAgfQotCi0gICAgaW5saW5lIFN0cmluZyBK
U1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldFN0cmluZyhleGVjKSA6IFN0cmluZygpOwot
ICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVy
dGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIGpzVmFsdWUoKS5nZXRTdHJpbmcoZXhlYyk7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjpnZXRPYmplY3QoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6Z2V0VUludDMyKHVpbnQzMl90JiB2
KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzSW50MzIoKSkgewotICAgICAgICAgICAgaW50
MzJfdCBpID0gYXNJbnQzMigpOwotICAgICAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgICAgIHJldHVybiBpID49IDA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KGlzRG91YmxlKCkpIHsKLSAgICAgICAgICAgIGRvdWJsZSBkID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgICAgIHYgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZCk7Ci0gICAgICAgICAgICByZXR1cm4g
diA9PSBkOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjp0b1ByaW1pdGl2ZShFeGVjU3RhdGUqIGV4ZWMsIFByZWZl
cnJlZFByaW1pdGl2ZVR5cGUgcHJlZmVycmVkVHlwZSkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBl
KSA6IGFzVmFsdWUoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRQcmlt
aXRpdmVOdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYgdmFs
dWUpCi0gICAgewotICAgICAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAgICAgICBudW1iZXIg
PSBhc0ludDMyKCk7Ci0gICAgICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAg
ICAgIG51bWJlciA9IGFzRG91YmxlKCk7Ci0gICAgICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzQ2VsbCgpKQot
ICAgICAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVt
YmVyLCB2YWx1ZSk7Ci0gICAgICAgIGlmIChpc1RydWUoKSkgewotICAgICAgICAgICAgbnVtYmVy
ID0gMS4wOwotICAgICAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAg
ICAgICAgICAgIG51bWJlciA9IDAuMDsKLSAgICAgICAgICAgIHZhbHVlID0gKnRoaXM7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBBU1NFUlQoaXNVbmRlZmlu
ZWQoKSk7Ci0gICAgICAgIG51bWJlciA9IFFOYU47CitpbmxpbmUgU3RydWN0dXJlKiBKU0NlbGw6
OnN0cnVjdHVyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RydWN0dXJlLmdldCgpOworfQor
CitpbmxpbmUgdm9pZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3sKKyAgICBNQVJLX0xPR19QQVJFTlQodmlzaXRvciwgY2VsbCk7CisK
KyAgICB2aXNpdG9yLmFwcGVuZCgmY2VsbC0+bV9zdHJ1Y3R1cmUpOworfQorCisvLyAtLS0gSlNW
YWx1ZSBpbmxpbmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNTdHJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0Nl
bGwoKS0+aXNTdHJpbmcoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNQcmltaXRpdmUo
KSBjb25zdAoreworICAgIHJldHVybiAhaXNDZWxsKCkgfHwgYXNDZWxsKCktPmlzU3RyaW5nKCk7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzR2V0dGVyU2V0dGVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzR2V0dGVyU2V0dGVyKCk7Cit9CisKK2lu
bGluZSBib29sIEpTVmFsdWU6OmlzT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgJiYgYXNDZWxsKCktPmlzT2JqZWN0KCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Omdl
dFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZyYgcykgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNDZWxsKCkgJiYgYXNDZWxsKCktPmdldFN0cmluZyhleGVjLCBzKTsKK30KKworaW5saW5lIFN0
cmluZyBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJl
dHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYykgOiBTdHJpbmcoKTsKK30K
KwordGVtcGxhdGUgPHR5cGVuYW1lIEJhc2U+IFN0cmluZyBIYW5kbGVDb252ZXJ0ZXI8QmFzZSwg
VW5rbm93bj46OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGpzVmFsdWUoKS5nZXRTdHJpbmcoZXhlYyk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNWYWx1
ZTo6Z2V0T2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+
Z2V0T2JqZWN0KCkgOiAwOworfQorCitBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6Z2V0VUlu
dDMyKHVpbnQzMl90JiB2KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpIHsKKyAgICAgICAg
aW50MzJfdCBpID0gYXNJbnQzMigpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGkpOworICAgICAgICByZXR1cm4gaSA+PSAwOworICAgIH0KKyAgICBpZiAoaXNEb3VibGUoKSkg
eworICAgICAgICBkb3VibGUgZCA9IGFzRG91YmxlKCk7CisgICAgICAgIHYgPSBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oZCk7CisgICAgICAgIHJldHVybiB2ID09IGQ7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6dG9QcmltaXRpdmUoRXhlY1N0
YXRlKiBleGVjLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvUHJpbWl0aXZlKGV4ZWMsIHByZWZl
cnJlZFR5cGUpIDogYXNWYWx1ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRQcmlt
aXRpdmVOdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYgdmFs
dWUpCit7CisgICAgaWYgKGlzSW50MzIoKSkgeworICAgICAgICBudW1iZXIgPSBhc0ludDMyKCk7
CiAgICAgICAgIHZhbHVlID0gKnRoaXM7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLQot
ICAgIEFMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChpc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1
cm4gYXNJbnQzMigpOwotICAgICAgICBpZiAoaXNEb3VibGUoKSkKLSAgICAgICAgICAgIHJldHVy
biBhc0RvdWJsZSgpOwotICAgICAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsKKyAg
ICBpZiAoaXNEb3VibGUoKSkgeworICAgICAgICBudW1iZXIgPSBhc0RvdWJsZSgpOworICAgICAg
ICB2YWx1ZSA9ICp0aGlzOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0KLSAgICBpbmxp
bmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0
dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7Cisg
ICAgaWYgKGlzVHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAgICAgdmFsdWUg
PSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotCi0gICAgaW5saW5lIEpTT2Jq
ZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0Nl
bGwoKS0+dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoaXNGYWxzZSgpIHx8IGlzTnVsbCgpKSB7CisgICAg
ICAgIG51bWJlciA9IDAuMDsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICB2b2lkKiBhbGxv
Y2F0ZUNlbGwoSGVhcCYgaGVhcCwgc2l6ZV90IHNpemUpCi0gICAgewotICAgICAgICBBU1NFUlQo
c2l6ZSA+PSBzaXplb2YoVCkpOworICAgIEFTU0VSVChpc1VuZGVmaW5lZCgpKTsKKyAgICBudW1i
ZXIgPSBRTmFOOworICAgIHZhbHVlID0gKnRoaXM7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0FM
V0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29u
c3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKQorICAgICAgICByZXR1cm4gYXNJbnQzMigpOworICAg
IGlmIChpc0RvdWJsZSgpKQorICAgICAgICByZXR1cm4gYXNEb3VibGUoKTsKKyAgICByZXR1cm4g
dG9OdW1iZXJTbG93Q2FzZShleGVjKTsKK30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0
b09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpID8g
YXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0
b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Cit9CisK
K2lubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/
IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBnbG9iYWxPYmplY3QpIDogdG9PYmplY3RTbG93Q2Fz
ZShleGVjLCBnbG9iYWxPYmplY3QpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCog
YWxsb2NhdGVDZWxsKEhlYXAmIGhlYXAsIHNpemVfdCBzaXplKQoreworICAgIEFTU0VSVChzaXpl
ID49IHNpemVvZihUKSk7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgICAgIEFTU0VS
VCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2JqZWN0KCkpOwotICAgICAgICBo
ZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7
CisgICAgQVNTRVJUKCFoZWFwLmdsb2JhbERhdGEoKS0+aXNJbml0aWFsaXppbmdPYmplY3QoKSk7
CisgICAgaGVhcC5nbG9iYWxEYXRhKCktPnNldEluaXRpYWxpemluZ09iamVjdENsYXNzKCZUOjpz
X2luZm8pOwogI2VuZGlmCi0gICAgICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKLSAgICAgICAgaWYg
KFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1cmUpCi0gICAgICAg
ICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aEltbW9y
dGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplKSk7Ci0gICAgICAgIGVsc2UgaWYgKFQ6Om5lZWRz
RGVzdHJ1Y3Rpb24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQotICAgICAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIHJlc3VsdCA9IHN0YXRpY19j
YXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7Ci0gICAg
ICAgIHJlc3VsdC0+Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICB9CisgICAgSlNDZWxsKiByZXN1bHQgPSAwOworICAgIGlmIChUOjpuZWVkc0Rlc3RydWN0aW9u
ICYmIFQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2Fz
dDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3Rvcihz
aXplKSk7CisgICAgZWxzZSBpZiAoVDo6bmVlZHNEZXN0cnVjdGlvbiAmJiAhVDo6aGFzSW1tb3J0
YWxTdHJ1Y3R1cmUpCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAu
YWxsb2NhdGVXaXRoTm9ybWFsRGVzdHJ1Y3RvcihzaXplKSk7CisgICAgZWxzZSAKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhvdXREZXN0cnVj
dG9yKHNpemUpKTsKKyAgICByZXN1bHQtPmNsZWFyU3RydWN0dXJlKCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KICAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIHZvaWQqIGFsbG9j
YXRlQ2VsbChIZWFwJiBoZWFwKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFsbG9jYXRlQ2VsbDxU
PihoZWFwLCBzaXplb2YoVCkpOwotICAgIH0KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkKiBh
bGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCkKK3sKKyAgICByZXR1cm4gYWxsb2NhdGVDZWxsPFQ+KGhl
YXAsIHNpemVvZihUKSk7Cit9CiAgICAgCi0gICAgaW5saW5lIGJvb2wgaXNaYXBwZWQoY29uc3Qg
SlNDZWxsKiBjZWxsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNlbGwtPmlzWmFwcGVkKCk7Ci0g
ICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci0gICAgaW5s
aW5lIFRvIGpzQ2FzdChGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFmcm9tIHx8
IGZyb20tPkpTQ2VsbDo6aW5oZXJpdHMoJldURjo6UmVtb3ZlUG9pbnRlcjxUbz46OlR5cGU6OnNf
aW5mbykpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIH0KK2lu
bGluZSBib29sIGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKK3sKKyAgICByZXR1cm4gY2Vs
bC0+aXNaYXBwZWQoKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+
CitpbmxpbmUgVG8ganNDYXN0KEZyb20qIGZyb20pCit7CisgICAgQVNTRVJUKCFmcm9tIHx8IGZy
b20tPkpTQ2VsbDo6aW5oZXJpdHMoJldURjo6UmVtb3ZlUG9pbnRlcjxUbz46OlR5cGU6OnNfaW5m
bykpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUbz4oZnJvbSk7Cit9CiAgICAgCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVG8+Ci0gICAgaW5saW5lIFRvIGpzQ2FzdChKU1ZhbHVlIGZyb20pCi0g
ICAgewotICAgICAgICBBU1NFUlQoZnJvbS5pc0NlbGwoKSAmJiBmcm9tLmFzQ2VsbCgpLT5KU0Nl
bGw6OmluaGVyaXRzKCZXVEY6OlJlbW92ZVBvaW50ZXI8VG8+OjpUeXBlOjpzX2luZm8pKTsKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvPihmcm9tLmFzQ2VsbCgpKTsKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KLSAgICBpbmxpbmUgVG8ganNE
eW5hbWljQ2FzdChGcm9tKiBmcm9tKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPmluaGVy
aXRzKCZXVEY6OlJlbW92ZVBvaW50ZXI8VG8+OjpUeXBlOjpzX2luZm8pID8gc3RhdGljX2Nhc3Q8
VG8+KGZyb20pIDogMDsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbz4KLSAgICBp
bmxpbmUgVG8ganNEeW5hbWljQ2FzdChKU1ZhbHVlIGZyb20pCi0gICAgewotICAgICAgICByZXR1
cm4gZnJvbS5pc0NlbGwoKSAmJiBmcm9tLmFzQ2VsbCgpLT5pbmhlcml0cygmV1RGOjpSZW1vdmVQ
b2ludGVyPFRvPjo6VHlwZTo6c19pbmZvKSA/IHN0YXRpY19jYXN0PFRvPihmcm9tLmFzQ2VsbCgp
KSA6IDA7Ci0gICAgfQordGVtcGxhdGU8dHlwZW5hbWUgVG8+CitpbmxpbmUgVG8ganNDYXN0KEpT
VmFsdWUgZnJvbSkKK3sKKyAgICBBU1NFUlQoZnJvbS5pc0NlbGwoKSAmJiBmcm9tLmFzQ2VsbCgp
LT5KU0NlbGw6OmluaGVyaXRzKCZXVEY6OlJlbW92ZVBvaW50ZXI8VG8+OjpUeXBlOjpzX2luZm8p
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20uYXNDZWxsKCkpOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KK2lubGluZSBUbyBqc0R5bmFtaWNDYXN0
KEZyb20qIGZyb20pCit7CisgICAgcmV0dXJuIGZyb20tPmluaGVyaXRzKCZXVEY6OlJlbW92ZVBv
aW50ZXI8VG8+OjpUeXBlOjpzX2luZm8pID8gc3RhdGljX2Nhc3Q8VG8+KGZyb20pIDogMDsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVG8+CitpbmxpbmUgVG8ganNEeW5hbWljQ2FzdChKU1ZhbHVl
IGZyb20pCit7CisgICAgcmV0dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5hc0NlbGwoKS0+aW5o
ZXJpdHMoJldURjo6UmVtb3ZlUG9pbnRlcjxUbz46OlR5cGU6OnNfaW5mbykgPyBzdGF0aWNfY2Fz
dDxUbz4oZnJvbS5hc0NlbGwoKSkgOiAwOworfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAo=
</data>
<flag name="review"
          id="187018"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>