<?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>70958</bug_id>
          
          <creation_ts>2011-10-26 12:52:41 -0700</creation_ts>
          <short_desc>De-virtualize JSCell::toThisObject</short_desc>
          <delta_ts>2011-10-27 10:01:59 -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>JavaScriptCore</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>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491109</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-26 12:52:41 -0700</bug_when>
    <thetext>This should be the last virtual method (other than the destructor) in JSCell.  I&apos;m simply going to add it to the MethodTable.  Since it is a relatively minor addition to the MethodTable compared to past additions, I&apos;ll just wrap all of the usual stages into a single patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491177</commentid>
    <comment_count>1</comment_count>
      <attachid>112592</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-26 14:20:26 -0700</bug_when>
    <thetext>Created attachment 112592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491182</commentid>
    <comment_count>2</comment_count>
      <attachid>112592</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-26 14:33:13 -0700</bug_when>
    <thetext>Comment on attachment 112592
Patch

Attachment 112592 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10211783</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491191</commentid>
    <comment_count>3</comment_count>
      <attachid>112597</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-26 14:40:48 -0700</bug_when>
    <thetext>Created attachment 112597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491227</commentid>
    <comment_count>4</comment_count>
      <attachid>112597</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-26 15:34:41 -0700</bug_when>
    <thetext>Comment on attachment 112597
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491653</commentid>
    <comment_count>5</comment_count>
      <attachid>112597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 10:01:55 -0700</bug_when>
    <thetext>Comment on attachment 112597
Patch

Clearing flags on attachment: 112597

Committed r98593: &lt;http://trac.webkit.org/changeset/98593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491654</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 10:01:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112592</attachid>
            <date>2011-10-26 14:20:26 -0700</date>
            <delta_ts>2011-10-26 14:40:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70958-20111026142025.patch</filename>
            <type>text/plain</type>
            <size>25088</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1MDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGYx
