<?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>74347</bug_id>
          
          <creation_ts>2011-12-12 14:54:46 -0800</creation_ts>
          <short_desc>De-virtualize destructor part 3</short_desc>
          <delta_ts>2011-12-18 12:22:52 -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>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>
          <dependson>74342</dependson>
          <blocked>74331</blocked>
    
    <blocked>74348</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519521</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 14:54:46 -0800</bug_when>
    <thetext>Same as bug 74341, just moving the static destroy functions down another level in the hierarchy and leaving behind any necessary destroy functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519535</commentid>
    <comment_count>1</comment_count>
      <attachid>118867</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:00:36 -0800</bug_when>
    <thetext>Created attachment 118867
De-virtualize destructors part 3

No changelog (see bug 74331).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519585</commentid>
    <comment_count>2</comment_count>
      <attachid>118867</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:30:47 -0800</bug_when>
    <thetext>Comment on attachment 118867
De-virtualize destructors part 3

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118867</attachid>
            <date>2011-12-12 15:00:36 -0800</date>
            <delta_ts>2011-12-12 15:30:47 -0800</delta_ts>
            <desc>De-virtualize destructors part 3</desc>
            <filename>0009-Finished-level-3.patch</filename>
            <type>text/plain</type>
            <size>49044</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSBiZjJmM2M4OTkwZmQwODBiNGU5MGQwM2U1Nzc2MTA4ZTU1OTUzYTk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogVHVlLCA2IERlYyAyMDExIDE5OjQwOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAw
OS8xOF0gRmluaXNoZWQgbGV2ZWwgMy4KCi0tLQogLi4uL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrQ29uc3RydWN0b3IuY3BwICAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oICB8ICAgIDggKysrKysrKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5jcHAgICAgIHwgICAgNiArKysrKysK
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oICAgICAgIHwgICAg
NyArKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwICAgICAg
ICAgICB8ICAgMTQgKysrKysrKysrKy0tLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwIHwgICAgNCArKysrCiAuLi4vSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggICB8ICAgIDcgKysrKysrKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggICAgICAgICAgfCAgICAyICsrCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCAgICB8ICAgIDkgKysrKysr
KysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggICAgICB8
ICAgIDMgKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
LmNwcCB8ICAgIDQgKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9u
SGVscGVycy5oICAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmNwcCAgICAgICB8ICAgMTUgKysrKysrKy0tLS0tLS0tCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggICAgICAgICB8ICAgIDcgKysrLS0tLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgfCAgICA5ICsr
KysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5o
ICAgfCAgICAzICsrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAg
ICAgICAgICAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5LmggICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwICAgICAgfCAgICA2ICsrKystLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCeXRlQXJyYXkuaCAgICAgICAgfCAgIDEwICsrKysrKystLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwICAgICAgIHwgICAgNyArKysrKyst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggICAgICAgICB8ICAg
IDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCAgICAg
fCAgICA5ICsrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxU
aGlzLmggICAgICAgfCAgICAzICsrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5jcHAgICAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuaCAgICAgIHwgICAgNSArKysrKwogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgICAgICAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCAgICAgICAgIHwgICAgNSArKysrKwogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwICAgICAgICAgfCAgIDEyICsrKysrLS0t
LS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCAgICAgICAgICAg
fCAgICA4ICsrKysrKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxl
T2JqZWN0LmNwcCB8ICAgIDUgKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFyaWFibGVPYmplY3QuaCAgIHwgICAgMSArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1dyYXBwZXJPYmplY3QuY3BwICB8ICAgIDUgKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oICAgIHwgICAgMSArCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCAgICAgICB8ICAgIDIgKysKIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCAgICAgICAgIHwgICAgNSArKysrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCAgfCAgICAyICsr
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCAgICB8ICAg
IDUgKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAg
ICAgIHwgICAgNSArKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmggICAgICAgfCAgICAxICsKIC4uLi9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cCAgICAgICAgICAgICAgIHwgICAgMiArKwogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aWN0RXZhbEFjdGl2YXRpb24uaCAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5jcHAgICAgICAgICAgICB8ICAgIDUgKysrKysKIFNvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKysrKwogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcCAgICAgICAgfCAgIDExICsr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCAgICAg
ICAgICB8ICAgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIHwgICAxMiArKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oICAgICAgICAgIHwgICAgNiArKysrKysKIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSAgICAgICAgIHwgICAgNSArKysrKwogU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCAgICAgICAgICAgfCAgICA1ICsrKysr
CiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCAgICAgICAgICAgICB8ICAg
IDEgKwogLi4uL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCAgICAg
fCAgICA1ICsrKysrCiAuLi4vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aCAgICAgICB8ICAgIDYgKysrKysrCiA1NCBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygr
KSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCmluZGV4IGI2MDFmM2UuLjEzNDllNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAK
QEAgLTU5LDYgKzU5LDExIEBAIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6fkpTQ2FsbGJhY2tDb25z
dHJ1Y3RvcigpCiAgICAgICAgIEpTQ2xhc3NSZWxlYXNlKG1fY2xhc3MpOwogfQogCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganNDYXN0
PEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcio+KGNlbGwpLT5KU0NhbGxiYWNrQ29uc3RydWN0b3I6On5K
U0NhbGxiYWNrQ29uc3RydWN0b3IoKTsKK30KKwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SlNDYWxsYmFjayhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNP
YmplY3QqIGNvbnN0cnVjdG9yID0gZXhlYy0+Y2FsbGVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAppbmRleCBiMzIwYTkwLi4yMzQ4
ZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKQEAgLTMxLDYgKzMxLDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdub24tdmlydHVhbC1kdG9yIgorCiBjbGFzcyBKU0NhbGxiYWNrQ29uc3RydWN0b3IgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2Jq
ZWN0IEJhc2U7CkBAIC00Miw3ICs0NSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNvbnN0
cnVjdG9yOwogICAgIH0KICAgICAKLSAgICB2aXJ0dWFsIH5KU0NhbGxiYWNrQ29uc3RydWN0b3Io
KTsKKyAgICB+SlNDYWxsYmFja0NvbnN0cnVjdG9yKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0NlbGwqKTsKICAgICBKU0NsYXNzUmVmIGNsYXNzUmVmKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzczsgfQogICAgIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjYWxsYmFjaygp
IGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKQEAgLTY0LDYgKzY4LDggQEAgcHJpdmF0ZToKICAgICBKU09iamVjdENhbGxBc0Nv
bnN0cnVjdG9yQ2FsbGJhY2sgbV9jYWxsYmFjazsKIH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU0NhbGxiYWNrQ29u
c3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dC5jcHAKaW5kZXggZmI5ZDczMC4uZWY5Y2I5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCkBAIC01MSw2ICs1MSwxMiBAQCBTdHJ1Y3R1cmUq
IEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYQogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhHbG9iYWxPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOyAKIH0KIAordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK3ZvaWQgSlND
YWxsYmFja09iamVjdDxQYXJlbnQ+OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nh
c3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpLT5KU0NhbGxiYWNrT2JqZWN0Ojp+SlNDYWxsYmFj
a09iamVjdCgpOworfQorCiB2b2lkIEpTQ2FsbGJhY2tPYmplY3REYXRhOjpmaW5hbGl6ZShIYW5k
bGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewogICAgIEpTQ2xhc3NSZWYganND
bGFzcyA9IHN0YXRpY19jYXN0PEpTQ2xhc3NSZWY+KGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCA5MWZmNjI0Li4wZDY3MzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTE0
LDYgKzExNCw5IEBAIHN0cnVjdCBKU0NhbGxiYWNrT2JqZWN0RGF0YSA6IFdlYWtIYW5kbGVPd25l
ciB7CiB9OwogCiAgICAgCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogdGVtcGxhdGUg
PGNsYXNzIFBhcmVudD4KIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgOiBwdWJsaWMgUGFyZW50IHsK
IHByb3RlY3RlZDoKQEAgLTE3Nyw2ICsxODAsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IHN0YXRpYyBVU3RyaW5nIGNsYXNzTmFtZShjb25zdCBKU09iamVjdCopOwogCisgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IApAQCAtMjE2LDYgKzIyMSw4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEpTQ2FsbGJhY2tPYmpl
Y3REYXRhPiBtX2NhbGxiYWNrT2JqZWN0RGF0YTsKIH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKIC8vIGluY2x1ZGUgdGhlIGFjdHVhbCB0
ZW1wbGF0ZSBjbGFzcyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAKaW5kZXggMzQ1OThiOS4uMjgzNzZkMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xMjUsNiArMTI1LDcgQEAgX19aTjNKU0MxMUpTQnl0
ZUFycmF5MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzhKU09iamVjdEVQTlNfOUV4ZWNT
dGF0ZUVSS04KIF9fWk4zSlNDMTFKU0J5dGVBcnJheTI1Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNK
U0MxMUpTQnl0ZUFycmF5M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzExSlNC
eXRlQXJyYXk2c19pbmZvRQorX19aTjNKU0MxMUpTQnl0ZUFycmF5N2Rlc3Ryb3lFUE5TXzZKU0Nl
bGxFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXlDMUVQTlNfOUV4ZWNTdGF0ZUVQTlNfOVN0cnVjdHVy
ZUVQTjNXVEY5Qnl0ZUFycmF5RQogX19aTjNKU0MxMVBhcnNlckFyZW5hNXJlc2V0RXYKIF9fWk4z
SlNDMTFjaGVja1N5bnRheEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwU291cmNlQ29kZUVQTlNfN0pT
VmFsdWVFCkBAIC0xNDgsNiArMTQ5LDggQEAgX19aTjNKU0MxMkpTR2xvYmFsRGF0YTZjcmVhdGVF
TlNfMTVUaHJlYWRTdGFja1R5cGVFTlNfOEhlYXBTaXplRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0
YUQxRXYKIF9fWk4zSlNDMTJKU0dsb2JhbFRoaXMxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxF
Uk5TXzExU2xvdFZpc2l0b3JFCiBfX1pOM0pTQzEySlNHbG9iYWxUaGlzNnNfaW5mb0UKK19fWk4z
SlNDMTJKU0dsb2JhbFRoaXM3ZGVzdHJveUVQTlNfNkpTQ2VsbEUKK19fWk4zSlNDMTJKU0dsb2Jh
bFRoaXNEMkV2CiBfX1pOM0pTQzEyUmVnRXhwT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMTJSZWdFeHBPYmplY3Q2c19pbmZvRQogX19aTjNKU0Mx
MlJlZ0V4cE9iamVjdEMxRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVBOU182
UmVnRXhwRQpAQCAtMTk2LDEyICsxOTksMTUgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb24x
MnZ0YWJsZUFuY2hvckV2CiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbjE0ZmluaXNoQ3JlYXRp
b25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkludGVy
bmFsRnVuY3Rpb240bmFtZUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0
aW9uNnNfaW5mb0UKK19fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uN2Rlc3Ryb3lFUE5TXzZKU0Nl
bGxFCiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbkMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBO
U185U3RydWN0dXJlRQorX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb25EMkV2CitfX1pOM0pTQzE2
SlNOb25GaW5hbE9iamVjdDEydnRhYmxlQW5jaG9yRXYKIF9fWk4zSlNDMTZKU05vbkZpbmFsT2Jq
ZWN0N2Rlc3Ryb3lFUE5TXzZKU0NlbGxFCi1fX1pOM0pTQzE2SlNOb25GaW5hbE9iamVjdEQyRXYK
IF9fWk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfNkpTQ2VsbEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTZKU1ZhcmlhYmxlT2Jq
ZWN0MTRzeW1ib2xUYWJsZUdldEVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2Ny
aXB0b3JFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQ
TlNfOEpTT2JqZWN0RVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1
RW51bWVyYXRpb25Nb2RlRQorX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3Q3ZGVzdHJveUVQTlNf
NkpTQ2VsbEUKIF9fWk4zSlNDMTZjcmVhdGVSYW5nZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNf
N1VTdHJpbmdFCiBfX1pOM0pTQzE2c2xvd1ZhbGlkYXRlQ2VsbEVQTlNfMTRKU0dsb2JhbE9iamVj
dEUKIF9fWk4zSlNDMTZzbG93VmFsaWRhdGVDZWxsRVBOU182SlNDZWxsRQpAQCAtMjExLDYgKzIx
Nyw3IEBAIF9fWk4zSlNDMTdKU0FQSVZhbHVlV3JhcHBlcjZzX2luZm9FCiBfX1pOM0pTQzE3UHJv
cGVydHlOYW1lQXJyYXkzYWRkRVBOM1dURjEwU3RyaW5nSW1wbEUKIF9fWk4zSlNDMTdjcmVhdGVT
eW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQogX19aTjNKU0MxOERlYnVn
Z2VyQWN0aXZhdGlvbjE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNP
YmplY3RFCitfX1pOM0pTQzE4RGVidWdnZXJBY3RpdmF0aW9uNnNfaW5mb0UKIF9fWk4zSlNDMThE
ZWJ1Z2dlckFjdGl2YXRpb25DMUVSTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzE4UHJvcGVy
dHlEZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9y
MTJzZXRVbmRlZmluZWRFdgpAQCAtMjc3LDEzICsyODQsMTMgQEAgX19aTjNKU0M2SlNMb2NrOWxv
Y2tDb3VudEV2CiBfX1pOM0pTQzZKU0xvY2tDMUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDNlJl
Z0V4cDVtYXRjaEVSTlNfMTJKU0dsb2JhbERhdGFFUktOU183VVN0cmluZ0VpUE4zV1RGNlZlY3Rv
cklpTG0zMkVFRQogX19aTjNKU0M2UmVnRXhwNmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUktO
U183VVN0cmluZ0VOU18xMVJlZ0V4cEZsYWdzRQotX19aTjNKU0M2UmVnRXhwRDFFdgogX19aTjNK
U0M3SlNBcnJheTEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUK
IF9fWk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUUKIF9f
Wk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdB
cmdMaXN0RQogX19aTjNKU0M3SlNBcnJheTE1c2V0U3ViY2xhc3NEYXRhRVB2CiBfX1pOM0pTQzdK
U0FycmF5MjVnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RVBOU182SlNDZWxsRVBOU185RXhlY1N0
YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKK19fWk4z
SlNDN0pTQXJyYXk3ZGVzdHJveUVQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDN0pTQXJyYXk5c2V0TGVu
Z3RoRWoKIF9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1
cmVFCiBfX1pOM0pTQzdKU0FycmF5QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJl
RQpAQCAtMzMzLDcgKzM0MCw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSCiBfX1pOM0pTQzhK
U09iamVjdDZzX2luZm9FCiBfX1pOM0pTQzhKU09iamVjdDdkZXN0cm95RVBOU182SlNDZWxsRQog
X19aTjNKU0M4SlNPYmplY3Q5Y2xhc3NOYW1lRVBLUzBfCi1fX1pOM0pTQzhKU09iamVjdEQyRXYK
IF9fWk4zSlNDOEpTU3RyaW5nNnNfaW5mb0UKIF9fWk4zSlNDOFByb2ZpbGVyMTNzdG9wUHJvZmls
aW5nRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCiBfX1pOM0pTQzhQcm9maWxlcjE0c3Rh
cnRQcm9maWxpbmdFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UKQEAgLTM1Myw3ICszNTks
NiBAQCBfX1pOM0pTQzlTdHJ1Y3R1cmUzZ2V0RVJOU18xMkpTR2xvYmFsRGF0YUVQTjNXVEYxMFN0
cmluZ0ltcGxFUmpSUE5TXzZKU0NlbGxFCiBfX1pOM0pTQzlTdHJ1Y3R1cmU0MGFkZFByb3BlcnR5
VHJhbnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVFUFMwX1JLTlNfMTBJZGVudGlmaWVyRWpQTlNf
NkpTQ2VsbEVSbQogX19aTjNKU0M5U3RydWN0dXJlNnNfaW5mb0UKIF9fWk4zSlNDOVN0cnVjdHVy
ZUMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVOU183SlNWYWx1ZUVS
S05TXzhUeXBlSW5mb0VQS05TXzlDbGFzc0luZm9FCi1fX1pOM0pTQzlTdHJ1Y3R1cmVEMUV2CiBf
X1pOM0pTQzljb25zdHJ1Y3RFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFTlNfMTNDb25zdHJ1
Y3RUeXBlRVJLTlNfMTNDb25zdHJ1Y3REYXRhRVJLTlNfN0FyZ0xpc3RFCiBfX1pOM0pTQ2VxRVJL
TlNfN1VTdHJpbmdFUEtjCiBfX1pOM0pTQ2d0RVJLTlNfN1VTdHJpbmdFUzJfCkBAIC02MjIsNiAr
NjI3LDcgQEAgX19aTkszV1RGNlN0cmluZzh0b0ludFB0ckVQYgogX19aTkszV1RGNlN0cmluZzh0
b1VJbnQ2NEVQYgogX19aTkszV1RGNlN0cmluZzlzdWJzdHJpbmdFamoKIF9fWk5LM1dURjhDb2xs
YXRvcjdjb2xsYXRlRVBLdG1TMl9tCitfX1pUVk4zSlNDMTJKU0dsb2JhbFRoaXNFCiBfX1pUVk4z
SlNDMTJTdHJpbmdPYmplY3RFCiBfX1pUVk4zSlNDMTNKU0ZpbmFsT2JqZWN0RQogX19aVFZOM0pT
QzE0SlNHbG9iYWxPYmplY3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IDFlMDNjZDEuLjgwYmUzMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwCkBAIC0zMCw2ICszMCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorQVNTRVJUX0hB
U19UUklWSUFMX0RFU1RSVUNUT1IoRGVidWdnZXJBY3RpdmF0aW9uKTsKKworY29uc3QgQ2xhc3NJ
bmZvIERlYnVnZ2VyQWN0aXZhdGlvbjo6c19pbmZvID0geyAiRGVidWdnZXJBY3RpdmF0aW9uIiwg
JkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShEZWJ1Z2dlckFjdGl2YXRp
b24pIH07CisKIERlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xv
YmFsRGF0YS5kZWJ1Z2dlckFjdGl2YXRpb25TdHJ1Y3R1cmUuZ2V0KCkpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXgg
NDRkMDlhMS4uMjZlYmM3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtMzAsNiArMzAsOSBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBEZWJ1Z2dl
ckFjdGl2YXRpb24gOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgcHVibGljOgogICAg
ICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKQEAgLTUyLDYgKzU1LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyB2b2lkIGRlZmluZUdldHRlcihKU09iamVjdCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdl
dHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgc3RhdGljIHZvaWQg
ZGVmaW5lU2V0dGVyKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMp
OwogCisgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOworCiAgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOyAKQEAgLTY3LDYgKzcyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFdyaXRlQmFycmllcjxKU0FjdGl2YXRpb24+IG1fYWN0aXZhdGlvbjsKICAgICB9OwogCisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYg
Ly8gRGVidWdnZXJBY3RpdmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmgKaW5kZXggYjZjZGEzOS4uNGE4OTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEyNiw2ICsxMjYsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgT3duUHRyPEFyZ3VtZW50c0RhdGE+IGQ7CiAgICAgfTsKIAorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorCiAgICAgQXJndW1lbnRzKiBhc0FyZ3VtZW50cyhKU1ZhbHVlKTsK
IAogICAgIGlubGluZSBBcmd1bWVudHMqIGFzQXJndW1lbnRzKEpTVmFsdWUgdmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDgz
YWJlNWMuLmJiMGNjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuY3BwCkBAIC0zMSw0ICszMSwxMyBAQCBFcnJvckluc3RhbmNlOjpFcnJvcklu
c3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7
CiB9CiAKK0Vycm9ySW5zdGFuY2U6On5FcnJvckluc3RhbmNlKCkKK3sKK30KKwordm9pZCBFcnJv
ckluc3RhbmNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8RXJyb3JJbnN0
YW5jZSo+KGNlbGwpLT5+RXJyb3JJbnN0YW5jZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCBk
OWFjYTBmLi43MzgxYzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCkBAIC02Niw2ICs2Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2Fn
ZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG1lc3NhZ2UpLCBEb250RW51bSk7CiAgICAgICAgIH0K
IAorICAgICAgICB2aXJ0dWFsIH5FcnJvckluc3RhbmNlKCk7CisgICAgICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDZWxsKik7CisKICAgICAgICAgYm9vbCBtX2FwcGVuZFNvdXJjZVRvTWVzc2Fn
ZTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCmluZGV4IGQ1YWNlODAuLjA1ZTk3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBAIC00MSw2ICs0
MSw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RP
UihJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKTsKKwogY29uc3QgQ2xhc3NJbmZvIEludGVycnVw
dGVkRXhlY3V0aW9uRXJyb3I6OnNfaW5mbyA9IHsgIkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3Ii
LCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGVycnVwdGVkRXhl
Y3V0aW9uRXJyb3IpIH07CiAKIEpTVmFsdWUgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6ZGVm
YXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiBleGVjLCBQcmVmZXJyZWRQcmlt
aXRpdmVUeXBlIGhpbnQpCkBAIC02Niw2ICs2OCw4IEBAIGJvb2wgaXNJbnRlcnJ1cHRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbihKU1ZhbHVlIHZhbHVlKQogfQogCiAKK0FTU0VSVF9IQVNfVFJJVklBTF9E
RVNUUlVDVE9SKFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcik7CisKIGNvbnN0IENsYXNzSW5mbyBU
ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OnNfaW5mbyA9IHsgIlRlcm1pbmF0ZWRFeGVjdXRpb25F
cnJvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoVGVybWluYXRl
ZEV4ZWN1dGlvbkVycm9yKSB9OwogCiBKU1ZhbHVlIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6
ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiBleGVjLCBQcmVmZXJyZWRQ
cmltaXRpdmVUeXBlIGhpbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmgKaW5kZXggYzIyMjY3OS4uYTY1Njk5YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAtNTUsNiArNTUs
OSBAQCBKU09iamVjdCogdGhyb3dPdXRPZk1lbW9yeUVycm9yKEV4ZWNTdGF0ZSopOwogSlNPYmpl
Y3QqIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSopOwogCiAKKyNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdu
b24tdmlydHVhbC1kdG9yIgorCiBjbGFzcyBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yIDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHJpdmF0ZToKICAgICBJbnRlcnJ1cHRlZEV4ZWN1dGlv
bkVycm9yKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKQEAgLTEwOSw2ICsxMTIsOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIH07
CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFeGNlcHRpb25IZWxwZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggMzA1ZWFlNy4uYWQ4NjQ2MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTk5LDEzICs5OSw5IEBA
IHZvaWQgTmF0aXZlRXhlY3V0YWJsZTo6ZmluYWxpemUoSlNDZWxsKiBjZWxsKQogCiBjb25zdCBD
bGFzc0luZm8gU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvID0geyAiU2NyaXB0RXhlY3V0YWJsZSIs
ICZFeGVjdXRhYmxlQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFNjcmlw
dEV4ZWN1dGFibGUpIH07CiAKLVNjcmlwdEV4ZWN1dGFibGU6On5TY3JpcHRFeGVjdXRhYmxlKCkK
LXsKLX0KLQogdm9pZCBTY3JpcHRFeGVjdXRhYmxlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIHsK
LSAgICBqc0Nhc3Q8U2NyaXB0RXhlY3V0YWJsZSo+KGNlbGwpLT5+U2NyaXB0RXhlY3V0YWJsZSgp
OworICAgIGpzQ2FzdDxTY3JpcHRFeGVjdXRhYmxlKj4oY2VsbCktPlNjcmlwdEV4ZWN1dGFibGU6
On5TY3JpcHRFeGVjdXRhYmxlKCk7CiB9CiAKIGNvbnN0IENsYXNzSW5mbyBFdmFsRXhlY3V0YWJs
ZTo6c19pbmZvID0geyAiRXZhbEV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZv
LCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEV2YWxFeGVjdXRhYmxlKSB9OwpAQCAtMTE1LDgg
KzExMSw5IEBAIEV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpCiB7CiB9CiAKLUV2YWxFeGVjdXRhYmxl
Ojp+RXZhbEV4ZWN1dGFibGUoKQordm9pZCBFdmFsRXhlY3V0YWJsZTo6ZGVzdHJveShKU0NlbGwq
IGNlbGwpCiB7CisgICAganNDYXN0PEV2YWxFeGVjdXRhYmxlKj4oY2VsbCktPkV2YWxFeGVjdXRh
YmxlOjp+RXZhbEV4ZWN1dGFibGUoKTsKIH0KIAogY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVj
dXRhYmxlOjpzX2luZm8gPSB7ICJQcm9ncmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRhYmxl
OjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUHJvZ3JhbUV4ZWN1dGFibGUpIH07
CkBAIC0xMjYsOCArMTIzLDkgQEAgUHJvZ3JhbUV4ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogewogfQogCi1Qcm9n
cmFtRXhlY3V0YWJsZTo6flByb2dyYW1FeGVjdXRhYmxlKCkKK3ZvaWQgUHJvZ3JhbUV4ZWN1dGFi
bGU6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogeworICAgIGpzQ2FzdDxQcm9ncmFtRXhlY3V0YWJs
ZSo+KGNlbGwpLT5Qcm9ncmFtRXhlY3V0YWJsZTo6flByb2dyYW1FeGVjdXRhYmxlKCk7CiB9CiAK
IGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvbkV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkZ1bmN0aW9u
RXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRhYmxlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRI
T0RfVEFCTEUoRnVuY3Rpb25FeGVjdXRhYmxlKSB9OwpAQCAtMTUyLDggKzE1MCw5IEBAIEZ1bmN0
aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwKIHsKIH0KIAotRnVuY3Rpb25FeGVjdXRhYmxlOjp+RnVuY3Rpb25F
eGVjdXRhYmxlKCkKK3ZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpkZXN0cm95KEpTQ2VsbCogY2Vs
bCkKIHsKKyAgICBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oY2VsbCktPkZ1bmN0aW9uRXhl
Y3V0YWJsZTo6fkZ1bmN0aW9uRXhlY3V0YWJsZSgpOwogfQogCiBKU09iamVjdCogRXZhbEV4ZWN1
dGFibGU6OmNvbXBpbGVPcHRpbWl6ZWQoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSog
c2NvcGVDaGFpbk5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmgKaW5kZXggYjU1MzYyMy4uMzY3YjdhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuaApAQCAtMjc5LDcgKzI3OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIH5TY3JpcHRFeGVjdXRhYmxlKCk7
CiAgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAgICAgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAgLTMyNiw3ICszMjUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgU2NyaXB0
RXhlY3V0YWJsZSBCYXNlOwogCi0gICAgICAgIHZpcnR1YWwgfkV2YWxFeGVjdXRhYmxlKCk7Cisg
ICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGUoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUp
CiAgICAgICAgIHsKQEAgLTM5OSw3ICszOTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB+UHJv
Z3JhbUV4ZWN1dGFibGUoKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsK
IAogICAgICAgICBKU09iamVjdCogY29tcGlsZShFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5O
b2RlKiBzY29wZUNoYWluTm9kZSkKICAgICAgICAgewpAQCAtNDc2LDcgKzQ3NSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIAot
ICAgICAgICB2aXJ0dWFsIH5GdW5jdGlvbkV4ZWN1dGFibGUoKTsKKyAgICAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgICAgICBKU0Z1bmN0aW9uKiBtYWtlKEV4ZWNTdGF0
ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKaW5kZXgg
YzY5MmMzYy4uZGE4MWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTU0LDYgKzU0LDE1IEBAIHZvaWQgSW50ZXJuYWxG
dW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJ
ZGVudGlmaWVyCiAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlO
YW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5h
bWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCitJ
bnRlcm5hbEZ1bmN0aW9uOjp+SW50ZXJuYWxGdW5jdGlvbigpCit7Cit9CisKK3ZvaWQgSW50ZXJu
YWxGdW5jdGlvbjo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganNDYXN0PEludGVybmFs
RnVuY3Rpb24qPihjZWxsKS0+fkludGVybmFsRnVuY3Rpb24oKTsKK30KKwogY29uc3QgVVN0cmlu
ZyYgSW50ZXJuYWxGdW5jdGlvbjo6bmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJu
IGFzU3RyaW5nKGdldERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEo
KS5wcm9wZXJ0eU5hbWVzLT5uYW1lKSktPnRyeUdldFZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggOGUyMTc4ZS4uMDM5
ZTU2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaApAQCAtNTYsNiArNTYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwog
CisgICAgICAgIHZpcnR1YWwgfkludGVybmFsRnVuY3Rpb24oKTsKKyAgICAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0NlbGwqKTsKKwogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IGQ5NzlhMzIuLjJhNTViODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0yODQsNiArMjg0LDExIEBA
IEpTQXJyYXk6On5KU0FycmF5KCkKICAgICBmYXN0RnJlZShtX3N0b3JhZ2UtPm1fYWxsb2NCYXNl
KTsKIH0KIAordm9pZCBKU0FycmF5OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nh
c3Q8SlNBcnJheSo+KGNlbGwpLT5+SlNBcnJheSgpOworfQorCiBib29sIEpTQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaAppbmRleCA2ODgzZTRkLi40MzNlZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5oCkBAIC03Myw2ICs3Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEpTQXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpOwogICAgICAgICB2aXJ0dWFsIH5KU0FycmF5
KCk7CisgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAgICAgc3Rh
dGljIEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0J5dGVBcnJheS5jcHAKaW5kZXggNmYxNzBlYy4uYjgyNGU4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtNDEsMTMgKzQxLDE1IEBAIEpT
Qnl0ZUFycmF5OjpKU0J5dGVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBCeXRlQXJyYXkqIHN0b3JhCiB7CiB9CiAgICAgICAgIAotI2lmICFBU1NFUlRfRElTQUJM
RUQKIEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXkoKQogewogICAgIEFTU0VSVChjbGFzc0luZm8o
KS0+aXNTdWJDbGFzc09mKCZKU0J5dGVBcnJheTo6c19pbmZvKSk7CiB9Ci0jZW5kaWYKIAordm9p
ZCBKU0J5dGVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganNDYXN0PEpTQnl0
ZUFycmF5Kj4oY2VsbCktPkpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXkoKTsKK30KIAogU3RydWN0
dXJlKiBKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuaAppbmRleCA3MTQ2YjEyLi40MGUxMGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTMyLDYgKzMyLDkgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgorCiAgICAgY2xh
c3MgSlNCeXRlQXJyYXkgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAgICAgcHVibGljOgpAQCAtMTAyLDkgKzEwNSw4IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIFdURjo6Qnl0ZUFycmF5KiBzdG9yYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9zdG9yYWdlLmdldCgpOyB9CiAKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAg
ICAgIHZpcnR1YWwgfkpTQnl0ZUFycmF5KCk7Ci0jZW5kaWYKKyAgICAgICAgfkpTQnl0ZUFycmF5
KCk7CisgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAgICAgc3Rh
dGljIHNpemVfdCBvZmZzZXRPZlN0b3JhZ2UoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNC
eXRlQXJyYXksIG1fc3RvcmFnZSk7IH0KIApAQCAtMTI2LDYgKzEyOCw4IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBSZWZQdHI8V1RGOjpCeXRlQXJyYXk+IG1fc3RvcmFnZTsKICAgICB9Owog
ICAgIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgSlNCeXRlQXJyYXkqIGFz
Qnl0ZUFycmF5KEpTVmFsdWUgdmFsdWUpOwogICAgIGlubGluZSBKU0J5dGVBcnJheSogYXNCeXRl
QXJyYXkoSlNWYWx1ZSB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDEwNGIyNzkuLjlhNGE5MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0xMTUsNyArMTE1LDEyIEBA
IHZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlv
bkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsCiAKIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkKIHsK
LSAgICBBU1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIpOworICAg
IEFTU0VSVChjbGFzc0luZm8oKS0+aXNTdWJDbGFzc09mKCZKU0Z1bmN0aW9uOjpzX2luZm8pKTsK
K30KKwordm9pZCBKU0Z1bmN0aW9uOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nh
c3Q8SlNGdW5jdGlvbio+KGNlbGwpLT5+SlNGdW5jdGlvbigpOwogfQogCiB2b2lkIEpTRnVuY3Rp
b246OnZ0YWJsZUFuY2hvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmgKaW5kZXggYjc1MzMyYS4uYzFlMmZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uaApAQCAtNjYsNiArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgdmlydHVhbCB+SlNGdW5jdGlvbigpOworICAgICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdnRh
YmxlQW5jaG9yKCk7IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIG9wdGltaXphdGlvbnMgbm8g
bG9uZ2VyIHJlbHkgb24gdGVzdGluZyB2dGFibGVzCiAKICAgICAgICAgY29uc3QgVVN0cmluZyYg
bmFtZShFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsVGhpcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbFRoaXMuY3BwCmluZGV4IDg1YmZiN2EuLmZlN2Y1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcApAQCAtMzQsNiArMzQsMTUgQEAgQVNT
RVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0dsb2JhbFRoaXMpOwogCiBjb25zdCBDbGFzc0luZm8g
SlNHbG9iYWxUaGlzOjpzX2luZm8gPSB7ICJKU0dsb2JhbFRoaXMiLCAmQmFzZTo6c19pbmZvLCAw
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTR2xvYmFsVGhpcykgfTsKIAorSlNHbG9iYWxUaGlz
Ojp+SlNHbG9iYWxUaGlzKCkKK3sKK30KKwordm9pZCBKU0dsb2JhbFRoaXM6OmRlc3Ryb3koSlND
ZWxsKiBjZWxsKQoreworICAgIGpzQ2FzdDxKU0dsb2JhbFRoaXMqPihjZWxsKS0+fkpTR2xvYmFs
VGhpcygpOworfQorCiB2b2lkIEpTR2xvYmFsVGhpczo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTR2xvYmFsVGhpcyogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU0dsb2JhbFRoaXMqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxUaGlzLmgKaW5kZXggZTMzY2E3YS4uYzBhODc2MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmgKQEAgLTYxLDYgKzYxLDkg
QEAgcHJvdGVjdGVkOgogICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICB9CiAKKyAgICB2aXJ0dWFsIH5KU0dsb2JhbFRoaXMoKTsKKyAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQ2VsbCopOworCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAg
ICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAppbmRleCA5
MWY5MGQ2Li42ODI0MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNOb3RBbk9iamVjdCk7CitBU1NFUlRfSEFTX1RSSVZJ
QUxfREVTVFJVQ1RPUihKU05vdEFuT2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTTm90QW5P
YmplY3Q6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNOb3RBbk9iamVjdCkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDc3ZjAyZWUuLjc2ZDk2MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTMzLDYgKzMz
LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgor
CiAgICAgLy8gVGhpcyB1bmhvbHkgY2xhc3MgaXMgdXNlZCB0byBhbGxvdyB1cyB0byBhdm9pZCBt
dWx0aXBsZSBleGNlcHRpb24gY2hlY2tzCiAgICAgLy8gaW4gY2VydGFpbiBTcXVpcnJlbEZpc2gg
Ynl0ZWNvZGVzIC0tIGVmZmVjdGl2ZWx5IGl0IGp1c3Qgc2lsZW50bHkgY29uc3VtZXMKICAgICAv
LyBhbnkgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gdGhlIHJlc3VsdCBvZiBhIGZhaWxlZCB0b09i
amVjdCBjYWxsLgpAQCAtODEsNiArODQsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3Rh
dGljIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gSlNOb3RB
bk9iamVjdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CmluZGV4IDI2NDNhOGIuLjA1YzZjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAog
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU09OT2JqZWN0KTsKK0FTU0VSVF9IQVNfVFJJVklB
TF9ERVNUUlVDVE9SKEpTT05PYmplY3QpOwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU09OUHJvdG9GdW5jUGFyc2UoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU09OUHJvdG9GdW5jU3RyaW5naWZ5KEV4ZWNTdGF0ZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IDViN2I1MWEu
LjM5M2NkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgK
QEAgLTMyLDYgKzMyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBTdHJpbmdpZmll
cjsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBKU09OT2JqZWN0
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CkBAIC02MSw2ICs2NCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgVVN0cmlu
ZyBKU09OU3RyaW5naWZ5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQg
aW5kZW50KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKaW5kZXggOTRlMWNmYi4uYTc5YjI2NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNDYsNiArNDYsOCBAQCBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKEpTT2JqZWN0KTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwo
SlNOb25GaW5hbE9iamVjdCk7CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTRmluYWxPYmpl
Y3QpOwogCitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU09iamVjdCk7CisKIGNvbnN0
IGNoYXIqIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvciA9ICJBdHRlbXB0ZWQg
dG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LiI7CiAKIGNvbnN0IENsYXNzSW5mbyBKU09i
amVjdDo6c19pbmZvID0geyAiT2JqZWN0IiwgMCwgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U09iamVjdCkgfTsKQEAgLTU3LDEzICs1OSwxMyBAQCB2b2lkIEpTRmluYWxPYmplY3Q6OmRlc3Ry
b3koSlNDZWxsKiBjZWxsKQogICAgIGpzQ2FzdDxKU0ZpbmFsT2JqZWN0Kj4oY2VsbCktPkpTRmlu
YWxPYmplY3Q6On5KU0ZpbmFsT2JqZWN0KCk7CiB9CiAKLUpTTm9uRmluYWxPYmplY3Q6On5KU05v
bkZpbmFsT2JqZWN0KCkKK3ZvaWQgSlNOb25GaW5hbE9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNl
bGwpCiB7CisgICAganNDYXN0PEpTTm9uRmluYWxPYmplY3QqPihjZWxsKS0+SlNOb25GaW5hbE9i
amVjdDo6fkpTTm9uRmluYWxPYmplY3QoKTsKIH0KIAotdm9pZCBKU05vbkZpbmFsT2JqZWN0Ojpk
ZXN0cm95KEpTQ2VsbCogY2VsbCkKK3ZvaWQgSlNOb25GaW5hbE9iamVjdDo6dnRhYmxlQW5jaG9y
KCkKIHsKLSAgICBqc0Nhc3Q8SlNOb25GaW5hbE9iamVjdCo+KGNlbGwpLT5+SlNOb25GaW5hbE9i
amVjdCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0Q2xhc3NQcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKQEAgLTkwLDEwICs5Miw2
IEBAIHZvaWQgSlNPYmplY3Q6OmZpbmFsaXplKEpTQ2VsbCogY2VsbCkKICAgICBkZWxldGUgW10g
anNDYXN0PEpTT2JqZWN0Kj4oY2VsbCktPm1fcHJvcGVydHlTdG9yYWdlLmdldCgpOwogfQogCi1K
U09iamVjdDo6fkpTT2JqZWN0KCkKLXsKLX0KLQogdm9pZCBKU09iamVjdDo6ZGVzdHJveShKU0Nl
bGwqIGNlbGwpCiB7CiAgICAganNDYXN0PEpTT2JqZWN0Kj4oY2VsbCktPn5KU09iamVjdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggODAwZmE4ZC4uMjhm
ZmI3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC03MCw2
ICs3MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTZXR0ZXIgICAgICAgPSAxIDw8IDYg
ICAvLyBwcm9wZXJ0eSBpcyBhIHNldHRlcgogICAgIH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVh
bC1kdG9yIgorCiAgICAgY2xhc3MgSlNPYmplY3QgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAg
ZnJpZW5kIGNsYXNzIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyOwogICAgICAgICBmcmllbmQg
Y2xhc3MgSklUOwpAQCAtODAsNyArODMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKLSAgICAgICAgdmlydHVhbCB+SlNPYmpl
Y3QoKTsKICAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHZ0YWJsZUFuY2hvcigpOwogCkBAIC0zMjIsOCArMzI0LDggQEAgQ09NUElMRV9B
U1NFUlQoKEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5ID49IEpTTm9uRmluYWxP
YmplY3RfaW5saW5lU3QKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgfkpT
Tm9uRmluYWxPYmplY3QoKTsKICAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHZ0YWJsZUFuY2hvcigpOwogCiAgICAgcHJvdGVjdGVkOgog
ICAgICAgICBleHBsaWNpdCBKU05vbkZpbmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQpA
QCAtMzk5LDYgKzQwMSw4IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0
b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIFdyaXRl
QmFycmllckJhc2U8VW5rbm93bj4gbV9pbmxpbmVTdG9yYWdlW0pTRmluYWxPYmplY3RfaW5saW5l
U3RvcmFnZUNhcGFjaXR5XTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisKIGlubGluZSBzaXplX3QgSlNPYmplY3Q6Om9mZnNldE9mSW5saW5lU3RvcmFnZSgpCiB7CiAg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihKU0ZpbmFsT2JqZWN0LCBtX2lubGluZVN0b3JhZ2Up
ID09IE9CSkVDVF9PRkZTRVRPRihKU05vbkZpbmFsT2JqZWN0LCBtX2lubGluZVN0b3JhZ2UpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5j
cHAKaW5kZXggOWYzOGVhOS4uZTIzNGYyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKQEAgLTQxLDYgKzQxLDExIEBAIEpTVmFy
aWFibGVPYmplY3Q6On5KU1ZhcmlhYmxlT2JqZWN0KCkKIHsKIH0KIAordm9pZCBKU1ZhcmlhYmxl
T2JqZWN0OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8SlNWYXJpYWJsZU9i
amVjdCo+KGNlbGwpLT5+SlNWYXJpYWJsZU9iamVjdCgpOworfQorCiBib29sIEpTVmFyaWFibGVP
YmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNWYXJpYWJsZU9iamVjdCogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1ZhcmlhYmxlT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggZTQ5ZmI3MS4u
ZGU3MzlhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJp
YWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFi
bGVPYmplY3QuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3lt
Ym9sVGFibGUmIHN5bWJvbFRhYmxlKCkgY29uc3QgeyByZXR1cm4gKm1fc3ltYm9sVGFibGU7IH0K
IAogICAgICAgICB2aXJ0dWFsIH5KU1ZhcmlhYmxlT2JqZWN0KCk7CisgICAgICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAgICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwCmluZGV4IGNh
NWJkODcuLmY3N2I4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTV3JhcHBlck9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNXcmFwcGVyT2JqZWN0LmNwcApAQCAtMzAsNiArMzAsMTEgQEAgSlNXcmFwcGVyT2JqZWN0Ojp+
SlNXcmFwcGVyT2JqZWN0KCkKIHsKIH0KIAordm9pZCBKU1dyYXBwZXJPYmplY3Q6OmRlc3Ryb3ko
SlNDZWxsKiBjZWxsKQoreworICAgIGpzQ2FzdDxKU1dyYXBwZXJPYmplY3QqPihjZWxsKS0+fkpT
V3JhcHBlck9iamVjdCgpOworfQorCiB2b2lkIEpTV3JhcHBlck9iamVjdDo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTV3JhcHBlck9i
amVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1dyYXBwZXJPYmplY3QqPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggNzM3
MTNjMC4uZTNhOTBjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
cmFwcGVyT2JqZWN0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAg
ICAgICB2aXJ0dWFsIH5KU1dyYXBwZXJPYmplY3QoKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0NlbGwqKTsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgV3JpdGVCYXJy
aWVyPFVua25vd24+IG1faW50ZXJuYWxWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5kZXggMDA2NTU5ZC4uNThiMDkxMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTU5LDYgKzU5LDggQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RhbihFeGVj
U3RhdGUqKTsKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0FTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVD
VE9SKE1hdGhPYmplY3QpOworCiBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0g
eyAiTWF0aCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bWF0aFRh
YmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1hdGhPYmplY3QpIH07CiAKIC8qIFNvdXJjZSBmb3Ig
TWF0aE9iamVjdC5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVj
dC5oCmluZGV4IGE0MTI5NTMuLjFkM2JlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgorCiAgICAgY2xhc3MgTWF0aE9iamVjdCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwcml2YXRlOgogICAgICAgICBNYXRoT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CkBAIC01Myw2ICs1Niw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAg
ICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogI2VuZGlmIC8vIE1hdGhPYmplY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggYTFlNDk2Ni4uM2Y0ZGMxOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3Bw
CkBAIC00NCw2ICs0NCw4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlND
IHsKIAorQVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoT2JqZWN0UHJvdG90eXBlKTsKKwog
Y29uc3QgQ2xhc3NJbmZvIE9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiT2JqZWN0IiwgJkpT
Tm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjpvYmplY3RQcm90b3R5cGVUYWJs
ZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShPYmplY3RQcm90b3R5cGUpIH07CiAKIC8qIFNvdXJjZSBm
b3IgT2JqZWN0UHJvdG90eXBlLmx1dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IGI2MDVhNDcuLjdkZTFmMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC0yNSw2ICsy
NSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIK
KwogICAgIGNsYXNzIE9iamVjdFByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwpAQCAt
NTksNiArNjIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX2hhc05vUHJvcGVy
dGllc1dpdGhVSW50MzJOYW1lczsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisKICAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Rv
U3RyaW5nKEV4ZWNTdGF0ZSopOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDcyMTNkYzIuLjdkZDIy
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNw
cApAQCAtNzksNiArNzksMTEgQEAgUmVnRXhwT2JqZWN0Ojp+UmVnRXhwT2JqZWN0KCkKIHsKIH0K
IAordm9pZCBSZWdFeHBPYmplY3Q6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIGpzQ2Fz
dDxSZWdFeHBPYmplY3QqPihjZWxsKS0+flJlZ0V4cE9iamVjdCgpOworfQorCiB2b2lkIFJlZ0V4
cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogewogICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxSZWdFeHBPYmplY3Qq
PihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgK
aW5kZXggYTExN2YzNi4uOGNiNmQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIH0KIAogICAgICAgICB2aXJ0dWFsIH5SZWdFeHBPYmplY3QoKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgICAgICB2b2lkIHNldFJlZ0V4cChKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFJlZ0V4cCogcikgeyBkLT5yZWdFeHAuc2V0KGdsb2JhbERhdGEs
IHRoaXMsIHIpOyB9CiAgICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgY29uc3QgeyByZXR1cm4gZC0+
cmVnRXhwLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKaW5kZXggMjEyODNkYi4uZmJkOWQ1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorQVNTRVJUX0hB
U19UUklWSUFMX0RFU1RSVUNUT1IoU3RyaWN0RXZhbEFjdGl2YXRpb24pOworCiBjb25zdCBDbGFz
c0luZm8gU3RyaWN0RXZhbEFjdGl2YXRpb246OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpz
X2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoU3RyaWN0RXZhbEFjdGl2YXRpb24pIH07
CiAKIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpTdHJpY3RFdmFsQWN0aXZhdGlvbihFeGVjU3RhdGUq
IGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RF
dmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uaAppbmRleCBiYjcwMzUyLi41NzA1ZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKQEAgLTMwLDYg
KzMwLDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9y
IgorCiBjbGFzcyBTdHJpY3RFdmFsQWN0aXZhdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKQEAgLTU4LDYg
KzYxLDggQEAgcHJpdmF0ZToKICAgICBTdHJpY3RFdmFsQWN0aXZhdGlvbihFeGVjU3RhdGUqKTsK
IH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogfSAvLyBuYW1lc3BhY2UgSlND
CiAKICNlbmRpZiAvLyBTdHJpY3RFdmFsQWN0aXZhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5jcHAKaW5kZXggOGVhNWQyOS4uNjgwMGZkZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtNDYsNiArNDYsMTEgQEAgVXNlck9iamVjdElt
cDo6flVzZXJPYmplY3RJbXAoKQogICAgICAgICBmSlNVc2VyT2JqZWN0LT5SZWxlYXNlKCk7CiB9
CiAKK3ZvaWQgVXNlck9iamVjdEltcDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganND
YXN0PFVzZXJPYmplY3RJbXAqPihjZWxsKS0+VXNlck9iamVjdEltcDo6flVzZXJPYmplY3RJbXAo
KTsKK30KKwogQ2FsbFR5cGUgVXNlck9iamVjdEltcDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxs
LCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgVXNlck9iamVjdEltcCogdGhpc09iamVjdCA9
IGpzQ2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuaAppbmRleCBkNjQ4YTk1Li5iMWIzNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICB2
aXJ0dWFsIH5Vc2VyT2JqZWN0SW1wKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwq
KTsKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IGE0YjhiMzQuLmFkMzk1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjQs
NiArMjY0LDkgQEAgX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U1Y2xvc2VFdgogX19aTjdXZWJD
b3JlMTJJY29uRGF0YWJhc2U5c2V0Q2xpZW50RVBOU18xOEljb25EYXRhYmFzZUNsaWVudEUKIF9f
Wk43V2ViQ29yZTEySWNvbkRhdGFiYXNlQzFFdgogX19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXIz
NHZpcnR1YWxGdW5jdGlvblRvUHJldmVudFdlYWtWdGFibGVFdgorX19aTjdXZWJDb3JlMTJKU0RP
TVdyYXBwZXI2c19pbmZvRQorX19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXI3ZGVzdHJveUVQTjNK
U0M2SlNDZWxsRQorX19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXJEMkV2CiBfX1pON1dlYkNvcmUx
MlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTEyUHJp
bnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dlYkNvcmUxMlBy
aW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0U2l6ZUUKQEAg
LTE3MzksNiArMTc0Miw3IEBAIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTlnZXRP
d25Qcm9wZXJ0eU5hbWVzRVBOU184SlNPYmplY3RFUE5TXzlFeGVjU3RhCiBfX1pOM0pTQzhCaW5k
aW5nczEzUnVudGltZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU184SlNPYmpl
Y3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlw
dG9yRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QzcHV0RVBOU182SlNDZWxsRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3Bl
cnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0NnNfaW5mb0UKK19fWk4z
SlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0N2Rlc3Ryb3lFUE5TXzZKU0NlbGxFCiBfX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdEMyRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFs
T2JqZWN0RVBOU185U3RydWN0dXJlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF84SW5zdGFuY2VFRUUK
IF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0RDJFdgogX19aTjNKU0M4QmluZGluZ3M4
SW5zdGFuY2UxOWNyZWF0ZVJ1bnRpbWVPYmplY3RFUE5TXzlFeGVjU3RhdGVFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcAppbmRleCBkNTRmZTc0Li5lODA0NjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAKQEAgLTMy
LDYgKzMyLDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY29uc3QgQ2xhc3NJbmZvIEpTRE9NV3JhcHBlcjo6c19pbmZvID0geyAiSlNET01XcmFwcGVy
IiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdyYXBwZXIp
IH07CisKK0pTRE9NV3JhcHBlcjo6fkpTRE9NV3JhcHBlcigpCit7Cit9CisKK3ZvaWQgSlNET01X
cmFwcGVyOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8SlNET01XcmFwcGVy
Kj4oY2VsbCktPn5KU0RPTVdyYXBwZXIoKTsKK30KKwogdm9pZCBKU0RPTVdyYXBwZXI6OnZpcnR1
YWxGdW5jdGlvblRvUHJldmVudFdlYWtWdGFibGUoKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCAzNjg1
Yzg5Li5iYTJiNDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
aApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3Qo
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIH0KIAorICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87CisKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwpAQCAtNjAsNiArNjIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIG5l
ZWRpbmcgdG8gcmVhY2ggdGhyb3VnaCB0aGUgZnJhbWUgdG8gZ2V0IHRvIHRoZSBEb2N1bWVudCou
ICBTZWUgYnVnIDI3NjQwLgogICAgICAgICAvLyBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwogICAgIH0KKworICAgIHZpcnR1YWwgfkpTRE9NV3JhcHBlcigp
OworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IDM3ZWQyYjEuLjMwN2JkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMDYyLDYgKzEw
NjIsOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5c
biIpOwogCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIH4ke2NsYXNzTmFt
ZX1Qcm90b3R5cGUoKTtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopO1xuXG4iKTsKKwogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogICAg
IGlmICgkbnVtRnVuY3Rpb25zID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlT
bG90In0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKQEAgLTE1MTEsNiArMTUx
NCwxNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPCR7Y2xhc3NOYW1lfT4oZXhlYywgZ2xv
YmFsT2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAg
ICAgfQorCisgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX1Qcm90b3R5cGU6On4k
e2NsYXNzTmFtZX1Qcm90b3R5cGUoKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ2b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpXG4i
KTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGpzQ2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKS0+fiR7Y2xhc3NOYW1l
fVByb3RvdHlwZSgpO1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworCiAg
ICAgaWYgKCRudW1Db25zdGFudHMgPiAwIHx8ICRudW1GdW5jdGlvbnMgPiAwIHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0
eVNsb3QifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGU3MjBlZjYuLjUzNjJkOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC05MCw2ICs5MCw5IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPE9iamVjdFN0cnVjdFB0cj4gX2FycmF5OwogfTsKIAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKIGNsYXNzIE9iamNGYWxsYmFja09iamVjdEltcCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKQEAgLTEyMiw2ICsxMjUsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6
CiAgICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
T2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKQEAgLTEzNiw2ICsxNDAsOCBA
QCBwcml2YXRlOgogICAgIElkZW50aWZpZXIgX2l0ZW07CiB9OwogCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDU1
OWI5MDIuLjcyZmVkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KQEAgLTE5OSw2ICsxOTksMTEgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFs
bGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKIHsKIH0K
IAordm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQorewor
ICAgIGpzQ2FzdDxPYmpjRmFsbGJhY2tPYmplY3RJbXAqPihjZWxsKS0+T2JqY0ZhbGxiYWNrT2Jq
ZWN0SW1wOjp+T2JqY0ZhbGxiYWNrT2JqZWN0SW1wKCk7Cit9CisKIHZvaWQgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQog
ewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDRhYmJjOGUuLjhk
ZWZmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtNTQs
NiArNTQsMTEgQEAgUnVudGltZU9iamVjdDo6flJ1bnRpbWVPYmplY3QoKQogICAgIEFTU0VSVCgh
bV9pbnN0YW5jZSk7CiB9CiAKK3ZvaWQgUnVudGltZU9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNl
bGwpCit7CisgICAganNDYXN0PFJ1bnRpbWVPYmplY3QqPihjZWxsKS0+flJ1bnRpbWVPYmplY3Qo
KTsKK30KKwogdm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQo
bV9pbnN0YW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDA1
MDQzMzYuLmY1ZTU4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBA
IC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2aXJ0dWFsIH5SdW50aW1lT2Jq
ZWN0KCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAK
aW5kZXggYTJmZDIyNi4uYWE1NmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtNzQsNiArNzQs
MTEgQEAgSlNOUE9iamVjdDo6fkpTTlBPYmplY3QoKQogICAgIEFTU0VSVCghbV9ucE9iamVjdCk7
CiB9CiAKK3ZvaWQgSlNOUE9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganND
YXN0PEpTTlBPYmplY3QqPihjZWxsKS0+SlNOUE9iamVjdDo6fkpTTlBPYmplY3QoKTsKK30KKwog
dm9pZCBKU05QT2JqZWN0OjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQobV9ucE9iamVjdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaAppbmRleCA0YjlhZDdjLi4yZWNmYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAg
LTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5QUnVudGltZU9iamVj
dE1hcDsKICAgICAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgorCiAvLyBKU05QT2JqZWN0
IGlzIGEgSlNPYmplY3QgdGhhdCB3cmFwcyBhbiBOUE9iamVjdC4KIAogY2xhc3MgSlNOUE9iamVj
dCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtNTIsNiArNTUsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgfkpTTlBPYmplY3QoKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQ2VsbCopOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKQEAgLTEwMSw2ICsxMDUsOCBA
QCBwcml2YXRlOgogICAgIE5QT2JqZWN0KiBtX25wT2JqZWN0OwogfTsKIAorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEpT
TlBPYmplY3RfaAotLSAKMS43LjQuNAoK
</data>
<flag name="review"
          id="118727"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>