<?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>57319</bug_id>
          
          <creation_ts>2011-03-29 02:39:19 -0700</creation_ts>
          <short_desc>Rename InlineIterator::obj to m_obj to match modern style</short_desc>
          <delta_ts>2011-03-29 06:18:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>375139</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 02:39:19 -0700</bug_when>
    <thetext>Rename InlineIterator::obj to m_obj to match modern style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375141</commentid>
    <comment_count>1</comment_count>
      <attachid>87287</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 02:44:58 -0700</bug_when>
    <thetext>Created attachment 87287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375240</commentid>
    <comment_count>2</comment_count>
      <attachid>87287</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 06:18:48 -0700</bug_when>
    <thetext>Comment on attachment 87287
Patch

Clearing flags on attachment: 87287

Committed r82241: &lt;http://trac.webkit.org/changeset/82241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375241</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 06:18:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87287</attachid>
            <date>2011-03-29 02:44:58 -0700</date>
            <delta_ts>2011-03-29 06:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57319-20110329114455.patch</filename>
            <type>text/plain</type>
            <size>29181</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZDI4NjI2MGFlNzMyYzY3
ZWQ4OTgyNzU2ZjJkYjMxMWI1NGMwMjQ0Li40MTAzMDE2YWM0ZGY5MWJhYzdmZDI0NjgzMGY1OTBm
MzYzNmNkM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDMtMjkgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBJbmxpbmVJdGVyYXRvcjo6b2JqIHRvIG1fb2JqIHRv
IG1hdGNoIG1vZGVybiBzdHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTczMTkKKworICAgICAgICBJIHN0YXJ0ZWQgdGhpcyByZW5hbWUgYWZ0ZXIg
Y29uZnVzaW9uIGluIElubGluZUJpZGlSZXNvbHZlcjo6YXBwZW5kUnVuLgorICAgICAgICAoV2hp
Y2ggdXNlcyBhbiAib2JqIiBsb2NhbCBpbiBJbmxpbmVJdGVyYXRvci5oLiAgSXQncyBub3QgYWN0
dWFsbHkKKyAgICAgICAgbWFza2luZyBtX29iaiBiZWNhdXNlIGl0J3MgYSBzZXBhcmF0ZSBjbGFz
cywgYnV0IEkgZGlkbid0IHJlYWxpemUKKyAgICAgICAgdGhhdCBhdCB0aGUgdGltZSBiZWNhdXNl
IGl0J3MgaW4gSW5saW5lSXRlcmF0b3IuaCB3aGljaCBpcyBpdHNlbGYgY29uZnVzaW5nISkKKwor
ICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OklubGluZUl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6aW5jcmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0
ZXJhdG9yOjphdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Y3VycmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6ZGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUJpZGlSZXNvbHZlcjo6YXBwZW5kUnVuKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNo
ZWNrTWlkcG9pbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphcHBlbmRSdW5z
Rm9yT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVD
aGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bWF0Y2hlZEVuZExpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6c2tpcE5vbkJyZWFraW5nU3BhY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OnJlcXVpcmVzTGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6c2tpcFRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6c2tpcExlYWRpbmdXaGl0ZXNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnRy
eUh5cGhlbmF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExp
bmVCcmVhayk6CisKIDIwMTEtMDMtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZUl0ZXJhdG9yLmgKaW5kZXggMjcwMzY0Zjg0ODNiNTZmODU2ZDY2MjU5YzZkN2U0
NTdhZjY2N2ZjMC4uMGFlMTJjMGU4YjUxOGUxZTNhZjcxMDkyZjg4YTM5YzU0OTM2OTQwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmgKQEAgLTM1LDcgKzM1LDcg
QEAgY2xhc3MgSW5saW5lSXRlcmF0b3IgewogcHVibGljOgogICAgIElubGluZUl0ZXJhdG9yKCkK
ICAgICAgICAgOiBibG9jaygwKQotICAgICAgICAsIG9iaigwKQorICAgICAgICAsIG1fb2JqKDAp
CiAgICAgICAgICwgcG9zKDApCiAgICAgICAgICwgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKC0xKQog
ICAgIHsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiAgICAgSW5saW5lSXRlcmF0b3IoUmVu
ZGVyQmxvY2sqIGIsIFJlbmRlck9iamVjdCogbywgdW5zaWduZWQgcCkKICAgICAgICAgOiBibG9j
ayhiKQotICAgICAgICAsIG9iaihvKQorICAgICAgICAsIG1fb2JqKG8pCiAgICAgICAgICwgcG9z
KHApCiAgICAgICAgICwgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKC0xKQogICAgIHsKQEAgLTU2LDE5
ICs1NiwxOSBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElORSBXVEY6OlVuaWNvZGU6OkRpcmVj
dGlvbiBkaXJlY3Rpb24oKSBjb25zdDsKIAogICAgIFJlbmRlckJsb2NrKiBibG9jazsKLSAgICBS
ZW5kZXJPYmplY3QqIG9iajsKKyAgICBSZW5kZXJPYmplY3QqIG1fb2JqOwogICAgIHVuc2lnbmVk
IHBvczsKICAgICBpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uOwogfTsKIAogaW5saW5lIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBJbmxpbmVJdGVyYXRvciYgaXQxLCBjb25zdCBJbmxpbmVJdGVyYXRv
ciYgaXQyKQogewotICAgIHJldHVybiBpdDEucG9zID09IGl0Mi5wb3MgJiYgaXQxLm9iaiA9PSBp
dDIub2JqOworICAgIHJldHVybiBpdDEucG9zID09IGl0Mi5wb3MgJiYgaXQxLm1fb2JqID09IGl0
Mi5tX29iajsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJbmxpbmVJdGVyYXRv
ciYgaXQxLCBjb25zdCBJbmxpbmVJdGVyYXRvciYgaXQyKQogewotICAgIHJldHVybiBpdDEucG9z
ICE9IGl0Mi5wb3MgfHwgaXQxLm9iaiAhPSBpdDIub2JqOworICAgIHJldHVybiBpdDEucG9zICE9
IGl0Mi5wb3MgfHwgaXQxLm1fb2JqICE9IGl0Mi5tX29iajsKIH0KIAogc3RhdGljIGlubGluZSBS
ZW5kZXJPYmplY3QqIGJpZGlOZXh0KFJlbmRlckJsb2NrKiBibG9jaywgUmVuZGVyT2JqZWN0KiBj
dXJyZW50LCBJbmxpbmVCaWRpUmVzb2x2ZXIqIHJlc29sdmVyID0gMCwgYm9vbCBza2lwSW5saW5l
cyA9IHRydWUsIGJvb2wqIGVuZE9mSW5saW5lUHRyID0gMCkKQEAgLTE4MSwxNyArMTgxLDE3IEBA
IHN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBiaWRpRmlyc3QoUmVuZGVyQmxvY2sqIGJsb2Nr
LCBJbmxpbmVCaWRpUmVzb2x2ZXIqIHJlCiAKIGlubGluZSB2b2lkIElubGluZUl0ZXJhdG9yOjpp
bmNyZW1lbnQoSW5saW5lQmlkaVJlc29sdmVyKiByZXNvbHZlcikKIHsKLSAgICBpZiAoIW9iaikK
KyAgICBpZiAoIW1fb2JqKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG9iai0+aXNUZXh0KCkp
IHsKKyAgICBpZiAobV9vYmotPmlzVGV4dCgpKSB7CiAgICAgICAgIHBvcysrOwotICAgICAgICBp
ZiAocG9zID49IHRvUmVuZGVyVGV4dChvYmopLT50ZXh0TGVuZ3RoKCkpIHsKLSAgICAgICAgICAg
IG9iaiA9IGJpZGlOZXh0KGJsb2NrLCBvYmosIHJlc29sdmVyKTsKKyAgICAgICAgaWYgKHBvcyA+
PSB0b1JlbmRlclRleHQobV9vYmopLT50ZXh0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG1fb2Jq
ID0gYmlkaU5leHQoYmxvY2ssIG1fb2JqLCByZXNvbHZlcik7CiAgICAgICAgICAgICBwb3MgPSAw
OwogICAgICAgICAgICAgbmV4dEJyZWFrYWJsZVBvc2l0aW9uID0gLTE7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgewotICAgICAgICBvYmogPSBiaWRpTmV4dChibG9jaywgb2JqLCByZXNvbHZlcik7
CisgICAgICAgIG1fb2JqID0gYmlkaU5leHQoYmxvY2ssIG1fb2JqLCByZXNvbHZlcik7CiAgICAg
ICAgIHBvcyA9IDA7CiAgICAgICAgIG5leHRCcmVha2FibGVQb3NpdGlvbiA9IC0xOwogICAgIH0K
QEAgLTE5OSwxNSArMTk5LDE1IEBAIGlubGluZSB2b2lkIElubGluZUl0ZXJhdG9yOjppbmNyZW1l
bnQoSW5saW5lQmlkaVJlc29sdmVyKiByZXNvbHZlcikKIAogaW5saW5lIGJvb2wgSW5saW5lSXRl
cmF0b3I6OmF0RW5kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW9iajsKKyAgICByZXR1cm4gIW1f
b2JqOwogfQogCiBpbmxpbmUgVUNoYXIgSW5saW5lSXRlcmF0b3I6OmN1cnJlbnQoKSBjb25zdAog
ewotICAgIGlmICghb2JqIHx8ICFvYmotPmlzVGV4dCgpKQorICAgIGlmICghbV9vYmogfHwgIW1f
b2JqLT5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZW5kZXJUZXh0KiB0ZXh0
ID0gdG9SZW5kZXJUZXh0KG9iaik7CisgICAgUmVuZGVyVGV4dCogdGV4dCA9IHRvUmVuZGVyVGV4
dChtX29iaik7CiAgICAgaWYgKHBvcyA+PSB0ZXh0LT50ZXh0TGVuZ3RoKCkpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC0yMTksOCArMjE5LDggQEAgQUxXQVlTX0lOTElORSBXVEY6OlVuaWNvZGU6
OkRpcmVjdGlvbiBJbmxpbmVJdGVyYXRvcjo6ZGlyZWN0aW9uKCkgY29uc3QKICAgICBpZiAoVUNo
YXIgYyA9IGN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFdURjo6VW5pY29kZTo6ZGlyZWN0aW9u
KGMpOwogCi0gICAgaWYgKG9iaiAmJiBvYmotPmlzTGlzdE1hcmtlcigpKQotICAgICAgICByZXR1
cm4gb2JqLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBXVEY6OlVuaWNvZGU6
OkxlZnRUb1JpZ2h0IDogV1RGOjpVbmljb2RlOjpSaWdodFRvTGVmdDsKKyAgICBpZiAobV9vYmog
JiYgbV9vYmotPmlzTGlzdE1hcmtlcigpKQorICAgICAgICByZXR1cm4gbV9vYmotPnN0eWxlKCkt
PmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IFdURjo6VW5pY29kZTo6TGVmdFRvUmlnaHQgOiBX
VEY6OlVuaWNvZGU6OlJpZ2h0VG9MZWZ0OwogCiAgICAgcmV0dXJuIFdURjo6VW5pY29kZTo6T3Ro
ZXJOZXV0cmFsOwogfQpAQCAtMjM2LDE1ICsyMzYsMTUgQEAgaW5saW5lIHZvaWQgSW5saW5lQmlk
aVJlc29sdmVyOjphcHBlbmRSdW4oKQogewogICAgIGlmICghZW1wdHlSdW4gJiYgIWVvci5hdEVu
ZCgpKSB7CiAgICAgICAgIGludCBzdGFydCA9IHNvci5wb3M7Ci0gICAgICAgIFJlbmRlck9iamVj
dCAqb2JqID0gc29yLm9iajsKLSAgICAgICAgd2hpbGUgKG9iaiAmJiBvYmogIT0gZW9yLm9iaiAm
JiBvYmogIT0gZW5kT2ZMaW5lLm9iaikgeworICAgICAgICBSZW5kZXJPYmplY3QqIG9iaiA9IHNv
ci5tX29iajsKKyAgICAgICAgd2hpbGUgKG9iaiAmJiBvYmogIT0gZW9yLm1fb2JqICYmIG9iaiAh
PSBlbmRPZkxpbmUubV9vYmopIHsKICAgICAgICAgICAgIFJlbmRlckJsb2NrOjphcHBlbmRSdW5z
Rm9yT2JqZWN0KHN0YXJ0LCBvYmotPmxlbmd0aCgpLCBvYmosICp0aGlzKTsgICAgICAgIAogICAg
ICAgICAgICAgc3RhcnQgPSAwOwogICAgICAgICAgICAgb2JqID0gYmlkaU5leHQoc29yLmJsb2Nr
LCBvYmopOwogICAgICAgICB9CiAgICAgICAgIGlmIChvYmopIHsKLSAgICAgICAgICAgIHVuc2ln
bmVkIHBvcyA9IG9iaiA9PSBlb3Iub2JqID8gZW9yLnBvcyA6IFVJTlRfTUFYOwotICAgICAgICAg
ICAgaWYgKG9iaiA9PSBlbmRPZkxpbmUub2JqICYmIGVuZE9mTGluZS5wb3MgPD0gcG9zKSB7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBwb3MgPSBvYmogPT0gZW9yLm1fb2JqID8gZW9yLnBvcyA6IFVJ
TlRfTUFYOworICAgICAgICAgICAgaWYgKG9iaiA9PSBlbmRPZkxpbmUubV9vYmogJiYgZW5kT2ZM
aW5lLnBvcyA8PSBwb3MpIHsKICAgICAgICAgICAgICAgICByZWFjaGVkRW5kT2ZMaW5lID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBwb3MgPSBlbmRPZkxpbmUucG9zOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAppbmRleCBjNWIwMDU3MjE2NDk1N2I1OWQ2OTgzMThmOGY2MGY0ODA3ZWQzODc3Li5kYzExZjI2
MDI4ZDk4NTA3ZTkwMGFhNTA3OWQ0ZjdiNzE2NWJkNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtODcsNyArODcsNyBA
QCBzdGF0aWMgdm9pZCBjaGVja01pZHBvaW50cyhMaW5lTWlkcG9pbnRTdGF0ZSYgbGluZU1pZHBv
aW50U3RhdGUsIElubGluZUl0ZXJhdG9yJgogICAgIC8vIENoZWNrIHRvIHNlZSBpZiBvdXIgbGFz
dCBtaWRwb2ludCBpcyBhIHN0YXJ0IHBvaW50IGJleW9uZCB0aGUgbGluZSBicmVhay4gIElmIHNv
LAogICAgIC8vIHNoYXZlIGl0IG9mZiB0aGUgbGlzdCwgYW5kIHNoYXZlIG9mZiBhIHRyYWlsaW5n
IHNwYWNlIGlmIHRoZSBwcmV2aW91cyBlbmQgcG9pbnQgZG9lc24ndAogICAgIC8vIHByZXNlcnZl
IHdoaXRlc3BhY2UuCi0gICAgaWYgKGxCcmVhay5vYmogJiYgbGluZU1pZHBvaW50U3RhdGUubnVt
TWlkcG9pbnRzICYmICEobGluZU1pZHBvaW50U3RhdGUubnVtTWlkcG9pbnRzICUgMikpIHsKKyAg
ICBpZiAobEJyZWFrLm1fb2JqICYmIGxpbmVNaWRwb2ludFN0YXRlLm51bU1pZHBvaW50cyAmJiAh
KGxpbmVNaWRwb2ludFN0YXRlLm51bU1pZHBvaW50cyAlIDIpKSB7CiAgICAgICAgIElubGluZUl0
ZXJhdG9yKiBtaWRwb2ludHMgPSBsaW5lTWlkcG9pbnRTdGF0ZS5taWRwb2ludHMuZGF0YSgpOwog
ICAgICAgICBJbmxpbmVJdGVyYXRvciYgZW5kcG9pbnQgPSBtaWRwb2ludHNbbGluZU1pZHBvaW50
U3RhdGUubnVtTWlkcG9pbnRzIC0gMl07CiAgICAgICAgIGNvbnN0IElubGluZUl0ZXJhdG9yJiBz
dGFydHBvaW50ID0gbWlkcG9pbnRzW2xpbmVNaWRwb2ludFN0YXRlLm51bU1pZHBvaW50cyAtIDFd
OwpAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMgdm9pZCBjaGVja01pZHBvaW50cyhMaW5lTWlkcG9p
bnRTdGF0ZSYgbGluZU1pZHBvaW50U3RhdGUsIElubGluZUl0ZXJhdG9yJgogICAgICAgICBpZiAo
Y3VycnBvaW50ID09IGxCcmVhaykgewogICAgICAgICAgICAgLy8gV2UgaGl0IHRoZSBsaW5lIGJy
ZWFrIGJlZm9yZSB0aGUgc3RhcnQgcG9pbnQuICBTaGF2ZSBvZmYgdGhlIHN0YXJ0IHBvaW50Lgog
ICAgICAgICAgICAgbGluZU1pZHBvaW50U3RhdGUubnVtTWlkcG9pbnRzLS07Ci0gICAgICAgICAg
ICBpZiAoZW5kcG9pbnQub2JqLT5zdHlsZSgpLT5jb2xsYXBzZVdoaXRlU3BhY2UoKSkKKyAgICAg
ICAgICAgIGlmIChlbmRwb2ludC5tX29iai0+c3R5bGUoKS0+Y29sbGFwc2VXaGl0ZVNwYWNlKCkp
CiAgICAgICAgICAgICAgICAgZW5kcG9pbnQucG9zLS07CiAgICAgICAgIH0KICAgICB9ICAgIApA
QCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFwcGVuZFJ1bnNGb3JPYmplY3Qo
aW50IHN0YXJ0LCBpbnQgZW5kLCBSZW5kZXJPYmplY3QqIG9iaiwgSW5sCiAgICAgaWYgKGhhdmVO
ZXh0TWlkcG9pbnQpCiAgICAgICAgIG5leHRNaWRwb2ludCA9IGxpbmVNaWRwb2ludFN0YXRlLm1p
ZHBvaW50c1tsaW5lTWlkcG9pbnRTdGF0ZS5jdXJyZW50TWlkcG9pbnRdOwogICAgIGlmIChsaW5l
TWlkcG9pbnRTdGF0ZS5iZXR3ZWVuTWlkcG9pbnRzKSB7Ci0gICAgICAgIGlmICghKGhhdmVOZXh0
TWlkcG9pbnQgJiYgbmV4dE1pZHBvaW50Lm9iaiA9PSBvYmopKQorICAgICAgICBpZiAoIShoYXZl
TmV4dE1pZHBvaW50ICYmIG5leHRNaWRwb2ludC5tX29iaiA9PSBvYmopKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAvLyBUaGlzIGlzIGEgbmV3IHN0YXJ0IHBvaW50LiBTdG9wIGlnbm9y
aW5nIG9iamVjdHMgYW5kIAogICAgICAgICAvLyBhZGp1c3Qgb3VyIHN0YXJ0LgpAQCAtMTM0LDcg
KzEzNCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFwcGVuZFJ1bnNGb3JPYmplY3QoaW50IHN0YXJ0
LCBpbnQgZW5kLCBSZW5kZXJPYmplY3QqIG9iaiwgSW5sCiAgICAgICAgIGlmIChzdGFydCA8IGVu
ZCkKICAgICAgICAgICAgIHJldHVybiBhcHBlbmRSdW5zRm9yT2JqZWN0KHN0YXJ0LCBlbmQsIG9i
aiwgcmVzb2x2ZXIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghaGF2ZU5leHRNaWRwb2lu
dCB8fCAob2JqICE9IG5leHRNaWRwb2ludC5vYmopKSB7CisgICAgICAgIGlmICghaGF2ZU5leHRN
aWRwb2ludCB8fCAob2JqICE9IG5leHRNaWRwb2ludC5tX29iaikpIHsKICAgICAgICAgICAgIHJl
c29sdmVyLmFkZFJ1bihuZXcgKG9iai0+cmVuZGVyQXJlbmEoKSkgQmlkaVJ1bihzdGFydCwgZW5k
LCBvYmosIHJlc29sdmVyLmNvbnRleHQoKSwgcmVzb2x2ZXIuZGlyKCkpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dElubGluZUNoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50JiByZXBhaW50
TG9naWNhCiAKICAgICAgICAgICAgIGlmIChpc0xpbmVFbXB0eSkgewogICAgICAgICAgICAgICAg
IGlmIChsYXN0Um9vdEJveCgpKQotICAgICAgICAgICAgICAgICAgICBsYXN0Um9vdEJveCgpLT5z
ZXRMaW5lQnJlYWtJbmZvKGVuZC5vYmosIGVuZC5wb3MsIHJlc29sdmVyLnN0YXR1cygpKTsKKyAg
ICAgICAgICAgICAgICAgICAgbGFzdFJvb3RCb3goKS0+c2V0TGluZUJyZWFrSW5mbyhlbmQubV9v
YmosIGVuZC5wb3MsIHJlc29sdmVyLnN0YXR1cygpKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgVmlzdWFsRGlyZWN0aW9uT3ZlcnJpZGUgb3ZlcnJpZGUgPSAoc3R5bGUo
KS0+dmlzdWFsbHlPcmRlcmVkKCkgPyAoc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gVmlz
dWFsTGVmdFRvUmlnaHRPdmVycmlkZSA6IFZpc3VhbFJpZ2h0VG9MZWZ0T3ZlcnJpZGUpIDogTm9W
aXN1YWxPdmVycmlkZSk7CiAgICAgICAgICAgICAgICAgcmVzb2x2ZXIuY3JlYXRlQmlkaVJ1bnNG
b3JMaW5lKGVuZCwgb3ZlcnJpZGUsIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSk7CkBAIC04MzIs
NyArODMyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBpbnQmIHJlcGFpbnRMb2dpY2EKICAgICAgICAgICAgICAgICBpZiAo
cmVzb2x2ZXIucnVuQ291bnQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoaHlwaGVuYXRl
ZCkKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVyLmxvZ2ljYWxseUxhc3RSdW4oKS0+
bV9oYXNIeXBoZW4gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBsaW5lQm94ID0gY29uc3Ry
dWN0TGluZShyZXNvbHZlci5ydW5Db3VudCgpLCByZXNvbHZlci5maXJzdFJ1bigpLCByZXNvbHZl
ci5sYXN0UnVuKCksIGZpcnN0TGluZSwgIWVuZC5vYmosIGVuZC5vYmogJiYgIWVuZC5wb3MgPyBl
bmQub2JqIDogMCk7CisgICAgICAgICAgICAgICAgICAgIGxpbmVCb3ggPSBjb25zdHJ1Y3RMaW5l
KHJlc29sdmVyLnJ1bkNvdW50KCksIHJlc29sdmVyLmZpcnN0UnVuKCksIHJlc29sdmVyLmxhc3RS
dW4oKSwgZmlyc3RMaW5lLCAhZW5kLm1fb2JqLCBlbmQubV9vYmogJiYgIWVuZC5wb3MgPyBlbmQu
bV9vYmogOiAwKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVCb3gpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGxpbmVCb3gtPnNldEVuZHNXaXRoQnJlYWsocHJldmlvdXNMaW5lQnJv
a2VDbGVhbmx5KTsKIApAQCAtODc3LDcgKzg3Nyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dElubGluZUNoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50JiByZXBhaW50TG9naWNh
CiAgICAgICAgICAgICAgICAgcmVzb2x2ZXIuZGVsZXRlUnVucygpOwogCiAgICAgICAgICAgICAg
ICAgaWYgKGxpbmVCb3gpIHsKLSAgICAgICAgICAgICAgICAgICAgbGluZUJveC0+c2V0TGluZUJy
ZWFrSW5mbyhlbmQub2JqLCBlbmQucG9zLCByZXNvbHZlci5zdGF0dXMoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGxpbmVCb3gtPnNldExpbmVCcmVha0luZm8oZW5kLm1fb2JqLCBlbmQucG9zLCBy
ZXNvbHZlci5zdGF0dXMoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VSZXBhaW50Qm91
bmRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50TG9naWNhbFRvcCA9IG1pbihy
ZXBhaW50TG9naWNhbFRvcCwgYmVmb3JlU2lkZVZpc3VhbE92ZXJmbG93Rm9yTGluZShsaW5lQm94
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50TG9naWNhbEJvdHRvbSA9IG1heChy
ZXBhaW50TG9naWNhbEJvdHRvbSwgYWZ0ZXJTaWRlVmlzdWFsT3ZlcmZsb3dGb3JMaW5lKGxpbmVC
b3gpKTsKQEAgLTEyNjgsNyArMTI2OCw3IEBAIGJvb2wgUmVuZGVyQmxvY2s6Om1hdGNoZWRFbmRM
aW5lKGNvbnN0IElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGNvbnN0IElubGluCiAgICAg
c3RhdGljIGludCBudW1MaW5lcyA9IDg7IC8vIFRoZSAjIG9mIGxpbmVzIHdlJ3JlIHdpbGxpbmcg
dG8gbWF0Y2ggYWdhaW5zdC4KICAgICBSb290SW5saW5lQm94KiBsaW5lID0gZW5kTGluZTsKICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG51bUxpbmVzICYmIGxpbmU7IGkrKywgbGluZSA9IGxpbmUt
Pm5leHRSb290Qm94KCkpIHsKLSAgICAgICAgaWYgKGxpbmUtPmxpbmVCcmVha09iaigpID09IHJl
c29sdmVyLnBvc2l0aW9uKCkub2JqICYmIGxpbmUtPmxpbmVCcmVha1BvcygpID09IHJlc29sdmVy
LnBvc2l0aW9uKCkucG9zKSB7CisgICAgICAgIGlmIChsaW5lLT5saW5lQnJlYWtPYmooKSA9PSBy
ZXNvbHZlci5wb3NpdGlvbigpLm1fb2JqICYmIGxpbmUtPmxpbmVCcmVha1BvcygpID09IHJlc29s
dmVyLnBvc2l0aW9uKCkucG9zKSB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgbWF0Y2guCiAg
ICAgICAgICAgICBpZiAobGluZS0+bGluZUJyZWFrQmlkaVN0YXR1cygpICE9IHJlc29sdmVyLnN0
YXR1cygpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gLi4uYnV0IHRoZSBiaWRp
IHN0YXRlIGRvZXNuJ3QgbWF0Y2guCkBAIC0xMzE5LDcgKzEzMTksNyBAQCBib29sIFJlbmRlckJs
b2NrOjptYXRjaGVkRW5kTGluZShjb25zdCBJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBj
b25zdCBJbmxpbgogCiBzdGF0aWMgaW5saW5lIGJvb2wgc2tpcE5vbkJyZWFraW5nU3BhY2UoY29u
c3QgSW5saW5lSXRlcmF0b3ImIGl0LCBib29sIGlzTGluZUVtcHR5LCBib29sIHByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSkKIHsKLSAgICBpZiAoaXQub2JqLT5zdHlsZSgpLT5uYnNwTW9kZSgpICE9
IFNQQUNFIHx8IGl0LmN1cnJlbnQoKSAhPSBub0JyZWFrU3BhY2UpCisgICAgaWYgKGl0Lm1fb2Jq
LT5zdHlsZSgpLT5uYnNwTW9kZSgpICE9IFNQQUNFIHx8IGl0LmN1cnJlbnQoKSAhPSBub0JyZWFr
U3BhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGJh
ZC4gIEl0IG1ha2VzIG5ic3AgaW5jb25zaXN0ZW50IHdpdGggc3BhY2UgYW5kIHdvbid0IHdvcmsg
Y29ycmVjdGx5CkBAIC0xMzU4LDE3ICsxMzU4LDE3IEBAIHN0YXRpYyBib29sIGlubGluZUZsb3dS
ZXF1aXJlc0xpbmVCb3goUmVuZGVySW5saW5lKiBmbG93KQogCiBib29sIFJlbmRlckJsb2NrOjpy
ZXF1aXJlc0xpbmVCb3goY29uc3QgSW5saW5lSXRlcmF0b3ImIGl0LCBib29sIGlzTGluZUVtcHR5
LCBib29sIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSkKIHsKLSAgICBpZiAoaXQub2JqLT5pc0Zs
b2F0aW5nT3JQb3NpdGlvbmVkKCkpCisgICAgaWYgKGl0Lm1fb2JqLT5pc0Zsb2F0aW5nT3JQb3Np
dGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChpdC5vYmotPmlzUmVu
ZGVySW5saW5lKCkgJiYgIWlubGluZUZsb3dSZXF1aXJlc0xpbmVCb3godG9SZW5kZXJJbmxpbmUo
aXQub2JqKSkpCisgICAgaWYgKGl0Lm1fb2JqLT5pc1JlbmRlcklubGluZSgpICYmICFpbmxpbmVG
bG93UmVxdWlyZXNMaW5lQm94KHRvUmVuZGVySW5saW5lKGl0Lm1fb2JqKSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmICghc2hvdWxkQ29sbGFwc2VXaGl0ZVNwYWNlKGl0Lm9iai0+
c3R5bGUoKSwgaXNMaW5lRW1wdHksIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSkgfHwgaXQub2Jq
LT5pc0JSKCkpCisgICAgaWYgKCFzaG91bGRDb2xsYXBzZVdoaXRlU3BhY2UoaXQubV9vYmotPnN0
eWxlKCksIGlzTGluZUVtcHR5LCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkpIHx8IGl0Lm1fb2Jq
LT5pc0JSKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgVUNoYXIgY3VycmVudCA9IGl0
LmN1cnJlbnQoKTsKLSAgICByZXR1cm4gY3VycmVudCAhPSAnICcgJiYgY3VycmVudCAhPSAnXHQn
ICYmIGN1cnJlbnQgIT0gc29mdEh5cGhlbiAmJiAoY3VycmVudCAhPSAnXG4nIHx8IHNob3VsZFBy
ZXNlcnZlTmV3bGluZShpdC5vYmopKSAKKyAgICByZXR1cm4gY3VycmVudCAhPSAnICcgJiYgY3Vy
cmVudCAhPSAnXHQnICYmIGN1cnJlbnQgIT0gc29mdEh5cGhlbiAmJiAoY3VycmVudCAhPSAnXG4n
IHx8IHNob3VsZFByZXNlcnZlTmV3bGluZShpdC5tX29iaikpIAogICAgICAgICAgICAgJiYgIXNr
aXBOb25CcmVha2luZ1NwYWNlKGl0LCBpc0xpbmVFbXB0eSwgcHJldmlvdXNMaW5lQnJva2VDbGVh
bmx5KTsKIH0KIApAQCAtMTM5Miw3ICsxMzkyLDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6Z2VuZXJh
dGVzTGluZUJveGVzRm9ySW5saW5lQ2hpbGQoUmVuZGVyT2JqZWN0KiBpbmxpbmVPYmosIGJvb2wK
IHZvaWQgUmVuZGVyQmxvY2s6OnNraXBUcmFpbGluZ1doaXRlc3BhY2UoSW5saW5lSXRlcmF0b3Im
IGl0ZXJhdG9yLCBib29sIGlzTGluZUVtcHR5LCBib29sIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5s
eSkKIHsKICAgICB3aGlsZSAoIWl0ZXJhdG9yLmF0RW5kKCkgJiYgIXJlcXVpcmVzTGluZUJveChp
dGVyYXRvciwgaXNMaW5lRW1wdHksIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSkpIHsKLSAgICAg
ICAgUmVuZGVyT2JqZWN0KiBvYmplY3QgPSBpdGVyYXRvci5vYmo7CisgICAgICAgIFJlbmRlck9i
amVjdCogb2JqZWN0ID0gaXRlcmF0b3IubV9vYmo7CiAgICAgICAgIGlmIChvYmplY3QtPmlzRmxv
YXRpbmcoKSkgewogICAgICAgICAgICAgaW5zZXJ0RmxvYXRpbmdPYmplY3QodG9SZW5kZXJCb3go
b2JqZWN0KSk7CiAgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSkKQEAg
LTE0MDUsNyArMTQwNSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnNraXBMZWFkaW5nV2hpdGVzcGFj
ZShJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVBy
ZXZpb3VzTGluZSwgaW50JiBsaW5lTGVmdE9mZnNldCwgaW50JiBsaW5lUmlnaHRPZmZzZXQpCiB7
CiAgICAgd2hpbGUgKCFyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkgJiYgIXJlcXVpcmVzTGlu
ZUJveChyZXNvbHZlci5wb3NpdGlvbigpLCBpc0xpbmVFbXB0eSwgcHJldmlvdXNMaW5lQnJva2VD
bGVhbmx5KSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9IHJlc29sdmVyLnBvc2l0
aW9uKCkub2JqOworICAgICAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9IHJlc29sdmVyLnBvc2l0
aW9uKCkubV9vYmo7CiAgICAgICAgIGlmIChvYmplY3QtPmlzRmxvYXRpbmcoKSkKICAgICAgICAg
ICAgIHBvc2l0aW9uTmV3RmxvYXRPbkxpbmUoaW5zZXJ0RmxvYXRpbmdPYmplY3QodG9SZW5kZXJC
b3gob2JqZWN0KSksIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGZpcnN0TGluZSwgbGluZUxl
ZnRPZmZzZXQsIGxpbmVSaWdodE9mZnNldCk7CiAgICAgICAgIGVsc2UgaWYgKG9iamVjdC0+aXNQ
b3NpdGlvbmVkKCkpCkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBzdGF0aWMgdm9pZCB0cnlIeXBoZW5h
dGluZyhSZW5kZXJUZXh0KiB0ZXh0LCBjb25zdCBGb250JiBmb250LCBjb25zdCBBdG9taWNTdHJp
bgogICAgIFVOVVNFRF9QQVJBTShpc0ZpeGVkUGl0Y2gpOwogI2VuZGlmCiAKLSAgICBsaW5lQnJl
YWsub2JqID0gdGV4dDsKKyAgICBsaW5lQnJlYWsubV9vYmogPSB0ZXh0OwogICAgIGxpbmVCcmVh
ay5wb3MgPSBsYXN0U3BhY2UgKyBwcmVmaXhMZW5ndGg7CiAgICAgbGluZUJyZWFrLm5leHRCcmVh
a2FibGVQb3NpdGlvbiA9IG5leHRCcmVha2FibGU7CiAgICAgaHlwaGVuYXRlZCA9IHRydWU7CkBA
IC0xNTQ2LDcgKzE1NDYsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRM
aW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9vbAogCiAgICAgSW5saW5l
SXRlcmF0b3IgbEJyZWFrID0gcmVzb2x2ZXIucG9zaXRpb24oKTsKIAotICAgIFJlbmRlck9iamVj
dCogbyA9IHJlc29sdmVyLnBvc2l0aW9uKCkub2JqOworICAgIFJlbmRlck9iamVjdCogbyA9IHJl
c29sdmVyLnBvc2l0aW9uKCkubV9vYmo7CiAgICAgUmVuZGVyT2JqZWN0KiBsYXN0ID0gbzsKICAg
ICB1bnNpZ25lZCBwb3MgPSByZXNvbHZlci5wb3NpdGlvbigpLnBvczsKICAgICBpbnQgbmV4dEJy
ZWFrYWJsZSA9IHJlc29sdmVyLnBvc2l0aW9uKCkubmV4dEJyZWFrYWJsZVBvc2l0aW9uOwpAQCAt
MTU4NCw3ICsxNTg0LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGlu
ZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgIAog
ICAgICAgICBpZiAoby0+aXNCUigpKSB7CiAgICAgICAgICAgICBpZiAodyArIHRtcFcgPD0gd2lk
dGgpIHsKLSAgICAgICAgICAgICAgICBsQnJlYWsub2JqID0gbzsKKyAgICAgICAgICAgICAgICBs
QnJlYWsubV9vYmogPSBvOwogICAgICAgICAgICAgICAgIGxCcmVhay5wb3MgPSAwOwogICAgICAg
ICAgICAgICAgIGxCcmVhay5uZXh0QnJlYWthYmxlUG9zaXRpb24gPSAtMTsKICAgICAgICAgICAg
ICAgICBsQnJlYWsuaW5jcmVtZW50KCk7CkBAIC0xNjE2LDcgKzE2MTYsNyBAQCBJbmxpbmVJdGVy
YXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiBy
ZXNvbHZlciwgYm9vbAogICAgICAgICAgICAgICAgIGlmIChmbG9hdHNGaXRPbkxpbmUgJiYgbG9n
aWNhbFdpZHRoRm9yRmxvYXQoZikgKyB3ICsgdG1wVyA8PSB3aWR0aCkgewogICAgICAgICAgICAg
ICAgICAgICBwb3NpdGlvbk5ld0Zsb2F0T25MaW5lKGYsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUsIGZpcnN0TGluZSwgbGluZUxlZnRPZmZzZXQsIGxpbmVSaWdodE9mZnNldCk7CiAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoID0gbWF4KDAsIGxpbmVSaWdodE9mZnNldCAtIGxpbmVMZWZ0T2Zm
c2V0KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxCcmVhay5vYmogPT0gbykgeworICAgICAg
ICAgICAgICAgICAgICBpZiAobEJyZWFrLm1fb2JqID09IG8pIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVCghbEJyZWFrLnBvcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBsQnJl
YWsuaW5jcmVtZW50KCk7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE2MzksNyArMTYzOSw3
IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVC
aWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAgICAgICAgICAgLy8gdGhlbiBzdGFy
dCBpZ25vcmluZyBzcGFjZXMgYWdhaW4uCiAgICAgICAgICAgICAgICAgaWYgKGlzSW5saW5lVHlw
ZSB8fCBvLT5jb250YWluZXIoKS0+aXNSZW5kZXJJbmxpbmUoKSkgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoaWdub3JpbmdTcGFjZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9y
ZVN0YXJ0Lm9iaiA9IG87CisgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVTdGFydC5tX29i
aiA9IG87CiAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVTdGFydC5wb3MgPSAwOwogICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkTWlkcG9pbnQobGluZU1pZHBvaW50U3RhdGUsIGlnbm9y
ZVN0YXJ0KTsgLy8gU3RvcCBpZ25vcmluZyBzcGFjZXMuCiAgICAgICAgICAgICAgICAgICAgICAg
ICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgaWdub3JlU3RhcnQpOyAvLyBTdGFydCBp
Z25vcmluZyBhZ2Fpbi4KQEAgLTE2NjYsNyArMTY2Niw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRl
ckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBi
b29sCiAgICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nUG9zaXRpb25lZEJveGVzLmNsZWFyKCk7
CiAgICAgICAgICAgICAgICAgICAgIGFkZE1pZHBvaW50KGxpbmVNaWRwb2ludFN0YXRlLCBJbmxp
bmVJdGVyYXRvcigwLCBvLCAwKSk7IC8vIFN0b3AgaWdub3Jpbmcgc3BhY2VzLgogICAgICAgICAg
ICAgICAgICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgSW5saW5lSXRlcmF0b3Io
MCwgbywgMCkpOyAvLyBTdGFydCBpZ25vcmluZyBhZ2Fpbi4KLSAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKHN0eWxlKCktPmNvbGxhcHNlV2hpdGVTcGFjZSgpICYmIHJlc29sdmVyLnBvc2l0aW9u
KCkub2JqID09IG8KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxlKCktPmNvbGxhcHNl
V2hpdGVTcGFjZSgpICYmIHJlc29sdmVyLnBvc2l0aW9uKCkubV9vYmogPT0gbwogICAgICAgICAg
ICAgICAgICAgICAmJiBzaG91bGRTa2lwV2hpdGVzcGFjZUFmdGVyU3RhcnRPYmplY3QodGhpcywg
bywgbGluZU1pZHBvaW50U3RhdGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIExpa2Ugd2l0
aCBsaXN0IG1hcmtlcnMsIHdlIHN0YXJ0IGlnbm9yaW5nIHNwYWNlcyB0byBtYWtlIHN1cmUgdGhh
dCBhbnkgCiAgICAgICAgICAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwgc3BhY2VzIHdlIHNlZSB3
aWxsIGJlIGRpc2NhcmRlZC4KQEAgLTE2ODUsNyArMTY4NSw3IEBAIElubGluZUl0ZXJhdG9yIFJl
bmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVy
LCBib29sCiAgICAgICAgICAgICBpZiAoKGF1dG9XcmFwIHx8IFJlbmRlclN0eWxlOjphdXRvV3Jh
cChsYXN0V1MpKSAmJiAoIW8tPmlzSW1hZ2UoKSB8fCBhbGxvd0ltYWdlc1RvQnJlYWspKSB7CiAg
ICAgICAgICAgICAgICAgdyArPSB0bXBXOwogICAgICAgICAgICAgICAgIHRtcFcgPSAwOwotICAg
ICAgICAgICAgICAgIGxCcmVhay5vYmogPSBvOworICAgICAgICAgICAgICAgIGxCcmVhay5tX29i
aiA9IG87CiAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9IDA7CiAgICAgICAgICAgICAgICAg
bEJyZWFrLm5leHRCcmVha2FibGVQb3NpdGlvbiA9IC0xOwogICAgICAgICAgICAgfQpAQCAtMTc1
OCw3ICsxNzU4LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJy
ZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgIGlmICh0
LT5pc1dvcmRCcmVhaygpKSB7CiAgICAgICAgICAgICAgICAgdyArPSB0bXBXOwogICAgICAgICAg
ICAgICAgIHRtcFcgPSAwOwotICAgICAgICAgICAgICAgIGxCcmVhay5vYmogPSBvOworICAgICAg
ICAgICAgICAgIGxCcmVhay5tX29iaiA9IG87CiAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9
IDA7CiAgICAgICAgICAgICAgICAgbEJyZWFrLm5leHRCcmVha2FibGVQb3NpdGlvbiA9IC0xOwog
ICAgICAgICAgICAgICAgIEFTU0VSVCghbGVuKTsKQEAgLTE4NTYsNyArMTg1Niw3IEBAIElubGlu
ZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2
ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkaXRp
b25hbCB3aGl0ZXNwYWNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ICsgdG1w
VyArIGNoYXJXaWR0aCA+IHdpZHRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxpbmVXYXNUb29XaWRlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bEJyZWFrLm9iaiA9IG87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5t
X29iaiA9IG87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5wb3MgPSBw
b3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5uZXh0QnJlYWthYmxl
UG9zaXRpb24gPSBuZXh0QnJlYWthYmxlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBza2lwVHJhaWxpbmdXaGl0ZXNwYWNlKGxCcmVhaywgaXNMaW5lRW1wdHksIHByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSk7CkBAIC0xODY4LDcgKzE4NjgsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5k
ZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwg
Ym9vbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHlwaGVuYXRlZCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobEJyZWFr
Lm9iaiAmJiBzaG91bGRQcmVzZXJ2ZU5ld2xpbmUobEJyZWFrLm9iaikgJiYgbEJyZWFrLm9iai0+
aXNUZXh0KCkgJiYgdG9SZW5kZXJUZXh0KGxCcmVhay5vYmopLT50ZXh0TGVuZ3RoKCkgJiYgIXRv
UmVuZGVyVGV4dChsQnJlYWsub2JqKS0+aXNXb3JkQnJlYWsoKSAmJiB0b1JlbmRlclRleHQobEJy
ZWFrLm9iaiktPmNoYXJhY3RlcnMoKVtsQnJlYWsucG9zXSA9PSAnXG4nKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGxCcmVhay5tX29iaiAmJiBzaG91bGRQcmVzZXJ2ZU5ld2xp
bmUobEJyZWFrLm1fb2JqKSAmJiBsQnJlYWsubV9vYmotPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4
dChsQnJlYWsubV9vYmopLT50ZXh0TGVuZ3RoKCkgJiYgIXRvUmVuZGVyVGV4dChsQnJlYWsubV9v
YmopLT5pc1dvcmRCcmVhaygpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsubV9vYmopLT5jaGFyYWN0
ZXJzKClbbEJyZWFrLnBvc10gPT0gJ1xuJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoIXN0b3BwZWRJZ25vcmluZ1NwYWNlcyAmJiBwb3MgPiAwKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHN0b3AgcmlnaHQgYmVmb3Jl
IHRoZSBuZXdsaW5lIGFuZCB0aGVuIHN0YXJ0IHVwIGFnYWluLgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRkTWlkcG9pbnQobGluZU1pZHBvaW50U3RhdGUsIElubGluZUl0
ZXJhdG9yKDAsIG8sIHBvcyAtIDEpKTsgLy8gU3RvcApAQCAtMTg3Nyw3ICsxODc3LDcgQEAgSW5s
aW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNv
bHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbEJy
ZWFrLmluY3JlbWVudCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91
c0xpbmVCcm9rZUNsZWFubHkgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobEJyZWFrLm9iaiAmJiBsQnJlYWsucG9z
ICYmIGxCcmVhay5vYmotPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+dGV4
dExlbmd0aCgpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+Y2hhcmFjdGVycygpW2xCcmVh
ay5wb3MgLSAxXSA9PSBzb2Z0SHlwaGVuICYmIHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05v
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxCcmVhay5tX29iaiAmJiBsQnJl
YWsucG9zICYmIGxCcmVhay5tX29iai0+aXNUZXh0KCkgJiYgdG9SZW5kZXJUZXh0KGxCcmVhay5t
X29iaiktPnRleHRMZW5ndGgoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm1fb2JqKS0+Y2hhcmFj
dGVycygpW2xCcmVhay5wb3MgLSAxXSA9PSBzb2Z0SHlwaGVuICYmIHN0eWxlLT5oeXBoZW5zKCkg
IT0gSHlwaGVuc05vbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh5cGhlbmF0
ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZW5kOyAvLyBEaWRu
J3QgZml0LiBKdW1wIHRvIHRoZSBlbmQuCiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewpAQCAtMTg5Nyw3ICsxODk3LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmRO
ZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgSW5saW5l
SXRlcmF0b3IoMCwgbywgcG9zIC0gMSkpOyAvLyBTdG9wCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRkTWlkcG9pbnQobGluZU1pZHBvaW50U3RhdGUsIElubGluZUl0ZXJhdG9yKDAsIG8s
IHBvcykpOyAvLyBTdGFydAogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgbEJyZWFrLm9iaiA9IG87CisgICAgICAgICAgICAgICAgICAgICAgICBsQnJl
YWsubV9vYmogPSBvOwogICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9IHBvczsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5uZXh0QnJlYWthYmxlUG9zaXRpb24gPSBu
ZXh0QnJlYWthYmxlOwogICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLmluY3JlbWVudCgp
OwpAQCAtMTkwOSw3ICsxOTA5LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmRO
ZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAg
ICAgICAgICAgICAgICAgIHcgKz0gdG1wVzsKICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBX
ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcFcgPSAwOwotICAgICAgICAgICAgICAg
ICAgICAgICAgbEJyZWFrLm9iaiA9IG87CisgICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsu
bV9vYmogPSBvOwogICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9IHBvczsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5uZXh0QnJlYWthYmxlUG9zaXRpb24gPSBuZXh0
QnJlYWthYmxlOwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXV0by13cmFwcGluZyB0ZXh0
IHNob3VsZCBub3Qgd3JhcCBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZCBvbmNlIGl0IGhhcyBoYWQg
YW4KQEAgLTE5MjAsNyArMTkyMCw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5k
TmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAg
ICAgICAgICAgICAgIGlmIChtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFJlbWVtYmVyIHRoaXMgYXMgYSBicmVha2FibGUgcG9zaXRpb24gaW4gY2FzZQogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYWRkaW5nIHRoZSBlbmQgd2lkdGggZm9yY2VzIGEgYnJlYWsu
Ci0gICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsub2JqID0gbzsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxCcmVhay5tX29iaiA9IG87CiAgICAgICAgICAgICAgICAgICAgICAgICBsQnJl
YWsucG9zID0gcG9zOwogICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLm5leHRCcmVha2Fi
bGVQb3NpdGlvbiA9IG5leHRCcmVha2FibGU7CiAgICAgICAgICAgICAgICAgICAgICAgICBtaWRX
b3JkQnJlYWsgJj0gKGJyZWFrV29yZHMgfHwgYnJlYWtBbGwpOwpAQCAtMTk1NCwxMyArMTk1NCwx
MyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5l
QmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9vbAogICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVySXNTcGFjZSAmJiAhcHJldmlvdXNDaGFyYWN0
ZXJJc1NwYWNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlnbm9yZVN0YXJ0Lm9iaiA9IG87Cisg
ICAgICAgICAgICAgICAgICAgIGlnbm9yZVN0YXJ0Lm1fb2JqID0gbzsKICAgICAgICAgICAgICAg
ICAgICAgaWdub3JlU3RhcnQucG9zID0gcG9zOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgIGlmICghY3VycmVudENoYXJhY3RlcklzV1MgJiYgcHJldmlvdXNDaGFyYWN0ZXJJ
c1dTKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvV3JhcCAmJiBvLT5zdHlsZSgpLT5i
cmVha09ubHlBZnRlcldoaXRlU3BhY2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbEJy
ZWFrLm9iaiA9IG87CisgICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsubV9vYmogPSBvOwog
ICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9IHBvczsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGxCcmVhay5uZXh0QnJlYWthYmxlUG9zaXRpb24gPSBuZXh0QnJlYWthYmxlOwog
ICAgICAgICAgICAgICAgICAgICB9CkBAIC0xOTg3LDcgKzE5ODcsNyBAQCBJbmxpbmVJdGVyYXRv
ciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNv
bHZlciwgYm9vbAogICAgICAgICAgICAgICAgIGlmIChjYW5IeXBoZW5hdGUpCiAgICAgICAgICAg
ICAgICAgICAgIHRyeUh5cGhlbmF0aW5nKHQsIGYsIHN0eWxlLT5sb2NhbGUoKSwgc3R5bGUtPmh5
cGhlbmF0aW9uTGltaXRCZWZvcmUoKSwgc3R5bGUtPmh5cGhlbmF0aW9uTGltaXRBZnRlcigpLCBs
YXN0U3BhY2UsIHBvcywgdyArIHRtcFcgLSBhZGRpdGlvbmFsVG1wVywgd2lkdGgsIGlzRml4ZWRQ
aXRjaCwgY29sbGFwc2VXaGl0ZVNwYWNlLCBsYXN0U3BhY2VXb3JkU3BhY2luZywgbEJyZWFrLCBu
ZXh0QnJlYWthYmxlLCBoeXBoZW5hdGVkKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBpZiAoIWh5cGhlbmF0ZWQgJiYgbEJyZWFrLm9iaiAmJiBsQnJlYWsucG9zICYmIGxCcmVh
ay5vYmotPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+dGV4dExlbmd0aCgp
ICYmIHRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+Y2hhcmFjdGVycygpW2xCcmVhay5wb3MgLSAx
XSA9PSBzb2Z0SHlwaGVuICYmIHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05vbmUpCisgICAg
ICAgICAgICAgICAgaWYgKCFoeXBoZW5hdGVkICYmIGxCcmVhay5tX29iaiAmJiBsQnJlYWsucG9z
ICYmIGxCcmVhay5tX29iai0+aXNUZXh0KCkgJiYgdG9SZW5kZXJUZXh0KGxCcmVhay5tX29iaikt
PnRleHRMZW5ndGgoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm1fb2JqKS0+Y2hhcmFjdGVycygp
W2xCcmVhay5wb3MgLSAxXSA9PSBzb2Z0SHlwaGVuICYmIHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlw
aGVuc05vbmUpCiAgICAgICAgICAgICAgICAgICAgIGh5cGhlbmF0ZWQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChoeXBoZW5hdGVkKQpAQCAtMTk5OCw3ICsx
OTk4LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElu
bGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKIAogICAgICAgICBSZW5kZXJPYmplY3Qq
IG5leHQgPSBiaWRpTmV4dCh0aGlzLCBvKTsKICAgICAgICAgYm9vbCBjaGVja0ZvckJyZWFrID0g
YXV0b1dyYXA7Ci0gICAgICAgIGlmICh3ICYmIHcgKyB0bXBXID4gd2lkdGggJiYgbEJyZWFrLm9i
aiAmJiBjdXJyV1MgPT0gTk9XUkFQKQorICAgICAgICBpZiAodyAmJiB3ICsgdG1wVyA+IHdpZHRo
ICYmIGxCcmVhay5tX29iaiAmJiBjdXJyV1MgPT0gTk9XUkFQKQogICAgICAgICAgICAgY2hlY2tG
b3JCcmVhayA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKG5leHQgJiYgby0+aXNUZXh0KCkgJiYg
bmV4dC0+aXNUZXh0KCkgJiYgIW5leHQtPmlzQlIoKSkgewogICAgICAgICAgICAgaWYgKGF1dG9X
cmFwIHx8IChuZXh0LT5zdHlsZSgpLT5hdXRvV3JhcCgpKSkgewpAQCAtMjAyNSw3ICsyMDI1LDcg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJp
ZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgICAgICAgICAgaWYgKGNhblBs
YWNlT25MaW5lICYmIGNoZWNrRm9yQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHcg
Kz0gdG1wVzsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcFcgPSAwOwotICAgICAgICAgICAg
ICAgICAgICAgICAgbEJyZWFrLm9iaiA9IG5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBs
QnJlYWsubV9vYmogPSBuZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9
IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsubmV4dEJyZWFrYWJsZVBvc2l0aW9u
ID0gLTE7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIwNTcsNyArMjA1Nyw3IEBAIElubGlu
ZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2
ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAgICAgICBpZiAobGFzdC0+aXNSZXBsYWNlZCgpICYm
IGF1dG9XcmFwICYmICghbGFzdC0+aXNJbWFnZSgpIHx8IGFsbG93SW1hZ2VzVG9CcmVhaykgJiYg
KCFsYXN0LT5pc0xpc3RNYXJrZXIoKSB8fCB0b1JlbmRlckxpc3RNYXJrZXIobGFzdCktPmlzSW5z
aWRlKCkpKSB7CiAgICAgICAgICAgICAgICAgdyArPSB0bXBXOwogICAgICAgICAgICAgICAgIHRt
cFcgPSAwOwotICAgICAgICAgICAgICAgIGxCcmVhay5vYmogPSBuZXh0OworICAgICAgICAgICAg
ICAgIGxCcmVhay5tX29iaiA9IG5leHQ7CiAgICAgICAgICAgICAgICAgbEJyZWFrLnBvcyA9IDA7
CiAgICAgICAgICAgICAgICAgbEJyZWFrLm5leHRCcmVha2FibGVQb3NpdGlvbiA9IC0xOwogICAg
ICAgICAgICAgfQpAQCAtMjA3NywyOSArMjA3NywyOSBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJC
bG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9v
bAogCiAgICAgCiAgICAgaWYgKHcgKyB0bXBXIDw9IHdpZHRoIHx8IGxhc3RXUyA9PSBOT1dSQVAp
IHsKLSAgICAgICAgbEJyZWFrLm9iaiA9IDA7CisgICAgICAgIGxCcmVhay5tX29iaiA9IDA7CiAg
ICAgICAgIGxCcmVhay5wb3MgPSAwOwogICAgICAgICBsQnJlYWsubmV4dEJyZWFrYWJsZVBvc2l0
aW9uID0gLTE7CiAgICAgfQogCiAgZW5kOgotICAgIGlmIChsQnJlYWsgPT0gcmVzb2x2ZXIucG9z
aXRpb24oKSAmJiAoIWxCcmVhay5vYmogfHwgIWxCcmVhay5vYmotPmlzQlIoKSkpIHsKKyAgICBp
ZiAobEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9uKCkgJiYgKCFsQnJlYWsubV9vYmogfHwgIWxC
cmVhay5tX29iai0+aXNCUigpKSkgewogICAgICAgICAvLyB3ZSBqdXN0IGFkZCBhcyBtdWNoIGFz
IHBvc3NpYmxlCiAgICAgICAgIGlmIChzdHlsZSgpLT53aGl0ZVNwYWNlKCkgPT0gUFJFKSB7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogRG9uJ3QgcmVhbGx5IHVuZGVyc3RhbmQgdGhpcyBjYXNlLgog
ICAgICAgICAgICAgaWYgKHBvcyAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbEJyZWFrLm9iaiA9
IG87CisgICAgICAgICAgICAgICAgbEJyZWFrLm1fb2JqID0gbzsKICAgICAgICAgICAgICAgICBs
QnJlYWsucG9zID0gcG9zIC0gMTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgbEJyZWFrLm9iaiA9IGxhc3Q7CisgICAgICAgICAgICAgICAgbEJyZWFrLm1fb2JqID0gbGFz
dDsKICAgICAgICAgICAgICAgICBsQnJlYWsucG9zID0gbGFzdC0+aXNUZXh0KCkgPyBsYXN0LT5s
ZW5ndGgoKSA6IDA7CiAgICAgICAgICAgICAgICAgbEJyZWFrLm5leHRCcmVha2FibGVQb3NpdGlv
biA9IC0xOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGxCcmVhay5vYmopIHsK
KyAgICAgICAgfSBlbHNlIGlmIChsQnJlYWsubV9vYmopIHsKICAgICAgICAgICAgIC8vIERvbid0
IGV2ZXIgYnJlYWsgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQgaWYgd2UgY2FuIGhlbHAgaXQuCiAg
ICAgICAgICAgICAvLyBUaGVyZSdzIG5vIHJvb20gYXQgYWxsLiBXZSBqdXN0IGhhdmUgdG8gYmUg
b24gdGhpcyBsaW5lLAogICAgICAgICAgICAgLy8gZXZlbiB0aG91Z2ggd2UnbGwgc3BpbGwgb3V0
LgotICAgICAgICAgICAgbEJyZWFrLm9iaiA9IG87CisgICAgICAgICAgICBsQnJlYWsubV9vYmog
PSBvOwogICAgICAgICAgICAgbEJyZWFrLnBvcyA9IHBvczsKICAgICAgICAgICAgIGxCcmVhay5u
ZXh0QnJlYWthYmxlUG9zaXRpb24gPSAtMTsKICAgICAgICAgfQpAQCAtMjExOSw3ICsyMTE5LDcg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJp
ZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgaWYgKGxpbmVNaWRwb2ludFN0YXRl
Lm51bU1pZHBvaW50cyAlIDIpIHsKICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHRyYWlsaW5nIHNw
YWNlIG9iamVjdCdzIG1pZHBvaW50LgogICAgICAgICAgICAgaW50IHRyYWlsaW5nU3BhY2VNaWRw
b2ludCA9IGxpbmVNaWRwb2ludFN0YXRlLm51bU1pZHBvaW50cyAtIDE7Ci0gICAgICAgICAgICBm
b3IgKCA7IHRyYWlsaW5nU3BhY2VNaWRwb2ludCA+PSAwICYmIGxpbmVNaWRwb2ludFN0YXRlLm1p
ZHBvaW50c1t0cmFpbGluZ1NwYWNlTWlkcG9pbnRdLm9iaiAhPSB0cmFpbGluZ1NwYWNlT2JqZWN0
OyAtLXRyYWlsaW5nU3BhY2VNaWRwb2ludCkgeyB9CisgICAgICAgICAgICBmb3IgKCA7IHRyYWls
aW5nU3BhY2VNaWRwb2ludCA+PSAwICYmIGxpbmVNaWRwb2ludFN0YXRlLm1pZHBvaW50c1t0cmFp
bGluZ1NwYWNlTWlkcG9pbnRdLm1fb2JqICE9IHRyYWlsaW5nU3BhY2VPYmplY3Q7IC0tdHJhaWxp
bmdTcGFjZU1pZHBvaW50KSB7IH0KICAgICAgICAgICAgIEFTU0VSVCh0cmFpbGluZ1NwYWNlTWlk
cG9pbnQgPj0gMCk7CiAgICAgICAgICAgICBsaW5lTWlkcG9pbnRTdGF0ZS5taWRwb2ludHNbdHJh
aWxpbmdTcGFjZU1pZHBvaW50XS5wb3MtLTsKIApAQCAtMjEzMywxMiArMjEzMywxMiBAQCBJbmxp
bmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29s
dmVyJiByZXNvbHZlciwgYm9vbAogICAgICAgICAgICAgICAgICAgICBhZGRNaWRwb2ludChsaW5l
TWlkcG9pbnRTdGF0ZSwgaWdub3JlU3RhcnQpOyAvLyBTdG9wIGlnbm9yaW5nLgogICAgICAgICAg
ICAgICAgICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgaWdub3JlU3RhcnQpOyAv
LyBTdGFydCBpZ25vcmluZyBhZ2Fpbi4KICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQobGluZU1pZHBvaW50U3RhdGUubWlkcG9pbnRzW2N1cnJlbnRN
aWRwb2ludF0ub2JqID09IHRyYWlsaW5nUG9zaXRpb25lZEJveGVzW2ldKTsKLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKGxpbmVNaWRwb2ludFN0YXRlLm1pZHBvaW50c1tjdXJyZW50TWlkcG9p
bnQgKyAxXS5vYmogPT0gdHJhaWxpbmdQb3NpdGlvbmVkQm94ZXNbaV0pOworICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQobGluZU1pZHBvaW50U3RhdGUubWlkcG9pbnRzW2N1cnJlbnRNaWRwb2lu
dF0ubV9vYmogPT0gdHJhaWxpbmdQb3NpdGlvbmVkQm94ZXNbaV0pOworICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQobGluZU1pZHBvaW50U3RhdGUubWlkcG9pbnRzW2N1cnJlbnRNaWRwb2ludCAr
IDFdLm1fb2JqID09IHRyYWlsaW5nUG9zaXRpb25lZEJveGVzW2ldKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgY3VycmVudE1pZHBvaW50ICs9IDI7CiAgICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZSBpZiAoIWxCcmVhay5vYmogJiYgdHJhaWxpbmdTcGFjZU9iamVjdC0+
aXNUZXh0KCkpIHsKKyAgICAgICAgfSBlbHNlIGlmICghbEJyZWFrLm1fb2JqICYmIHRyYWlsaW5n
U3BhY2VPYmplY3QtPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAvLyBBZGQgYSBuZXcgZW5kIG1p
ZHBvaW50IHRoYXQgc3RvcHMgcmlnaHQgYXQgdGhlIHZlcnkgZW5kLgogICAgICAgICAgICAgUmVu
ZGVyVGV4dCogdGV4dCA9IHRvUmVuZGVyVGV4dCh0cmFpbGluZ1NwYWNlT2JqZWN0KTsKICAgICAg
ICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRleHQtPnRleHRMZW5ndGgoKTsKQEAgLTIxNDYsNyAr
MjE0Niw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAgICAgICBJbmxpbmVJdGVy
YXRvciBlbmRNaWQoMCwgdHJhaWxpbmdTcGFjZU9iamVjdCwgcG9zKTsKICAgICAgICAgICAgIGFk
ZE1pZHBvaW50KGxpbmVNaWRwb2ludFN0YXRlLCBlbmRNaWQpOwogICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB0cmFpbGluZ1Bvc2l0aW9uZWRCb3hlcy5zaXplKCk7ICsraSkgewot
ICAgICAgICAgICAgICAgIGlnbm9yZVN0YXJ0Lm9iaiA9IHRyYWlsaW5nUG9zaXRpb25lZEJveGVz
W2ldOworICAgICAgICAgICAgICAgIGlnbm9yZVN0YXJ0Lm1fb2JqID0gdHJhaWxpbmdQb3NpdGlv
bmVkQm94ZXNbaV07CiAgICAgICAgICAgICAgICAgaWdub3JlU3RhcnQucG9zID0gMDsKICAgICAg
ICAgICAgICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgaWdub3JlU3RhcnQpOyAv
LyBTdG9wIGlnbm9yaW5nIHNwYWNlcy4KICAgICAgICAgICAgICAgICBhZGRNaWRwb2ludChsaW5l
TWlkcG9pbnRTdGF0ZSwgaWdub3JlU3RhcnQpOyAvLyBTdGFydCBpZ25vcmluZyBhZ2Fpbi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>