ZGYyOGI0M2MwODFlNWVmNzFhOTE2MmUwMjAzOTM0ZmViNDlmN2EuLmIwNmI3MjZkZjIyZGQwYzZi
NGQ2ZmJjMTE5YjI3Njk5ODgxNzE4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDQxIEBACiAyMDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnRvVGhpc09iamVjdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0ZWQgYWxs
IGluc3RhbmNlcyBvZiB0b1RoaXNPYmplY3QgdG8gc3RhdGljIGZ1bmN0aW9ucywgCisgICAgICAg
IGFkZGVkIHRvVGhpc09iamVjdCB0byB0aGUgTWV0aG9kVGFibGUsIGFuZCByZXBsYWNlZCBhbGwg
Y2FsbCBzaXRlcworICAgICAgICB3aXRoIGEgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1l
dGhvZFRhYmxlLgorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogcnVudGltZS9DbGFzc0lu
Zm8uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6
OkpTQWN0aXZhdGlvbjo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZh
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
ZWxsOjp0b1RoaXNPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXQpOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvVGhpc09iamVjdCk6CisgICAg
ICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNT
dGF0aWNTY29wZU9iamVjdDo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNTdHJpbmc6OnRvVGhpc09iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU1N0
cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwOgorICAg
ICAgICAoSlNDOjpTdHJpY3RFdmFsQWN0aXZhdGlvbjo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAg
KiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6CisKKzIwMTEtMTAtMjYgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA3NDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBmNWUxY2IwZWIzMDY3OTQ4ZjM3NTNi
MjBkN2Q4MjVmMmRmZGQ5YjkuLjY2Y2EwOGM3YWE3ZDhkODAwN2EwYjRmYjkyZDhhODUxNmVhYmYx
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAxMS0xMC0yNiAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCisgICAgICAgIERlLXZpcnR1YWxpemUgSlND
ZWxsOjp0b1RoaXNPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwOTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIENvbnZlcnRlZCBhbGwgaW5zdGFuY2Vz
IG9mIHRvVGhpc09iamVjdCB0byBzdGF0aWMgZnVuY3Rpb25zLCAKKyAgICAgICAgYWRkZWQgdG9U
aGlzT2JqZWN0IHRvIHRoZSBNZXRob2RUYWJsZSwgYW5kIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVz
CisgICAgICAgIHdpdGggYSBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjp0b1RoaXNPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9OUE5fSW52
b2tlKToKKworMjAxMS0xMC0yNiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUu
Y29tPgorCiAgICAgICAgIFJlbW92ZSBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc0MQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNTI2M2ZkMDRkMjc4NzY5OTI4MTUxNTAxMmU3YzZiZDBhMGYzNmY5ZC4uZWRi
ODg5N2UwNGNhNGJiNWIyOWIwMmNlMDZhZGNjOTA1YmZjMWJmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnRvVGhpc09iamVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0
ZWQgYWxsIGluc3RhbmNlcyBvZiB0b1RoaXNPYmplY3QgdG8gc3RhdGljIGZ1bmN0aW9ucywgCisg
ICAgICAgIGFkZGVkIHRvVGhpc09iamVjdCB0byB0aGUgTWV0aG9kVGFibGUsIGFuZCByZXBsYWNl
ZCBhbGwgY2FsbCBzaXRlcworICAgICAgICB3aXRoIGEgY29ycmVzcG9uZGluZyBsb29rdXAgaW4g
dGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHk6Omludm9rZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eTo6aW52b2tlRGVmYXVsdCk6CisKIDIwMTEtMTAtMjUgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGVsZXRlUHJvcGVydHlW
aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWU1ZTc5YTMyZTZhYjUwYmQyMmVkOGFkYjc4M2RmNTQyYWM1
MDU3OS4uOTViYjU0ZDg4MDhkYmZlZDE5ZTM2OTE2ZGY1ZDJmMTZjMjkwMTI3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDE5IEBACiAyMDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnRvVGhpc09i
amVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5
NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252
ZXJ0ZWQgYWxsIGluc3RhbmNlcyBvZiB0b1RoaXNPYmplY3QgdG8gc3RhdGljIGZ1bmN0aW9ucywg
CisgICAgICAgIGFkZGVkIHRvVGhpc09iamVjdCB0byB0aGUgTWV0aG9kVGFibGUsIGFuZCByZXBs
YWNlZCBhbGwgY2FsbCBzaXRlcworICAgICAgICB3aXRoIGEgY29ycmVzcG9uZGluZyBsb29rdXAg
aW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QSlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjppbnZva2Up
OgorCisyMDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+
CisKICAgICAgICAgUmVtb3ZlIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQxCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAppbmRleCBiNTIzZTBlZWY4ZTMyMTkxYjcx
MGNiYjcwMzBjOWMxNzM4NWIwZDU4Li43MWNiMWFiNzQ4Zjk1OTA4NTVkZmEwODRkMTVkZTIzYTQ3
ZGYxZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJl
Zi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCkBA
IC0xNjMsNyArMTYzLDcgQEAgSlNPYmplY3RSZWYgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KEpT
Q29udGV4dFJlZiBjdHgpCiAgICAgQVBJRW50cnlTaGltIGVudHJ5U2hpbShleGVjKTsKIAogICAg
IC8vIEl0IGlzIG5lY2Vzc2FyeSB0byBjYWxsIHRvVGhpc09iamVjdCB0byBnZXQgdGhlIHdyYXBw
ZXIgb2JqZWN0IHdoZW4gdXNlZCB3aXRoIFdlYkNvcmUuCi0gICAgcmV0dXJuIHRvUmVmKGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+dG9UaGlzT2JqZWN0KGV4ZWMpKTsKKyAgICByZXR1cm4g
dG9SZWYoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5tZXRob2RUYWJsZSgpLT50b1RoaXNP
YmplY3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjKSk7CiB9CiAKIEpTQ29udGV4
dEdyb3VwUmVmIEpTQ29udGV4dEdldEdyb3VwKEpTQ29udGV4dFJlZiBjdHgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBlZDdlMjE3ZWY0YmUwY2E2ZTVjMzE5
YjljZWQ2MjBmNDFiNTJhMGIwLi45ZGIzNWVmNGYzOWE2OWQ5MDUzNzc1N2E4MGE2ZGJhMTcyNzIy
MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTMwNSw2
ICszMDUsNyBAQCBfX1pOM0pTQzhKU09iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRVBTMF9qCiBfX1pOM0pTQzhKU09iamVjdDEyZGVmaW5lU2V0dGVy
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBTMF9qCiBfX1pOM0pTQzhKU09iamVj
dDEybG9va3VwR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNK
U0M4SlNPYmplY3QxMmxvb2t1cFNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckUKK19fWk4zSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM0pTQzhKU09iamVjdDEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNf
MTFTbG90VmlzaXRvckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfNkpT
Q2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0
MTV1bndyYXBwZWRPYmplY3RFdgpAQCAtNTUwLDcgKzU1MSw2IEBAIF9fWk5LM0pTQzE4UHJvcGVy
dHlEZXNjcmlwdG9yNnNldHRlckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0
YWJsZUV2CiBfX1pOSzNKU0MxOVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTksz
SlNDNkpTQ2VsbDExdG9QcmltaXRpdmVFUE5TXzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmlt
aXRpdmVUeXBlRQotX19aTkszSlNDNkpTQ2VsbDEydG9UaGlzT2JqZWN0RVBOU185RXhlY1N0YXRl
RQogX19aTkszSlNDNkpTQ2VsbDh0b051bWJlckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZK
U0NlbGw4dG9PYmplY3RFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pO
SzNKU0M2SlNDZWxsOHRvU3RyaW5nRVBOU185RXhlY1N0YXRlRQpAQCAtNTY5LDcgKzU2OSw2IEBA
IF9fWk5LM0pTQzdVU3RyaW5nNWFzY2lpRXYKIF9fWk5LM0pTQzhKU09iamVjdDExaGFzUHJvcGVy
dHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOSzNKU0M4SlNPYmplY3Qx
MWhhc1Byb3BlcnR5RVBOU185RXhlY1N0YXRlRWoKIF9fWk5LM0pTQzhKU09iamVjdDEyZGVmYXVs
dFZhbHVlRVBOU185RXhlY1N0YXRlRU5TXzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKLV9fWk5L
M0pTQzhKU09iamVjdDEydG9UaGlzT2JqZWN0RVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDOEpT
T2JqZWN0OHRvTnVtYmVyRVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDOEpTT2JqZWN0OHRvU3Ry
aW5nRVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDOEpTT2JqZWN0OWNsYXNzTmFtZUV2CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4
IDAyMGJmZjgyYWVmNzY1NjFhYmRiMjc3OGY1NWZhNTM5MThjZmU4NTguLjQxODBmOGQyNzdhNGIy
MjI0MzY1ODMyYTMyZmExOWRmNzNlYzE5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC0zNDIsOSArMzQyLDYgQEAgRVhQT1JU
UwogICAgID90b1N0cmluZ0BKU09iamVjdEBKU0NAQFFCRT9BVlVTdHJpbmdAMkBQQVZFeGVjU3Rh
dGVAMkBAWgogICAgID90b1N0cmluZ0RlY2ltYWxARGVjaW1hbE51bWJlckBXVEZAQFFCRUlQQV9X
SUBaCiAgICAgP3RvU3RyaW5nRXhwb25lbnRpYWxARGVjaW1hbE51bWJlckBXVEZAQFFCRUlQQV9X
SUBaCi0gICAgP3RvVGhpc09iamVjdEBKU0NlbGxASlNDQEBVQkVQQVZKU09iamVjdEAyQFBBVkV4
ZWNTdGF0ZUAyQEBaCi0gICAgP3RvVGhpc09iamVjdEBKU09iamVjdEBKU0NAQFVCRVBBVjEyQFBB
VkV4ZWNTdGF0ZUAyQEBaCi0gICAgP3RvVGhpc09iamVjdEBKU1N0cmluZ0BKU0NAQEVCRVBBVkpT
T2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dG9UaGlzT2JqZWN0U2xvd0Nhc2VASlNW
YWx1ZUBKU0NAQEFCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dG9VSW50
MzJASWRlbnRpZmllckBKU0NAQFNBSUFCVlVTdHJpbmdAMkBBQV9OQFoKICAgICA/dHJ5RmFzdENh
bGxvY0BXVEZAQFlBP0FVVHJ5TWFsbG9jUmV0dXJuVmFsdWVAMUBJSUBaCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCmluZGV4IGJmZmZkNzhiNTc3OTVjYTM3YTU1Nzlj
OTU3NmVhZjIwZWRjYjFkZjkuLjk1ZWNmNDY0ZmZhNjk1NDE5MWMwNmMyMzA5ZWU1ZWRiYjY2ZTcw
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC01OCw2
ICs1OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgYm9vbCAoKkdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhGdW5jdGlvblB0cikoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5z
aWduZWQsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
RnVuY3Rpb25QdHIgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleDsKKworICAgICAgICB0eXBlZGVm
IEpTT2JqZWN0KiAoKlRvVGhpc09iamVjdEZ1bmN0aW9uUHRyKShKU0NlbGwqLCBFeGVjU3RhdGUq
KTsKKyAgICAgICAgVG9UaGlzT2JqZWN0RnVuY3Rpb25QdHIgdG9UaGlzT2JqZWN0OwogICAgIH07
CiAKICNkZWZpbmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05hbWUpIHsgXApAQCAtNzAsNiAr
NzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4LCBcCiAgICAgICAgICZDbGFzc05hbWU6OmdldE93blByb3BlcnR5U2xvdCwgXAog
ICAgICAgICAmQ2xhc3NOYW1lOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4LCBcCisgICAgICAg
ICZDbGFzc05hbWU6OnRvVGhpc09iamVjdCwgXAogICAgIH0sIFwKICAgICBzaXplb2YoQ2xhc3NO
YW1lKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNw
cAppbmRleCAwNTU1ZGMyYTcwNzZmZGQyMjk5YzMwMzNkZmZiYmZlMGU0NmUwZDI3Li43ZjRlZDli
MWE1YzMyYzdlNzBlODdiZmExMTZhNzc5MDg5YmUxM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29s
IEpTQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxs
LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi1KU09iamVjdCogSlNBY3RpdmF0aW9uOjp0b1Ro
aXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAorSlNPYmplY3QqIEpTQWN0aXZhdGlvbjo6
dG9UaGlzT2JqZWN0KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gZXhl
Yy0+Z2xvYmFsVGhpc1ZhbHVlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCmluZGV4IDBjMmI4NTUxMjA3MjI3ZDY3OGI2ODljMzM3ODYyYmViMWVl
MmJhNDguLjM5NzdiNmZjYmJkMjMxZTNhZGVjMzM4Nzc4MWRjNzdmZmZhYzVjMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02OSw3ICs2OSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0
ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMpOwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHZpcnR1
YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgc3Rh
dGljIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CiAKICAgICAg
ICAgdm9pZCBjb3B5UmVnaXN0ZXJzKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDQ5NGExMWQ4OWJlMzU1YjQwODJl
ZDAwYTU3ZGM3ZjhlZjU5MDE2MGUuLjExYWVjMzRiMDQ3NDJiZGRmMGY5MTU3MjZlZjc3Y2JkODNk
NzU0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTEy
LDkgKzExMiw5IEBAIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50CiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0LCBleGVj
LCBpZGVudGlmaWVyKTsKIH0KIAotSlNPYmplY3QqIEpTQ2VsbDo6dG9UaGlzT2JqZWN0KEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU0NlbGw6OnRvVGhpc09iamVjdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4gY2VsbC0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKIH0KIAogSlNWYWx1ZSBKU0NlbGw6OnRv
UHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJy
ZWRUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAy
YTc5MzkwYmIxMjRjOTBkNGFmYTQ3MDllY2Q2OGQzNmIxOGUyOTA2Li40Y2ViNTQ2ODI0YmQ0MDkz
ZjY4NmNmOTIyYmIzNzFlNDJkNzdlNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaApAQCAtOTUsNyArOTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKLSAgICAg
ICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OworICAg
ICAgICBzdGF0aWMgSlNPYmplY3QqIHRvVGhpc09iamVjdChKU0NlbGwqLCBFeGVjU3RhdGUqKTsK
IAogICAgICAgICB2b2lkKiB2cHRyKCkgY29uc3QgeyBBU1NFUlQoIWlzWmFwcGVkKCkpOyByZXR1
cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCogY29uc3QqPih0aGlzKTsgfQogICAgICAgICB2b2lk
IHNldFZQdHIodm9pZCogdnB0cikgeyAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHRoaXMpID0g
dnB0cjsgQVNTRVJUKCFpc1phcHBlZCgpKTsgfQpAQCAtMjk0LDExICsyOTQsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
CiAgICAgfQogCi0gICAgaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b1RoaXNPYmplY3QoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXND
ZWxsKCktPnRvVGhpc09iamVjdChleGVjKSA6IHRvVGhpc09iamVjdFNsb3dDYXNlKGV4ZWMpOwot
ICAgIH0KLQogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkKiBhbGxvY2F0ZUNlbGwoSGVh
cCYgaGVhcCkKICAgICB7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggYmM2N2FlMWE1ODQ2NjI3ODFmNjBi
YjU2NzdhOWJiNDNiYThjYjMxMS4uZjVjYzhkM2QxZmNiYTVjZjE5OWFmZGUzNmQzZjJiOGQ1NTRl
MDI2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAt
MTczLDcgKzE3Myw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAgICAgICAgICAgICAg
YXJncy5hcHBlbmQodmFsdWUpOwogCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBXZWJD
b3JlJ3MgZ2xvYmFsIG9iamVjdCB0aGVuIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZSB0aGUgc2hlbGwu
Ci0gICAgICAgICAgICAgICAgY2FsbChleGVjLCBzZXR0ZXJGdW5jLCBjYWxsVHlwZSwgY2FsbERh
dGEsIHRoaXNPYmplY3QtPnRvVGhpc09iamVjdChleGVjKSwgYXJncyk7CisgICAgICAgICAgICAg
ICAgY2FsbChleGVjLCBzZXR0ZXJGdW5jLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNPYmplY3Qt
Pm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdCh0aGlzT2JqZWN0LCBleGVjKSwgYXJncyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC01NTcsOSArNTU3LDkg
QEAgVVN0cmluZyBKU09iamVjdDo6dG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAg
IHJldHVybiBwcmltaXRpdmUudG9TdHJpbmcoZXhlYyk7CiB9CiAKLUpTT2JqZWN0KiBKU09iamVj
dDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0CitKU09iamVjdCogSlNPYmplY3Q6OnRv
VGhpc09iamVjdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSopCiB7Ci0gICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8SlNPYmplY3QqPih0aGlzKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3Qq
PihjZWxsKTsKIH0KIAogSlNPYmplY3QqIEpTT2JqZWN0Ojp1bndyYXBwZWRPYmplY3QoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggN2ZkYTg2YjkzODRlOGRi
Y2QwNDljOGQzOGYwMzU2NjE0MTBjNmY1YS4uOTE2OWNmMThlODdjOWY2YjdlZmIwYTBjZmM1ZWZm
NDg0NWNjNWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBA
IC0xMzUsNyArMTM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGRvdWJsZSB0b051bWJl
cihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUq
KSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBKU09iamVjdCogdG9UaGlzT2JqZWN0KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSopOwogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB1bndyYXBwZWRPYmpl
Y3QoKTsKIAogICAgICAgICBib29sIGdldFByb3BlcnR5U3BlY2lmaWNWYWx1ZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiYgc3BlY2lmaWNG
dW5jdGlvbikgY29uc3Q7CkBAIC00OTksNiArNDk5LDExIEBAIGlubGluZSBib29sIEpTVmFsdWU6
OmluaGVyaXRzKGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKSBjb25zdAogICAgIHJldHVybiBp
c0NlbGwoKSAmJiBhc0NlbGwoKS0+aW5oZXJpdHMoY2xhc3NJbmZvKTsKIH0KIAoraW5saW5lIEpT
T2JqZWN0KiBKU1ZhbHVlOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAorewor
ICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmpl
Y3QoYXNDZWxsKCksIGV4ZWMpIDogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoZXhlYyk7Cit9CisKIEFM
V0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgaWYgKFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uID0g
Z2V0RGlyZWN0TG9jYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwCmluZGV4IDM2MGE2YmUwYmFkMTRkNjExYzliM2RhYmY0OTNiMWM4YmI3NzNiNmEuLjA2
Zjg2NTU1ZjgwODJkZWFlNzhlYzEwZGY3ZGVkMTI3YThkMzM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCkBAIC00
NCw3ICs0NCw3IEBAIHZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX3JlZ2lzdGVyU3RvcmUpOwogfQogCi1KU09iamVjdCogSlNTdGF0aWNTY29wZU9i
amVjdDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU1N0
YXRpY1Njb3BlT2JqZWN0Ojp0b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIHJldHVybiBleGVjLT5nbG9iYWxUaGlzVmFsdWUoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCA0ZDJh
ODY5MmQzYmI3OGVhM2U3YzA4MWM5ZmRlOGI3ODEyN2JlMTc0Li4zYzU5NDJhNTRmODBmMDkwYTM1
YjBjZTUwNTk2NDU2YWUwOTZlNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBKU0N7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOwogICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHlu
YW1pY0NoZWNrcykgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVj
dChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgc3RhdGljIEpTT2JqZWN0KiB0b1RoaXNPYmpl
Y3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCA1M2UyZDNiMzQ1ZjE3MGZjZWZk
OTRhYjQyYmZjMWYzZTFmZjlkZWY5Li5mNTcwNjM0ODI2NzdjYTNmMmIyNmMwYWIxZDFmOWVkOWU5
MDFjNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBA
IC0xOTYsOSArMTk2LDkgQEAgSlNPYmplY3QqIEpTU3RyaW5nOjp0b09iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnMKICAgICByZXR1cm4gU3Ry
aW5nT2JqZWN0OjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBjb25zdF9jYXN0PEpTU3RyaW5n
Kj4odGhpcykpOwogfQogCi1KU09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CitKU09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVh
dGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBjb25zdF9jYXN0PEpTU3RyaW5n
Kj4odGhpcykpOworICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oY2VsbCkpOwogfQog
CiBib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggYjZmM2Ri
OWQ0YzI4YTMxNWYyYTYwODZiMWYxMDUyZDAzNDRhOGRlNC4uMDk3YjQ5MTExNjI5NTQwODU1Y2Y5
YTllN2JiMzcwNTc5NjA5ZjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
cmluZy5oCkBAIC0yNDcsNyArMjQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQg
cmVzb2x2ZVJvcGVTbG93Q2FzZShFeGVjU3RhdGUqLCBVQ2hhciopIGNvbnN0OwogICAgICAgICB2
b2lkIG91dE9mTWVtb3J5KEV4ZWNTdGF0ZSopIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgSlNP
YmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgc3RhdGljIEpT
T2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CiAKICAgICAgICAgLy8g
QWN0dWFsbHkgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90IChzZWUgSlND
ZWxsKS4KICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0
aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0
aXZhdGlvbi5jcHAKaW5kZXggY2U5ZGU1YTZmZTU4NTU0ZjE4MmJiOGI3MzdjNGUzODNjZGZkYWIz
Zi4uMjEyODNkYmQyMjQyNWEyMDc4MGIzM2ExYTMxZTc3YjI4M2IyNmZhZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cApAQCAtNDAsNyArNDAsNyBAQCBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQcm9w
ZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotSlNPYmplY3QqIFN0cmljdEV2YWxBY3RpdmF0aW9uOjp0b1RoaXNPYmplY3Qo
RXhlY1N0YXRlKiBleGVjKSBjb25zdAorSlNPYmplY3QqIFN0cmljdEV2YWxBY3RpdmF0aW9uOjp0
b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBleGVj
LT5nbG9iYWxUaGlzVmFsdWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDA5NzQ0NjhjNjRjYWU4YjQ3ZjJl
NDY3OWNlZWJjZWIzZmQxN2NmMTAuLmJiNzAzNTJkODIyZGQwZWU0YzE2MjY2ZWQ2YjRjMjc1YzJi
NDE3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2
YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0
RXZhbEFjdGl2YXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYpOwotICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKKyAgICBzdGF0aWMgSlNPYmplY3QqIHRvVGhpc09iamVjdChKU0NlbGwqLCBFeGVj
U3RhdGUqKTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCmluZGV4IGQ1MGEwYTI2ZDRmZTgyMTFiNjliMzhhMjBhNTI5NjRiYjNiNjFm
MDMuLjJkMzE1MjA2NzA5NDhlNmJjN2VjOGI3M2ZiMjkxMzY3Y2FiN2UxYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMTQ1LDkgKzE0
NSw5IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjp3aWxsUmVtb3ZlRnJvbVdpbmRvd1NoZWxsKCkK
ICAgICBzZXRDdXJyZW50RXZlbnQoMCk7CiB9CiAKLUpTT2JqZWN0KiBKU0RPTVdpbmRvd0Jhc2U6
OnRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdAorSlNPYmplY3QqIEpTRE9NV2luZG93QmFz
ZTo6dG9UaGlzT2JqZWN0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKikKIHsKLSAgICByZXR1cm4g
c2hlbGwoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oY2VsbCkt
PnNoZWxsKCk7CiB9CiAKIEpTRE9NV2luZG93U2hlbGwqIEpTRE9NV2luZG93QmFzZTo6c2hlbGwo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApp
bmRleCA5ZTlhNjdiZjQzMzBmMWIyZDdkYzMxZmYwNDBiOWM0N2ZkYjljZmM1Li5jNTVlMjNjMDMz
NTQzMDA2ZWYxYzc3NWVlNmVjY2M0MmRjMjQwOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIC8vIERvbid0IGNhbGwgdGhpcyB2ZXJzaW9uIG9mIGFsbG93c0FjY2Vz
c0Zyb20gLS0gaXQncyBhIHNsaWdodGx5IGluY29ycmVjdCBpbXBsZW1lbnRhdGlvbiB1c2VkIG9u
bHkgYnkgV2ViU2NyaXB0T2JqZWN0CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NBY2Nlc3NG
cm9tKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICAgICAgCi0gICAgICAg
IHZpcnR1YWwgSlNDOjpKU09iamVjdCogdG9UaGlzT2JqZWN0KEpTQzo6RXhlY1N0YXRlKikgY29u
c3Q7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSopOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCgp
IGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBKU0M6OkpTR2xvYmFsRGF0YSogY29tbW9uSlNHbG9i
YWxEYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9y
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5j
cHAKaW5kZXggMDFlYzZiNzNmODYwZTNiNDIzZDBmNTc0NjNiZWEzNzIyMGE0OWFiYS4uNTliM2Zm
MzdjNjdlYzk2NTVhOWQ2NTRjOTBlODQyYjljYzhmN2ZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEpT
RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LAogICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKTsKICAgICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3Bl
IGdsb2JhbE9iamVjdFNjb3BlKGdsb2JhbERhdGEsIGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9i
amVjdCA/IGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CiAK
LSAgICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChl
eGVjKTsKKyAgICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPm1ldGhvZFRh
YmxlKCktPnRvVGhpc09iamVjdChnbG9iYWxPYmplY3QsIGV4ZWMpOwogCiAgICAgICAgIGdsb2Jh
bERhdGEudGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1
ZSA9IEpTQzo6Y2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNW
YWx1ZSwgYXJncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAppbmRleCA1OTIy
MTMzYzQwNjkwMDVhNmUzZTA3NGU5YTgxMTg4MjliOGExM2JjLi4wYmMxODdiMmU1YTJjNGQzNzA0
ZjJiYmJkMmFlNWIxNzBlMzM0ODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
TlBfanNvYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5j
cHAKQEAgLTI0MSw3ICsyNDEsNyBAQCBib29sIF9OUE5fSW52b2tlKE5QUCBucHAsIE5QT2JqZWN0
KiBvLCBOUElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJpYW50KgogICAgICAgICBn
ZXRMaXN0RnJvbVZhcmlhbnRBcmdzKGV4ZWMsIGFyZ3MsIGFyZ0NvdW50LCByb290T2JqZWN0LCBh
cmdMaXN0KTsKICAgICAgICAgUmVmUHRyPEpTR2xvYmFsRGF0YT4gZ2xvYmFsRGF0YSgmZXhlYy0+
Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIuc3RhcnQo
KTsKLSAgICAgICAgSlNWYWx1ZSByZXN1bHRWID0gSlNDOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBj
YWxsVHlwZSwgY2FsbERhdGEsIG9iai0+aW1wLT50b1RoaXNPYmplY3QoZXhlYyksIGFyZ0xpc3Qp
OworICAgICAgICBKU1ZhbHVlIHJlc3VsdFYgPSBKU0M6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNh
bGxUeXBlLCBjYWxsRGF0YSwgb2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChv
YmotPmltcCwgZXhlYyksIGFyZ0xpc3QpOwogICAgICAgICBnbG9iYWxEYXRhLT50aW1lb3V0Q2hl
Y2tlci5zdG9wKCk7CiAKICAgICAgICAgLy8gQ29udmVydCBhbmQgcmV0dXJuIHRoZSByZXN1bHQg
b2YgdGhlIGZ1bmN0aW9uIGNhbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXgg
ZTgxMDc4ZWM0NDc1MThjNjljYzdlYmVlZTkwODBlNDJjYTg2OWM1Zi4uOTM3NDMxYzE5NjMyM2Qx
MTY4ZWJmODJkM2E4MmY0YWJlODUxOTE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5t
bQpAQCAtOTE2LDcgKzkxNiw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpp
bnZva2UodWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0IElkZW50aWZpZXImIG1lCiAKICAgICBSZWZQ
dHI8SlNHbG9iYWxEYXRhPiBnbG9iYWxEYXRhID0gcGx1Z2luV29ybGQoKS0+Z2xvYmFsRGF0YSgp
OwogICAgIGdsb2JhbERhdGEtPnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7Ci0gICAgSlNWYWx1ZSB2
YWx1ZSA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgb2JqZWN0LT50
b1RoaXNPYmplY3QoZXhlYyksIGFyZ0xpc3QpOworICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsKGV4
ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+
dG9UaGlzT2JqZWN0KG9iamVjdCwgZXhlYyksIGFyZ0xpc3QpOwogICAgIGdsb2JhbERhdGEtPnRp
bWVvdXRDaGVja2VyLnN0b3AoKTsKICAgICAgICAgCiAgICAgbWFyc2hhbFZhbHVlKGV4ZWMsIHZh
bHVlLCByZXN1bHREYXRhLCByZXN1bHRMZW5ndGgpOwpAQCAtOTUxLDcgKzk1MSw3IEBAIGJvb2wg
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjppbnZva2VEZWZhdWx0KHVpbnQzMl90IG9iamVj
dElELCBkYXRhX3QgYXJndW1lCiAKICAgICBSZWZQdHI8SlNHbG9iYWxEYXRhPiBnbG9iYWxEYXRh
ID0gcGx1Z2luV29ybGQoKS0+Z2xvYmFsRGF0YSgpOwogICAgIGdsb2JhbERhdGEtPnRpbWVvdXRD
aGVja2VyLnN0YXJ0KCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGNhbGwoZXhlYywgb2JqZWN0LCBj
YWxsVHlwZSwgY2FsbERhdGEsIG9iamVjdC0+dG9UaGlzT2JqZWN0KGV4ZWMpLCBhcmdMaXN0KTsK
KyAgICBKU1ZhbHVlIHZhbHVlID0gY2FsbChleGVjLCBvYmplY3QsIGNhbGxUeXBlLCBjYWxsRGF0
YSwgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3Qob2JqZWN0LCBleGVjKSwgYXJn
TGlzdCk7CiAgICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIuc3RvcCgpOwogICAgIAogICAg
IG1hcnNoYWxWYWx1ZShleGVjLCB2YWx1ZSwgcmVzdWx0RGF0YSwgcmVzdWx0TGVuZ3RoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpT
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
UEpTT2JqZWN0LmNwcAppbmRleCBjNjkzNmRjNDYyZjY5YTBkYjYxYmJmMGMyMGI3ZTJiNGRhYWVi
ZGM1Li5iYThmYTNkY2JhMjU4YmIxYzNmMzI0ZDk1Nzk2MzY5MWUxOWFkZDVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNP
YmplY3QuY3BwCkBAIC0yOTEsNyArMjkxLDcgQEAgYm9vbCBOUEpTT2JqZWN0OjppbnZva2UoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGYKICAg
ICAgICAgYXJndW1lbnRMaXN0LmFwcGVuZChtX29iamVjdE1hcC0+Y29udmVydE5QVmFyaWFudFRv
SlNWYWx1ZShleGVjLCBnbG9iYWxPYmplY3QsIGFyZ3VtZW50c1tpXSkpOwogCiAgICAgZXhlYy0+
Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2pzT2JqZWN0
LT50b1RoaXNPYmplY3QoZXhlYyksIGFyZ3VtZW50TGlzdCk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2pzT2JqZWN0
LT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3QobV9qc09iamVjdC5nZXQoKSwgZXhlYyksIGFy
Z3VtZW50TGlzdCk7CiAgICAgZXhlYy0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0b3Ao
KTsKIAogICAgIC8vIENvbnZlcnQgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlv
biBjYWxsLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112597</attachid>
            <date>2011-10-26 14:40:48 -0700</date>
            <delta_ts>2011-10-27 10:01:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70958-20111026144046.patch</filename>
            <type>text/plain</type>
            <size>25882</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1MDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGYx
