<?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>46780</bug_id>
          
          <creation_ts>2010-09-28 22:25:10 -0700</creation_ts>
          <short_desc>Rename the positive, negative and collapsed margin methods.</short_desc>
          <delta_ts>2010-09-28 22:38:32 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          <blocked>46123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286727</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-28 22:25:10 -0700</bug_when>
    <thetext>Rename the positive, negative and collapsed margin methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286729</commentid>
    <comment_count>1</comment_count>
      <attachid>69159</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-28 22:29:40 -0700</bug_when>
    <thetext>Created attachment 69159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286730</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-28 22:38:32 -0700</bug_when>
    <thetext>Fixed in r68626.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69159</attachid>
            <date>2010-09-28 22:29:40 -0700</date>
            <delta_ts>2010-09-28 22:36:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>26223</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODYyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTMgQEAKKzIwMTAtMDktMjggIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MAorICAgICAgICAKKyAgICAg
ICAgUmVuYW1lIHRoZSBwb3MvTmVnL2NvbGxhcHNlZCBtYXJnaW4gbWV0aG9kcy4gIFJlbmFtZSBh
bGwgdGhlIG1lbWJlcnMgb2YgdGhlIFJlbmRlckJsb2NrUmFyZURhdGEgc3RydWN0LgorICAgICAg
ICBObyBsb2dpY2FsIGNoYW5nZXMuICBKdXN0IHJlbmFtZXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFbWl0RXh0cmFOZXds
aW5lRm9yTm9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpNYXJnaW5JbmZvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpjbGVhckZsb2F0c0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjplc3RpbWF0ZVZlcnRpY2FsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnNldENvbGxhcHNlZEJvdHRvbU1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6cGFpbnRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG93ZXN0
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1heE1hcmdpbkJl
Zm9yZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2V0TWF4TWFyZ2lu
QWZ0ZXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUmVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUXVhZHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptYXhQb3NNYXJnaW5CZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
Om1heE5lZ01hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bWF4
UG9zTWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om1heE5lZ01h
cmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbml0TWF4TWFyZ2lu
VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptYXhNYXJnaW5CZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om1heE1hcmdpbkFmdGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpSZW5kZXJCbG9j
a1JhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1Jh
cmVEYXRhOjpiZWZvcmVQb3NEZWZhdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpiZWZvcmVOZWdEZWZhdWx0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjphZnRlclBvc0RlZmF1bHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OlJlbmRlckJsb2NrUmFyZURhdGE6OmFmdGVy
TmVnRGVmYXVsdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbGxh
cHNlZE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbGxhcHNl
ZE1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bWF4TWFyZ2luQmVm
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bWF4TWFyZ2luQWZ0ZXIpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorCiAyMDEwLTA5LTI4ICBLZXZpbiBP
bGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFt3eF0gd3hNU1cg
YnVpbGQgZml4LiBEb24ndCB1c2UgbXVsdGlwbGUgaW5oZXJpdGFuY2UgaW4gUG9wdXBNZW51V3gg
dG8gYXZvaWQgZGVidWcgYnVpbGQKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCShyZXZp
c2lvbiA2ODU2MSkKKysrIFdlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03ODIsNyArNzgyLDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkRW1pdEV4dHJhTmV3
bGluZUZvck5vZAogICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHBUYWcpKSB7CiAgICAgICAg
IFJlbmRlclN0eWxlKiBzdHlsZSA9IHItPnN0eWxlKCk7CiAgICAgICAgIGlmIChzdHlsZSkgewot
ICAgICAgICAgICAgaW50IGJvdHRvbU1hcmdpbiA9IHRvUmVuZGVyQm94KHIpLT5jb2xsYXBzZWRN
YXJnaW5Cb3R0b20oKTsKKyAgICAgICAgICAgIGludCBib3R0b21NYXJnaW4gPSB0b1JlbmRlckJv
eChyKS0+Y29sbGFwc2VkTWFyZ2luQWZ0ZXIoKTsKICAgICAgICAgICAgIGludCBmb250U2l6ZSA9
IHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFBpeGVsU2l6ZSgpOwogICAgICAgICAg
ICAgaWYgKGJvdHRvbU1hcmdpbiAqIDIgPj0gZm9udFNpemUpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiA2ODYw
NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA0LDggKzEwNCw4IEBAIFJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpNYXJnaW5JbmZvKFJl
bmQKICAgICBtX3F1aXJrQ29udGFpbmVyID0gYmxvY2stPmlzVGFibGVDZWxsKCkgfHwgYmxvY2st
PmlzQm9keSgpIHx8IGJsb2NrLT5zdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1E
SVNDQVJEIHx8IAogICAgICAgICBibG9jay0+c3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgp
ID09IE1ESVNDQVJEOwogCi0gICAgbV9wb3NNYXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVm
b3JlV2l0aENoaWxkcmVuID8gYmxvY2stPm1heFRvcE1hcmdpbih0cnVlKSA6IDA7Ci0gICAgbV9u
ZWdNYXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuID8gYmxvY2st
Pm1heFRvcE1hcmdpbihmYWxzZSkgOiAwOworICAgIG1fcG9zTWFyZ2luID0gbV9jYW5Db2xsYXBz
ZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2NrLT5tYXhNYXJnaW5CZWZvcmUoUmVuZGVy
Qm94OjpQb3NpdGl2ZU1hcmdpbikgOiAwOworICAgIG1fbmVnTWFyZ2luID0gbV9jYW5Db2xsYXBz
ZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2NrLT5tYXhNYXJnaW5CZWZvcmUoUmVuZGVy
Qm94OjpOZWdhdGl2ZU1hcmdpbikgOiAwOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTgyLDcgKzExODIsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5CiAgICAgICAgIGlmIChuICYmIG4tPmhhc1Rh
Z05hbWUoZm9ybVRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4obiktPmlzTWFs
Zm9ybWVkKCkpIHsKICAgICAgICAgICAgIC8vIFNlZSBpZiB0aGlzIGZvcm0gaXMgbWFsZm9ybWVk
IChpLmUuLCB1bmNsb3NlZCkuIElmIHNvLCBkb24ndCBnaXZlIHRoZSBmb3JtCiAgICAgICAgICAg
ICAvLyBhIGJvdHRvbSBtYXJnaW4uCi0gICAgICAgICAgICBzZXRNYXhCb3R0b21NYXJnaW5zKDAs
IDApOworICAgICAgICAgICAgc2V0TWF4TWFyZ2luQWZ0ZXJWYWx1ZXMoMCwgMCk7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHNldFBhZ2luYXRpb25TdHJ1dCgwKTsKQEAgLTE0NjcsMTQg
KzE0NjcsMTQgQEAgYm9vbCBSZW5kZXJCbG9jazo6aGFuZGxlUnVuSW5DaGlsZChSZW5kZQogaW50
IFJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5m
byYgbWFyZ2luSW5mbykKIHsKICAgICAvLyBHZXQgb3VyIG1heCBwb3MgYW5kIG5lZyB0b3AgbWFy
Z2lucy4KLSAgICBpbnQgcG9zVG9wID0gY2hpbGQtPm1heFRvcE1hcmdpbih0cnVlKTsKLSAgICBp
bnQgbmVnVG9wID0gY2hpbGQtPm1heFRvcE1hcmdpbihmYWxzZSk7CisgICAgaW50IHBvc1RvcCA9
IGNoaWxkLT5tYXhNYXJnaW5CZWZvcmUoUG9zaXRpdmVNYXJnaW4pOworICAgIGludCBuZWdUb3Ag
PSBjaGlsZC0+bWF4TWFyZ2luQmVmb3JlKE5lZ2F0aXZlTWFyZ2luKTsKIAogICAgIC8vIEZvciBz
ZWxmLWNvbGxhcHNpbmcgYmxvY2tzLCBjb2xsYXBzZSBvdXIgYm90dG9tIG1hcmdpbnMgaW50byBv
dXIKICAgICAvLyB0b3AgdG8gZ2V0IG5ldyBwb3NUb3AgYW5kIG5lZ1RvcCB2YWx1ZXMuCiAgICAg
aWYgKGNoaWxkLT5pc1NlbGZDb2xsYXBzaW5nQmxvY2soKSkgewotICAgICAgICBwb3NUb3AgPSBt
YXgocG9zVG9wLCBjaGlsZC0+bWF4Qm90dG9tTWFyZ2luKHRydWUpKTsKLSAgICAgICAgbmVnVG9w
ID0gbWF4KG5lZ1RvcCwgY2hpbGQtPm1heEJvdHRvbU1hcmdpbihmYWxzZSkpOworICAgICAgICBw
b3NUb3AgPSBtYXgocG9zVG9wLCBjaGlsZC0+bWF4TWFyZ2luQWZ0ZXIoUG9zaXRpdmVNYXJnaW4p
KTsKKyAgICAgICAgbmVnVG9wID0gbWF4KG5lZ1RvcCwgY2hpbGQtPm1heE1hcmdpbkFmdGVyKE5l
Z2F0aXZlTWFyZ2luKSk7CiAgICAgfQogICAgIAogICAgIC8vIFNlZSBpZiB0aGUgdG9wIG1hcmdp
biBpcyBxdWlya3kuIFdlIG9ubHkgY2FyZSBpZiB0aGlzIGNoaWxkIGhhcwpAQCAtMTQ4Niw3ICsx
NDg2LDcgQEAgaW50IFJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQgogICAgICAg
ICAvLyBibG9jay4gIElmIGl0IGhhcyBsYXJnZXIgbWFyZ2luIHZhbHVlcywgdGhlbiB3ZSBuZWVk
IHRvIHVwZGF0ZQogICAgICAgICAvLyBvdXIgb3duIG1heGltYWwgdmFsdWVzLgogICAgICAgICBp
ZiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFp
bmVyKCkgfHwgIXRvcFF1aXJrKQotICAgICAgICAgICAgc2V0TWF4VG9wTWFyZ2lucyhtYXgocG9z
VG9wLCBtYXhUb3BQb3NNYXJnaW4oKSksIG1heChuZWdUb3AsIG1heFRvcE5lZ01hcmdpbigpKSk7
CisgICAgICAgICAgICBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMobWF4KHBvc1RvcCwgbWF4UG9z
TWFyZ2luQmVmb3JlKCkpLCBtYXgobmVnVG9wLCBtYXhOZWdNYXJnaW5CZWZvcmUoKSkpOwogCiAg
ICAgICAgIC8vIFRoZSBtaW51dGUgYW55IG9mIHRoZSBtYXJnaW5zIGludm9sdmVkIGlzbid0IGEg
cXVpcmssIGRvbid0CiAgICAgICAgIC8vIGNvbGxhcHNlIGl0IGF3YXksIGV2ZW4gaWYgdGhlIG1h
cmdpbiBpcyBzbWFsbGVyICh3d3cud2VicmVmZXJlbmNlLmNvbQpAQCAtMTUxNSwxNCArMTUxNSwx
NCBAQCBpbnQgUmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyhSZW5kZXJCCiAgICAgICAgIC8v
IFRoaXMgY2hpbGQgaGFzIG5vIGhlaWdodC4gIFdlIG5lZWQgdG8gY29tcHV0ZSBvdXIKICAgICAg
ICAgLy8gcG9zaXRpb24gYmVmb3JlIHdlIGNvbGxhcHNlIHRoZSBjaGlsZCdzIG1hcmdpbnMgdG9n
ZXRoZXIsCiAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIGdldCBhbiBhY2N1cmF0ZSBwb3NpdGlv
biBmb3IgdGhlIHplcm8taGVpZ2h0IGJsb2NrLgotICAgICAgICBpbnQgY29sbGFwc2VkVG9wUG9z
ID0gbWF4KG1hcmdpbkluZm8ucG9zTWFyZ2luKCksIGNoaWxkLT5tYXhUb3BNYXJnaW4odHJ1ZSkp
OwotICAgICAgICBpbnQgY29sbGFwc2VkVG9wTmVnID0gbWF4KG1hcmdpbkluZm8ubmVnTWFyZ2lu
KCksIGNoaWxkLT5tYXhUb3BNYXJnaW4oZmFsc2UpKTsKKyAgICAgICAgaW50IGNvbGxhcHNlZFRv
cFBvcyA9IG1heChtYXJnaW5JbmZvLnBvc01hcmdpbigpLCBjaGlsZC0+bWF4TWFyZ2luQmVmb3Jl
KFBvc2l0aXZlTWFyZ2luKSk7CisgICAgICAgIGludCBjb2xsYXBzZWRUb3BOZWcgPSBtYXgobWFy
Z2luSW5mby5uZWdNYXJnaW4oKSwgY2hpbGQtPm1heE1hcmdpbkJlZm9yZShOZWdhdGl2ZU1hcmdp
bikpOwogICAgICAgICBtYXJnaW5JbmZvLnNldE1hcmdpbihjb2xsYXBzZWRUb3BQb3MsIGNvbGxh
cHNlZFRvcE5lZyk7CiAgICAgICAgIAogICAgICAgICAvLyBOb3cgY29sbGFwc2UgdGhlIGNoaWxk
J3MgbWFyZ2lucyB0b2dldGhlciwgd2hpY2ggbWVhbnMgZXhhbWluaW5nIG91cgogICAgICAgICAv
LyBib3R0b20gbWFyZ2luIHZhbHVlcyBhcyB3ZWxsLiAKLSAgICAgICAgbWFyZ2luSW5mby5zZXRQ
b3NNYXJnaW5JZkxhcmdlcihjaGlsZC0+bWF4Qm90dG9tTWFyZ2luKHRydWUpKTsKLSAgICAgICAg
bWFyZ2luSW5mby5zZXROZWdNYXJnaW5JZkxhcmdlcihjaGlsZC0+bWF4Qm90dG9tTWFyZ2luKGZh
bHNlKSk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0UG9zTWFyZ2luSWZMYXJnZXIoY2hpbGQtPm1h
eE1hcmdpbkFmdGVyKFBvc2l0aXZlTWFyZ2luKSk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0TmVn
TWFyZ2luSWZMYXJnZXIoY2hpbGQtPm1heE1hcmdpbkFmdGVyKE5lZ2F0aXZlTWFyZ2luKSk7CiAK
ICAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpKQog
ICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcG9zaXRpb24gb2Yg
dGhlIHNlbGYtY29sbGFwc2luZyBibG9jawpAQCAtMTU0NSw4ICsxNTQ1LDggQEAgaW50IFJlbmRl
ckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQgogICAgICAgICAgICAgeXBvcyA9IGhlaWdo
dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NNYXJnaW4oY2hpbGQt
Pm1heEJvdHRvbU1hcmdpbih0cnVlKSk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TmVnTWFyZ2lu
KGNoaWxkLT5tYXhCb3R0b21NYXJnaW4oZmFsc2UpKTsKKyAgICAgICAgbWFyZ2luSW5mby5zZXRQ
b3NNYXJnaW4oY2hpbGQtPm1heE1hcmdpbkFmdGVyKFBvc2l0aXZlTWFyZ2luKSk7CisgICAgICAg
IG1hcmdpbkluZm8uc2V0TmVnTWFyZ2luKGNoaWxkLT5tYXhNYXJnaW5BZnRlcihOZWdhdGl2ZU1h
cmdpbikpOwogCiAgICAgICAgIGlmIChtYXJnaW5JbmZvLm1hcmdpbigpKQogICAgICAgICAgICAg
bWFyZ2luSW5mby5zZXRNYXJnaW5BZnRlclF1aXJrKGNoaWxkLT5pc0JvdHRvbU1hcmdpblF1aXJr
KCkgfHwgc3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKQEAgLTE1
ODMsMTEgKzE1ODMsMTEgQEAgaW50IFJlbmRlckJsb2NrOjpjbGVhckZsb2F0c0lmTmVlZGVkKFJl
bgogICAgICAgICAgICAgICAgIGF0Qm90dG9tT2ZCbG9jayA9IGZhbHNlOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChhdEJvdHRvbU9mQmxvY2spIHsKLSAgICAgICAgICAgIG1hcmdpbkluZm8uc2V0
UG9zTWFyZ2luKGNoaWxkLT5tYXhCb3R0b21NYXJnaW4odHJ1ZSkpOwotICAgICAgICAgICAgbWFy
Z2luSW5mby5zZXROZWdNYXJnaW4oY2hpbGQtPm1heEJvdHRvbU1hcmdpbihmYWxzZSkpOworICAg
ICAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NNYXJnaW4oY2hpbGQtPm1heE1hcmdpbkFmdGVyKFBv
c2l0aXZlTWFyZ2luKSk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldE5lZ01hcmdpbihjaGls
ZC0+bWF4TWFyZ2luQWZ0ZXIoTmVnYXRpdmVNYXJnaW4pKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIG1hcmdpbkluZm8uc2V0UG9zTWFyZ2luKG1heChjaGlsZC0+bWF4VG9wTWFyZ2lu
KHRydWUpLCBjaGlsZC0+bWF4Qm90dG9tTWFyZ2luKHRydWUpKSk7Ci0gICAgICAgICAgICBtYXJn
aW5JbmZvLnNldE5lZ01hcmdpbihtYXgoY2hpbGQtPm1heFRvcE1hcmdpbihmYWxzZSksIGNoaWxk
LT5tYXhCb3R0b21NYXJnaW4oZmFsc2UpKSk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldFBv
c01hcmdpbihtYXgoY2hpbGQtPm1heE1hcmdpbkJlZm9yZShQb3NpdGl2ZU1hcmdpbiksIGNoaWxk
LT5tYXhNYXJnaW5BZnRlcihQb3NpdGl2ZU1hcmdpbikpKTsKKyAgICAgICAgICAgIG1hcmdpbklu
Zm8uc2V0TmVnTWFyZ2luKG1heChjaGlsZC0+bWF4TWFyZ2luQmVmb3JlKE5lZ2F0aXZlTWFyZ2lu
KSwgY2hpbGQtPm1heE1hcmdpbkFmdGVyKE5lZ2F0aXZlTWFyZ2luKSkpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICAvLyBBZGp1c3Qgb3VyIGhlaWdodCBzdWNoIHRoYXQgd2UgYXJlIHJl
YWR5IHRvIGJlIGNvbGxhcHNlZCB3aXRoIHN1YnNlcXVlbnQgc2libGluZ3MgKG9yIHRoZSBib3R0
b20KQEAgLTE2MDMsNyArMTYwMyw3IEBAIGludCBSZW5kZXJCbG9jazo6Y2xlYXJGbG9hdHNJZk5l
ZWRlZChSZW4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXNuJ3QgcXVpdGUgY29ycmVjdC4gIE5l
ZWQgY2xhcmlmaWNhdGlvbiBmb3Igd2hhdCB0byBkbwogICAgICAgICAvLyBpZiB0aGUgaGVpZ2h0
IHRoZSBjbGVhcmVkIGJsb2NrIGlzIG9mZnNldCBieSBpcyBzbWFsbGVyIHRoYW4gdGhlCiAgICAg
ICAgIC8vIG1hcmdpbnMgaW52b2x2ZWQuCi0gICAgICAgIHNldE1heFRvcE1hcmdpbnMob2xkVG9w
UG9zTWFyZ2luLCBvbGRUb3BOZWdNYXJnaW4pOworICAgICAgICBzZXRNYXhNYXJnaW5CZWZvcmVW
YWx1ZXMob2xkVG9wUG9zTWFyZ2luLCBvbGRUb3BOZWdNYXJnaW4pOwogICAgICAgICBtYXJnaW5J
bmZvLnNldEF0QmVmb3JlU2lkZU9mQmxvY2soZmFsc2UpOwogICAgIH0KICAgICAKQEAgLTE2MTYs
NyArMTYxNiw3IEBAIGludCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVWZXJ0aWNhbFBvc2l0aW8KICAg
ICAvLyByZWxheW91dCBpZiB0aGVyZSBhcmUgaW50cnVkaW5nIGZsb2F0cy4KICAgICBpbnQgeVBv
c0VzdGltYXRlID0gaGVpZ2h0KCk7CiAgICAgaWYgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0
aE1hcmdpbkJlZm9yZSgpKSB7Ci0gICAgICAgIGludCBjaGlsZE1hcmdpblRvcCA9IGNoaWxkLT5z
ZWxmTmVlZHNMYXlvdXQoKSA/IGNoaWxkLT5tYXJnaW5Ub3AoKSA6IGNoaWxkLT5jb2xsYXBzZWRN
YXJnaW5Ub3AoKTsKKyAgICAgICAgaW50IGNoaWxkTWFyZ2luVG9wID0gY2hpbGQtPnNlbGZOZWVk
c0xheW91dCgpID8gY2hpbGQtPm1hcmdpblRvcCgpIDogY2hpbGQtPmNvbGxhcHNlZE1hcmdpbkJl
Zm9yZSgpOwogICAgICAgICB5UG9zRXN0aW1hdGUgKz0gbWF4KG1hcmdpbkluZm8ubWFyZ2luKCks
IGNoaWxkTWFyZ2luVG9wKTsKICAgICB9CiAgICAgCkBAIC0xNzAwLDcgKzE3MDAsNyBAQCB2b2lk
IFJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnCiAgICAgaWYgKG1hcmdpbkluZm8u
Y2FuQ29sbGFwc2VXaXRoTWFyZ2luQWZ0ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdp
dGhNYXJnaW5CZWZvcmUoKSkgewogICAgICAgICAvLyBVcGRhdGUgb3VyIG1heCBwb3MvbmVnIGJv
dHRvbSBtYXJnaW5zLCBzaW5jZSB3ZSBjb2xsYXBzZWQgb3VyIGJvdHRvbSBtYXJnaW5zCiAgICAg
ICAgIC8vIHdpdGggb3VyIGNoaWxkcmVuLgotICAgICAgICBzZXRNYXhCb3R0b21NYXJnaW5zKG1h
eChtYXhCb3R0b21Qb3NNYXJnaW4oKSwgbWFyZ2luSW5mby5wb3NNYXJnaW4oKSksIG1heChtYXhC
b3R0b21OZWdNYXJnaW4oKSwgbWFyZ2luSW5mby5uZWdNYXJnaW4oKSkpOworICAgICAgICBzZXRN
YXhNYXJnaW5BZnRlclZhbHVlcyhtYXgobWF4UG9zTWFyZ2luQWZ0ZXIoKSwgbWFyZ2luSW5mby5w
b3NNYXJnaW4oKSksIG1heChtYXhOZWdNYXJnaW5BZnRlcigpLCBtYXJnaW5JbmZvLm5lZ01hcmdp
bigpKSk7CiAKICAgICAgICAgaWYgKCFtYXJnaW5JbmZvLm1hcmdpbkFmdGVyUXVpcmsoKSkKICAg
ICAgICAgICAgIHNldEJvdHRvbU1hcmdpblF1aXJrKGZhbHNlKTsKQEAgLTE4MDMsOCArMTgwMyw4
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGRyZW4oYm8KIAogdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBt
YXJnaW5JbmZvLCBpbnQmIHByZXZpb3VzRmxvYXRCb3R0b20sIGludCYgbWF4RmxvYXRCb3R0b20p
CiB7Ci0gICAgaW50IG9sZFRvcFBvc01hcmdpbiA9IG1heFRvcFBvc01hcmdpbigpOwotICAgIGlu
dCBvbGRUb3BOZWdNYXJnaW4gPSBtYXhUb3BOZWdNYXJnaW4oKTsKKyAgICBpbnQgb2xkVG9wUG9z
TWFyZ2luID0gbWF4UG9zTWFyZ2luQmVmb3JlKCk7CisgICAgaW50IG9sZFRvcE5lZ01hcmdpbiA9
IG1heE5lZ01hcmdpbkJlZm9yZSgpOwogCiAgICAgLy8gVGhlIGNoaWxkIGlzIGEgbm9ybWFsIGZs
b3cgb2JqZWN0LiAgQ29tcHV0ZSBpdHMgdmVydGljYWwgbWFyZ2lucyBub3cuCiAgICAgY2hpbGQt
PmNvbXB1dGVCbG9ja0RpcmVjdGlvbk1hcmdpbnModGhpcyk7CkBAIC0yMjUyLDcgKzIyNTIsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjpwYWludENoaWxkcmVuKFBhaW50SW5mCiAgICAgICAgIGlmIChj
aGVja0FmdGVyQWx3YXlzCiAgICAgICAgICAgICAmJiAodHkgKyBjaGlsZC0+eSgpICsgY2hpbGQt
PmhlaWdodCgpKSA+IHBhaW50SW5mby5yZWN0LnkoKQogICAgICAgICAgICAgJiYgKHR5ICsgY2hp
bGQtPnkoKSArIGNoaWxkLT5oZWlnaHQoKSkgPCBwYWludEluZm8ucmVjdC5ib3R0b20oKSkgewot
ICAgICAgICAgICAgdmlldygpLT5zZXRCZXN0VHJ1bmNhdGVkQXQodHkgKyBjaGlsZC0+eSgpICsg
Y2hpbGQtPmhlaWdodCgpICsgbWF4KDAsIGNoaWxkLT5jb2xsYXBzZWRNYXJnaW5Cb3R0b20oKSks
IHRoaXMsIHRydWUpOworICAgICAgICAgICAgdmlldygpLT5zZXRCZXN0VHJ1bmNhdGVkQXQodHkg
KyBjaGlsZC0+eSgpICsgY2hpbGQtPmhlaWdodCgpICsgbWF4KDAsIGNoaWxkLT5jb2xsYXBzZWRN
YXJnaW5BZnRlcigpKSwgdGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CkBAIC0zMzkzLDcgKzMzOTMsNyBAQCBpbnQgUmVuZGVyQmxvY2s6Omxvd2VzdFBv
c2l0aW9uKGJvb2wgaW5jCiAgICAgICAgICAgICB3aGlsZSAoY3VyckJveCAmJiBjdXJyQm94LT5p
c0Zsb2F0aW5nT3JQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAgY3VyckJveCA9IGN1cnJC
b3gtPnByZXZpb3VzU2libGluZ0JveCgpOwogICAgICAgICAgICAgaWYgKGN1cnJCb3gpIHsKLSAg
ICAgICAgICAgICAgICBpbnQgY2hpbGRCb3R0b21FZGdlID0gY3VyckJveC0+eSgpICsgY3VyckJv
eC0+aGVpZ2h0KCkgKyBjdXJyQm94LT5jb2xsYXBzZWRNYXJnaW5Cb3R0b20oKTsKKyAgICAgICAg
ICAgICAgICBpbnQgY2hpbGRCb3R0b21FZGdlID0gY3VyckJveC0+eSgpICsgY3VyckJveC0+aGVp
Z2h0KCkgKyBjdXJyQm94LT5jb2xsYXBzZWRNYXJnaW5BZnRlcigpOyAvLyBGSVhNRTogImFmdGVy
IiBpcyB3cm9uZyBoZXJlIGZvciBsb3dlc3RQb3NpdGlvbi4KICAgICAgICAgICAgICAgICBib3R0
b20gPSBtYXgoYm90dG9tLCBjaGlsZEJvdHRvbUVkZ2UgKyBwYWRkaW5nQm90dG9tKCkgKyByZWxh
dGl2ZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU1ODcsMjYgKzU1ODcs
MjYgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y2xlYXJUcnVuY2F0aW9uKCkKICAgICB9CiB9CiAKLXZv
aWQgUmVuZGVyQmxvY2s6OnNldE1heFRvcE1hcmdpbnMoaW50IHBvcywgaW50IG5lZykKK3ZvaWQg
UmVuZGVyQmxvY2s6OnNldE1heE1hcmdpbkJlZm9yZVZhbHVlcyhpbnQgcG9zLCBpbnQgbmVnKQog
ewogICAgIGlmICghbV9yYXJlRGF0YSkgewotICAgICAgICBpZiAocG9zID09IFJlbmRlckJsb2Nr
UmFyZURhdGE6OnRvcFBvc0RlZmF1bHQodGhpcykgJiYgbmVnID09IFJlbmRlckJsb2NrUmFyZURh
dGE6OnRvcE5lZ0RlZmF1bHQodGhpcykpCisgICAgICAgIGlmIChwb3MgPT0gUmVuZGVyQmxvY2tS
YXJlRGF0YTo6YmVmb3JlUG9zRGVmYXVsdCh0aGlzKSAmJiBuZWcgPT0gUmVuZGVyQmxvY2tSYXJl
RGF0YTo6YmVmb3JlTmVnRGVmYXVsdCh0aGlzKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgbV9yYXJlRGF0YSA9IG5ldyBSZW5kZXJCbG9ja1JhcmVEYXRhKHRoaXMpOwogICAgIH0KLSAg
ICBtX3JhcmVEYXRhLT5tX3RvcFBvcyA9IHBvczsKLSAgICBtX3JhcmVEYXRhLT5tX3RvcE5lZyA9
IG5lZzsKKyAgICBtX3JhcmVEYXRhLT5tX2JlZm9yZVBvcyA9IHBvczsKKyAgICBtX3JhcmVEYXRh
LT5tX2JlZm9yZU5lZyA9IG5lZzsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6c2V0TWF4Qm90dG9t
TWFyZ2lucyhpbnQgcG9zLCBpbnQgbmVnKQordm9pZCBSZW5kZXJCbG9jazo6c2V0TWF4TWFyZ2lu
QWZ0ZXJWYWx1ZXMoaW50IHBvcywgaW50IG5lZykKIHsKICAgICBpZiAoIW1fcmFyZURhdGEpIHsK
LSAgICAgICAgaWYgKHBvcyA9PSBSZW5kZXJCbG9ja1JhcmVEYXRhOjpib3R0b21Qb3NEZWZhdWx0
KHRoaXMpICYmIG5lZyA9PSBSZW5kZXJCbG9ja1JhcmVEYXRhOjpib3R0b21OZWdEZWZhdWx0KHRo
aXMpKQorICAgICAgICBpZiAocG9zID09IFJlbmRlckJsb2NrUmFyZURhdGE6OmFmdGVyUG9zRGVm
YXVsdCh0aGlzKSAmJiBuZWcgPT0gUmVuZGVyQmxvY2tSYXJlRGF0YTo6YWZ0ZXJOZWdEZWZhdWx0
KHRoaXMpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3JhcmVEYXRhID0gbmV3IFJl
bmRlckJsb2NrUmFyZURhdGEodGhpcyk7CiAgICAgfQotICAgIG1fcmFyZURhdGEtPm1fYm90dG9t
UG9zID0gcG9zOwotICAgIG1fcmFyZURhdGEtPm1fYm90dG9tTmVnID0gbmVnOworICAgIG1fcmFy
ZURhdGEtPm1fYWZ0ZXJQb3MgPSBwb3M7CisgICAgbV9yYXJlRGF0YS0+bV9hZnRlck5lZyA9IG5l
ZzsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6c2V0UGFnaW5hdGlvblN0cnV0KGludCBzdHJ1dCkK
QEAgLTU2MzUsOCArNTYzNSwxMCBAQCB2b2lkIFJlbmRlckJsb2NrOjphYnNvbHV0ZVJlY3RzKFZl
Y3RvcjxJCiAgICAgLy8gaW5saW5lIGJveGVzIGFib3ZlIGFuZCBiZWxvdyB1cyAodGh1cyBnZXR0
aW5nIG1lcmdlZCB3aXRoIHRoZW0gdG8gZm9ybSBhIHNpbmdsZSBpcnJlZ3VsYXIKICAgICAvLyBz
aGFwZSkuCiAgICAgaWYgKGlzQW5vbnltb3VzQmxvY2tDb250aW51YXRpb24oKSkgewotICAgICAg
ICByZWN0cy5hcHBlbmQoSW50UmVjdCh0eCwgdHkgLSBjb2xsYXBzZWRNYXJnaW5Ub3AoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRN
YXJnaW5Ub3AoKSArIGNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpKSk7CisgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1mbG93cyB0aGF0IGFyZSBob3Jpem9udGFsLgorICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKKyAg
ICAgICAgcmVjdHMuYXBwZW5kKEludFJlY3QodHgsIHR5IC0gY29sbGFwc2VkTWFyZ2luQmVmb3Jl
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCksIGhlaWdodCgpICsgY29s
bGFwc2VkTWFyZ2luQmVmb3JlKCkgKyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpKSk7CiAgICAgICAg
IGNvbnRpbnVhdGlvbigpLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0eCAtIHgoKSArIGlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KS0+Y29udGFpbmluZ0Jsb2NrKCktPngoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHkgLSB5KCkgKyBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCktPmNvbnRhaW5p
bmdCbG9jaygpLT55KCkpOwpAQCAtNTY1MCw4ICs1NjUyLDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmFic29sdXRlUXVhZHMoVmVjdG9yPEYKICAgICAvLyBpbmxpbmUgYm94ZXMgYWJvdmUgYW5kIGJl
bG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2luZ2xlIGly
cmVndWxhcgogICAgIC8vIHNoYXBlKS4KICAgICBpZiAoaXNBbm9ueW1vdXNCbG9ja0NvbnRpbnVh
dGlvbigpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBsb2NhbFJlY3QoMCwgLWNvbGxhcHNlZE1hcmdp
blRvcCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCksIGhlaWdodCgpICsg
Y29sbGFwc2VkTWFyZ2luVG9wKCkgKyBjb2xsYXBzZWRNYXJnaW5Cb3R0b20oKSk7CisgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1mbG93cyB0aGF0IGFyZSBob3Jpem9u
dGFsLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDY3ODEKKyAgICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdCgwLCAtY29sbGFwc2VkTWFyZ2luQmVm
b3JlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBj
b2xsYXBzZWRNYXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpOwogICAgICAg
ICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QpKTsKICAgICAgICAg
Y29udGludWF0aW9uKCktPmFic29sdXRlUXVhZHMocXVhZHMpOwogICAgIH0gZWxzZQpAQCAtNTY2
Miw3ICs1NjY2LDcgQEAgSW50UmVjdCBSZW5kZXJCbG9jazo6cmVjdFdpdGhPdXRsaW5lRm9yUgog
ewogICAgIEludFJlY3QgcihSZW5kZXJCb3g6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQocmVw
YWludENvbnRhaW5lciwgb3V0bGluZVdpZHRoKSk7CiAgICAgaWYgKGlzQW5vbnltb3VzQmxvY2tD
b250aW51YXRpb24oKSkKLSAgICAgICAgci5pbmZsYXRlWShjb2xsYXBzZWRNYXJnaW5Ub3AoKSk7
CisgICAgICAgIHIuaW5mbGF0ZVkoY29sbGFwc2VkTWFyZ2luQmVmb3JlKCkpOyAvLyBGSVhNRTog
VGhpcyBpcyB3cm9uZyBmb3IgYmxvY2stZmxvd3MgdGhhdCBhcmUgaG9yaXpvbnRhbC4KICAgICBy
ZXR1cm4gcjsKIH0KIApAQCAtNTc5OCw5ICs1ODAyLDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFk
ZEZvY3VzUmluZ1JlY3RzKFZlY3QKICAgICAgICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgcmVhbGx5
IGlzbid0IGFjY3VyYXRlLiAKICAgICAgICAgYm9vbCBuZXh0SW5saW5lSGFzTGluZUJveCA9IGlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Zmlyc3RMaW5lQm94KCk7CiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIHdyb25nLiBUaGUgcHJpbmNpcGFsIHJlbmRlcmVyIG1heSBub3QgYmUgdGhl
IGNvbnRpbnVhdGlvbiBwcmVjZWRpbmcgdGhpcyBibG9jay4KKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCisgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQogICAgICAg
ICBib29sIHByZXZJbmxpbmVIYXNMaW5lQm94ID0gdG9SZW5kZXJJbmxpbmUoaW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpLT5ub2RlKCktPnJlbmRlcmVyKCkpLT5maXJzdExpbmVCb3goKTsgCi0g
ICAgICAgIGludCB0b3BNYXJnaW4gPSBwcmV2SW5saW5lSGFzTGluZUJveCA/IGNvbGxhcHNlZE1h
cmdpblRvcCgpIDogMDsKLSAgICAgICAgaW50IGJvdHRvbU1hcmdpbiA9IG5leHRJbmxpbmVIYXNM
aW5lQm94ID8gY29sbGFwc2VkTWFyZ2luQm90dG9tKCkgOiAwOworICAgICAgICBpbnQgdG9wTWFy
Z2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSA6IDA7
CisgICAgICAgIGludCBib3R0b21NYXJnaW4gPSBuZXh0SW5saW5lSGFzTGluZUJveCA/IGNvbGxh
cHNlZE1hcmdpbkFmdGVyKCkgOiAwOwogICAgICAgICBJbnRSZWN0IHJlY3QodHgsIHR5IC0gdG9w
TWFyZ2luLCB3aWR0aCgpLCBoZWlnaHQoKSArIHRvcE1hcmdpbiArIGJvdHRvbU1hcmdpbik7CiAg
ICAgICAgIGlmICghcmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZWN0cy5hcHBlbmQocmVj
dCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDY4NTYxKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDIxICsx
OTQsMjEgQEAgcHJvdGVjdGVkOgogICAgIH0KICAgICB2b2lkIG1vdmVDaGlsZHJlblRvKFJlbmRl
ckJsb2NrKiB0bywgUmVuZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmplY3QqIGVuZENo
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBib29sIGZ1bGxSZW1vdmVJbnNlcnQgPSBm
YWxzZSk7CiAgICAgCi0gICAgaW50IG1heFRvcFBvc01hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZURhdGEgPyBtX3JhcmVEYXRhLT5tX3RvcFBvcyA6IFJlbmRlckJsb2NrUmFyZURhdGE6OnRv
cFBvc0RlZmF1bHQodGhpcyk7IH0KLSAgICBpbnQgbWF4VG9wTmVnTWFyZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9yYXJlRGF0YSA/IG1fcmFyZURhdGEtPm1fdG9wTmVnIDogUmVuZGVyQmxvY2tSYXJl
RGF0YTo6dG9wTmVnRGVmYXVsdCh0aGlzKTsgfQotICAgIGludCBtYXhCb3R0b21Qb3NNYXJnaW4o
KSBjb25zdCB7IHJldHVybiBtX3JhcmVEYXRhID8gbV9yYXJlRGF0YS0+bV9ib3R0b21Qb3MgOiBS
ZW5kZXJCbG9ja1JhcmVEYXRhOjpib3R0b21Qb3NEZWZhdWx0KHRoaXMpOyB9Ci0gICAgaW50IG1h
eEJvdHRvbU5lZ01hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRh
LT5tX2JvdHRvbU5lZyA6IFJlbmRlckJsb2NrUmFyZURhdGE6OmJvdHRvbU5lZ0RlZmF1bHQodGhp
cyk7IH0KKyAgICBpbnQgbWF4UG9zTWFyZ2luQmVmb3JlKCkgY29uc3QgeyByZXR1cm4gbV9yYXJl
RGF0YSA/IG1fcmFyZURhdGEtPm1fYmVmb3JlUG9zIDogUmVuZGVyQmxvY2tSYXJlRGF0YTo6YmVm
b3JlUG9zRGVmYXVsdCh0aGlzKTsgfQorICAgIGludCBtYXhOZWdNYXJnaW5CZWZvcmUoKSBjb25z
dCB7IHJldHVybiBtX3JhcmVEYXRhID8gbV9yYXJlRGF0YS0+bV9iZWZvcmVOZWcgOiBSZW5kZXJC
bG9ja1JhcmVEYXRhOjpiZWZvcmVOZWdEZWZhdWx0KHRoaXMpOyB9CisgICAgaW50IG1heFBvc01h
cmdpbkFmdGVyKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlRGF0YSA/IG1fcmFyZURhdGEtPm1fYWZ0
ZXJQb3MgOiBSZW5kZXJCbG9ja1JhcmVEYXRhOjphZnRlclBvc0RlZmF1bHQodGhpcyk7IH0KKyAg
ICBpbnQgbWF4TmVnTWFyZ2luQWZ0ZXIoKSBjb25zdCB7IHJldHVybiBtX3JhcmVEYXRhID8gbV9y
YXJlRGF0YS0+bV9hZnRlck5lZyA6IFJlbmRlckJsb2NrUmFyZURhdGE6OmFmdGVyTmVnRGVmYXVs
dCh0aGlzKTsgfQogICAgIAotICAgIHZvaWQgc2V0TWF4VG9wTWFyZ2lucyhpbnQgcG9zLCBpbnQg
bmVnKTsKLSAgICB2b2lkIHNldE1heEJvdHRvbU1hcmdpbnMoaW50IHBvcywgaW50IG5lZyk7Cisg
ICAgdm9pZCBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMoaW50IHBvcywgaW50IG5lZyk7CisgICAg
dm9pZCBzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhpbnQgcG9zLCBpbnQgbmVnKTsKIAogICAgIHZv
aWQgaW5pdE1heE1hcmdpblZhbHVlcygpCiAgICAgewogICAgICAgICBpZiAobV9yYXJlRGF0YSkg
ewotICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV90b3BQb3MgPSBSZW5kZXJCbG9ja1JhcmVEYXRh
Ojp0b3BQb3NEZWZhdWx0KHRoaXMpOwotICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV90b3BOZWcg
PSBSZW5kZXJCbG9ja1JhcmVEYXRhOjp0b3BOZWdEZWZhdWx0KHRoaXMpOwotICAgICAgICAgICAg
bV9yYXJlRGF0YS0+bV9ib3R0b21Qb3MgPSBSZW5kZXJCbG9ja1JhcmVEYXRhOjpib3R0b21Qb3NE
ZWZhdWx0KHRoaXMpOwotICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9ib3R0b21OZWcgPSBSZW5k
ZXJCbG9ja1JhcmVEYXRhOjpib3R0b21OZWdEZWZhdWx0KHRoaXMpOworICAgICAgICAgICAgbV9y
YXJlRGF0YS0+bV9iZWZvcmVQb3MgPSBSZW5kZXJCbG9ja1JhcmVEYXRhOjpiZWZvcmVQb3NEZWZh
dWx0KHRoaXMpOworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9iZWZvcmVOZWcgPSBSZW5kZXJC
bG9ja1JhcmVEYXRhOjpiZWZvcmVOZWdEZWZhdWx0KHRoaXMpOworICAgICAgICAgICAgbV9yYXJl
RGF0YS0+bV9hZnRlclBvcyA9IFJlbmRlckJsb2NrUmFyZURhdGE6OmFmdGVyUG9zRGVmYXVsdCh0
aGlzKTsKKyAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fYWZ0ZXJOZWcgPSBSZW5kZXJCbG9ja1Jh
cmVEYXRhOjphZnRlck5lZ0RlZmF1bHQodGhpcyk7CiAgICAgICAgICAgICBtX3JhcmVEYXRhLT5t
X3BhZ2luYXRpb25TdHJ1dCA9IDA7CiAgICAgICAgIH0KICAgICB9CkBAIC0yODQsOCArMjg0LDE0
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzU2VsZkNvbGxhcHNpbmdCbG9j
aygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBpbnQgbWF4VG9wTWFyZ2luKGJvb2wgcG9zaXRpdmUp
IGNvbnN0IHsgcmV0dXJuIHBvc2l0aXZlID8gbWF4VG9wUG9zTWFyZ2luKCkgOiBtYXhUb3BOZWdN
YXJnaW4oKTsgfQotICAgIHZpcnR1YWwgaW50IG1heEJvdHRvbU1hcmdpbihib29sIHBvc2l0aXZl
KSBjb25zdCB7IHJldHVybiBwb3NpdGl2ZSA/IG1heEJvdHRvbVBvc01hcmdpbigpIDogbWF4Qm90
dG9tTmVnTWFyZ2luKCk7IH0KKyAgICB2aXJ0dWFsIGludCBtYXhNYXJnaW5CZWZvcmUoTWFyZ2lu
U2lnbiBzaWduKSBjb25zdAorICAgIHsgCisgICAgICAgIHJldHVybiAoc2lnbiA9PSBQb3NpdGl2
ZU1hcmdpbikgPyBtYXhQb3NNYXJnaW5CZWZvcmUoKSA6IG1heE5lZ01hcmdpbkJlZm9yZSgpOwor
ICAgIH0KKyAgICB2aXJ0dWFsIGludCBtYXhNYXJnaW5BZnRlcihNYXJnaW5TaWduIHNpZ24pIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gKHNpZ24gPT0gUG9zaXRpdmVNYXJnaW4pID8gbWF4
UG9zTWFyZ2luQWZ0ZXIoKSA6IG1heE5lZ01hcmdpbkFmdGVyKCk7CisgICAgfQogCiAgICAgdmly
dHVhbCB2b2lkIHJlcGFpbnRPdmVyaGFuZ2luZ0Zsb2F0cyhib29sIHBhaW50QWxsRGVzY2VuZGFu
dHMpOwogCkBAIC01ODYsMjUgKzU5MiwzOCBAQCBwcml2YXRlOgogCiAgICAgLy8gQWxsb2NhdGVk
IG9ubHkgd2hlbiBzb21lIG9mIHRoZXNlIGZpZWxkcyBoYXZlIG5vbi1kZWZhdWx0IHZhbHVlcwog
ICAgIHN0cnVjdCBSZW5kZXJCbG9ja1JhcmVEYXRhIDogTm9uY29weWFibGUgewotICAgICAgICBS
ZW5kZXJCbG9ja1JhcmVEYXRhKGNvbnN0IFJlbmRlckJsb2NrKiBvKSAKLSAgICAgICAgICAgIDog
bV90b3BQb3ModG9wUG9zRGVmYXVsdChvKSkKLSAgICAgICAgICAgICwgbV90b3BOZWcodG9wTmVn
RGVmYXVsdChvKSkKLSAgICAgICAgICAgICwgbV9ib3R0b21Qb3MoYm90dG9tUG9zRGVmYXVsdChv
KSkKLSAgICAgICAgICAgICwgbV9ib3R0b21OZWcoYm90dG9tTmVnRGVmYXVsdChvKSkKKyAgICAg
ICAgUmVuZGVyQmxvY2tSYXJlRGF0YShjb25zdCBSZW5kZXJCbG9jayogYmxvY2spIAorICAgICAg
ICAgICAgOiBtX2JlZm9yZVBvcyhiZWZvcmVQb3NEZWZhdWx0KGJsb2NrKSkKKyAgICAgICAgICAg
ICwgbV9iZWZvcmVOZWcoYmVmb3JlTmVnRGVmYXVsdChibG9jaykpCisgICAgICAgICAgICAsIG1f
YWZ0ZXJQb3MoYWZ0ZXJQb3NEZWZhdWx0KGJsb2NrKSkKKyAgICAgICAgICAgICwgbV9hZnRlck5l
ZyhhZnRlck5lZ0RlZmF1bHQoYmxvY2spKQogICAgICAgICAgICAgLCBtX3BhZ2luYXRpb25TdHJ1
dCgwKQogICAgICAgICAgICAgLCBtX3BhZ2VZKDApCiAgICAgICAgIHsgCiAgICAgICAgIH0KIAot
ICAgICAgICBzdGF0aWMgaW50IHRvcFBvc0RlZmF1bHQoY29uc3QgUmVuZGVyQmxvY2sqIG8pIHsg
cmV0dXJuIG8tPm1hcmdpblRvcCgpID4gMCA/IG8tPm1hcmdpblRvcCgpIDogMDsgfQotICAgICAg
ICBzdGF0aWMgaW50IHRvcE5lZ0RlZmF1bHQoY29uc3QgUmVuZGVyQmxvY2sqIG8pIHsgcmV0dXJu
IG8tPm1hcmdpblRvcCgpIDwgMCA/IC1vLT5tYXJnaW5Ub3AoKSA6IDA7IH0KLSAgICAgICAgc3Rh
dGljIGludCBib3R0b21Qb3NEZWZhdWx0KGNvbnN0IFJlbmRlckJsb2NrKiBvKSB7IHJldHVybiBv
LT5tYXJnaW5Cb3R0b20oKSA+IDAgPyBvLT5tYXJnaW5Cb3R0b20oKSA6IDA7IH0KLSAgICAgICAg
c3RhdGljIGludCBib3R0b21OZWdEZWZhdWx0KGNvbnN0IFJlbmRlckJsb2NrKiBvKSB7IHJldHVy
biBvLT5tYXJnaW5Cb3R0b20oKSA8IDAgPyAtby0+bWFyZ2luQm90dG9tKCkgOiAwOyB9CisgICAg
ICAgIHN0YXRpYyBpbnQgYmVmb3JlUG9zRGVmYXVsdChjb25zdCBSZW5kZXJCbG9jayogYmxvY2sp
CisgICAgICAgIHsgCisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoYmxvY2stPm1hcmdpbkJl
Zm9yZSgpLCAwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGludCBiZWZv
cmVOZWdEZWZhdWx0KGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKKyAgICAgICAgeyAKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om1heCgtYmxvY2stPm1hcmdpbkJlZm9yZSgpLCAwKTsKKyAgICAg
ICAgfQorICAgICAgICBzdGF0aWMgaW50IGFmdGVyUG9zRGVmYXVsdChjb25zdCBSZW5kZXJCbG9j
ayogYmxvY2spCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heChibG9jay0+
bWFyZ2luQWZ0ZXIoKSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGludCBhZnRlck5l
Z0RlZmF1bHQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gc3RkOjptYXgoLWJsb2NrLT5tYXJnaW5BZnRlcigpLCAwKTsKKyAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgaW50IG1fdG9wUG9zOwotICAgICAgICBpbnQgbV90b3BOZWc7Ci0g
ICAgICAgIGludCBtX2JvdHRvbVBvczsKLSAgICAgICAgaW50IG1fYm90dG9tTmVnOworICAgICAg
ICBpbnQgbV9iZWZvcmVQb3M7CisgICAgICAgIGludCBtX2JlZm9yZU5lZzsKKyAgICAgICAgaW50
IG1fYWZ0ZXJQb3M7CisgICAgICAgIGludCBtX2FmdGVyTmVnOwogICAgICAgICBpbnQgbV9wYWdp
bmF0aW9uU3RydXQ7CiAgICAgICAgIGludCBtX3BhZ2VZOwogICAgICB9OwpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiA2ODU2MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MjksNyArMTcyOSw3IEBAIHZvaWQgUmVu
ZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodCgpCiAgICAgaWYgKHN0cmV0Y2hlc1RvVmlld0hl
aWdodCgpIHx8IHBhZ2luYXRlZENvbnRlbnROZWVkc0Jhc2VIZWlnaHQpIHsKICAgICAgICAgLy8g
RklYTUU6IEZpbmlzaCBhY2NvdW50aW5nIGZvciBibG9jayBmbG93IGhlcmUuCiAgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjYwMwotICAgICAgICBp
bnQgbWFyZ2lucyA9IGNvbGxhcHNlZE1hcmdpblRvcCgpICsgY29sbGFwc2VkTWFyZ2luQm90dG9t
KCk7CisgICAgICAgIGludCBtYXJnaW5zID0gY29sbGFwc2VkTWFyZ2luQmVmb3JlKCkgKyBjb2xs
YXBzZWRNYXJnaW5BZnRlcigpOwogICAgICAgICBpbnQgdmlzSGVpZ2h0OwogICAgICAgICBpZiAo
ZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSkKICAgICAgICAgICAgIHZpc0hlaWdodCA9IHN0YXRpY19j
YXN0PGludD4odmlldygpLT5wYWdlSGVpZ2h0KCkpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJ
KHJldmlzaW9uIDY4NTYxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTE4OSwxOCArMTg5LDMzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hcmdp
bkVuZChpbnQpOwogICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKGludCk7CiAgICAgdm9pZCBzZXRN
YXJnaW5BZnRlcihpbnQpOwotCisgICAgCiAgICAgLy8gVGhlIGZvbGxvd2luZyBmaXZlIGZ1bmN0
aW9ucyBhcmUgdXNlZCB0byBpbXBsZW1lbnQgY29sbGFwc2luZyBtYXJnaW5zLgogICAgIC8vIEFs
bCBvYmplY3RzIGtub3cgdGhlaXIgbWF4aW1hbCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2lu
cy4gIFRoZQogICAgIC8vIGZvcm11bGEgZm9yIGNvbXB1dGluZyBhIGNvbGxhcHNlZCBtYXJnaW4g
aXMgfG1heFBvc01hcmdpbnwgLSB8bWF4TmVnbWFyZ2lufC4KICAgICAvLyBGb3IgYSBub24tY29s
bGFwc2luZyBib3gsIHN1Y2ggYXMgYSBsZWFmIGVsZW1lbnQsIHRoaXMgZm9ybXVsYSB3aWxsIHNp
bXBseSByZXR1cm4KLSAgICAvLyB0aGUgbWFyZ2luIG9mIHRoZSBlbGVtZW50LiAgQmxvY2tzIG92
ZXJyaWRlIHRoZSBtYXhUb3BNYXJnaW4gYW5kIG1heEJvdHRvbU1hcmdpbgorICAgIC8vIHRoZSBt
YXJnaW4gb2YgdGhlIGVsZW1lbnQuICBCbG9ja3Mgb3ZlcnJpZGUgdGhlIG1heE1hcmdpbkJlZm9y
ZSBhbmQgbWF4TWFyZ2luQWZ0ZXIKICAgICAvLyBtZXRob2RzLgorICAgIGVudW0gTWFyZ2luU2ln
biB7IFBvc2l0aXZlTWFyZ2luLCBOZWdhdGl2ZU1hcmdpbiB9OwogICAgIHZpcnR1YWwgYm9vbCBp
c1NlbGZDb2xsYXBzaW5nQmxvY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIGludCBj
b2xsYXBzZWRNYXJnaW5Ub3AoKSBjb25zdCB7IHJldHVybiBtYXhUb3BNYXJnaW4odHJ1ZSkgLSBt
YXhUb3BNYXJnaW4oZmFsc2UpOyB9Ci0gICAgaW50IGNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIG1heEJvdHRvbU1hcmdpbih0cnVlKSAtIG1heEJvdHRvbU1hcmdpbihmYWxz
ZSk7IH0KLSAgICB2aXJ0dWFsIGludCBtYXhUb3BNYXJnaW4oYm9vbCBwb3NpdGl2ZSkgY29uc3Qg
eyByZXR1cm4gcG9zaXRpdmUgPyBzdGQ6Om1heCgwLCBtYXJnaW5Ub3AoKSkgOiAtc3RkOjptaW4o
MCwgbWFyZ2luVG9wKCkpOyB9Ci0gICAgdmlydHVhbCBpbnQgbWF4Qm90dG9tTWFyZ2luKGJvb2wg
cG9zaXRpdmUpIGNvbnN0IHsgcmV0dXJuIHBvc2l0aXZlID8gc3RkOjptYXgoMCwgbWFyZ2luQm90
dG9tKCkpIDogLXN0ZDo6bWluKDAsIG1hcmdpbkJvdHRvbSgpKTsgfQorICAgIGludCBjb2xsYXBz
ZWRNYXJnaW5CZWZvcmUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1heE1hcmdpbkJl
Zm9yZShQb3NpdGl2ZU1hcmdpbikgLSBtYXhNYXJnaW5CZWZvcmUoTmVnYXRpdmVNYXJnaW4pOwor
ICAgIH0KKyAgICBpbnQgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSBjb25zdAorICAgIHsgCisgICAg
ICAgIHJldHVybiBtYXhNYXJnaW5BZnRlcihQb3NpdGl2ZU1hcmdpbikgLSBtYXhNYXJnaW5BZnRl
cihOZWdhdGl2ZU1hcmdpbik7Cit9CisgICAgdmlydHVhbCBpbnQgbWF4TWFyZ2luQmVmb3JlKE1h
cmdpblNpZ24gc2lnbikgY29uc3QKKyAgICB7IAorICAgICAgICBpbnQgYmVmb3JlTWFyZ2luID0g
bWFyZ2luQmVmb3JlKCk7CisgICAgICAgIHJldHVybiAoc2lnbiA9PSBQb3NpdGl2ZU1hcmdpbikg
PyBzdGQ6Om1heCgwLCBiZWZvcmVNYXJnaW4pIDogLXN0ZDo6bWluKDAsIGJlZm9yZU1hcmdpbik7
CisgICAgfQorICAgIHZpcnR1YWwgaW50IG1heE1hcmdpbkFmdGVyKE1hcmdpblNpZ24gc2lnbikg
Y29uc3QKKyAgICB7CisgICAgICAgIGludCBhZnRlck1hcmdpbiA9IG1hcmdpbkFmdGVyKCk7Cisg
ICAgICAgIHJldHVybiAoc2lnbiA9PSBQb3NpdGl2ZU1hcmdpbikgPyBzdGQ6Om1heCgwLCBhZnRl
ck1hcmdpbikgOiAtc3RkOjptaW4oMCwgYWZ0ZXJNYXJnaW4pOworICAgIH0KIAogICAgIHZpcnR1
YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGludCB0eCwgaW50IHR5KTsK
ICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYpOwpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAkocmV2aXNpb24gNjg1NjEp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI1OCwxNCArMjU4LDE0IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJs
b2NrKGJvb2wKICAgICAgICAgLy8gYm90dG9tIG1hcmdpbiBtYXggdmFsdWVzIHRvIDAuICBUaGlz
IHdheSB3ZSBkb24ndCBmYWN0b3IgaW4gdGhlIHZhbHVlcwogICAgICAgICAvLyB0d2ljZSB3aGVu
IHdlIGNvbGxhcHNlIHdpdGggb3VyIHByZXZpb3VzIHZlcnRpY2FsbHkgYWRqYWNlbnQgYW5kCiAg
ICAgICAgIC8vIGZvbGxvd2luZyB2ZXJ0aWNhbGx5IGFkamFjZW50IGJsb2Nrcy4KLSAgICAgICAg
aW50IHBvcyA9IG1heFRvcFBvc01hcmdpbigpOwotICAgICAgICBpbnQgbmVnID0gbWF4VG9wTmVn
TWFyZ2luKCk7Ci0gICAgICAgIGlmIChtYXhCb3R0b21Qb3NNYXJnaW4oKSA+IHBvcykKLSAgICAg
ICAgICAgIHBvcyA9IG1heEJvdHRvbVBvc01hcmdpbigpOwotICAgICAgICBpZiAobWF4Qm90dG9t
TmVnTWFyZ2luKCkgPiBuZWcpCi0gICAgICAgICAgICBuZWcgPSBtYXhCb3R0b21OZWdNYXJnaW4o
KTsKLSAgICAgICAgc2V0TWF4VG9wTWFyZ2lucyhwb3MsIG5lZyk7Ci0gICAgICAgIHNldE1heEJv
dHRvbU1hcmdpbnMoMCwgMCk7CisgICAgICAgIGludCBwb3MgPSBtYXhQb3NNYXJnaW5CZWZvcmUo
KTsKKyAgICAgICAgaW50IG5lZyA9IG1heE5lZ01hcmdpbkJlZm9yZSgpOworICAgICAgICBpZiAo
bWF4UG9zTWFyZ2luQWZ0ZXIoKSA+IHBvcykKKyAgICAgICAgICAgIHBvcyA9IG1heFBvc01hcmdp
bkFmdGVyKCk7CisgICAgICAgIGlmIChtYXhOZWdNYXJnaW5BZnRlcigpID4gbmVnKQorICAgICAg
ICAgICAgbmVnID0gbWF4TmVnTWFyZ2luQWZ0ZXIoKTsKKyAgICAgICAgc2V0TWF4TWFyZ2luQmVm
b3JlVmFsdWVzKHBvcywgbmVnKTsKKyAgICAgICAgc2V0TWF4TWFyZ2luQWZ0ZXJWYWx1ZXMoMCwg
MCk7CiAgICAgfQogICAgIAogICAgIC8vIEFkZCBpbiB0aGUgb3ZlcmZsb3cgZnJvbSBjaGlsZHJl
bi4K
</data>
<flag name="review"
          id="58800"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>