<?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>54270</bug_id>
          
          <creation_ts>2011-02-10 21:11:28 -0800</creation_ts>
          <short_desc>A little more encapsulation for MarkedBlock: Made all constants private so clients don&apos;t know whether allocations are fixed-sized or not</short_desc>
          <delta_ts>2011-02-10 21:34:21 -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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>349618</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-10 21:11:28 -0800</bug_when>
    <thetext>A little more encapsulation for MarkedBlock: Made all constants private so clients don&apos;t know whether allocations are fixed-sized or not</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349622</commentid>
    <comment_count>1</comment_count>
      <attachid>82098</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-10 21:17:20 -0800</bug_when>
    <thetext>Created attachment 82098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349623</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-10 21:18:06 -0800</bug_when>
    <thetext>Attachment 82098 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/MarkedBlock.h:38:  BLOCK_SIZE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:40:  BLOCK_SIZE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:43:  BLOCK_OFFSET_MASK is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:44:  BLOCK_MASK is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:45:  MINIMUM_CELL_SIZE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:46:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/JavaScriptCore/runtime/MarkedBlock.h:46:  CELL_ARRAY_LENGTH is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:49:  CELL_SIZE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:51:  SMALL_CELL_SIZE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:52:  CELL_MASK is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:53:  CELL_ALIGN_MASK is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:54:  BITS_PER_BLOCK is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/runtime/MarkedBlock.h:55:  CELLS_PER_BLOCK is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 13 in 9 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>349624</commentid>
    <comment_count>3</comment_count>
      <attachid>82098</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-02-10 21:21:07 -0800</bug_when>
    <thetext>Comment on attachment 82098
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=82098&amp;action=review

&gt; Source/JavaScriptCore/runtime/JSGlobalData.cpp:90
&gt; +    char storage[64];

I think this wonky size could use a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349631</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-10 21:34:21 -0800</bug_when>
    <thetext>Committed r78312: &lt;http://trac.webkit.org/changeset/78312&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82098</attachid>
            <date>2011-02-10 21:17:20 -0800</date>
            <delta_ts>2011-02-10 21:21:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54270-20110210211718.patch</filename>
            <type>text/plain</type>
            <size>16760</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzgzMDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAK
KzIwMTEtMDItMTAgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGxpdHRsZSBtb3JlIGVu
Y2Fwc3VsYXRpb24gZm9yIE1hcmtlZEJsb2NrOiBNYWRlIGFsbCBjb25zdGFudHMgcHJpdmF0ZQor
ICAgICAgICBzbyBjbGllbnRzIGRvbid0IGtub3cgd2hldGhlciBhbGxvY2F0aW9ucyBhcmUgZml4
ZWQtc2l6ZWQgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDI3MAorCisgICAgICAgICogcnVudGltZS9Db2xsZWN0b3JIZWFwSXRlcmF0b3Iu
aDoKKyAgICAgICAgKEpTQzo6Q29sbGVjdG9ySGVhcEl0ZXJhdG9yOjphZHZhbmNlKTogVXBkYXRl
ZCBmb3IgcmVtb3ZhbCBvZiBIZWFwQ29uc3RhbnRzLgorCisgICAgICAgICogcnVudGltZS9FcnJv
ci5jcHA6IFN3aXRjaGVkIHRvIHVzaW5nIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwsIGxpa2UK
KyAgICAgICAgYWxsIG90aGVyIGNsYXNzZXMuCisKKyAgICAgICAgKiBydW50aW1lL0hlYXAuY3Bw
OgorICAgICAgICAoSlNDOjpIZWFwOjphbGxvY2F0ZSk6IFVwZGF0ZWQgZm9yIHJlbW92YWwgb2Yg
SGVhcENvbnN0YW50cy4KKyAgICAgICAgKEpTQzo6SGVhcDo6cmVzZXQpOiBVcGRhdGVkIHRvIHVz
ZSBzaXplKCksIGluc3RlYWQgb2YgY2FsY3VsYXRpbmcgc2l6ZQorICAgICAgICBvbiBvdXIgb3du
LgorCisgICAgICAgICogcnVudGltZS9IZWFwLmg6IE1vdmVkIHRoZSBBU1NFUlQgaGVyZSB0byBN
YXJrZWRCbG9jaywgc2luY2UgaXQgZW5mb3JjZXMKKyAgICAgICAgb24gc3BlY2lhbCBrbm93bGVk
Z2Ugb2YgZml4ZWQtc2l6ZXJ5LCB3aGljaCBvbmx5IE1hcmtlZEJsb2NrIGlzIHN1cHBvc2VkCisg
ICAgICAgIHRvIGtub3cgYWJvdXQuCisKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAg
ICAgICAoSlNDOjpKU0NlbGw6Ok1hcmtlZEJsb2NrOjphbGxvY2F0ZSk6IFVwZGF0ZWQgZm9yIHJl
bW92YWwgb2YgSGVhcENvbnN0YW50cy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkIHRvIHJlc2V0IG5l
eHRDZWxsIHRvIDAgYXQgdGhlIGVuZCBvZiBhIGJsb2NrLCBzaW5jZSB0aGF0CisgICAgICAgIHNl
ZW1zIG1vcmUgY29uc2lzdGVudC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpzdG9yZVZQdHJzKTogQ2hhbmdlZCB0byB1
c2UgYSBmaXhlZCBhcnJheSBvZiBjaGFyLgorICAgICAgICBUaGlzIGhhcmQtY29kZWQgc2l6ZSBp
cyBhIGxpdHRsZSB3b25reSwgYnV0IHRoZSBjb21waWxlciB3aWxsIHRlbGwgdXMKKyAgICAgICAg
aWYgaXQncyBldmVyIHdyb25nLCBzbyBJIHRoaW5rIGl0J3MgT0suCisKKyAgICAgICAgKiBydW50
aW1lL01hcmtlZEJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OmRlc3Ryb3kp
OgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6TWFya2VkQmxvY2spOgorICAgICAgICAoSlND
OjpNYXJrZWRCbG9jazo6c3dlZXApOiBVcGRhdGVkIGZvciByZW1vdmFsIG9mIEhlYXBDb25zdGFu
dHMuCisKKyAgICAgICAgKiBydW50aW1lL01hcmtlZEJsb2NrLmg6CisgICAgICAgIChKU0M6Ok1h
cmtlZEJsb2NrOjppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OmNsZWFyTWFy
a3MpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6c2l6ZSk6CisgICAgICAgIChKU0M6Ok1h
cmtlZEJsb2NrOjpjYXBhY2l0eSk6IE1hZGUgY29uc3RhbnRzIHByaXZhdGUgdG8gdGhpcyBjbGFz
cy4KKyAgICAgICAgUmVtb3ZlZCBIZWFwQ29uc3RhbnRzLiBBZGRlZCBzaXplKCkgYW5kIGNhcGFj
aXR5KCkgZnVuY3Rpb25zLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjphbGxvY2F0ZSk6CisgICAgICAgIChKU0M6Ok1hcmtl
ZFNwYWNlOjpvYmplY3RDb3VudCk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpzaXplKToK
KyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmNhcGFjaXR5KToKKyAgICAgICAgKiBydW50aW1l
L01hcmtlZFNwYWNlLmg6IFVzZSBNYXJrZWRCbG9jayBoZWxwZXIgZnVuY3Rpb25zIGluc3RlYWQg
b2YKKyAgICAgICAgZGlyZWN0IGtub3dsZWRnZSBvZiBNYXJrZWRCbG9jayBpbnRlcm5hbHMuCisK
IDIwMTEtMDItMTAgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29sbGVjdG9ySGVhcEl0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9ySGVhcEl0ZXJhdG9yLmgJKHJldmlzaW9uIDc4Mjg0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9ySGVhcEl0ZXJhdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
aW5saW5lIHZvaWQgQ29sbGVjdG9ySGVhcEl0ZXJhdG9yOjphZHZhbmNlKCkKICAgICB7CiAgICAg
ICAgICsrbV9jZWxsOwotICAgICAgICBpZiAobV9jZWxsID09IEhlYXBDb25zdGFudHM6OmNlbGxz
UGVyQmxvY2sgLSAxKSB7CisgICAgICAgIGlmIChtX2NlbGwgPT0gTWFya2VkQmxvY2s6OkNFTExT
X1BFUl9CTE9DSyAtIDEpIHsKICAgICAgICAgICAgIG1fY2VsbCA9IDA7CiAgICAgICAgICAgICAr
K21fYmxvY2s7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvci5jcHAJKHJldmlzaW9uIDc4Mjg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDcgQEAgcHJpdmF0ZToK
ICAgICBVU3RyaW5nIG1fbWVzc2FnZTsKIH07CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihTdHJp
Y3RNb2RlVHlwZUVycm9yRnVuY3Rpb24pIDw9IHNpemVvZihDb2xsZWN0b3JDZWxsKSwgc2l6ZW9m
X1N0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbl9tdXN0X2JlX2xlc3NfdGhhbl9Db2xsZWN0b3JD
ZWxsKTsKK0FTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0
aW9uKTsKIAogSlNWYWx1ZSBjcmVhdGVUeXBlRXJyb3JGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9IZWFwLmNwcAkocmV2aXNpb24gNzgzMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQq
IEhlYXA6OmFsbG9jYXRlKHNpemVfdCBzKQogICAgIEFTU0VSVChnbG9iYWxEYXRhKCktPmlkZW50
aWZpZXJUYWJsZSA9PSB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpKTsK
ICAgICBBU1NFUlQoSlNMb2NrOjpsb2NrQ291bnQoKSA+IDApOwogICAgIEFTU0VSVChKU0xvY2s6
OmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkpOwotICAgIEFTU0VSVF9VTlVTRUQocywgcyA8
PSBIZWFwQ29uc3RhbnRzOjpjZWxsU2l6ZSk7CisgICAgQVNTRVJUX1VOVVNFRChzLCBzIDw9IE1h
cmtlZEJsb2NrOjpDRUxMX1NJWkUpOwogICAgIEFTU0VSVChtX29wZXJhdGlvbkluUHJvZ3Jlc3Mg
PT0gTm9PcGVyYXRpb24pOwogCiAjaWYgQ09MTEVDVF9PTl9FVkVSWV9BTExPQ0FUSU9OCkBAIC0z
ODcsOCArMzg3LDcgQEAgdm9pZCBIZWFwOjpyZXNldChTd2VlcFRvZ2dsZSBzd2VlcFRvZ2dsZQog
ICAgICAgICBtX21hcmtlZFNwYWNlLnNocmluaygpOwogICAgIH0KIAotICAgIHNpemVfdCB1c2Vk
Q2VsbENvdW50ID0gbV9tYXJrZWRTcGFjZS5tYXJrQ291bnQoKTsKLSAgICBzaXplX3QgcHJvcG9y
dGlvbmFsQnl0ZXMgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KHVzZWRDZWxsQ291bnQgKiAxLjUgKiBI
ZWFwQ29uc3RhbnRzOjpjZWxsU2l6ZSk7CisgICAgc2l6ZV90IHByb3BvcnRpb25hbEJ5dGVzID0g
c3RhdGljX2Nhc3Q8c2l6ZV90PigxLjUgKiBtX21hcmtlZFNwYWNlLnNpemUoKSk7CiAgICAgbV9t
YXJrZWRTcGFjZS5zZXRIaWdoV2F0ZXJNYXJrKG1heChwcm9wb3J0aW9uYWxCeXRlcywgbWluQnl0
ZXNQZXJDeWNsZSkpOwogCiAgICAgSkFWQVNDUklQVENPUkVfR0NfRU5EKCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lvbiA3ODI4NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcs
NiBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
IAotI2RlZmluZSBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKGNsYXNzKSBDT01QSUxFX0FTU0VS
VChzaXplb2YoY2xhc3MpIDw9IENFTExfU0laRSwgY2xhc3NfZml0c19pbl9jZWxsKQotCiBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIEdDQWN0aXZpdHlDYWxsYmFjazsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiA3ODI4NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDUs
MTUgKzQwNSwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgdm9pZCogTWFya2VkQmxv
Y2s6OmFsbG9jYXRlKHNpemVfdCYgbmV4dENlbGwpCiAgICAgewogICAgICAgICBkbyB7Ci0gICAg
ICAgICAgICBBU1NFUlQobmV4dENlbGwgPCBIZWFwQ29uc3RhbnRzOjpjZWxsc1BlckJsb2NrKTsK
KyAgICAgICAgICAgIEFTU0VSVChuZXh0Q2VsbCA8IENFTExTX1BFUl9CTE9DSyk7CiAgICAgICAg
ICAgICBpZiAoIW1hcmtlZC50ZXN0QW5kU2V0KG5leHRDZWxsKSkgeyAvLyBBbHdheXMgZmFsc2Ug
Zm9yIHRoZSBsYXN0IGNlbGwgaW4gdGhlIGJsb2NrCiAgICAgICAgICAgICAgICAgSlNDZWxsKiBj
ZWxsID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPigmY2VsbHNbbmV4dENlbGwrK10pOwogICAg
ICAgICAgICAgICAgIGNlbGwtPn5KU0NlbGwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY2Vs
bDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG5leHRDZWxsID0gbWFya2VkLm5leHRQb3Nz
aWJseVVuc2V0KG5leHRDZWxsKTsKLSAgICAgICAgfSB3aGlsZSAobmV4dENlbGwgIT0gSGVhcENv
bnN0YW50czo6Y2VsbHNQZXJCbG9jayk7CisgICAgICAgIH0gd2hpbGUgKG5leHRDZWxsICE9IENF
TExTX1BFUl9CTE9DSyk7CiAgICAgICAgIAorICAgICAgICBuZXh0Q2VsbCA9IDA7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbERhdGEuY3BwCShyZXZpc2lvbiA3ODI4NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDI1
ICs4NywyNCBAQCB2b2lkKiBKU0dsb2JhbERhdGE6OmpzRnVuY3Rpb25WUHRyOwogCiB2b2lkIEpT
R2xvYmFsRGF0YTo6c3RvcmVWUHRycygpCiB7Ci0gICAgQ29sbGVjdG9yQ2VsbCBjZWxsOwotICAg
IHZvaWQqIHN0b3JhZ2UgPSAmY2VsbDsKKyAgICBjaGFyIHN0b3JhZ2VbNjRdOwogCi0gICAgQ09N
UElMRV9BU1NFUlQoc2l6ZW9mKEpTQXJyYXkpIDw9IHNpemVvZihDb2xsZWN0b3JDZWxsKSwgc2l6
ZW9mX0pTQXJyYXlfbXVzdF9iZV9sZXNzX3RoYW5fQ29sbGVjdG9yQ2VsbCk7CisgICAgQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKEpTQXJyYXkpIDw9IHNpemVvZihzdG9yYWdlKSwgc2l6ZW9mX0pTQXJy
YXlfbXVzdF9iZV9sZXNzX3RoYW5fQ29sbGVjdG9yQ2VsbCk7CiAgICAgSlNDZWxsKiBqc0FycmF5
ID0gbmV3IChzdG9yYWdlKSBKU0FycmF5KEpTQXJyYXk6OlZQdHJTdGVhbGluZ0hhY2spOwogICAg
IEpTR2xvYmFsRGF0YTo6anNBcnJheVZQdHIgPSBqc0FycmF5LT52cHRyKCk7CiAgICAganNBcnJh
eS0+fkpTQ2VsbCgpOwogCi0gICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEpTQnl0ZUFycmF5KSA8
PSBzaXplb2YoQ29sbGVjdG9yQ2VsbCksIHNpemVvZl9KU0J5dGVBcnJheV9tdXN0X2JlX2xlc3Nf
dGhhbl9Db2xsZWN0b3JDZWxsKTsKKyAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoSlNCeXRlQXJy
YXkpIDw9IHNpemVvZihzdG9yYWdlKSwgc2l6ZW9mX0pTQnl0ZUFycmF5X211c3RfYmVfbGVzc190
aGFuX0NvbGxlY3RvckNlbGwpOwogICAgIEpTQ2VsbCoganNCeXRlQXJyYXkgPSBuZXcgKHN0b3Jh
Z2UpIEpTQnl0ZUFycmF5KEpTQnl0ZUFycmF5OjpWUHRyU3RlYWxpbmdIYWNrKTsKICAgICBKU0ds
b2JhbERhdGE6OmpzQnl0ZUFycmF5VlB0ciA9IGpzQnl0ZUFycmF5LT52cHRyKCk7CiAgICAganNC
eXRlQXJyYXktPn5KU0NlbGwoKTsKIAotICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihKU1N0cmlu
ZykgPD0gc2l6ZW9mKENvbGxlY3RvckNlbGwpLCBzaXplb2ZfSlNTdHJpbmdfbXVzdF9iZV9sZXNz
X3RoYW5fQ29sbGVjdG9yQ2VsbCk7CisgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEpTU3RyaW5n
KSA8PSBzaXplb2Yoc3RvcmFnZSksIHNpemVvZl9KU1N0cmluZ19tdXN0X2JlX2xlc3NfdGhhbl9D
b2xsZWN0b3JDZWxsKTsKICAgICBKU0NlbGwqIGpzU3RyaW5nID0gbmV3IChzdG9yYWdlKSBKU1N0
cmluZyhKU1N0cmluZzo6VlB0clN0ZWFsaW5nSGFjayk7CiAgICAgSlNHbG9iYWxEYXRhOjpqc1N0
cmluZ1ZQdHIgPSBqc1N0cmluZy0+dnB0cigpOwogICAgIGpzU3RyaW5nLT5+SlNDZWxsKCk7CiAK
LSAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoSlNGdW5jdGlvbikgPD0gc2l6ZW9mKENvbGxlY3Rv
ckNlbGwpLCBzaXplb2ZfSlNGdW5jdGlvbl9tdXN0X2JlX2xlc3NfdGhhbl9Db2xsZWN0b3JDZWxs
KTsKKyAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoSlNGdW5jdGlvbikgPD0gc2l6ZW9mKHN0b3Jh
Z2UpLCBzaXplb2ZfSlNGdW5jdGlvbl9tdXN0X2JlX2xlc3NfdGhhbl9Db2xsZWN0b3JDZWxsKTsK
ICAgICBKU0NlbGwqIGpzRnVuY3Rpb24gPSBuZXcgKHN0b3JhZ2UpIEpTRnVuY3Rpb24oSlNGdW5j
dGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CiAgICAgSlNHbG9iYWxEYXRhOjpqc0Z1
bmN0aW9uVlB0ciA9IGpzRnVuY3Rpb24tPnZwdHIoKTsKICAgICBqc0Z1bmN0aW9uLT5+SlNDZWxs
KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkQmxvY2su
Y3BwCShyZXZpc2lvbiA3ODI4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
cmtlZEJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBNYXJrZWRCbG9j
ayogTWFya2VkQmxvY2s6OmNyZWF0ZShKU0dsb2JhCiAKIHZvaWQgTWFya2VkQmxvY2s6OmRlc3Ry
b3koTWFya2VkQmxvY2sqIGJsb2NrKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgSGVh
cENvbnN0YW50czo6Y2VsbHNQZXJCbG9jazsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgQ0VMTFNfUEVSX0JMT0NLOyArK2kpCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxs
Kj4oJmJsb2NrLT5jZWxsc1tpXSktPn5KU0NlbGwoKTsKICAgICBibG9jay0+bV9hbGxvY2F0aW9u
LmRlYWxsb2NhdGUoKTsKIH0KQEAgLTQ5LDEwICs0OSwxMCBAQCBNYXJrZWRCbG9jazo6TWFya2Vk
QmxvY2soY29uc3QgUGFnZUFsbG9jCiAgICAgOiBtX2FsbG9jYXRpb24oYWxsb2NhdGlvbikKICAg
ICAsIG1faGVhcCgmZ2xvYmFsRGF0YS0+aGVhcCkKIHsKLSAgICBtYXJrZWQuc2V0KEhlYXBDb25z
dGFudHM6OmNlbGxzUGVyQmxvY2sgLSAxKTsKKyAgICBtYXJrZWQuc2V0KENFTExTX1BFUl9CTE9D
SyAtIDEpOwogCiAgICAgU3RydWN0dXJlKiBkdW1teU1hcmthYmxlQ2VsbFN0cnVjdHVyZSA9IGds
b2JhbERhdGEtPmR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlLmdldCgpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgSGVhcENvbnN0YW50czo6Y2VsbHNQZXJCbG9jazsgKytpKQorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgQ0VMTFNfUEVSX0JMT0NLOyArK2kpCiAgICAgICAgIG5ldyAo
JmNlbGxzW2ldKSBKU0NlbGwoZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUpOwogfQogCkBAIC02
Miw3ICs2Miw3IEBAIHZvaWQgTWFya2VkQmxvY2s6OnN3ZWVwKCkKICAgICBTdHJ1Y3R1cmUqIGR1
bW15TWFya2FibGVDZWxsU3RydWN0dXJlID0gbV9oZWFwLT5nbG9iYWxEYXRhKCktPmR1bW15TWFy
a2FibGVDZWxsU3RydWN0dXJlLmdldCgpOwogI2VuZGlmCiAKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IEhlYXBDb25zdGFudHM6OmNlbGxzUGVyQmxvY2s7ICsraSkgeworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgQ0VMTFNfUEVSX0JMT0NLOyArK2kpIHsKICAgICAgICAgaWYgKG1hcmtl
ZC5nZXQoaSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFya2VkQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXJrZWRCbG9jay5oCShyZXZpc2lvbiA3ODMwMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDM2ICsyNiw0MSBAQAogI2luY2x1ZGUgPHd0Zi9GaXhlZEFycmF5Lmg+CiAjaW5jbHVkZSA8
d3RmL1BhZ2VBbGxvY2F0aW9uQWxpZ25lZC5oPgogCisjZGVmaW5lIEFTU0VSVF9DTEFTU19GSVRT
X0lOX0NFTEwoY2xhc3MpIENPTVBJTEVfQVNTRVJUKHNpemVvZihjbGFzcykgPD0gTWFya2VkQmxv
Y2s6OkNFTExfU0laRSwgY2xhc3NfZml0c19pbl9jZWxsKQorCiBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIGNsYXNzIEhlYXA7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwogCisgICAgY2xhc3MgTWFy
a2VkQmxvY2sgewogI2lmIE9TKFdJTkNFKSB8fCBPUyhTWU1CSUFOKSB8fCBQTEFURk9STShCUkVX
TVApCi0gICAgY29uc3Qgc2l6ZV90IEJMT0NLX1NJWkUgPSA2NCAqIDEwMjQ7IC8vIDY0aworICAg
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IEJMT0NLX1NJWkUgPSA2NCAqIDEwMjQ7IC8vIDY0awog
I2Vsc2UKLSAgICBjb25zdCBzaXplX3QgQkxPQ0tfU0laRSA9IDI1NiAqIDEwMjQ7IC8vIDI1NmsK
KyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBCTE9DS19TSVpFID0gMjU2ICogMTAyNDsgLy8g
MjU2awogI2VuZGlmCiAKLSAgICBjb25zdCBzaXplX3QgQkxPQ0tfT0ZGU0VUX01BU0sgPSBCTE9D
S19TSVpFIC0gMTsKLSAgICBjb25zdCBzaXplX3QgQkxPQ0tfTUFTSyA9IH5CTE9DS19PRkZTRVRf
TUFTSzsKLSAgICBjb25zdCBzaXplX3QgTUlOSU1VTV9DRUxMX1NJWkUgPSA2NDsKLSAgICBjb25z
dCBzaXplX3QgQ0VMTF9BUlJBWV9MRU5HVEggPSAoTUlOSU1VTV9DRUxMX1NJWkUgLyBzaXplb2Yo
ZG91YmxlKSkgKyAoTUlOSU1VTV9DRUxMX1NJWkUgJSBzaXplb2YoZG91YmxlKSAhPSAwID8gc2l6
ZW9mKGRvdWJsZSkgOiAwKTsKLSAgICBjb25zdCBzaXplX3QgQ0VMTF9TSVpFID0gQ0VMTF9BUlJB
WV9MRU5HVEggKiBzaXplb2YoZG91YmxlKTsKLSAgICBjb25zdCBzaXplX3QgU01BTExfQ0VMTF9T
SVpFID0gQ0VMTF9TSVpFIC8gMjsKLSAgICBjb25zdCBzaXplX3QgQ0VMTF9NQVNLID0gQ0VMTF9T
SVpFIC0gMTsKLSAgICBjb25zdCBzaXplX3QgQ0VMTF9BTElHTl9NQVNLID0gfkNFTExfTUFTSzsK
LSAgICBjb25zdCBzaXplX3QgQklUU19QRVJfQkxPQ0sgPSBCTE9DS19TSVpFIC8gQ0VMTF9TSVpF
OwotICAgIGNvbnN0IHNpemVfdCBDRUxMU19QRVJfQkxPQ0sgPSAoQkxPQ0tfU0laRSAtIHNpemVv
ZihIZWFwKikgLSBzaXplb2YoV1RGOjpCaXRtYXA8QklUU19QRVJfQkxPQ0s+KSkgLyBDRUxMX1NJ
WkU7IC8vIERpdmlzaW9uIHJvdW5kcyBkb3duIGludGVudGlvbmFsbHkuCi0gICAgCi0gICAgc3Ry
dWN0IENvbGxlY3RvckNlbGwgewotICAgICAgICBGaXhlZEFycmF5PGRvdWJsZSwgQ0VMTF9BUlJB
WV9MRU5HVEg+IG1lbW9yeTsKLSAgICB9OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IEJM
T0NLX09GRlNFVF9NQVNLID0gQkxPQ0tfU0laRSAtIDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgQkxPQ0tfTUFTSyA9IH5CTE9DS19PRkZTRVRfTUFTSzsKKyAgICAgICAgc3RhdGljIGNv
bnN0IHNpemVfdCBNSU5JTVVNX0NFTExfU0laRSA9IDY0OworICAgICAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IENFTExfQVJSQVlfTEVOR1RIID0gKE1JTklNVU1fQ0VMTF9TSVpFIC8gc2l6ZW9mKGRv
dWJsZSkpICsgKE1JTklNVU1fQ0VMTF9TSVpFICUgc2l6ZW9mKGRvdWJsZSkgIT0gMCA/IHNpemVv
Zihkb3VibGUpIDogMCk7CisgICAgcHVibGljOgorICAgICAgICAvLyBUaGlzIGlzIHN0aWxsIHB1
YmxpYyBmb3Igbm93LCBmb3IgdXNlIGluIGFzc2VydGlvbnMuCisgICAgICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgQ0VMTF9TSVpFID0gQ0VMTF9BUlJBWV9MRU5HVEggKiBzaXplb2YoZG91YmxlKTsK
KyAgICBwcml2YXRlOgorICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IFNNQUxMX0NFTExfU0la
RSA9IENFTExfU0laRSAvIDI7CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgQ0VMTF9NQVNL
ID0gQ0VMTF9TSVpFIC0gMTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBDRUxMX0FMSUdO
X01BU0sgPSB+Q0VMTF9NQVNLOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IEJJVFNfUEVS
X0JMT0NLID0gQkxPQ0tfU0laRSAvIENFTExfU0laRTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNp
emVfdCBDRUxMU19QRVJfQkxPQ0sgPSAoQkxPQ0tfU0laRSAtIHNpemVvZihIZWFwKikgLSBzaXpl
b2YoV1RGOjpCaXRtYXA8QklUU19QRVJfQkxPQ0s+KSkgLyBDRUxMX1NJWkU7IC8vIERpdmlzaW9u
IHJvdW5kcyBkb3duIGludGVudGlvbmFsbHkuCisgICAgICAgIAorICAgICAgICBzdHJ1Y3QgQ29s
bGVjdG9yQ2VsbCB7CisgICAgICAgICAgICBGaXhlZEFycmF5PGRvdWJsZSwgQ0VMTF9BUlJBWV9M
RU5HVEg+IG1lbW9yeTsKKyAgICAgICAgfTsKIAotICAgIC8vIENlbGwgc2l6ZSBuZWVkcyB0byBi
ZSBhIHBvd2VyIG9mIHR3byBmb3IgQ0VMTF9NQVNLIHRvIGJlIHZhbGlkLgotICAgIENPTVBJTEVf
QVNTRVJUKCEoc2l6ZW9mKENvbGxlY3RvckNlbGwpICUgMiksIENvbGxlY3Rvcl9jZWxsX3NpemVf
aXNfcG93ZXJfb2ZfdHdvKTsKKyAgICAgICAgLy8gQ2VsbCBzaXplIG5lZWRzIHRvIGJlIGEgcG93
ZXIgb2YgdHdvIGZvciBDRUxMX01BU0sgdG8gYmUgdmFsaWQuCisgICAgICAgIENPTVBJTEVfQVNT
RVJUKCEoc2l6ZW9mKENvbGxlY3RvckNlbGwpICUgMiksIENvbGxlY3Rvcl9jZWxsX3NpemVfaXNf
cG93ZXJfb2ZfdHdvKTsKIAotICAgIGNsYXNzIE1hcmtlZEJsb2NrIHsKICAgICAgICAgZnJpZW5k
IGNsYXNzIENvbGxlY3RvckhlYXBJdGVyYXRvcjsKIAogICAgIHB1YmxpYzoKQEAgLTc0LDYgKzc5
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBjbGVhck1hcmtzKCk7CiAgICAg
ICAgIHNpemVfdCBtYXJrQ291bnQoKTsKKyAgICAgICAgc2l6ZV90IHNpemUoKTsKKyAgICAgICAg
c2l6ZV90IGNhcGFjaXR5KCk7CiAKICAgICAgICAgc2l6ZV90IGNlbGxOdW1iZXIoY29uc3Qgdm9p
ZCopOwogICAgICAgICBib29sIGlzTWFya2VkKGNvbnN0IHZvaWQqKTsKQEAgLTkwLDEzICs5Nyw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBIZWFwKiBtX2hlYXA7CiAgICAgfTsKIAotICAg
IHN0cnVjdCBIZWFwQ29uc3RhbnRzIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjZWxs
U2l6ZSA9IENFTExfU0laRTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjZWxsc1BlckJs
b2NrID0gQ0VMTFNfUEVSX0JMT0NLOwotICAgICAgICB0eXBlZGVmIENvbGxlY3RvckNlbGwgQ2Vs
bDsKLSAgICAgICAgdHlwZWRlZiBNYXJrZWRCbG9jayBCbG9jazsKLSAgICB9OwotCiAgICAgaW5s
aW5lIGJvb2wgTWFya2VkQmxvY2s6OmlzQ2VsbEFsaWduZWQoY29uc3Qgdm9pZCogcCkKICAgICB7
CiAgICAgICAgIHJldHVybiAhKChpbnRwdHJfdCkocCkgJiBDRUxMX01BU0spOwpAQCAtMTE0LDkg
KzExNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6
OmlzRW1wdHkoKQogICAgIHsKLSAgICAgICAgbWFya2VkLmNsZWFyKEhlYXBDb25zdGFudHM6OmNl
bGxzUGVyQmxvY2sgLSAxKTsgLy8gQ2xlYXIgdGhlIGFsd2F5cy1zZXQgbGFzdCBiaXQgdG8gYXZv
aWQgY29uZnVzaW5nIGlzRW1wdHkoKS4KKyAgICAgICAgbWFya2VkLmNsZWFyKENFTExTX1BFUl9C
TE9DSyAtIDEpOyAvLyBDbGVhciB0aGUgYWx3YXlzLXNldCBsYXN0IGJpdCB0byBhdm9pZCBjb25m
dXNpbmcgaXNFbXB0eSgpLgogICAgICAgICBib29sIHJlc3VsdCA9IG1hcmtlZC5pc0VtcHR5KCk7
Ci0gICAgICAgIG1hcmtlZC5zZXQoSGVhcENvbnN0YW50czo6Y2VsbHNQZXJCbG9jayAtIDEpOwor
ICAgICAgICBtYXJrZWQuc2V0KENFTExTX1BFUl9CTE9DSyAtIDEpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KIApAQCAtMTI0LDcgKzEyNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHsKICAgICAgICAgLy8gYWxsb2NhdGUoKSBhc3N1bWVzIHRoYXQgdGhlIGxhc3QgbWFyayBiaXQg
aXMgYWx3YXlzIHNldC4KICAgICAgICAgbWFya2VkLmNsZWFyQWxsKCk7Ci0gICAgICAgIG1hcmtl
ZC5zZXQoSGVhcENvbnN0YW50czo6Y2VsbHNQZXJCbG9jayAtIDEpOworICAgICAgICBtYXJrZWQu
c2V0KENFTExTX1BFUl9CTE9DSyAtIDEpOwogICAgIH0KICAgICAKICAgICBpbmxpbmUgc2l6ZV90
IE1hcmtlZEJsb2NrOjptYXJrQ291bnQoKQpAQCAtMTMyLDYgKzEzMiwxNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgcmV0dXJuIG1hcmtlZC5jb3VudCgpIC0gMTsgLy8gVGhlIGxhc3QgbWFy
ayBiaXQgaXMgYWx3YXlzIHNldC4KICAgICB9CiAKKyAgICBpbmxpbmUgc2l6ZV90IE1hcmtlZEJs
b2NrOjpzaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtYXJrQ291bnQoKSAqIENFTExfU0la
RTsKKyAgICB9CisKKyAgICBpbmxpbmUgc2l6ZV90IE1hcmtlZEJsb2NrOjpjYXBhY2l0eSgpCisg
ICAgeworICAgICAgICByZXR1cm4gQkxPQ0tfU0laRTsKKyAgICB9CisKICAgICBpbmxpbmUgc2l6
ZV90IE1hcmtlZEJsb2NrOjpjZWxsTnVtYmVyKGNvbnN0IHZvaWQqIGNlbGwpCiAgICAgewogICAg
ICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjZWxsKSAmIEJMT0NLX09G
RlNFVF9NQVNLKSAvIENFTExfU0laRTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDc4MzAzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw4
ICs3MSw3IEBAIHZvaWQqIE1hcmtlZFNwYWNlOjphbGxvY2F0ZShzaXplX3QpCiAgICAgICAgIGlm
ICh2b2lkKiByZXN1bHQgPSBibG9jay0+YWxsb2NhdGUobV9oZWFwLm5leHRDZWxsKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICAgICAgbV9oZWFwLm5leHRDZWxsID0gMDsKLSAg
ICAgICAgbV93YXRlck1hcmsgKz0gQkxPQ0tfU0laRTsKKyAgICAgICAgbV93YXRlck1hcmsgKz0g
YmxvY2stPmNhcGFjaXR5KCk7CiAgICAgfSB3aGlsZSAoKyttX2hlYXAubmV4dEJsb2NrICE9IG1f
aGVhcC5ibG9ja3Muc2l6ZSgpKTsKIAogICAgIGlmIChtX3dhdGVyTWFyayA8IG1faGlnaFdhdGVy
TWFyaykKQEAgLTk3LDE0ICs5Niw2IEBAIHZvaWQgTWFya2VkU3BhY2U6OmNsZWFyTWFya3MoKQog
ICAgICAgICBtX2hlYXAuY29sbGVjdG9yQmxvY2soaSktPmNsZWFyTWFya3MoKTsKIH0KIAotc2l6
ZV90IE1hcmtlZFNwYWNlOjptYXJrQ291bnQoKSBjb25zdAotewotICAgIHNpemVfdCByZXN1bHQg
PSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oZWFwLmJsb2Nrcy5zaXplKCk7ICsr
aSkKLSAgICAgICAgcmVzdWx0ICs9IG1faGVhcC5jb2xsZWN0b3JCbG9jayhpKS0+bWFya0NvdW50
KCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogdm9pZCBNYXJrZWRTcGFjZTo6c3dlZXAoKQog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oZWFwLmJsb2Nrcy5zaXplKCk7ICsraSkK
QEAgLTExMywxNyArMTA0LDI2IEBAIHZvaWQgTWFya2VkU3BhY2U6OnN3ZWVwKCkKIAogc2l6ZV90
IE1hcmtlZFNwYWNlOjpvYmplY3RDb3VudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1hcmtDb3Vu
dCgpOworICAgIHNpemVfdCByZXN1bHQgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9oZWFwLmJsb2Nrcy5zaXplKCk7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IG1faGVhcC5jb2xs
ZWN0b3JCbG9jayhpKS0+bWFya0NvdW50KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc2l6
ZV90IE1hcmtlZFNwYWNlOjpzaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gb2JqZWN0Q291bnQo
KSAqIEhlYXBDb25zdGFudHM6OmNlbGxTaXplOworICAgIHNpemVfdCByZXN1bHQgPSAwOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oZWFwLmJsb2Nrcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgcmVzdWx0ICs9IG1faGVhcC5jb2xsZWN0b3JCbG9jayhpKS0+c2l6ZSgpOworICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKIHNpemVfdCBNYXJrZWRTcGFjZTo6Y2FwYWNpdHkoKSBjb25zdAogewot
ICAgIHJldHVybiBtX2hlYXAuYmxvY2tzLnNpemUoKSAqIEJMT0NLX1NJWkU7CisgICAgc2l6ZV90
IHJlc3VsdCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2hlYXAuYmxvY2tzLnNp
emUoKTsgKytpKQorICAgICAgICByZXN1bHQgKz0gbV9oZWFwLmNvbGxlY3RvckJsb2NrKGkpLT5j
YXBhY2l0eSgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQgTWFya2VkU3BhY2U6OnJl
c2V0KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2Uu
aAkocmV2aXNpb24gNzgzMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJr
ZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB2b2lkKiBhbGxvY2F0ZShzaXplX3QpOwogCiAgICAgICAgIHZvaWQgY2xlYXJN
YXJrcygpOwotICAgICAgICBzaXplX3QgbWFya0NvdW50KCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
bWFya1Jvb3RzKCk7CiAgICAgICAgIHZvaWQgcmVzZXQoKTsKICAgICAgICAgdm9pZCBzd2VlcCgp
Owo=
</data>
<flag name="review"
          id="73733"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>