<?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>128481</bug_id>
          
          <creation_ts>2014-02-08 19:08:00 -0800</creation_ts>
          <short_desc>Cleanup the interface of FrameSelection</short_desc>
          <delta_ts>2014-02-08 20:53:17 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978487</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-08 19:08:00 -0800</bug_when>
    <thetext>Rename some member functions and make others private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978490</commentid>
    <comment_count>1</comment_count>
      <attachid>223599</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-08 19:13:39 -0800</bug_when>
    <thetext>Created attachment 223599
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978493</commentid>
    <comment_count>2</comment_count>
      <attachid>223599</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-08 19:15:08 -0800</bug_when>
    <thetext>Comment on attachment 223599
Cleanup

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Renamed caretRenderer() to caretRendererWithoutUpdatingLayout() to clarify the contract
&gt; +        as the only caller of this function is RenderBlock::paintCaret.

I&apos;m changing this sentence to:

        Renamed caretRenderer() to caretRendererWithoutUpdatingLayout() to clarify the contract
        as the only caller of this function is RenderBlock::paintCaret. Also renamed bounds()
        to selectionBounds() to make it more easily identifiable / grep&apos;able.

when I land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978494</commentid>
    <comment_count>3</comment_count>
      <attachid>223599</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-08 19:18:21 -0800</bug_when>
    <thetext>Comment on attachment 223599
Cleanup

Looks great. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978499</commentid>
    <comment_count>4</comment_count>
      <attachid>223600</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-08 19:40:08 -0800</bug_when>
    <thetext>Created attachment 223600
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978500</commentid>
    <comment_count>5</comment_count>
      <attachid>223600</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-08 19:40:44 -0800</bug_when>
    <thetext>Comment on attachment 223600
Patch for landing

Wait for EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978513</commentid>
    <comment_count>6</comment_count>
      <attachid>223600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-08 20:53:15 -0800</bug_when>
    <thetext>Comment on attachment 223600
Patch for landing

Clearing flags on attachment: 223600

Committed r163739: &lt;http://trac.webkit.org/changeset/163739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978514</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-08 20:53:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223599</attachid>
            <date>2014-02-08 19:13:39 -0800</date>
            <delta_ts>2014-02-08 19:40:06 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-128481-20140208191338.patch</filename>
            <type>text/plain</type>
            <size>18107</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzczNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE0LTAyLTA4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdGhlIGludGVyZmFj
ZSBvZiBGcmFtZVNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlZCBGcmFtZVNlbGVjdGlvbjo6ZW5kKCkgYXMgaW50ZW5kZWQgaW4g
cjE2MzIzMiwgYW5kIHRoZSBzdGFsZSBkZWNsYXJhdGlvbiBvZgorICAgICAgICBwYWludERyYWdD
YXJldCgpIHdoaWNoIHdhcyBzdXBwb3NlZCB0byBiZSByZW1vdmVkIHdoZW4gd2UgZXh0cmFjdGVk
IERyYWdDYXJldENvbnRyb2xsZXIuCisKKyAgICAgICAgUmVuYW1lZCBjYXJldFJlbmRlcmVyKCkg
dG8gY2FyZXRSZW5kZXJlcldpdGhvdXRVcGRhdGluZ0xheW91dCgpIHRvIGNsYXJpZnkgdGhlIGNv
bnRyYWN0CisgICAgICAgIGFzIHRoZSBvbmx5IGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIGlzIFJl
bmRlckJsb2NrOjpwYWludENhcmV0LgorCisgICAgICAgIEFsc28sIG1hZGUgcmVjb21wdXRlQ2Fy
ZXRSZWN0KCkgYW5kIGludmFsaWRhdGVDYXJldFJlY3QoKSBwcml2YXRlLgorCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6Y2FyZXRSZW5kZXJlcldpdGhvdXRVcGRh
dGluZ0xheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9u
Qm91bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rp
b24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRDYXJldFZpc2libGUpOgorICAgICAgICAqIHBhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhZ0xvY0ZvclNlbGVjdGlvbkRy
YWcpOgorICAgICAgICAqIHBhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c25hcHNob3RTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2Uvd2luL0ZyYW1lV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlRnJvbVNlbGVjdGlvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpw
YWludENhcmV0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnNlbGVjdGlvbkJvdW5kcyk6CisKIDIwMTQtMDItMDggIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgb3V0ZGF0ZWQgd29y
a2Fyb3VuZHMgaW4gRG9jdW1lbnRMb2FkZXI6OmRhdGFSZWNlaXZlZApJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4JKHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNTU1LDEwICsxNTU1LDEwIEBAIF9fWk5LN1dlYkNvcmUx
NERvY3VtZW50TG9hZGVyOWlzTG9hZGluZ0UKIF9fWk5LN1dlYkNvcmUxNERvY3VtZW50TWFya2Vy
MTFkZXNjcmlwdGlvbkV2CiBfX1pOSzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjExY3VycmVudEZv
cm1FdgogX19aTks3V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24xNWNvcHlUeXBpbmdTdHlsZUV2Citf
X1pOSzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjE1c2VsZWN0aW9uQm91bmRzRWIKIF9fWk5LN1dl
YkNvcmUxNEZyYW1lU2VsZWN0aW9uMThpc0ZvY3VzZWRBbmRBY3RpdmVFdgogX19aTks3V2ViQ29y
ZTE0RnJhbWVTZWxlY3Rpb24zMWdldENsaXBwZWRWaXNpYmxlVGV4dFJlY3RhbmdsZXNFUk4zV1RG
NlZlY3RvcklOU185RmxvYXRSZWN0RUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk5L
N1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMzZyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVs
ZW1lbnRFdgotX19aTks3V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb242Ym91bmRzRWIKIF9fWk5LN1dl
YkNvcmUxNEluc2VydGlvblBvaW50OGlzQWN0aXZlRXYKIF9fWk5LN1dlYkNvcmUxNFJlbmRlckxp
c3RJdGVtMTBtYXJrZXJUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJlc291cmNlQnVmZmVyNGRhdGFF
dgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlz
aW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzQ0LDcgKzEzNDQsNyBAQCBib29sIENhcmV0QmFzZTo6dXBk
YXRlQ2FyZXRSZWN0KERvY3VtZW50CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlbmRlck9iamVj
dCogRnJhbWVTZWxlY3Rpb246OmNhcmV0UmVuZGVyZXIoKSBjb25zdAorUmVuZGVyT2JqZWN0KiBG
cmFtZVNlbGVjdGlvbjo6Y2FyZXRSZW5kZXJlcldpdGhvdXRVcGRhdGluZ0xheW91dCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNhcmV0UmVuZGVyZXIobV9zZWxlY3Rpb24uc3RhcnQo
KS5kZXByZWNhdGVkTm9kZSgpKTsKIH0KQEAgLTE5NzcsNyArMTk3Nyw3IEBAIGJvb2wgRnJhbWVT
ZWxlY3Rpb246OnNob3VsZERlbGV0ZVNlbGVjdGkKICAgICByZXR1cm4gbV9mcmFtZS0+ZWRpdG9y
KCkuY2xpZW50KCktPnNob3VsZERlbGV0ZVJhbmdlKHNlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5n
ZSgpLmdldCgpKTsKIH0KIAotRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpib3VuZHMoYm9vbCBj
bGlwVG9WaXNpYmxlQ29udGVudCkgY29uc3QKK0Zsb2F0UmVjdCBGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzKGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX2ZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAt
MjA2NSw3ICsyMDY1LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKGNv
bgogICAgICAgICByZWN0ID0gYWJzb2x1dGVDYXJldEJvdW5kcygpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246OlJhbmdlU2VsZWN0aW9uOgotICAgICAgICByZWN0
ID0gcmV2ZWFsRXh0ZW50T3B0aW9uID09IFJldmVhbEV4dGVudCA/IFZpc2libGVQb3NpdGlvbiht
X3NlbGVjdGlvbi5leHRlbnQoKSkuYWJzb2x1dGVDYXJldEJvdW5kcygpIDogZW5jbG9zaW5nSW50
UmVjdChib3VuZHMoZmFsc2UpKTsKKyAgICAgICAgcmVjdCA9IHJldmVhbEV4dGVudE9wdGlvbiA9
PSBSZXZlYWxFeHRlbnQgPyBWaXNpYmxlUG9zaXRpb24obV9zZWxlY3Rpb24uZXh0ZW50KCkpLmFi
c29sdXRlQ2FyZXRCb3VuZHMoKSA6IGVuY2xvc2luZ0ludFJlY3Qoc2VsZWN0aW9uQm91bmRzKGZh
bHNlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaAkocmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsMTAgKzE2NSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEV4dGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBF
VXNlclRyaWdnZXJlZCA9IE5vdFVzZXJUcmlnZ2VyZWQpOwogICAgIHZvaWQgc2V0RXh0ZW50KGNv
bnN0IFBvc2l0aW9uJiwgRUFmZmluaXR5LCBFVXNlclRyaWdnZXJlZCA9IE5vdFVzZXJUcmlnZ2Vy
ZWQpOwogCi0gICAgUG9zaXRpb24gZW5kKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb24uZW5k
KCk7IH0KLQogICAgIC8vIFJldHVybiB0aGUgcmVuZGVyZXIgdGhhdCBpcyByZXNwb25zaWJsZSBm
b3IgcGFpbnRpbmcgdGhlIGNhcmV0IChpbiB0aGUgc2VsZWN0aW9uIHN0YXJ0IG5vZGUpCi0gICAg
UmVuZGVyT2JqZWN0KiBjYXJldFJlbmRlcmVyKCkgY29uc3Q7CisgICAgUmVuZGVyT2JqZWN0KiBj
YXJldFJlbmRlcmVyV2l0aG91dFVwZGF0aW5nTGF5b3V0KCkgY29uc3Q7CiAKICAgICAvLyBDYXJl
dCByZWN0IGxvY2FsIHRvIHRoZSBjYXJldCdzIHJlbmRlcmVyCiAgICAgTGF5b3V0UmVjdCBsb2Nh
bENhcmV0UmVjdCgpOwpAQCAtMTkzLDggKzE5MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRX
YXNSZXBsYWNlZChDaGFyYWN0ZXJEYXRhKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBvbGRM
ZW5ndGgsIHVuc2lnbmVkIG5ld0xlbmd0aCk7CiAKICAgICB2b2lkIHNldENhcmV0VmlzaWJsZShi
b29sIGNhcmV0SXNWaXNpYmxlKSB7IHNldENhcmV0VmlzaWJpbGl0eShjYXJldElzVmlzaWJsZSA/
IFZpc2libGUgOiBIaWRkZW4pOyB9Ci0gICAgYm9vbCByZWNvbXB1dGVDYXJldFJlY3QoKTsKLSAg
ICB2b2lkIGludmFsaWRhdGVDYXJldFJlY3QoKTsKICAgICB2b2lkIHBhaW50Q2FyZXQoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVj
dCk7CiAKICAgICAvLyBVc2VkIHRvIHN1c3BlbmQgY2FyZXQgYmxpbmtpbmcgd2hpbGUgdGhlIG1v
dXNlIGlzIGRvd24uCkBAIC0yNTcsMTQgKzI1MywxMiBAQCBwdWJsaWM6CiAgICAgZW51bSBFbmRQ
b2ludHNBZGp1c3RtZW50TW9kZSB7IEFkanVzdEVuZHBvaW50c0F0QmlkaUJvdW5kYXJ5LCBEb05v
dEFkanN1dEVuZHBvaW50cyB9OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVy
ZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHksIEVuZFBvaW50c0Fk
anVzdG1lbnRNb2RlID0gRG9Ob3RBZGpzdXRFbmRwb2ludHMpOwogCi0gICAgdm9pZCBwYWludERy
YWdDYXJldChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IExheW91
dFJlY3QmIGNsaXBSZWN0KSBjb25zdDsKLQogICAgIEVkaXRpbmdTdHlsZSogdHlwaW5nU3R5bGUo
KSBjb25zdDsKICAgICBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnRpZXM+IGNvcHlUeXBp
bmdTdHlsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0
aW5nU3R5bGU+KTsKICAgICB2b2lkIGNsZWFyVHlwaW5nU3R5bGUoKTsKIAotICAgIEZsb2F0UmVj
dCBib3VuZHMoYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUpIGNvbnN0OworICAgIEZs
b2F0UmVjdCBzZWxlY3Rpb25Cb3VuZHMoYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUp
IGNvbnN0OwogCiAgICAgdm9pZCBnZXRDbGlwcGVkVmlzaWJsZVRleHRSZWN0YW5nbGVzKFZlY3Rv
cjxGbG9hdFJlY3Q+JikgY29uc3Q7CiAKQEAgLTMxNyw2ICszMTEsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgY2FyZXRCbGlua1RpbWVyRmlyZWQoVGltZXI8RnJhbWVTZWxlY3Rpb24+Jik7CiAKICAg
ICB2b2lkIHNldENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkpOworICAgIGJvb2wgcmVj
b21wdXRlQ2FyZXRSZWN0KCk7CisgICAgdm9pZCBpbnZhbGlkYXRlQ2FyZXRSZWN0KCk7CiAKICAg
ICBib29sIGRpc3BhdGNoU2VsZWN0U3RhcnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTcsNyArNjk3LDcgQEAg
c3RhdGljIEludFBvaW50IGRyYWdMb2NGb3JESFRNTERyYWcoY29ucwogCiBzdGF0aWMgSW50UG9p
bnQgZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoRnJhbWUmIHNyYykKIHsKLSAgICBJbnRSZWN0IGRy
YWdnaW5nUmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qoc3JjLnNlbGVjdGlvbigpLmJvdW5kcygpKTsK
KyAgICBJbnRSZWN0IGRyYWdnaW5nUmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qoc3JjLnNlbGVjdGlv
bigpLnNlbGVjdGlvbkJvdW5kcygpKTsKICAgICBpbnQgeHBvcyA9IGRyYWdnaW5nUmVjdC5tYXhY
KCk7CiAgICAgeHBvcyA9IGRyYWdnaW5nUmVjdC54KCkgPCB4cG9zID8gZHJhZ2dpbmdSZWN0Lngo
KSA6IHhwb3M7CiAgICAgaW50IHlwb3MgPSBkcmFnZ2luZ1JlY3QubWF4WSgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHAJKHJldmlzaW9uIDE2MzcyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBzbmFw
c2hvdFNlbAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIG9wdGlvbnMgfD0gU25hcHNo
b3RPcHRpb25zUGFpbnRTZWxlY3Rpb25Pbmx5OwotICAgIHJldHVybiBzbmFwc2hvdEZyYW1lUmVj
dChmcmFtZSwgZW5jbG9zaW5nSW50UmVjdChmcmFtZS5zZWxlY3Rpb24oKS5ib3VuZHMoKSksIG9w
dGlvbnMpOworICAgIHJldHVybiBzbmFwc2hvdEZyYW1lUmVjdChmcmFtZSwgZW5jbG9zaW5nSW50
UmVjdChmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3VuZHMoKSksIG9wdGlvbnMpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90Tm9kZShGcmFtZSYgZnJhbWUs
IE5vZGUmIG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9GcmFtZVdpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRnJhbWVXaW4uY3BwCShyZXZp
c2lvbiAxNjM3MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9GcmFtZVdpbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgR0RJT2JqZWN0PEhCSVRNQVA+IGltYWdlRnJv
bVNlbGVjdGlvbihGcgogICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKIAog
ICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvclNlbGVjdGlv
bk9ubHkgfCAoZm9yY2VCbGFja1RleHQgPyBQYWludEJlaGF2aW9yRm9yY2VCbGFja1RleHQgOiAw
KSk7Ci0gICAgRmxvYXRSZWN0IGZyID0gZnJhbWUtPnNlbGVjdGlvbigpLmJvdW5kcygpOworICAg
IEZsb2F0UmVjdCBmciA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3VuZHMoKTsKICAg
ICBJbnRSZWN0IGlyKHN0YXRpY19jYXN0PGludD4oZnIueCgpKSwgc3RhdGljX2Nhc3Q8aW50Pihm
ci55KCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGZyLndpZHRoKCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGZy
LmhlaWdodCgpKSk7CiAgICAgR0RJT2JqZWN0PEhCSVRNQVA+IGltYWdlID0gaW1hZ2VGcm9tUmVj
dChmcmFtZSwgaXIpOwogICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3IoUGFpbnRC
ZWhhdmlvck5vcm1hbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAJKHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNzcsNyArMjI3Nyw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OnBhaW50Q2FyZXQoUGFpbnRJbmZvJiAKICAgICBSZW5kZXJPYmplY3QqIGNhcmV0
UGFpbnRlcjsKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlOwogICAgIGlmICh0eXBlID09IEN1
cnNvckNhcmV0KSB7Ci0gICAgICAgIGNhcmV0UGFpbnRlciA9IGZyYW1lKCkuc2VsZWN0aW9uKCku
Y2FyZXRSZW5kZXJlcigpOworICAgICAgICBjYXJldFBhaW50ZXIgPSBmcmFtZSgpLnNlbGVjdGlv
bigpLmNhcmV0UmVuZGVyZXJXaXRob3V0VXBkYXRpbmdMYXlvdXQoKTsKICAgICAgICAgaXNDb250
ZW50RWRpdGFibGUgPSBmcmFtZSgpLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmhhc0VkaXRhYmxl
U3R5bGUoKTsKICAgICB9IGVsc2UgewogICAgICAgICBjYXJldFBhaW50ZXIgPSBmcmFtZSgpLnBh
Z2UoKS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLmNhcmV0UmVuZGVyZXIoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzNSw3ICsy
MTM1LDcgQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBJbnRlcm5hbHM6OnNlbGVjdAogICAgICAg
ICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIENsaWVu
dFJlY3Q6OmNyZWF0ZShkb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCkuYm91bmRzKCkpOwor
ICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVjdGlv
bigpLnNlbGVjdGlvbkJvdW5kcygpKTsKIH0KIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNjM3MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMi0wOCAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbnVwIHRoZSBpbnRlcmZhY2Ugb2Yg
RnJhbWVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmdldEZpbmRJbmRpY2F0b3JCaXRtYXBBbmRSZWN0KToK
KyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNjYWxlZFNuYXBzaG90V2l0aE9wdGlvbnMpOgorCiAyMDE0LTAyLTA4ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvY3Vyc29ycy5odG1sIGZhaWxzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE2MzcyNikK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpm
aW5kU3RyaW5nTWF0Y2hlcyhjCiAKIGJvb2wgRmluZENvbnRyb2xsZXI6OmdldEZpbmRJbmRpY2F0
b3JCaXRtYXBBbmRSZWN0KEZyYW1lKiBmcmFtZSwgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhh
bmRsZSwgSW50UmVjdCYgc2VsZWN0aW9uUmVjdCkKIHsKLSAgICBzZWxlY3Rpb25SZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChmcmFtZS0+c2VsZWN0aW9uKCkuYm91bmRzKCkpOworICAgIHNlbGVjdGlv
blJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3Vu
ZHMoKSk7CiAKICAgICAvLyBTZWxlY3Rpb24gcmVjdCBjYW4gYmUgZW1wdHkgZm9yIG1hdGNoZXMg
dGhhdCBhcmUgY3VycmVudGx5IG9ic2N1cmVkIGZyb20gdmlldy4KICAgICBpZiAoc2VsZWN0aW9u
UmVjdC5pc0VtcHR5KCkpCkBAIC00MjcsNyArNDI3LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6
ZHJhd1JlY3QoUGFnZU92ZXJsYQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoRnJhbWUqIHNl
bGVjdGVkRnJhbWUgPSBmcmFtZVdpdGhTZWxlY3Rpb24obV93ZWJQYWdlLT5jb3JlUGFnZSgpKSkg
ewotICAgICAgICBJbnRSZWN0IGZpbmRJbmRpY2F0b3JSZWN0ID0gc2VsZWN0ZWRGcmFtZS0+dmll
dygpLT5jb250ZW50c1RvV2luZG93KGVuY2xvc2luZ0ludFJlY3Qoc2VsZWN0ZWRGcmFtZS0+c2Vs
ZWN0aW9uKCkuYm91bmRzKCkpKTsKKyAgICAgICAgSW50UmVjdCBmaW5kSW5kaWNhdG9yUmVjdCA9
IHNlbGVjdGVkRnJhbWUtPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhlbmNsb3NpbmdJbnRSZWN0
KHNlbGVjdGVkRnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbkJvdW5kcygpKSk7CiAKICAgICAg
ICAgaWYgKGZpbmRJbmRpY2F0b3JSZWN0ICE9IG1fZmluZEluZGljYXRvclJlY3QpCiAgICAgICAg
ICAgICBoaWRlRmluZEluZGljYXRvcigpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTI0LDcgKzE1MjQsNyBAQCBQYXNzUmVmUHRyPFdlYkltYWdlPiBXZWJQYWdlOjpzY2FsZWRTbmFw
CiAgICAgZnJhbWVWaWV3LT5wYWludENvbnRlbnRzRm9yU25hcHNob3QoZ3JhcGhpY3NDb250ZXh0
LmdldCgpLCByZWN0LCBzaG91bGRQYWludFNlbGVjdGlvbiwgY29vcmRpbmF0ZVNwYWNlKTsKIAog
ICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25zUGFpbnRTZWxlY3Rpb25SZWN0YW5nbGUp
IHsKLSAgICAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IG1fbWFpbkZyYW1lLT5j
b3JlRnJhbWUoKS0+c2VsZWN0aW9uKCkuYm91bmRzKCk7CisgICAgICAgIEZsb2F0UmVjdCBzZWxl
Y3Rpb25SZWN0YW5nbGUgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnNlbGVjdGlvbigpLnNl
bGVjdGlvbkJvdW5kcygpOwogICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZUNvbG9y
KENvbG9yKDB4RkYsIDAsIDApLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5zdHJva2VSZWN0KHNlbGVjdGlvblJlY3RhbmdsZSwgMSk7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzM1KQorKysgU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDItMDggIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW51cCB0aGUgaW50
ZXJmYWNlIG9mIEZyYW1lU2VsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjg0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNlbGVjdGlvblJlY3Rh
bmdsZSk6CisKIDIwMTQtMDItMDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIENoYW5nZSBUZXh0SXRlcmF0b3IgdG8gdXNlIFN0cmluZ1ZpZXcsIHByZXBhcmluZyB0
byB3ZWFuIGl0IGZyb20gZGVwcmVjYXRlZENoYXJhY3RlcnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcAkocmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTk5LDcgKzE5OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWYK
IHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwg
V2ViQ29yZTo6SW50UmVjdCgpKTsKIAotICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KGZyYW1l
LT5zZWxlY3Rpb24oKS5ib3VuZHMoKSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoZnJh
bWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbkJvdW5kcygpKTsKIH0KIAogLy8gQ29tcGFyZSB3aXRo
ICJXZWJLaXQvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM3MzUpCisrKyBTb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMi0wOCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbnVwIHRoZSBp
bnRlcmZhY2Ugb2YgRnJhbWVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xlRm9y
U2VsZWN0aW9uKToKKwogMjAxNC0wMi0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQ2hhbmdlIFRleHRJdGVyYXRvciB0byB1c2UgU3RyaW5nVmlldywgcHJlcGFy
aW5nIHRvIHdlYW4gaXQgZnJvbSBkZXByZWNhdGVkQ2hhcmFjdGVycwpJbmRleDogU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuY3BwCShyZXZpc2lvbiAxNjM3MjYpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3Rh
bmdsZQogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0
IGJvdW5kcyA9IGVuY2xvc2luZ0ludFJlY3QoY29yZUZyYW1lLT5zZWxlY3Rpb24oKS5ib3VuZHMo
KSk7CisgICAgSW50UmVjdCBib3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KGNvcmVGcmFtZS0+c2Vs
ZWN0aW9uKCkuc2VsZWN0aW9uQm91bmRzKCkpOwogICAgIHJlY3RhbmdsZS0+eCA9IGJvdW5kcy54
KCk7CiAgICAgcmVjdGFuZ2xlLT55ID0gYm91bmRzLnkoKTsKICAgICByZWN0YW5nbGUtPndpZHRo
ID0gYm91bmRzLndpZHRoKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM3MzUp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNC0wMi0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDbGVhbnVwIHRoZSBpbnRlcmZhY2Ugb2YgRnJhbWVTZWxlY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1M
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2xvb2tVcEluRGljdGlvbmFyeUZyb21N
ZW51Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZWxlY3Rpb25SZWN0XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IHNlbGVjdGlvbkltYWdlUmVjdF0pOgorCiAyMDE0LTAyLTA4ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVzZSBvZiBQTEFU
Rk9STShNQUMpIGZyb20gV2ViS2l0L21hYwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAxNjM3MjYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NjgyLDcgKzU2ODIsNyBA
QCAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQpCiAgICAgaWYgKCFjb3Jl
RnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5TUmVjdCByZWN0ID0gY29yZUZyYW1lLT5z
ZWxlY3Rpb24oKS5ib3VuZHMoKTsKKyAgICBOU1JlY3QgcmVjdCA9IGNvcmVGcmFtZS0+c2VsZWN0
aW9uKCkuc2VsZWN0aW9uQm91bmRzKCk7CiAKICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMg
PSBbYXR0clN0cmluZyBmb250QXR0cmlidXRlc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwxKV07CiAg
ICAgTlNGb250ICpmb250ID0gW2F0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TRm9udEF0dHJpYnV0
ZU5hbWVdOwpAQCAtNjUyOCw3ICs2NTI4LDcgQEAgLSAoTlNSZWN0KXNlbGVjdGlvblJlY3QKIHsK
ICAgICBpZiAoIVtzZWxmIF9oYXNTZWxlY3Rpb25dKQogICAgICAgICByZXR1cm4gTlNaZXJvUmVj
dDsKLSAgICByZXR1cm4gY29yZShbc2VsZiBfZnJhbWVdKS0+c2VsZWN0aW9uKCkuYm91bmRzKCk7
CisgICAgcmV0dXJuIGNvcmUoW3NlbGYgX2ZyYW1lXSktPnNlbGVjdGlvbigpLnNlbGVjdGlvbkJv
dW5kcygpOwogfQogCiAtIChOU0FycmF5ICopc2VsZWN0aW9uVGV4dFJlY3RzCkBAIC02NTc5LDcg
KzY1NzksNyBAQCAtIChOU1JlY3Qpc2VsZWN0aW9uSW1hZ2VSZWN0CiB7CiAgICAgaWYgKCFbc2Vs
ZiBfaGFzU2VsZWN0aW9uXSkKICAgICAgICAgcmV0dXJuIE5TWmVyb1JlY3Q7Ci0gICAgcmV0dXJu
IGNvcmUoW3NlbGYgX2ZyYW1lXSktPnNlbGVjdGlvbigpLmJvdW5kcygpOworICAgIHJldHVybiBj
b3JlKFtzZWxmIF9mcmFtZV0pLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3VuZHMoKTsKIH0KIAog
I2lmICFQTEFURk9STShJT1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM3MzUp
CisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNC0wMi0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDbGVhbnVwIHRoZSBpbnRlcmZhY2Ugb2YgRnJhbWVTZWxlY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpzZWxlY3Rpb25SZWN0KToKKwogMjAxNC0wMi0wOCAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIFRleHRJdGVyYXRvciB0byB1
c2UgU3RyaW5nVmlldywgcHJlcGFyaW5nIHRvIHdlYW4gaXQgZnJvbSBkZXByZWNhdGVkQ2hhcmFj
dGVycwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjA1LDcgKzM2MDUs
NyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNlbGVjCiB7CiAgICAgV2Vi
Q29yZTo6RnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JN
YWluRnJhbWUoKTsKIAotICAgIEludFJlY3QgaXIgPSBlbmNsb3NpbmdJbnRSZWN0KGZyYW1lLnNl
bGVjdGlvbigpLmJvdW5kcygpKTsKKyAgICBJbnRSZWN0IGlyID0gZW5jbG9zaW5nSW50UmVjdChm
cmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3VuZHMoKSk7CiAgICAgaXIgPSBmcmFtZS52aWV3
KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coaXIpOwogICAgIGlyLm1vdmUoLWZyYW1lLnZp
ZXcoKS0+c2Nyb2xsT2Zmc2V0KCkud2lkdGgoKSwgLWZyYW1lLnZpZXcoKS0+c2Nyb2xsT2Zmc2V0
KCkuaGVpZ2h0KCkpOwogICAgIHJjLT5sZWZ0ID0gaXIueCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223600</attachid>
            <date>2014-02-08 19:40:08 -0800</date>
            <delta_ts>2014-02-08 20:53:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-128481-20140208194008.patch</filename>
            <type>text/plain</type>
            <size>19743</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzczNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAyLTA4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdGhlIGludGVyZmFj
ZSBvZiBGcmFtZVNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
KworICAgICAgICBSZW1vdmVkIEZyYW1lU2VsZWN0aW9uOjplbmQoKSBhcyBpbnRlbmRlZCBpbiBy
MTYzMjMyLCBhbmQgdGhlIHN0YWxlIGRlY2xhcmF0aW9uIG9mCisgICAgICAgIHBhaW50RHJhZ0Nh
cmV0KCkgd2hpY2ggd2FzIHN1cHBvc2VkIHRvIGJlIHJlbW92ZWQgd2hlbiB3ZSBleHRyYWN0ZWQg
RHJhZ0NhcmV0Q29udHJvbGxlci4KKworICAgICAgICBSZW5hbWVkIGNhcmV0UmVuZGVyZXIoKSB0
byBjYXJldFJlbmRlcmVyV2l0aG91dFVwZGF0aW5nTGF5b3V0KCkgdG8gY2xhcmlmeSB0aGUgY29u
dHJhY3QKKyAgICAgICAgYXMgdGhlIG9ubHkgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gaXMgUmVu
ZGVyQmxvY2s6OnBhaW50Q2FyZXQuIEFsc28gcmVuYW1lZCBib3VuZHMoKQorICAgICAgICB0byBz
ZWxlY3Rpb25Cb3VuZHMoKSB0byBtYWtlIGl0IG1vcmUgZWFzaWx5IGlkZW50aWZpYWJsZSAvIGdy
ZXAnYWJsZS4KKworICAgICAgICBJbiBhZGRpdGlvbiwgbWFkZSByZWNvbXB1dGVDYXJldFJlY3Qo
KSBhbmQgaW52YWxpZGF0ZUNhcmV0UmVjdCgpIHByaXZhdGUuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpjYXJldFJlbmRlcmVyV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25Cb3VuZHMp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbik6Cisg
ICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJsZSk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmFnTG9jRm9yU2VsZWN0aW9uRHJhZyk6Cisg
ICAgICAgICogcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
bmFwc2hvdFNlbGVjdGlvbik6CisgICAgICAgICogcGFnZS93aW4vRnJhbWVXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aW1hZ2VGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50Q2Fy
ZXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2VsZWN0aW9uQm91bmRzKToKKwogMjAxNC0wMi0wOCAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBvdXRkYXRlZCB3b3JrYXJvdW5k
cyBpbiBEb2N1bWVudExvYWRlcjo6ZGF0YVJlY2VpdmVkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1NTUsMTAgKzE1NTUsMTAgQEAgX19aTks3V2ViQ29yZTE0RG9jdW1l
bnRMb2FkZXI5aXNMb2FkaW5nRQogX19aTks3V2ViQ29yZTE0RG9jdW1lbnRNYXJrZXIxMWRlc2Ny
aXB0aW9uRXYKIF9fWk5LN1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMTFjdXJyZW50Rm9ybUV2CiBf
X1pOSzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjE1Y29weVR5cGluZ1N0eWxlRXYKK19fWk5LN1dl
YkNvcmUxNEZyYW1lU2VsZWN0aW9uMTVzZWxlY3Rpb25Cb3VuZHNFYgogX19aTks3V2ViQ29yZTE0
RnJhbWVTZWxlY3Rpb24xOGlzRm9jdXNlZEFuZEFjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlMTRGcmFt
ZVNlbGVjdGlvbjMxZ2V0Q2xpcHBlZFZpc2libGVUZXh0UmVjdGFuZ2xlc0VSTjNXVEY2VmVjdG9y
SU5TXzlGbG9hdFJlY3RFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTks3V2ViQ29y
ZTE0RnJhbWVTZWxlY3Rpb24zNnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudEV2
Ci1fX1pOSzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjZib3VuZHNFYgogX19aTks3V2ViQ29yZTE0
SW5zZXJ0aW9uUG9pbnQ4aXNBY3RpdmVFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyTGlzdEl0ZW0x
MG1hcmtlclRleHRFdgogX19aTks3V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXI0ZGF0YUV2CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAkocmV2aXNpb24gMTYz
NzI2KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNDQsNyArMTM0NCw3IEBAIGJvb2wgQ2FyZXRCYXNlOjp1cGRhdGVDYXJl
dFJlY3QoRG9jdW1lbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVuZGVyT2JqZWN0KiBGcmFt
ZVNlbGVjdGlvbjo6Y2FyZXRSZW5kZXJlcigpIGNvbnN0CitSZW5kZXJPYmplY3QqIEZyYW1lU2Vs
ZWN0aW9uOjpjYXJldFJlbmRlcmVyV2l0aG91dFVwZGF0aW5nTGF5b3V0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gV2ViQ29yZTo6Y2FyZXRSZW5kZXJlcihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJl
Y2F0ZWROb2RlKCkpOwogfQpAQCAtMTk3Nyw3ICsxOTc3LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlv
bjo6c2hvdWxkRGVsZXRlU2VsZWN0aQogICAgIHJldHVybiBtX2ZyYW1lLT5lZGl0b3IoKS5jbGll
bnQoKS0+c2hvdWxkRGVsZXRlUmFuZ2Uoc2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0
KCkpOwogfQogCi1GbG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OmJvdW5kcyhib29sIGNsaXBUb1Zp
c2libGVDb250ZW50KSBjb25zdAorRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25C
b3VuZHMoYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJh
bWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CkBAIC0yMDY1LDcg
KzIwNjUsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oY29uCiAgICAg
ICAgIHJlY3QgPSBhYnNvbHV0ZUNhcmV0Qm91bmRzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVmlzaWJsZVNlbGVjdGlvbjo6UmFuZ2VTZWxlY3Rpb246Ci0gICAgICAgIHJlY3QgPSByZXZl
YWxFeHRlbnRPcHRpb24gPT0gUmV2ZWFsRXh0ZW50ID8gVmlzaWJsZVBvc2l0aW9uKG1fc2VsZWN0
aW9uLmV4dGVudCgpKS5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkgOiBlbmNsb3NpbmdJbnRSZWN0KGJv
dW5kcyhmYWxzZSkpOworICAgICAgICByZWN0ID0gcmV2ZWFsRXh0ZW50T3B0aW9uID09IFJldmVh
bEV4dGVudCA/IFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvbi5leHRlbnQoKSkuYWJzb2x1dGVD
YXJldEJvdW5kcygpIDogZW5jbG9zaW5nSW50UmVjdChzZWxlY3Rpb25Cb3VuZHMoZmFsc2UpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCShyZXZpc2lvbiAxNjM3MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSwxMCArMTY1LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RXh0ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIEVVc2VyVHJp
Z2dlcmVkID0gTm90VXNlclRyaWdnZXJlZCk7CiAgICAgdm9pZCBzZXRFeHRlbnQoY29uc3QgUG9z
aXRpb24mLCBFQWZmaW5pdHksIEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRyaWdnZXJlZCk7CiAK
LSAgICBQb3NpdGlvbiBlbmQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbi5lbmQoKTsgfQot
CiAgICAgLy8gUmV0dXJuIHRoZSByZW5kZXJlciB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBwYWlu
dGluZyB0aGUgY2FyZXQgKGluIHRoZSBzZWxlY3Rpb24gc3RhcnQgbm9kZSkKLSAgICBSZW5kZXJP
YmplY3QqIGNhcmV0UmVuZGVyZXIoKSBjb25zdDsKKyAgICBSZW5kZXJPYmplY3QqIGNhcmV0UmVu
ZGVyZXJXaXRob3V0VXBkYXRpbmdMYXlvdXQoKSBjb25zdDsKIAogICAgIC8vIENhcmV0IHJlY3Qg
bG9jYWwgdG8gdGhlIGNhcmV0J3MgcmVuZGVyZXIKICAgICBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRS
ZWN0KCk7CkBAIC0xOTMsOCArMTkxLDYgQEAgcHVibGljOgogICAgIHZvaWQgdGV4dFdhc1JlcGxh
Y2VkKENoYXJhY3RlckRhdGEqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIG9sZExlbmd0aCwg
dW5zaWduZWQgbmV3TGVuZ3RoKTsKIAogICAgIHZvaWQgc2V0Q2FyZXRWaXNpYmxlKGJvb2wgY2Fy
ZXRJc1Zpc2libGUpIHsgc2V0Q2FyZXRWaXNpYmlsaXR5KGNhcmV0SXNWaXNpYmxlID8gVmlzaWJs
ZSA6IEhpZGRlbik7IH0KLSAgICBib29sIHJlY29tcHV0ZUNhcmV0UmVjdCgpOwotICAgIHZvaWQg
aW52YWxpZGF0ZUNhcmV0UmVjdCgpOwogICAgIHZvaWQgcGFpbnRDYXJldChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KTsKIAog
ICAgIC8vIFVzZWQgdG8gc3VzcGVuZCBjYXJldCBibGlua2luZyB3aGlsZSB0aGUgbW91c2UgaXMg
ZG93bi4KQEAgLTI1NywxNCArMjUzLDEyIEBAIHB1YmxpYzoKICAgICBlbnVtIEVuZFBvaW50c0Fk
anVzdG1lbnRNb2RlIHsgQWRqdXN0RW5kcG9pbnRzQXRCaWRpQm91bmRhcnksIERvTm90QWRqc3V0
RW5kcG9pbnRzIH07CiAgICAgdm9pZCBzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIFRleHRHcmFudWxhcml0eSwgRW5kUG9pbnRzQWRqdXN0bWVu
dE1vZGUgPSBEb05vdEFkanN1dEVuZHBvaW50cyk7CiAKLSAgICB2b2lkIHBhaW50RHJhZ0NhcmV0
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYg
Y2xpcFJlY3QpIGNvbnN0OwotCiAgICAgRWRpdGluZ1N0eWxlKiB0eXBpbmdTdHlsZSgpIGNvbnN0
OwogICAgIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gY29weVR5cGluZ1N0eWxl
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHls
ZT4pOwogICAgIHZvaWQgY2xlYXJUeXBpbmdTdHlsZSgpOwogCi0gICAgRmxvYXRSZWN0IGJvdW5k
cyhib29sIGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgY29uc3Q7CisgICAgRmxvYXRSZWN0
IHNlbGVjdGlvbkJvdW5kcyhib29sIGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgY29uc3Q7
CiAKICAgICB2b2lkIGdldENsaXBwZWRWaXNpYmxlVGV4dFJlY3RhbmdsZXMoVmVjdG9yPEZsb2F0
UmVjdD4mKSBjb25zdDsKIApAQCAtMzE3LDYgKzMxMSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
YXJldEJsaW5rVGltZXJGaXJlZChUaW1lcjxGcmFtZVNlbGVjdGlvbj4mKTsKIAogICAgIHZvaWQg
c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSk7CisgICAgYm9vbCByZWNvbXB1dGVD
YXJldFJlY3QoKTsKKyAgICB2b2lkIGludmFsaWRhdGVDYXJldFJlY3QoKTsKIAogICAgIGJvb2wg
ZGlzcGF0Y2hTZWxlY3RTdGFydCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcAkocmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Nyw3ICs2OTcsNyBAQCBzdGF0aWMg
SW50UG9pbnQgZHJhZ0xvY0ZvckRIVE1MRHJhZyhjb25zCiAKIHN0YXRpYyBJbnRQb2ludCBkcmFn
TG9jRm9yU2VsZWN0aW9uRHJhZyhGcmFtZSYgc3JjKQogewotICAgIEludFJlY3QgZHJhZ2dpbmdS
ZWN0ID0gZW5jbG9zaW5nSW50UmVjdChzcmMuc2VsZWN0aW9uKCkuYm91bmRzKCkpOworICAgIElu
dFJlY3QgZHJhZ2dpbmdSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChzcmMuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uQm91bmRzKCkpOwogICAgIGludCB4cG9zID0gZHJhZ2dpbmdSZWN0Lm1heFgoKTsKICAg
ICB4cG9zID0gZHJhZ2dpbmdSZWN0LngoKSA8IHhwb3MgPyBkcmFnZ2luZ1JlY3QueCgpIDogeHBv
czsKICAgICBpbnQgeXBvcyA9IGRyYWdnaW5nUmVjdC5tYXhZKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAkocmV2aXNpb24gMTYzNzI2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwNSw3ICsxMDUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90U2Vs
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgb3B0aW9ucyB8PSBTbmFwc2hvdE9wdGlv
bnNQYWludFNlbGVjdGlvbk9ubHk7Ci0gICAgcmV0dXJuIHNuYXBzaG90RnJhbWVSZWN0KGZyYW1l
LCBlbmNsb3NpbmdJbnRSZWN0KGZyYW1lLnNlbGVjdGlvbigpLmJvdW5kcygpKSwgb3B0aW9ucyk7
CisgICAgcmV0dXJuIHNuYXBzaG90RnJhbWVSZWN0KGZyYW1lLCBlbmNsb3NpbmdJbnRSZWN0KGZy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbkJvdW5kcygpKSwgb3B0aW9ucyk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gc25hcHNob3ROb2RlKEZyYW1lJiBmcmFtZSwgTm9kZSYg
bm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9GcmFtZVdpbi5jcHAJKHJldmlzaW9uIDE2
MzcyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lV2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTAsNyArNTAsNyBAQCBHRElPYmplY3Q8SEJJVE1BUD4gaW1hZ2VGcm9tU2VsZWN0
aW9uKEZyCiAgICAgZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwogCiAgICAgZnJh
bWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSB8
IChmb3JjZUJsYWNrVGV4dCA/IFBhaW50QmVoYXZpb3JGb3JjZUJsYWNrVGV4dCA6IDApKTsKLSAg
ICBGbG9hdFJlY3QgZnIgPSBmcmFtZS0+c2VsZWN0aW9uKCkuYm91bmRzKCk7CisgICAgRmxvYXRS
ZWN0IGZyID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbkJvdW5kcygpOwogICAgIEludFJl
Y3QgaXIoc3RhdGljX2Nhc3Q8aW50Pihmci54KCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGZyLnkoKSks
IHN0YXRpY19jYXN0PGludD4oZnIud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oZnIuaGVpZ2h0
KCkpKTsKICAgICBHRElPYmplY3Q8SEJJVE1BUD4gaW1hZ2UgPSBpbWFnZUZyb21SZWN0KGZyYW1l
LCBpcik7CiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9y
Tm9ybWFsKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAko
cmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI3Nyw3ICsyMjc3LDcgQEAgdm9pZCBSZW5kZXJCbG9j
azo6cGFpbnRDYXJldChQYWludEluZm8mIAogICAgIFJlbmRlck9iamVjdCogY2FyZXRQYWludGVy
OwogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGU7CiAgICAgaWYgKHR5cGUgPT0gQ3Vyc29yQ2Fy
ZXQpIHsKLSAgICAgICAgY2FyZXRQYWludGVyID0gZnJhbWUoKS5zZWxlY3Rpb24oKS5jYXJldFJl
bmRlcmVyKCk7CisgICAgICAgIGNhcmV0UGFpbnRlciA9IGZyYW1lKCkuc2VsZWN0aW9uKCkuY2Fy
ZXRSZW5kZXJlcldpdGhvdXRVcGRhdGluZ0xheW91dCgpOwogICAgICAgICBpc0NvbnRlbnRFZGl0
YWJsZSA9IGZyYW1lKCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaGFzRWRpdGFibGVTdHlsZSgp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGNhcmV0UGFpbnRlciA9IGZyYW1lKCkucGFnZSgpLT5k
cmFnQ2FyZXRDb250cm9sbGVyKCkuY2FyZXRSZW5kZXJlcigpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMTYzNzI2KQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTM1LDcgKzIxMzUsNyBA
QCBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEludGVybmFsczo6c2VsZWN0CiAgICAgICAgIHJldHVy
biBDbGllbnRSZWN0OjpjcmVhdGUoKTsKICAgICB9CiAKLSAgICByZXR1cm4gQ2xpZW50UmVjdDo6
Y3JlYXRlKGRvY3VtZW50LT5mcmFtZSgpLT5zZWxlY3Rpb24oKS5ib3VuZHMoKSk7CisgICAgcmV0
dXJuIENsaWVudFJlY3Q6OmNyZWF0ZShkb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uQm91bmRzKCkpOwogfQogCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE2MzczNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAyLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdGhlIGludGVyZmFjZSBvZiBGcmFtZVNl
bGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkZpbmRDb250cm9sbGVyOjpnZXRGaW5kSW5kaWNhdG9yQml0bWFwQW5kUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpkcmF3UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZWRT
bmFwc2hvdFdpdGhPcHRpb25zKToKKwogMjAxNC0wMi0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgSURCOiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1
cnNvcnMuaHRtbCBmYWlscwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNjM3MjYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZmluZFN0cmlu
Z01hdGNoZXMoYwogCiBib29sIEZpbmRDb250cm9sbGVyOjpnZXRGaW5kSW5kaWNhdG9yQml0bWFw
QW5kUmVjdChGcmFtZSogZnJhbWUsIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBoYW5kbGUsIElu
dFJlY3QmIHNlbGVjdGlvblJlY3QpCiB7Ci0gICAgc2VsZWN0aW9uUmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QoZnJhbWUtPnNlbGVjdGlvbigpLmJvdW5kcygpKTsKKyAgICBzZWxlY3Rpb25SZWN0ID0g
ZW5jbG9zaW5nSW50UmVjdChmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uQm91bmRzKCkpOwog
CiAgICAgLy8gU2VsZWN0aW9uIHJlY3QgY2FuIGJlIGVtcHR5IGZvciBtYXRjaGVzIHRoYXQgYXJl
IGN1cnJlbnRseSBvYnNjdXJlZCBmcm9tIHZpZXcuCiAgICAgaWYgKHNlbGVjdGlvblJlY3QuaXNF
bXB0eSgpKQpAQCAtNDI3LDcgKzQyNyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRyYXdSZWN0
KFBhZ2VPdmVybGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKEZyYW1lKiBzZWxlY3RlZEZy
YW1lID0gZnJhbWVXaXRoU2VsZWN0aW9uKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKSkpIHsKLSAgICAg
ICAgSW50UmVjdCBmaW5kSW5kaWNhdG9yUmVjdCA9IHNlbGVjdGVkRnJhbWUtPnZpZXcoKS0+Y29u
dGVudHNUb1dpbmRvdyhlbmNsb3NpbmdJbnRSZWN0KHNlbGVjdGVkRnJhbWUtPnNlbGVjdGlvbigp
LmJvdW5kcygpKSk7CisgICAgICAgIEludFJlY3QgZmluZEluZGljYXRvclJlY3QgPSBzZWxlY3Rl
ZEZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coZW5jbG9zaW5nSW50UmVjdChzZWxlY3Rl
ZEZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3VuZHMoKSkpOwogCiAgICAgICAgIGlmIChm
aW5kSW5kaWNhdG9yUmVjdCAhPSBtX2ZpbmRJbmRpY2F0b3JSZWN0KQogICAgICAgICAgICAgaGlk
ZUZpbmRJbmRpY2F0b3IoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyNCw3ICsx
NTI0LDcgQEAgUGFzc1JlZlB0cjxXZWJJbWFnZT4gV2ViUGFnZTo6c2NhbGVkU25hcAogICAgIGZy
YW1lVmlldy0+cGFpbnRDb250ZW50c0ZvclNuYXBzaG90KGdyYXBoaWNzQ29udGV4dC5nZXQoKSwg
cmVjdCwgc2hvdWxkUGFpbnRTZWxlY3Rpb24sIGNvb3JkaW5hdGVTcGFjZSk7CiAKICAgICBpZiAo
b3B0aW9ucyAmIFNuYXBzaG90T3B0aW9uc1BhaW50U2VsZWN0aW9uUmVjdGFuZ2xlKSB7Ci0gICAg
ICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0YW5nbGUgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1l
KCktPnNlbGVjdGlvbigpLmJvdW5kcygpOworICAgICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVj
dGFuZ2xlID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25C
b3VuZHMoKTsKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTdHJva2VDb2xvcihDb2xvcigw
eEZGLCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgICAgIGdyYXBoaWNzQ29udGV4
dC0+c3Ryb2tlUmVjdChzZWxlY3Rpb25SZWN0YW5nbGUsIDEpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9y
dHMuZGVmLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCShyZXZpc2lvbiAxNjM3MjYp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9X
ZWJLaXRFeHBvcnRzLmRlZi5pbgkod29ya2luZyBjb3B5KQpAQCAtMTk4LDcgKzE5OCw3IEBAIEVY
UE9SVFMKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2Fic29sdXRlQ2FyZXRCb3VuZHNARnJh
bWVTZWxlY3Rpb25AV2ViQ29yZUBAUUFFP0FWSW50UmVjdEAyQFhaLCA/YWJzb2x1dGVDYXJldEJv
dW5kc0BGcmFtZVNlbGVjdGlvbkBXZWJDb3JlQEBRRUFBP0FWSW50UmVjdEAyQFhaKQogICAgICAg
ICBzeW1ib2xXaXRoUG9pbnRlcig/YWZ0ZXJQc2V1ZG9FbGVtZW50QEVsZW1lbnRAV2ViQ29yZUBA
UUJFUEFWUHNldWRvRWxlbWVudEAyQFhaLCA/YWZ0ZXJQc2V1ZG9FbGVtZW50QEVsZW1lbnRAV2Vi
Q29yZUBAUUVCQVBFQVZQc2V1ZG9FbGVtZW50QDJAWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2lu
dGVyKD9iZWZvcmVQc2V1ZG9FbGVtZW50QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWUHNldWRvRWxl
bWVudEAyQFhaLCA/YmVmb3JlUHNldWRvRWxlbWVudEBFbGVtZW50QFdlYkNvcmVAQFFFQkFQRUFW
UHNldWRvRWxlbWVudEAyQFhaKQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/Ym91bmRzQEZy
YW1lU2VsZWN0aW9uQFdlYkNvcmVAQFFCRT9BVkZsb2F0UmVjdEAyQF9OQFosID9ib3VuZHNARnJh
bWVTZWxlY3Rpb25AV2ViQ29yZUBAUUVCQT9BVkZsb2F0UmVjdEAyQF9OQFopCisgICAgICAgIHN5
bWJvbFdpdGhQb2ludGVyKD9zZWxlY3Rpb25Cb3VuZHNARnJhbWVTZWxlY3Rpb25AV2ViQ29yZUBA
UUJFP0FWRmxvYXRSZWN0QDJAX05AWiwgP2JvdW5kc0BGcmFtZVNlbGVjdGlvbkBXZWJDb3JlQEBR
RUJBP0FWRmxvYXRSZWN0QDJAX05AWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2Zyb21V
VEY4QFN0cmluZ0BXVEZAQFNBP0FWMTJAUEJFQFosID9mcm9tVVRGOEBTdHJpbmdAV1RGQEBTQT9B
VjEyQFBFQkVfS0BaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/ZnJvbVVURjhXaXRoTGF0
aW4xRmFsbGJhY2tAU3RyaW5nQFdURkBAU0E/QVYxMkBQQkVJQFosID9mcm9tVVRGOFdpdGhMYXRp
bjFGYWxsYmFja0BTdHJpbmdAV1RGQEBTQT9BVjEyQFBFQkVfS0BaKQogICAgICAgICBzeW1ib2xX
aXRoUG9pbnRlcig/Z2FyYmFnZUNvbGxlY3REb2N1bWVudFJlc291cmNlc0BDYWNoZWRSZXNvdXJj
ZUxvYWRlckBXZWJDb3JlQEBRQUVYWFosID9nYXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3VyY2Vz
QENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFFQUFYWFopCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNjM3MzUpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMi0wOCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbnVwIHRoZSBpbnRlcmZhY2Ugb2YgRnJh
bWVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZWxlY3Rpb25SZWN0YW5nbGUpOgorCiAyMDE0
LTAyLTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ug
VGV4dEl0ZXJhdG9yIHRvIHVzZSBTdHJpbmdWaWV3LCBwcmVwYXJpbmcgdG8gd2VhbiBpdCBmcm9t
IGRlcHJlY2F0ZWRDaGFyYWN0ZXJzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAJKHJl
dmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw3ICsxOTksNyBA
QCBXZWJDb3JlOjpJbnRSZWN0IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmCiB7CiAgICAgRFJUX1NV
UFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIFdlYkNvcmU6OkludFJl
Y3QoKSk7CiAKLSAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChmcmFtZS0+c2VsZWN0aW9uKCku
Ym91bmRzKCkpOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KGZyYW1lLT5zZWxlY3Rpb24o
KS5zZWxlY3Rpb25Cb3VuZHMoKSk7CiB9CiAKIC8vIENvbXBhcmUgd2l0aCAiV2ViS2l0L1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQpJbmRleDogU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTYzNzM1KQorKysgU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDItMDggIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW51cCB0aGUgaW50ZXJmYWNlIG9mIEZy
YW1lU2VsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xlRm9yU2VsZWN0aW9uKToKKwog
MjAxNC0wMi0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hh
bmdlIFRleHRJdGVyYXRvciB0byB1c2UgU3RyaW5nVmlldywgcHJlcGFyaW5nIHRvIHdlYW4gaXQg
ZnJvbSBkZXByZWNhdGVkQ2hhcmFjdGVycwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
CShyZXZpc2lvbiAxNjM3MjYpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAw
LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3RhbmdsZQogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0IGJvdW5kcyA9IGVuY2xv
c2luZ0ludFJlY3QoY29yZUZyYW1lLT5zZWxlY3Rpb24oKS5ib3VuZHMoKSk7CisgICAgSW50UmVj
dCBib3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KGNvcmVGcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0
aW9uQm91bmRzKCkpOwogICAgIHJlY3RhbmdsZS0+eCA9IGJvdW5kcy54KCk7CiAgICAgcmVjdGFu
Z2xlLT55ID0gYm91bmRzLnkoKTsKICAgICByZWN0YW5nbGUtPndpZHRoID0gYm91bmRzLndpZHRo
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM3MzUpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0w
Mi0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbnVw
IHRoZSBpbnRlcmZhY2Ugb2YgRnJhbWVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
ZHJlYXMgS2xpbmcuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyBfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IHNlbGVjdGlvblJlY3RdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
c2VsZWN0aW9uSW1hZ2VSZWN0XSk6CisKIDIwMTQtMDItMDggIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdXNlIG9mIFBMQVRGT1JNKE1BQykgZnJvbSBX
ZWJLaXQvbWFjCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0J
KHJldmlzaW9uIDE2MzcyNikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2ODIsNyArNTY4Miw3IEBAIC0gKHZvaWQpX2xvb2tV
cEluRGljdGlvbmFyeUZyb21NZW51OihpZCkKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTlNSZWN0IHJlY3QgPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLmJvdW5k
cygpOworICAgIE5TUmVjdCByZWN0ID0gY29yZUZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25C
b3VuZHMoKTsKIAogICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9IFthdHRyU3RyaW5nIGZv
bnRBdHRyaWJ1dGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLDEpXTsKICAgICBOU0ZvbnQgKmZvbnQg
PSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250QXR0cmlidXRlTmFtZV07CkBAIC02NTI4
LDcgKzY1MjgsNyBAQCAtIChOU1JlY3Qpc2VsZWN0aW9uUmVjdAogewogICAgIGlmICghW3NlbGYg
X2hhc1NlbGVjdGlvbl0pCiAgICAgICAgIHJldHVybiBOU1plcm9SZWN0OwotICAgIHJldHVybiBj
b3JlKFtzZWxmIF9mcmFtZV0pLT5zZWxlY3Rpb24oKS5ib3VuZHMoKTsKKyAgICByZXR1cm4gY29y
ZShbc2VsZiBfZnJhbWVdKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uQm91bmRzKCk7CiB9CiAKIC0g
KE5TQXJyYXkgKilzZWxlY3Rpb25UZXh0UmVjdHMKQEAgLTY1NzksNyArNjU3OSw3IEBAIC0gKE5T
UmVjdClzZWxlY3Rpb25JbWFnZVJlY3QKIHsKICAgICBpZiAoIVtzZWxmIF9oYXNTZWxlY3Rpb25d
KQogICAgICAgICByZXR1cm4gTlNaZXJvUmVjdDsKLSAgICByZXR1cm4gY29yZShbc2VsZiBfZnJh
bWVdKS0+c2VsZWN0aW9uKCkuYm91bmRzKCk7CisgICAgcmV0dXJuIGNvcmUoW3NlbGYgX2ZyYW1l
XSktPnNlbGVjdGlvbigpLnNlbGVjdGlvbkJvdW5kcygpOwogfQogCiAjaWYgIVBMQVRGT1JNKElP
UykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzczNSkKKysrIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAy
LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAg
dGhlIGludGVyZmFjZSBvZiBGcmFtZVNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
cmVhcyBLbGluZy4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
c2VsZWN0aW9uUmVjdCk6CisKIDIwMTQtMDItMDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIENoYW5nZSBUZXh0SXRlcmF0b3IgdG8gdXNlIFN0cmluZ1ZpZXcsIHBy
ZXBhcmluZyB0byB3ZWFuIGl0IGZyb20gZGVwcmVjYXRlZENoYXJhY3RlcnMKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCShyZXZpc2lvbiAxNjM3MjYpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYwNSw3ICszNjA1LDcgQEAgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZWxlYwogewogICAgIFdlYkNvcmU6OkZyYW1lJiBmcmFt
ZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKLSAg
ICBJbnRSZWN0IGlyID0gZW5jbG9zaW5nSW50UmVjdChmcmFtZS5zZWxlY3Rpb24oKS5ib3VuZHMo
KSk7CisgICAgSW50UmVjdCBpciA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWUuc2VsZWN0aW9uKCku
c2VsZWN0aW9uQm91bmRzKCkpOwogICAgIGlyID0gZnJhbWUudmlldygpLT5jb252ZXJ0VG9Db250
YWluaW5nV2luZG93KGlyKTsKICAgICBpci5tb3ZlKC1mcmFtZS52aWV3KCktPnNjcm9sbE9mZnNl
dCgpLndpZHRoKCksIC1mcmFtZS52aWV3KCktPnNjcm9sbE9mZnNldCgpLmhlaWdodCgpKTsKICAg
ICByYy0+bGVmdCA9IGlyLngoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>