ZGYyOGI0M2MwODFlNWVmNzFhOTE2MmUwMjAzOTM0ZmViNDlmN2EuLmIwNmI3MjZkZjIyZGQwYzZi
NGQ2ZmJjMTE5YjI3Njk5ODgxNzE4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDQxIEBACiAyMDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnRvVGhpc09iamVjdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0ZWQgYWxs
IGluc3RhbmNlcyBvZiB0b1RoaXNPYmplY3QgdG8gc3RhdGljIGZ1bmN0aW9ucywgCisgICAgICAg
IGFkZGVkIHRvVGhpc09iamVjdCB0byB0aGUgTWV0aG9kVGFibGUsIGFuZCByZXBsYWNlZCBhbGwg
Y2FsbCBzaXRlcworICAgICAgICB3aXRoIGEgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1l
dGhvZFRhYmxlLgorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogcnVudGltZS9DbGFzc0lu
Zm8uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6
OkpTQWN0aXZhdGlvbjo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZh
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
ZWxsOjp0b1RoaXNPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXQpOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvVGhpc09iamVjdCk6CisgICAg
ICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNT
dGF0aWNTY29wZU9iamVjdDo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNTdHJpbmc6OnRvVGhpc09iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU1N0
cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwOgorICAg
ICAgICAoSlNDOjpTdHJpY3RFdmFsQWN0aXZhdGlvbjo6dG9UaGlzT2JqZWN0KToKKyAgICAgICAg
KiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6CisKKzIwMTEtMTAtMjYgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgZ2V0T3du
UHJvcGVydHlTbG90VmlydHVhbAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA3NDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBmNWUxY2IwZWIzMDY3OTQ4ZjM3NTNi
MjBkN2Q4MjVmMmRmZGQ5YjkuLjkwMWIzYzI0OTU3ZDY5MWE0M2NhMGRkY2M0ZWFjZTgyZDU3ZTUy
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMS0xMC0yNiAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCisgICAgICAgIERlLXZpcnR1YWxpemUgSlND
ZWxsOjp0b1RoaXNPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwOTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIENvbnZlcnRlZCBhbGwgaW5zdGFuY2Vz
IG9mIHRvVGhpc09iamVjdCB0byBzdGF0aWMgZnVuY3Rpb25zLCAKKyAgICAgICAgYWRkZWQgdG9U
aGlzT2JqZWN0IHRvIHRoZSBNZXRob2RUYWJsZSwgYW5kIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVz
CisgICAgICAgIHdpdGggYSBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjp0b1RoaXNPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9OUE5fSW52
b2tlKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpjYWxsKToKKworMjAxMS0xMC0y
NiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCiAgICAgICAgIFJl
bW92ZSBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc0MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTI2M2Zk
MDRkMjc4NzY5OTI4MTUxNTAxMmU3YzZiZDBhMGYzNmY5ZC4uZWRiODg5N2UwNGNhNGJiNWIyOWIw
MmNlMDZhZGNjOTA1YmZjMWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnRvVGhpc09iamVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0ZWQgYWxsIGluc3RhbmNlcyBv
ZiB0b1RoaXNPYmplY3QgdG8gc3RhdGljIGZ1bmN0aW9ucywgCisgICAgICAgIGFkZGVkIHRvVGhp
c09iamVjdCB0byB0aGUgTWV0aG9kVGFibGUsIGFuZCByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcwor
ICAgICAgICB3aXRoIGEgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgor
CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Omludm9rZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6aW52b2tlRGVm
YXVsdCk6CisKIDIwMTEtMTAtMjUgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgZGVsZXRlUHJvcGVydHlWaXJ0dWFsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNWU1ZTc5YTMyZTZhYjUwYmQyMmVkOGFkYjc4M2RmNTQyYWM1MDU3OS4uOTViYjU0ZDg4MDhk
YmZlZDE5ZTM2OTE2ZGY1ZDJmMTZjMjkwMTI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBA
CiAyMDExLTEwLTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAK
KyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnRvVGhpc09iamVjdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0ZWQgYWxsIGluc3RhbmNl
cyBvZiB0b1RoaXNPYmplY3QgdG8gc3RhdGljIGZ1bmN0aW9ucywgCisgICAgICAgIGFkZGVkIHRv
VGhpc09iamVjdCB0byB0aGUgTWV0aG9kVGFibGUsIGFuZCByZXBsYWNlZCBhbGwgY2FsbCBzaXRl
cworICAgICAgICB3aXRoIGEgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjppbnZva2UpOgorCisyMDExLTEwLTI2ICBN
YXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3Zl
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNzQxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
b250ZXh0UmVmLmNwcAppbmRleCBiNTIzZTBlZWY4ZTMyMTkxYjcxMGNiYjcwMzBjOWMxNzM4NWIw
ZDU4Li43MWNiMWFiNzQ4Zjk1OTA4NTVkZmEwODRkMTVkZTIzYTQ3ZGYxZTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAg
SlNPYmplY3RSZWYgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KEpTQ29udGV4dFJlZiBjdHgpCiAg
ICAgQVBJRW50cnlTaGltIGVudHJ5U2hpbShleGVjKTsKIAogICAgIC8vIEl0IGlzIG5lY2Vzc2Fy
eSB0byBjYWxsIHRvVGhpc09iamVjdCB0byBnZXQgdGhlIHdyYXBwZXIgb2JqZWN0IHdoZW4gdXNl
ZCB3aXRoIFdlYkNvcmUuCi0gICAgcmV0dXJuIHRvUmVmKGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+dG9UaGlzT2JqZWN0KGV4ZWMpKTsKKyAgICByZXR1cm4gdG9SZWYoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3QoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLCBleGVjKSk7CiB9CiAKIEpTQ29udGV4dEdyb3VwUmVmIEpTQ29udGV4
dEdldEdyb3VwKEpTQ29udGV4dFJlZiBjdHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cAppbmRleCBlZDdlMjE3ZWY0YmUwY2E2ZTVjMzE5YjljZWQ2MjBmNDFiNTJhMGIw
Li45ZGIzNWVmNGYzOWE2OWQ5MDUzNzc1N2E4MGE2ZGJhMTcyNzIyMjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTMwNSw2ICszMDUsNyBAQCBfX1pOM0pT
QzhKU09iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVBTMF9qCiBfX1pOM0pTQzhKU09iamVjdDEyZGVmaW5lU2V0dGVyRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVBTMF9qCiBfX1pOM0pTQzhKU09iamVjdDEybG9va3VwR2V0dGVyRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4SlNPYmplY3QxMmxvb2t1
cFNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKK19fWk4zSlNDOEpTT2Jq
ZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzhK
U09iamVjdDEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKIF9f
Wk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTV1bndyYXBwZWRPYmplY3RF
dgpAQCAtNTUwLDcgKzU1MSw2IEBAIF9fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yNnNldHRl
ckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0YWJsZUV2CiBfX1pOSzNKU0Mx
OVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTkszSlNDNkpTQ2VsbDExdG9Qcmlt
aXRpdmVFUE5TXzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRpdmVUeXBlRQotX19aTksz
SlNDNkpTQ2VsbDEydG9UaGlzT2JqZWN0RVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDNkpTQ2Vs
bDh0b051bWJlckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGw4dG9PYmplY3RFUE5T
XzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOSzNKU0M2SlNDZWxsOHRvU3Ry
aW5nRVBOU185RXhlY1N0YXRlRQpAQCAtNTY5LDcgKzU2OSw2IEBAIF9fWk5LM0pTQzdVU3RyaW5n
NWFzY2lpRXYKIF9fWk5LM0pTQzhKU09iamVjdDExaGFzUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFCiBfX1pOSzNKU0M4SlNPYmplY3QxMWhhc1Byb3BlcnR5RVBOU185
RXhlY1N0YXRlRWoKIF9fWk5LM0pTQzhKU09iamVjdDEyZGVmYXVsdFZhbHVlRVBOU185RXhlY1N0
YXRlRU5TXzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKLV9fWk5LM0pTQzhKU09iamVjdDEydG9U
aGlzT2JqZWN0RVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDOEpTT2JqZWN0OHRvTnVtYmVyRVBO
U185RXhlY1N0YXRlRQogX19aTkszSlNDOEpTT2JqZWN0OHRvU3RyaW5nRVBOU185RXhlY1N0YXRl
RQogX19aTkszSlNDOEpTT2JqZWN0OWNsYXNzTmFtZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDAyMGJmZjgyYWVmNzY1NjFh
YmRiMjc3OGY1NWZhNTM5MThjZmU4NTguLjQxODBmOGQyNzdhNGIyMjI0MzY1ODMyYTMyZmExOWRm
NzNlYzE5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC0zNDIsOSArMzQyLDYgQEAgRVhQT1JUUwogICAgID90b1N0cmluZ0BK
U09iamVjdEBKU0NAQFFCRT9BVlVTdHJpbmdAMkBQQVZFeGVjU3RhdGVAMkBAWgogICAgID90b1N0
cmluZ0RlY2ltYWxARGVjaW1hbE51bWJlckBXVEZAQFFCRUlQQV9XSUBaCiAgICAgP3RvU3RyaW5n
RXhwb25lbnRpYWxARGVjaW1hbE51bWJlckBXVEZAQFFCRUlQQV9XSUBaCi0gICAgP3RvVGhpc09i
amVjdEBKU0NlbGxASlNDQEBVQkVQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEBaCi0gICAg
P3RvVGhpc09iamVjdEBKU09iamVjdEBKU0NAQFVCRVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQEBaCi0g
ICAgP3RvVGhpc09iamVjdEBKU1N0cmluZ0BKU0NAQEVCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0
YXRlQDJAQFoKICAgICA/dG9UaGlzT2JqZWN0U2xvd0Nhc2VASlNWYWx1ZUBKU0NAQEFCRVBBVkpT
T2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dG9VSW50MzJASWRlbnRpZmllckBKU0NA
QFNBSUFCVlVTdHJpbmdAMkBBQV9OQFoKICAgICA/dHJ5RmFzdENhbGxvY0BXVEZAQFlBP0FVVHJ5
TWFsbG9jUmV0dXJuVmFsdWVAMUBJSUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Ns
YXNzSW5mby5oCmluZGV4IGJmZmZkNzhiNTc3OTVjYTM3YTU1NzljOTU3NmVhZjIwZWRjYjFkZjku
Ljk1ZWNmNDY0ZmZhNjk1NDE5MWMwNmMyMzA5ZWU1ZWRiYjY2ZTcwZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC01OCw2ICs1OCw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgYm9vbCAoKkdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhGdW5jdGlvblB0cikoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RnVuY3Rpb25QdHIgZ2V0T3du
UHJvcGVydHlTbG90QnlJbmRleDsKKworICAgICAgICB0eXBlZGVmIEpTT2JqZWN0KiAoKlRvVGhp
c09iamVjdEZ1bmN0aW9uUHRyKShKU0NlbGwqLCBFeGVjU3RhdGUqKTsKKyAgICAgICAgVG9UaGlz
T2JqZWN0RnVuY3Rpb25QdHIgdG9UaGlzT2JqZWN0OwogICAgIH07CiAKICNkZWZpbmUgQ1JFQVRF
X01FVEhPRF9UQUJMRShDbGFzc05hbWUpIHsgXApAQCAtNzAsNiArNzMsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4LCBcCiAgICAg
ICAgICZDbGFzc05hbWU6OmdldE93blByb3BlcnR5U2xvdCwgXAogICAgICAgICAmQ2xhc3NOYW1l
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4LCBcCisgICAgICAgICZDbGFzc05hbWU6OnRvVGhp
c09iamVjdCwgXAogICAgIH0sIFwKICAgICBzaXplb2YoQ2xhc3NOYW1lKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCAwNTU1ZGMyYTcw
NzZmZGQyMjk5YzMwMzNkZmZiYmZlMGU0NmUwZDI3Li43ZjRlZDliMWE1YzMyYzdlNzBlODdiZmEx
MTZhNzc5MDg5YmUxM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIEpTQWN0aXZhdGlvbjo6ZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZQogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBleGVjLCBwcm9wZXJ0eU5h
bWUpOwogfQogCi1KU09iamVjdCogSlNBY3RpdmF0aW9uOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAorSlNPYmplY3QqIEpTQWN0aXZhdGlvbjo6dG9UaGlzT2JqZWN0KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gZXhlYy0+Z2xvYmFsVGhpc1ZhbHVl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmlu
ZGV4IDBjMmI4NTUxMjA3MjI3ZDY3OGI2ODljMzM3ODYyYmViMWVlMmJhNDguLjM5NzdiNmZjYmJk
MjMxZTNhZGVjMzM4Nzc4MWRjNzdmZmZhYzVjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02OSw3ICs2OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICBz
dGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhp
c09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgc3RhdGljIEpTT2JqZWN0KiB0b1Ro
aXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CiAKICAgICAgICAgdm9pZCBjb3B5UmVnaXN0
ZXJzKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuY3BwCmluZGV4IDQ5NGExMWQ4OWJlMzU1YjQwODJlZDAwYTU3ZGM3ZjhlZjU5MDE2
MGUuLjExYWVjMzRiMDQ3NDJiZGRmMGY5MTU3MjZlZjc3Y2JkODNkNzU0MjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTEyLDkgKzExMiw5IEBAIGJvb2wg
SlNDZWxsOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIGlkZW50CiAgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCkt
PmRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBpZGVudGlmaWVyKTsKIH0K
IAotSlNPYmplY3QqIEpTQ2VsbDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
K0pTT2JqZWN0KiBKU0NlbGw6OnRvVGhpc09iamVjdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKTsKKyAgICByZXR1cm4gY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKIH0KIAogSlNWYWx1ZSBKU0NlbGw6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0
ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAyYTc5MzkwYmIxMjRjOTBkNGFm
YTQ3MDllY2Q2OGQzNmIxOGUyOTA2Li40Y2ViNTQ2ODI0YmQ0MDkzZjY4NmNmOTIyYmIzNzFlNDJk
NzdlNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtOTUsNyAr
OTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKLSAgICAgICAgdmlydHVhbCBKU09iamVj
dCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OworICAgICAgICBzdGF0aWMgSlNPYmpl
Y3QqIHRvVGhpc09iamVjdChKU0NlbGwqLCBFeGVjU3RhdGUqKTsKIAogICAgICAgICB2b2lkKiB2
cHRyKCkgY29uc3QgeyBBU1NFUlQoIWlzWmFwcGVkKCkpOyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCogY29uc3QqPih0aGlzKTsgfQogICAgICAgICB2b2lkIHNldFZQdHIodm9pZCogdnB0
cikgeyAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHRoaXMpID0gdnB0cjsgQVNTRVJUKCFpc1ph
cHBlZCgpKTsgfQpAQCAtMjk0LDExICsyOTQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkg
OiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgfQogCi0gICAgaW5s
aW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvVGhpc09iamVj
dChleGVjKSA6IHRvVGhpc09iamVjdFNsb3dDYXNlKGV4ZWMpOwotICAgIH0KLQogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiB2b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCkKICAgICB7CiAj
aWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKaW5kZXggYmM2N2FlMWE1ODQ2NjI3ODFmNjBiYjU2NzdhOWJiNDNiYThjYjMx
MS4uZjVjYzhkM2QxZmNiYTVjZjE5OWFmZGUzNmQzZjJiOGQ1NTRlMDI2MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIHZv
aWQgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAgICAgICAgICAgICAgYXJncy5hcHBlbmQodmFsdWUp
OwogCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBXZWJDb3JlJ3MgZ2xvYmFsIG9iamVj
dCB0aGVuIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZSB0aGUgc2hlbGwuCi0gICAgICAgICAgICAgICAg
Y2FsbChleGVjLCBzZXR0ZXJGdW5jLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNPYmplY3QtPnRv
VGhpc09iamVjdChleGVjKSwgYXJncyk7CisgICAgICAgICAgICAgICAgY2FsbChleGVjLCBzZXR0
ZXJGdW5jLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnRv
VGhpc09iamVjdCh0aGlzT2JqZWN0LCBleGVjKSwgYXJncyk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogCkBAIC01NTcsOSArNTU3LDkgQEAgVVN0cmluZyBKU09iamVj
dDo6dG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBwcmltaXRpdmUu
dG9TdHJpbmcoZXhlYyk7CiB9CiAKLUpTT2JqZWN0KiBKU09iamVjdDo6dG9UaGlzT2JqZWN0KEV4
ZWNTdGF0ZSopIGNvbnN0CitKU09iamVjdCogSlNPYmplY3Q6OnRvVGhpc09iamVjdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSopCiB7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3QqPih0
aGlzKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihjZWxsKTsKIH0KIAogSlNP
YmplY3QqIEpTT2JqZWN0Ojp1bndyYXBwZWRPYmplY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKaW5kZXggN2ZkYTg2YjkzODRlOGRiY2QwNDljOGQzOGYwMzU2NjE0
MTBjNmY1YS4uOTE2OWNmMThlODdjOWY2YjdlZmIwYTBjZmM1ZWZmNDg0NWNjNWMwZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMzUsNyArMTM1LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25z
dDsKICAgICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKIAotICAgICAg
ICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CisgICAg
ICAgIHN0YXRpYyBKU09iamVjdCogdG9UaGlzT2JqZWN0KEpTQ2VsbCosIEV4ZWNTdGF0ZSopOwog
ICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB1bndyYXBwZWRPYmplY3QoKTsKIAogICAgICAgICBi
b29sIGdldFByb3BlcnR5U3BlY2lmaWNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiYgc3BlY2lmaWNGdW5jdGlvbikgY29uc3Q7CkBA
IC00OTksNiArNDk5LDExIEBAIGlubGluZSBib29sIEpTVmFsdWU6OmluaGVyaXRzKGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvKSBjb25zdAogICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwo
KS0+aW5oZXJpdHMoY2xhc3NJbmZvKTsKIH0KIAoraW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0
b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwo
KSA/IGFzQ2VsbCgpLT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3QoYXNDZWxsKCksIGV4ZWMp
IDogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoZXhlYyk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBK
U09iamVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgaWYg
KFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4IDM2MGE2
YmUwYmFkMTRkNjExYzliM2RhYmY0OTNiMWM4YmI3NzNiNmEuLjA2Zjg2NTU1ZjgwODJkZWFlNzhl
YzEwZGY3ZGVkMTI3YThkMzM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQg
SlNTdGF0aWNTY29wZU9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3JlZ2lzdGVy
U3RvcmUpOwogfQogCi1KU09iamVjdCogSlNTdGF0aWNTY29wZU9iamVjdDo6dG9UaGlzT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU1N0YXRpY1Njb3BlT2JqZWN0Ojp0
b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBleGVj
LT5nbG9iYWxUaGlzVmFsdWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCA0ZDJhODY5MmQzYmI3OGVhM2U3YzA4
MWM5ZmRlOGI3ODEyN2JlMTc0Li4zYzU5NDJhNTRmODBmMDkwYTM1YjBjZTUwNTk2NDU2YWUwOTZl
NWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0N7CiAKICAgICAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAg
ICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHluYW1pY0NoZWNrcykgY29uc3Q7
Ci0gICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25z
dDsKKyAgICAgICAgc3RhdGljIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDZWxsKiwgRXhlY1N0
YXRlKik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmNwcAppbmRleCA1M2UyZDNiMzQ1ZjE3MGZjZWZkOTRhYjQyYmZjMWYzZTFmZjlk
ZWY5Li5mNTcwNjM0ODI2NzdjYTNmMmIyNmMwYWIxZDFmOWVkOWU5MDFjNzVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0xOTYsOSArMTk2LDkgQEAg
SlNPYmplY3QqIEpTU3RyaW5nOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpIGNvbnMKICAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBjb25zdF9jYXN0PEpTU3RyaW5nKj4odGhpcykpOwogfQogCi1K
U09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CitK
U09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBjb25zdF9jYXN0PEpTU3RyaW5nKj4odGhpcykpOworICAgIHJl
dHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oY2VsbCkpOwogfQogCiBib29sIEpTU3RyaW5nOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggYjZmM2RiOWQ0YzI4YTMxNWYyYTYwODZi
MWYxMDUyZDAzNDRhOGRlNC4uMDk3YjQ5MTExNjI5NTQwODU1Y2Y5YTllN2JiMzcwNTc5NjA5ZjY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0yNDcsNyAr
MjQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcmVzb2x2ZVJvcGVTbG93Q2Fz
ZShFeGVjU3RhdGUqLCBVQ2hhciopIGNvbnN0OwogICAgICAgICB2b2lkIG91dE9mTWVtb3J5KEV4
ZWNTdGF0ZSopIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVj
dChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgc3RhdGljIEpTT2JqZWN0KiB0b1RoaXNPYmpl
Y3QoSlNDZWxsKiwgRXhlY1N0YXRlKik7CiAKICAgICAgICAgLy8gQWN0dWFsbHkgZ2V0UHJvcGVy
dHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90IChzZWUgSlNDZWxsKS4KICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKaW5kZXgg
Y2U5ZGU1YTZmZTU4NTU0ZjE4MmJiOGI3MzdjNGUzODNjZGZkYWIzZi4uMjEyODNkYmQyMjQyNWEy
MDc4MGIzM2ExYTMxZTc3YjI4M2IyNmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcApAQCAtNDAsNyArNDAsNyBA
QCBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotSlNPYmpl
Y3QqIFN0cmljdEV2YWxBY3RpdmF0aW9uOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAorSlNPYmplY3QqIFN0cmljdEV2YWxBY3RpdmF0aW9uOjp0b1RoaXNPYmplY3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBleGVjLT5nbG9iYWxUaGlzVmFsdWUo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2
YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFs
QWN0aXZhdGlvbi5oCmluZGV4IDA5NzQ0NjhjNjRjYWU4YjQ3ZjJlNDY3OWNlZWJjZWIzZmQxN2Nm
MTAuLmJiNzAzNTJkODIyZGQwZWU0YzE2MjY2ZWQ2YjRjMjc1YzJiNDE3ZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApA
QCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVsZXRl
UHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwotICAgIHZp
cnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBzdGF0
aWMgSlNPYmplY3QqIHRvVGhpc09iamVjdChKU0NlbGwqLCBFeGVjU3RhdGUqKTsKIAogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4
IGQ1MGEwYTI2ZDRmZTgyMTFiNjliMzhhMjBhNTI5NjRiYjNiNjFmMDMuLjJkMzE1MjA2NzA5NDhl
NmJjN2VjOGI3M2ZiMjkxMzY3Y2FiN2UxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMTQ1LDkgKzE0NSw5IEBAIHZvaWQgSlNET01X
aW5kb3dCYXNlOjp3aWxsUmVtb3ZlRnJvbVdpbmRvd1NoZWxsKCkKICAgICBzZXRDdXJyZW50RXZl
bnQoMCk7CiB9CiAKLUpTT2JqZWN0KiBKU0RPTVdpbmRvd0Jhc2U6OnRvVGhpc09iamVjdChFeGVj
U3RhdGUqKSBjb25zdAorSlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6dG9UaGlzT2JqZWN0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKikKIHsKLSAgICByZXR1cm4gc2hlbGwoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oY2VsbCktPnNoZWxsKCk7CiB9CiAKIEpT
RE9NV2luZG93U2hlbGwqIEpTRE9NV2luZG93QmFzZTo6c2hlbGwoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA5ZTlhNjdiZjQzMzBm
MWIyZDdkYzMxZmYwNDBiOWM0N2ZkYjljZmM1Li5jNTVlMjNjMDMzNTQzMDA2ZWYxYzc3NWVlNmVj
Y2M0MmRjMjQwOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IERvbid0IGNhbGwgdGhpcyB2ZXJzaW9uIG9mIGFsbG93c0FjY2Vzc0Zyb20gLS0gaXQncyBhIHNs
aWdodGx5IGluY29ycmVjdCBpbXBsZW1lbnRhdGlvbiB1c2VkIG9ubHkgYnkgV2ViU2NyaXB0T2Jq
ZWN0CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKSBjb25zdDsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgSlNDOjpKU09i
amVjdCogdG9UaGlzT2JqZWN0KEpTQzo6RXhlY1N0YXRlKikgY29uc3Q7CisgICAgICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiB0b1RoaXNPYmplY3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSopOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCgpIGNvbnN0OwogCiAgICAgICAg
IHN0YXRpYyBKU0M6OkpTR2xvYmFsRGF0YSogY29tbW9uSlNHbG9iYWxEYXRhKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggMDFlYzZiNzNm
ODYwZTNiNDIzZDBmNTc0NjNiZWEzNzIyMGE0OWFiYS4uNTliM2ZmMzdjNjdlYzk2NTVhOWQ2NTRj
OTBlODQyYjljYzhmN2ZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFcnJvckhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAog
ICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKTsKICAgICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3Bl
KGdsb2JhbERhdGEsIGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA/IGdsb2JhbERhdGEu
ZHluYW1pY0dsb2JhbE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CiAKLSAgICAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKKyAgICAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVj
dChnbG9iYWxPYmplY3QsIGV4ZWMpOwogCiAgICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNr
ZXIuc3RhcnQoKTsKICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IEpTQzo6Y2FsbChleGVj
LCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAppbmRleCA1OTIyMTMzYzQwNjkwMDVhNmUzZTA3
NGU5YTgxMTg4MjliOGExM2JjLi4wYmMxODdiMmU1YTJjNGQzNzA0ZjJiYmJkMmFlNWIxNzBlMzM0
ODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTI0MSw3ICsyNDEs
NyBAQCBib29sIF9OUE5fSW52b2tlKE5QUCBucHAsIE5QT2JqZWN0KiBvLCBOUElkZW50aWZpZXIg
bWV0aG9kTmFtZSwgY29uc3QgTlBWYXJpYW50KgogICAgICAgICBnZXRMaXN0RnJvbVZhcmlhbnRB
cmdzKGV4ZWMsIGFyZ3MsIGFyZ0NvdW50LCByb290T2JqZWN0LCBhcmdMaXN0KTsKICAgICAgICAg
UmVmUHRyPEpTR2xvYmFsRGF0YT4gZ2xvYmFsRGF0YSgmZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAg
ICAgICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICAgICAgSlNWYWx1
ZSByZXN1bHRWID0gSlNDOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEs
IG9iai0+aW1wLT50b1RoaXNPYmplY3QoZXhlYyksIGFyZ0xpc3QpOworICAgICAgICBKU1ZhbHVl
IHJlc3VsdFYgPSBKU0M6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwg
b2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChvYmotPmltcCwgZXhlYyksIGFy
Z0xpc3QpOwogICAgICAgICBnbG9iYWxEYXRhLT50aW1lb3V0Q2hlY2tlci5zdG9wKCk7CiAKICAg
ICAgICAgLy8gQ29udmVydCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIGNh
bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggYWZiYmM3YWQ1
Y2Q4MjgzMTViZDIwZDIwOGE5MjQ1ZTQwYTljMTgwZS4uMjQ0NjdiZjZmYjhiMzA2ZTdiMjI3MWFj
ZjUwNDc1MDFiZDA4MmU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cApAQCAtMTYwNSw3ICsxNjA1LDcgQEAgRW5jb2RlZEpTVmFsdWUgUXRSdW50aW1lQ29ubmVjdGlv
bk1ldGhvZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBpZiAoc2VuZGVyKSB7CiAKLSAg
ICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
PnRvVGhpc09iamVjdChleGVjKTsKKyAgICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4ZWMpOwogICAgICAgICBKU09iamVjdCogZnVuY09i
amVjdCA9IDA7CiAKICAgICAgICAgLy8gUXRTY3JpcHQgY2hlY2tzIHNpZ25hbG5lc3MgZmlyc3Qs
IGFyZ3VtZW50cyBzZWNvbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCBlODEw
NzhlYzQ0NzUxOGM2OWNjN2ViZWVlOTA4MGU0MmNhODY5YzVmLi45Mzc0MzFjMTk2MzIzZDExNjhl
YmY4MmQzYTgyZjRhYmU4NTE5MTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBA
IC05MTYsNyArOTE2LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Omludm9r
ZSh1aW50MzJfdCBvYmplY3RJRCwgY29uc3QgSWRlbnRpZmllciYgbWUKIAogICAgIFJlZlB0cjxK
U0dsb2JhbERhdGE+IGdsb2JhbERhdGEgPSBwbHVnaW5Xb3JsZCgpLT5nbG9iYWxEYXRhKCk7CiAg
ICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICBKU1ZhbHVlIHZhbHVl
ID0gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBvYmplY3QtPnRvVGhp
c09iamVjdChleGVjKSwgYXJnTGlzdCk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGNhbGwoZXhlYywg
ZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT50b1Ro
aXNPYmplY3Qob2JqZWN0LCBleGVjKSwgYXJnTGlzdCk7CiAgICAgZ2xvYmFsRGF0YS0+dGltZW91
dENoZWNrZXIuc3RvcCgpOwogICAgICAgICAKICAgICBtYXJzaGFsVmFsdWUoZXhlYywgdmFsdWUs
IHJlc3VsdERhdGEsIHJlc3VsdExlbmd0aCk7CkBAIC05NTEsNyArOTUxLDcgQEAgYm9vbCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Omludm9rZURlZmF1bHQodWludDMyX3Qgb2JqZWN0SUQs
IGRhdGFfdCBhcmd1bWUKIAogICAgIFJlZlB0cjxKU0dsb2JhbERhdGE+IGdsb2JhbERhdGEgPSBw
bHVnaW5Xb3JsZCgpLT5nbG9iYWxEYXRhKCk7CiAgICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNr
ZXIuc3RhcnQoKTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gY2FsbChleGVjLCBvYmplY3QsIGNhbGxU
eXBlLCBjYWxsRGF0YSwgb2JqZWN0LT50b1RoaXNPYmplY3QoZXhlYyksIGFyZ0xpc3QpOworICAg
IEpTVmFsdWUgdmFsdWUgPSBjYWxsKGV4ZWMsIG9iamVjdCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBv
YmplY3QtPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChvYmplY3QsIGV4ZWMpLCBhcmdMaXN0
KTsKICAgICBnbG9iYWxEYXRhLT50aW1lb3V0Q2hlY2tlci5zdG9wKCk7CiAgICAgCiAgICAgbWFy
c2hhbFZhbHVlKGV4ZWMsIHZhbHVlLCByZXN1bHREYXRhLCByZXN1bHRMZW5ndGgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNP
YmplY3QuY3BwCmluZGV4IGM2OTM2ZGM0NjJmNjlhMGRiNjFiYmYwYzIwYjdlMmI0ZGFhZWJkYzUu
LmJhOGZhM2RjYmEyNThiYjFjM2YzMjRkOTU3OTYzNjkxZTE5YWRkNWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVj
dC5jcHAKQEAgLTI5MSw3ICsyOTEsNyBAQCBib29sIE5QSlNPYmplY3Q6Omludm9rZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZgogICAgICAg
ICBhcmd1bWVudExpc3QuYXBwZW5kKG1fb2JqZWN0TWFwLT5jb252ZXJ0TlBWYXJpYW50VG9KU1Zh
bHVlKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXJndW1lbnRzW2ldKSk7CiAKICAgICBleGVjLT5nbG9i
YWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gSlND
OjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fanNPYmplY3QtPnRv
VGhpc09iamVjdChleGVjKSwgYXJndW1lbnRMaXN0KTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gSlND
OjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fanNPYmplY3QtPm1l
dGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChtX2pzT2JqZWN0LmdldCgpLCBleGVjKSwgYXJndW1l
bnRMaXN0KTsKICAgICBleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RvcCgpOwog
CiAgICAgLy8gQ29udmVydCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIGNh
bGwuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>