<?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>7404</bug_id>
          
          <creation_ts>2006-02-21 08:12:09 -0800</creation_ts>
          <short_desc>remove a bunch of extra implementsCall overrides</short_desc>
          <delta_ts>2006-02-21 19:10:55 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>33599</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-21 08:12:09 -0800</bug_when>
    <thetext>After the changes last night, there are overrides of implementsCall that aren&apos;t needed. I have a patch that cleans them up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33600</commentid>
    <comment_count>1</comment_count>
      <attachid>6643</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-21 08:15:08 -0800</bug_when>
    <thetext>Created attachment 6643
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33601</commentid>
    <comment_count>2</comment_count>
      <attachid>6643</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2006-02-21 08:53:16 -0800</bug_when>
    <thetext>Comment on attachment 6643
patch

looks straightforward</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33659</commentid>
    <comment_count>3</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2006-02-21 19:10:55 -0800</bug_when>
    <thetext>Thanks for doing this, this was actually on my TODO list (I actually did it before in KJS, but dropped due to merge headaches)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6643</attachid>
            <date>2006-02-21 08:15:08 -0800</date>
            <delta_ts>2006-02-21 08:53:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ImplementsCallPatch.txt</filename>
            <type>text/plain</type>
            <size>38936</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9hcnJheV9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvYXJyYXlfb2JqZWN0
LmgJKHJldmlzaW9uIDEyOTE3KQorKysga2pzL2FycmF5X29iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MSw3ICs0MSw2IEBACiAgIHB1YmxpYzoKICAgICBBcnJheVByb3RvRnVuYyhFeGVjU3Rh
dGUgKmV4ZWMsIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1
ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29u
c3QgTGlzdCAmYXJncyk7CiAKICAgICBlbnVtIHsgVG9TdHJpbmcsIFRvTG9jYWxlU3RyaW5nLCBD
b25jYXQsIEpvaW4sIFBvcCwgUHVzaCwKQEAgLTYxLDcgKzYwLDYgQEAKIAogICAgIHZpcnR1YWwg
Ym9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU09iamVjdCAq
Y29uc3RydWN0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgTGlzdCAmYXJncyk7Ci0gICAgdmlydHVh
bCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxs
QXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0
ICZhcmdzKTsKIAogICB9OwpJbmRleDoga2pzL3JlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtqcy9yZWdleHBfb2JqZWN0LmNwcAkocmV2aXNpb24gMTI5MTcpCisrKyBranMvcmVnZXhw
X29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDExICs2OCw2IEBACiAgIHB1dERpcmVj
dChsZW5ndGhQcm9wZXJ0eU5hbWUsIGxlbiwgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7
CiB9CiAKLWJvb2wgUmVnRXhwUHJvdG9GdW5jOjppbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0g
IHJldHVybiB0cnVlOwotfQotCiBKU1ZhbHVlICpSZWdFeHBQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0
aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3Mp
CiB7CiAgIGlmICghdGhpc09iai0+aW5oZXJpdHMoJlJlZ0V4cEltcDo6aW5mbykpIHsKQEAgLTQx
MywxMSArNDA4LDYgQEAKICAgcmV0dXJuIGRhdDsKIH0KIAotYm9vbCBSZWdFeHBPYmplY3RJbXA6
OmltcGxlbWVudHNDYWxsKCkgY29uc3QKLXsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KIC8vIEVDTUEg
MTUuMTAuMwogSlNWYWx1ZSAqUmVnRXhwT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3Rh
dGUgKmV4ZWMsIEpTT2JqZWN0ICogLyp0aGlzT2JqKi8sIGNvbnN0IExpc3QgJmFyZ3MpCiB7Cklu
ZGV4OiBranMvbnVtYmVyX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9udW1iZXJfb2JqZWN0
LmgJKHJldmlzaW9uIDEyOTE3KQorKysga2pzL251bWJlcl9vYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNyArNTgsNiBAQAogICBwdWJsaWM6CiAgICAgTnVtYmVyUHJvdG9GdW5jKEV4ZWNT
dGF0ZSosIEZ1bmN0aW9uUHJvdG90eXBlKiwgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50aWZp
ZXImKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAq
dGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAKICAgICBlbnVtIHsgVG9TdHJpbmcsIFRvTG9j
YWxlU3RyaW5nLCBWYWx1ZU9mLCBUb0ZpeGVkLCBUb0V4cG9uZW50aWFsLCBUb1ByZWNpc2lvbiB9
OwpAQCAtODAsNyArNzksNiBAQAogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU09iamVjdCAqY29uc3RydWN0KEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgTGlzdCAmYXJncyk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwo
KSBjb25zdDsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAq
ZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwogCiAgICAgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKSW5kZXg6IGtqcy9mdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9mdW5jdGlv
bi5oCShyZXZpc2lvbiAxMjkxNykKKysrIGtqcy9mdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw3ICs0NSw2IEBACiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSAqdmFsdWUsIGludCBhdHRyID0g
Tm9uZSk7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywg
Y29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpbXBs
ZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24o
RXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAK
ICAgICB2b2lkIGFkZFBhcmFtZXRlcihjb25zdCBJZGVudGlmaWVyICZuKTsKQEAgLTE0Niw3ICsx
NDUsNiBAQAogICBjbGFzcyBHbG9iYWxGdW5jSW1wIDogcHVibGljIEludGVybmFsRnVuY3Rpb25J
bXAgewogICBwdWJsaWM6CiAgICAgR2xvYmFsRnVuY0ltcChFeGVjU3RhdGUqLCBGdW5jdGlvblBy
b3RvdHlwZSosIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgdmlydHVh
bCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxs
QXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0
ICZhcmdzKTsKICAgICB2aXJ0dWFsIENvZGVUeXBlIGNvZGVUeXBlKCkgY29uc3Q7CiAgICAgZW51
bSB7IEV2YWwsIFBhcnNlSW50LCBQYXJzZUZsb2F0LCBJc05hTiwgSXNGaW5pdGUsIEVzY2FwZSwg
VW5Fc2NhcGUsCkluZGV4OiBranMvb2JqZWN0X29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pz
L29iamVjdF9vYmplY3QuY3BwCShyZXZpc2lvbiAxMjkxNykKKysrIGtqcy9vYmplY3Rfb2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMTEgKzY5LDYgQEAKIH0KIAogCi1ib29sIE9iamVj
dFByb3RvRnVuYzo6aW1wbGVtZW50c0NhbGwoKSBjb25zdAotewotICByZXR1cm4gdHJ1ZTsKLX0K
LQogLy8gRUNNQSAxNS4yLjQuMiwgMTUuMi40LjQsIDE1LjIuNC41LCAxNS4yLjQuNwogCiBKU1Zh
bHVlICpPYmplY3RQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNP
YmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpCkBAIC0yMDUsMTEgKzIwMCw2IEBACiAg
IH0KIH0KIAotYm9vbCBPYmplY3RPYmplY3RJbXA6OmltcGxlbWVudHNDYWxsKCkgY29uc3QKLXsK
LSAgcmV0dXJuIHRydWU7Ci19Ci0KIEpTVmFsdWUgKk9iamVjdE9iamVjdEltcDo6Y2FsbEFzRnVu
Y3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqLyp0aGlzT2JqKi8sIGNvbnN0IExpc3Qg
JmFyZ3MpCiB7CiAgIEpTVmFsdWUgKnJlc3VsdDsKSW5kZXg6IGtqcy9zdHJpbmdfb2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBranMvc3RyaW5nX29iamVjdC5jcHAJKHJldmlzaW9uIDEyOTE3KQor
Kysga2pzL3N0cmluZ19vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQsMTEgKzE3NCw2
IEBACiAgIHB1dERpcmVjdChsZW5ndGhQcm9wZXJ0eU5hbWUsIGxlbiwgRG9udERlbGV0ZXxSZWFk
T25seXxEb250RW51bSk7CiB9CiAKLWJvb2wgU3RyaW5nUHJvdG9GdW5jOjppbXBsZW1lbnRzQ2Fs
bCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0cnVlOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgZXhw
YW5kU291cmNlUmFuZ2VzKFVTdHJpbmc6OlJhbmdlICogJiBhcnJheSwgaW50JiBjb3VudCwgaW50
JiBjYXBhY2l0eSkKIHsKICAgaW50IG5ld0NhcGFjaXR5OwpAQCAtNzE5LDExICs3MTQsNiBAQAog
ICByZXR1cm4gbmV3IFN0cmluZ0luc3RhbmNlKHByb3RvLCBhcmdzLmJlZ2luKCktPnRvU3RyaW5n
KGV4ZWMpKTsKIH0KIAotYm9vbCBTdHJpbmdPYmplY3RJbXA6OmltcGxlbWVudHNDYWxsKCkgY29u
c3QKLXsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KIC8vIEVDTUEgMTUuNS4xCiBKU1ZhbHVlICpTdHJp
bmdPYmplY3RJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKi8q
dGhpc09iaiovLCBjb25zdCBMaXN0ICZhcmdzKQogewpAQCAtNzQ0LDExICs3MzQsNiBAQAogICBw
dXREaXJlY3QobGVuZ3RoUHJvcGVydHlOYW1lLCBqc051bWJlcigxKSwgRG9udERlbGV0ZXxSZWFk
T25seXxEb250RW51bSk7CiB9CiAKLWJvb2wgU3RyaW5nT2JqZWN0RnVuY0ltcDo6aW1wbGVtZW50
c0NhbGwoKSBjb25zdAotewotICByZXR1cm4gdHJ1ZTsKLX0KLQogSlNWYWx1ZSAqU3RyaW5nT2Jq
ZWN0RnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqLyp0
aGlzT2JqKi8sIGNvbnN0IExpc3QgJmFyZ3MpCiB7CiAgIFVTdHJpbmcgczsKSW5kZXg6IGtqcy9m
dW5jdGlvbl9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvZnVuY3Rpb25fb2JqZWN0LmgJKHJl
dmlzaW9uIDEyOTE3KQorKysga2pzL2Z1bmN0aW9uX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw3ICszOSw2IEBACiAgICAgRnVuY3Rpb25Qcm90b3R5cGUoRXhlY1N0YXRlICpleGVjKTsK
ICAgICB2aXJ0dWFsIH5GdW5jdGlvblByb3RvdHlwZSgpOwogCi0gICAgdmlydHVhbCBib29sIGlt
cGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlv
bihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsK
ICAgfTsKIApAQCAtNTMsNyArNTIsNiBAQAogICBwdWJsaWM6CiAgICAgRnVuY3Rpb25Qcm90b0Z1
bmMoRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqLCBpbnQgaSwgaW50IGxlbiwgY29uc3Qg
SWRlbnRpZmllciYpOwogCi0gICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpT
T2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKIAogICAgIGVudW0geyBUb1N0cmlu
ZywgQXBwbHksIENhbGwgfTsKQEAgLTc0LDcgKzcyLDYgQEAKICAgICB2aXJ0dWFsIGJvb2wgaW1w
bGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVj
dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MsIGNvbnN0IFVTdHJpbmcgJnNvdXJj
ZVVSTCwgaW50IGxpbmVOdW1iZXIpOwogICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChF
eGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOwotICAgIHZpcnR1YWwgYm9vbCBpbXBs
ZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24o
RXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAg
IH07CiAKSW5kZXg6IGtqcy9pbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9pbnRlcm5hbC5o
CShyZXZpc2lvbiAxMjkxOCkKKysrIGtqcy9pbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NDMsOCArMzQzLDYgQEAKICAgICBib29sIGlzQWJvcnRlZDsKICAgfTsKIAotCi0KICAgY2xhc3Mg
SW50ZXJuYWxGdW5jdGlvbkltcCA6IHB1YmxpYyBKU09iamVjdCB7CiAgIHB1YmxpYzoKICAgICBJ
bnRlcm5hbEZ1bmN0aW9uSW1wKCk7CkBAIC0zNTIsMTMgKzM1MCwxNCBAQAogICAgIEludGVybmFs
RnVuY3Rpb25JbXAoRnVuY3Rpb25Qcm90b3R5cGUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsKLQorICAgIHZpcnR1YWwgSlNW
YWx1ZSogY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNPYmplY3QqIHRoaXNPYmplYywgY29u
c3QgTGlzdCYgYXJncykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzSGFzSW5zdGFu
Y2UoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlICpleGVj
LCBKU1ZhbHVlICp2YWx1ZSk7CisgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0
ZSosIEpTVmFsdWUqKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvICpjbGFzc0luZm8o
KSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQorICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBj
bGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQogICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gaW5mbzsKICAgICBjb25zdCBJZGVudGlmaWVyJiBmdW5jdGlvbk5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KKwogICBwcml2YXRlOgogICAgIElkZW50aWZpZXIgbV9uYW1lOwog
ICB9OwpJbmRleDoga2pzL21hdGhfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL21hdGhfb2Jq
ZWN0LmgJKHJldmlzaW9uIDEyOTE3KQorKysga2pzL21hdGhfb2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDYgQEAKICAgY2xhc3MgTWF0aEZ1bmNJbXAgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbkltcCB7CiAgIHB1YmxpYzoKICAgICBNYXRoRnVuY0ltcChFeGVjU3RhdGUgKmV4
ZWMsIGludCBpLCBpbnQgbCwgY29uc3QgSWRlbnRpZmllciYpOwotICAgIHZpcnR1YWwgYm9vbCBp
bXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rp
b24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7
CiAgIHByaXZhdGU6CiAgICAgaW50IGlkOwpJbmRleDoga2pzL2Vycm9yX29iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtqcy9lcnJvcl9vYmplY3QuaAkocmV2aXNpb24gMTI5MTcpCisrKyBranMvZXJy
b3Jfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYgQEAKICAgY2xhc3MgRXJy
b3JQcm90b0Z1bmMgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbkltcCB7CiAgIHB1YmxpYzoKICAg
ICBFcnJvclByb3RvRnVuYyhFeGVjU3RhdGUqLCBGdW5jdGlvblByb3RvdHlwZSosIGNvbnN0IElk
ZW50aWZpZXImKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmpl
Y3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwogICB9OwogCkBAIC01Nyw3ICs1Niw2IEBA
CiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDb25zdHJ1Y3QoKSBjb25zdDsKICAgICB2aXJ0
dWFsIEpTT2JqZWN0ICpjb25zdHJ1Y3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBMaXN0ICZhcmdz
KTsKIAotICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhp
c09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAgIH07CiAKQEAgLTc2LDcgKzc0LDYgQEAKIAogICAg
IHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBK
U09iamVjdCAqY29uc3RydWN0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgTGlzdCAmYXJncyk7Ci0g
ICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU1Zh
bHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBj
b25zdCBMaXN0ICZhcmdzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYXJrKCk7CkluZGV4OiBranMv
ZnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9mdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEy
OTE3KQorKysga2pzL2Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNiBA
QAogRnVuY3Rpb25JbXA6OkZ1bmN0aW9uSW1wKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRp
ZmllciAmbikKICAgOiBJbnRlcm5hbEZ1bmN0aW9uSW1wKHN0YXRpY19jYXN0PEZ1bmN0aW9uUHJv
dG90eXBlKj4KICAgICAgICAgICAgICAgICAgICAgICAgIChleGVjLT5sZXhpY2FsSW50ZXJwcmV0
ZXIoKS0+YnVpbHRpbkZ1bmN0aW9uUHJvdG90eXBlKCkpLCBuKQotICAsIHBhcmFtKDBMKQogewog
fQogCkBAIC02NiwxMSArNjUsNiBAQAogewogfQogCi1ib29sIEZ1bmN0aW9uSW1wOjppbXBsZW1l
bnRzQ2FsbCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0cnVlOwotfQotCiBKU1ZhbHVlICpGdW5jdGlv
bkltcDo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwg
Y29uc3QgTGlzdCAmYXJncykKIHsKICAgSlNPYmplY3QgKmdsb2JhbE9iaiA9IGV4ZWMtPmR5bmFt
aWNJbnRlcnByZXRlcigpLT5nbG9iYWxPYmplY3QoKTsKQEAgLTU2OSwxMSArNTYzLDYgQEAKICAg
cmV0dXJuIGlkID09IEV2YWwgPyBFdmFsQ29kZSA6IGNvZGVUeXBlKCk7CiB9CiAKLWJvb2wgR2xv
YmFsRnVuY0ltcDo6aW1wbGVtZW50c0NhbGwoKSBjb25zdAotewotICByZXR1cm4gdHJ1ZTsKLX0K
LQogc3RhdGljIEpTVmFsdWUgKmVuY29kZShFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFy
Z3MsIGNvbnN0IGNoYXIgKmRvX25vdF9lc2NhcGUpCiB7CiAgIFVTdHJpbmcgciA9ICIiLCBzLCBz
dHIgPSBhcmdzWzBdLT50b1N0cmluZyhleGVjKTsKSW5kZXg6IGtqcy9yZWdleHBfb2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2pzL3JlZ2V4cF9vYmplY3QuaAkocmV2aXNpb24gMTI5MTcpCisrKyBr
anMvcmVnZXhwX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBACiAgIHB1
YmxpYzoKICAgICBSZWdFeHBQcm90b0Z1bmMoRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUq
LCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYpOwogCi0gICAgdmlydHVhbCBib29s
IGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5j
dGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdz
KTsKIAogICAgIGVudW0geyBFeGVjLCBUZXN0LCBUb1N0cmluZyB9OwpAQCAtNzMsNyArNzIsNiBA
QAogICAgICAgICAgICAgICAgICAgICBSZWdFeHBQcm90b3R5cGUgKnJlZ1Byb3RvKTsKICAgICB2
aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNP
YmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOwotICAg
IHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1
ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29u
c3QgTGlzdCAmYXJncyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqLCBjb25z
dCBJZGVudGlmaWVyICYsIEpTVmFsdWUgKiwgaW50IGF0dHIgPSBOb25lKTsKSW5kZXg6IGtqcy9i
b29sX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ib29sX29iamVjdC5oCShyZXZpc2lvbiAx
MjkxNykKKysrIGtqcy9ib29sX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw2
IEBACiAgIHB1YmxpYzoKICAgICBCb29sZWFuUHJvdG9GdW5jKEV4ZWNTdGF0ZSosIEZ1bmN0aW9u
UHJvdG90eXBlKiwgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAq
Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3Qg
TGlzdCAmYXJncyk7CiAKICAgICBlbnVtIHsgVG9TdHJpbmcsIFZhbHVlT2YgfTsKQEAgLTgwLDcg
Kzc5LDYgQEAKICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExp
c3QgJmFyZ3MpOwogCi0gICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2Jq
ZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKICAgfTsKIApJbmRleDoga2pzL29iamVj
dF9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvb2JqZWN0X29iamVjdC5oCShyZXZpc2lvbiAx
MjkxNykKKysrIGtqcy9vYmplY3Rfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDYgQEAKICAgcHVibGljOgogICAgIE9iamVjdFByb3RvRnVuYyhFeGVjU3RhdGUqIGV4ZWMsIEZ1
bmN0aW9uUHJvdG90eXBlKiBmdW5jUHJvdG8sIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlm
aWVyJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsKICAgICB2
aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqLCBKU09iamVjdCAqLCBj
b25zdCBMaXN0ICZhcmdzKTsKIAogICAgIGVudW0geyBUb1N0cmluZywgVG9Mb2NhbGVTdHJpbmcs
IFZhbHVlT2YsIEhhc093blByb3BlcnR5LCBJc1Byb3RvdHlwZU9mLCBQcm9wZXJ0eUlzRW51bWVy
YWJsZSwKQEAgLTcyLDcgKzcxLDYgQEAKIAogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29u
c3RydWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBKU09iamVjdCAqY29uc3RydWN0KEV4ZWNTdGF0
ZSAqLCBjb25zdCBMaXN0ICZhcmdzKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwo
KSBjb25zdDsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAq
LCBKU09iamVjdCAqLCBjb25zdCBMaXN0ICZhcmdzKTsKICAgfTsKIApJbmRleDoga2pzL3N0cmlu
Z19vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvc3RyaW5nX29iamVjdC5oCShyZXZpc2lvbiAx
MjkxNykKKysrIGtqcy9zdHJpbmdfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5
LDYgQEAKICAgcHVibGljOgogICAgIFN0cmluZ1Byb3RvRnVuYyhFeGVjU3RhdGUgKmV4ZWMsIGlu
dCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVyJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaW1w
bGVtZW50c0NhbGwoKSBjb25zdDsKICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9u
KEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwog
CiAgICAgZW51bSB7IFRvU3RyaW5nLCBWYWx1ZU9mLCBDaGFyQXQsIENoYXJDb2RlQXQsIENvbmNh
dCwgSW5kZXhPZiwgTGFzdEluZGV4T2YsCkBAIC05OCw3ICs5Nyw2IEBACiAKICAgICB2aXJ0dWFs
IGJvb2wgaW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNPYmplY3Qg
KmNvbnN0cnVjdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOwotICAgIHZpcnR1
YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2Fs
bEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlz
dCAmYXJncyk7CiAgIH07CiAKQEAgLTExMSw3ICsxMDksNiBAQAogICBjbGFzcyBTdHJpbmdPYmpl
Y3RGdW5jSW1wIDogcHVibGljIEludGVybmFsRnVuY3Rpb25JbXAgewogICBwdWJsaWM6CiAgICAg
U3RyaW5nT2JqZWN0RnVuY0ltcChFeGVjU3RhdGUqLCBGdW5jdGlvblByb3RvdHlwZSosIGNvbnN0
IElkZW50aWZpZXImKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNP
YmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwogICB9OwogCkluZGV4OiBranMvZGF0
ZV9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvZGF0ZV9vYmplY3QuaAkocmV2aXNpb24gMTI5
MTcpCisrKyBranMvZGF0ZV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNiBA
QAogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUgKiwgY29uc3QgTGlz
dCAmYXJncyk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Owog
ICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqLCBKU09i
amVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAKICAgICAgICAgQ29tcGxldGlvbiBl
eGVjdXRlKGNvbnN0IExpc3QgJik7CkluZGV4OiBranMvZnVuY3Rpb25fb2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBranMvZnVuY3Rpb25fb2JqZWN0LmNwcAkocmV2aXNpb24gMTI5MTcpCisrKyBr
anMvZnVuY3Rpb25fb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTEgKzUyLDYgQEAK
IHsKIH0KIAotYm9vbCBGdW5jdGlvblByb3RvdHlwZTo6aW1wbGVtZW50c0NhbGwoKSBjb25zdAot
ewotICByZXR1cm4gdHJ1ZTsKLX0KLQogLy8gRUNNQSAxNS4zLjQKIEpTVmFsdWUgKkZ1bmN0aW9u
UHJvdG90eXBlOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKi8qZXhlYyovLCBKU09iamVjdCAq
Lyp0aGlzT2JqKi8sIGNvbnN0IExpc3QgJi8qYXJncyovKQogewpAQCAtNzIsMTIgKzY3LDYgQEAK
ICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFtZSwgbGVuLCBEb250RGVsZXRlfFJlYWRPbmx5
fERvbnRFbnVtKTsKIH0KIAotCi1ib29sIEZ1bmN0aW9uUHJvdG9GdW5jOjppbXBsZW1lbnRzQ2Fs
bCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0cnVlOwotfQotCiBKU1ZhbHVlICpGdW5jdGlvblByb3Rv
RnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwg
Y29uc3QgTGlzdCAmYXJncykKIHsKICAgSlNWYWx1ZSAqcmVzdWx0ID0gTlVMTDsKQEAgLTI2Niwx
NSArMjU1LDggQEAKICAgcmV0dXJuIEZ1bmN0aW9uT2JqZWN0SW1wOjpjb25zdHJ1Y3QoZXhlYywg
YXJncywgVVN0cmluZygpLCAwKTsKIH0KIAotCi1ib29sIEZ1bmN0aW9uT2JqZWN0SW1wOjppbXBs
ZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0cnVlOwotfQotCiAvLyBFQ01BIDE1LjMu
MSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24KIEpTVmFsdWUg
KkZ1bmN0aW9uT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2Jq
ZWN0ICovKnRoaXNPYmoqLywgY29uc3QgTGlzdCAmYXJncykKIHsKICAgcmV0dXJuIGNvbnN0cnVj
dChleGVjLGFyZ3MpOwogfQotCkluZGV4OiBranMvbWF0aF9vYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtqcy9tYXRoX29iamVjdC5jcHAJKHJldmlzaW9uIDEyOTE3KQorKysga2pzL21hdGhfb2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDExICsxNjAsNiBAQAogICBwdXREaXJlY3Qo
bGVuZ3RoUHJvcGVydHlOYW1lLCBsLCBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0K
IAotYm9vbCBNYXRoRnVuY0ltcDo6aW1wbGVtZW50c0NhbGwoKSBjb25zdAotewotICByZXR1cm4g
dHJ1ZTsKLX0KLQogSlNWYWx1ZSAqTWF0aEZ1bmNJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0
ZSAqZXhlYywgSlNPYmplY3QgKi8qdGhpc09iaiovLCBjb25zdCBMaXN0ICZhcmdzKQogewogICBk
b3VibGUgYXJnID0gYXJnc1swXS0+dG9OdW1iZXIoZXhlYyk7CkluZGV4OiBranMvZXJyb3Jfb2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBranMvZXJyb3Jfb2JqZWN0LmNwcAkocmV2aXNpb24gMTI5
MTcpCisrKyBranMvZXJyb3Jfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTEgKzY0
LDYgQEAKICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFtZSwganNOdW1iZXIoMCksIERvbnRE
ZWxldGV8UmVhZE9ubHl8RG9udEVudW0pOwogfQogCi1ib29sIEVycm9yUHJvdG9GdW5jOjppbXBs
ZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0cnVlOwotfQotCiBKU1ZhbHVlICpFcnJv
clByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhp
c09iaiwgY29uc3QgTGlzdCAmLyphcmdzKi8pCiB7CiAgIC8vIHRvU3RyaW5nKCkKQEAgLTExNywx
MSArMTEyLDYgQEAKICAgcmV0dXJuIG9iajsKIH0KIAotYm9vbCBFcnJvck9iamVjdEltcDo6aW1w
bGVtZW50c0NhbGwoKSBjb25zdAotewotICByZXR1cm4gdHJ1ZTsKLX0KLQogLy8gRUNNQSAxNS45
LjIKIEpTVmFsdWUgKkVycm9yT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4
ZWMsIEpTT2JqZWN0ICovKnRoaXNPYmoqLywgY29uc3QgTGlzdCAmYXJncykKIHsKQEAgLTE2Niwx
MSArMTU2LDYgQEAKICAgcmV0dXJuIG9iajsKIH0KIAotYm9vbCBOYXRpdmVFcnJvckltcDo6aW1w
bGVtZW50c0NhbGwoKSBjb25zdAotewotICByZXR1cm4gdHJ1ZTsKLX0KLQogSlNWYWx1ZSAqTmF0
aXZlRXJyb3JJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKi8q
dGhpc09iaiovLCBjb25zdCBMaXN0ICZhcmdzKQogewogICByZXR1cm4gY29uc3RydWN0KGV4ZWMs
YXJncyk7CkluZGV4OiBranMvYm9vbF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ib29s
X29iamVjdC5jcHAJKHJldmlzaW9uIDEyOTE3KQorKysga2pzL2Jvb2xfb2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjcsMTIgKzY3LDYgQEAKIH0KIAogCi1ib29sIEJvb2xlYW5Qcm90b0Z1
bmM6OmltcGxlbWVudHNDYWxsKCkgY29uc3QKLXsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLQogLy8g
RUNNQSAxNS42LjQuMiArIDE1LjYuNC4zCiBKU1ZhbHVlICpCb29sZWFuUHJvdG9GdW5jOjpjYWxs
QXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0
ICYvKmFyZ3MqLykKIHsKQEAgLTEyNSwxMSArMTE5LDYgQEAKICAgcmV0dXJuIG9iajsKIH0KIAot
Ym9vbCBCb29sZWFuT2JqZWN0SW1wOjppbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0gIHJldHVy
biB0cnVlOwotfQotCiAvLyBFQ01BIDE1LjYuMQogSlNWYWx1ZSAqQm9vbGVhbk9iamVjdEltcDo6
Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqLyp0aGlzT2JqKi8sIGNv
bnN0IExpc3QgJmFyZ3MpCiB7CkluZGV4OiBranMvZGF0ZV9vYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtqcy9kYXRlX29iamVjdC5jcHAJKHJldmlzaW9uIDEyOTE3KQorKysga2pzL2RhdGVfb2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNiBAQAogcHVibGljOgogICAgIERh
dGVQcm90b0Z1bmMoRXhlY1N0YXRlICosIGludCBpLCBpbnQgbGVuLCBjb25zdCBJZGVudGlmaWVy
JiBkYXRlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICosIEpTT2JqZWN0ICp0
aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsKIAogICAgIENvbXBsZXRpb24gZXhlY3V0ZShjb25z
dCBMaXN0ICYpOwpAQCAtMTEyLDcgKzExMSw2IEBACiBwdWJsaWM6CiAgICAgRGF0ZU9iamVjdEZ1
bmNJbXAoRXhlY1N0YXRlICosIEZ1bmN0aW9uUHJvdG90eXBlICosIGludCBpLCBpbnQgbGVuLCBj
b25zdCBJZGVudGlmaWVyJiApOwogCi0gICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBKU1ZhbHVlICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKiwg
SlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOwogCiAgICAgZW51bSB7IFBhcnNl
LCBVVEMgfTsKQEAgLTU0OCwxMSArNTQ2LDYgQEAKICAgICBwdXREaXJlY3QobGVuZ3RoUHJvcGVy
dHlOYW1lLCBsZW4sIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0pOwogfQogCi1ib29sIERh
dGVQcm90b0Z1bmM6OmltcGxlbWVudHNDYWxsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQogSlNWYWx1ZSAqRGF0ZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpl
eGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKIHsKICAgaWYgKCF0aGlz
T2JqLT5pbmhlcml0cygmRGF0ZUluc3RhbmNlOjppbmZvKSkKQEAgLTc5NiwxMSArNzg5LDYgQEAK
ICAgcmV0dXJuIHJldDsKIH0KIAotYm9vbCBEYXRlT2JqZWN0SW1wOjppbXBsZW1lbnRzQ2FsbCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIC8vIEVDTUEgMTUuOS4yCiBKU1ZhbHVl
ICpEYXRlT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKiAvKmV4ZWMqLywgSlNP
YmplY3QgKiAvKnRoaXNPYmoqLywgY29uc3QgTGlzdCAmLyphcmdzKi8pCiB7CkBAIC04MTcsMTEg
KzgwNSw2IEBACiAgICAgcHV0RGlyZWN0KGxlbmd0aFByb3BlcnR5TmFtZSwgbGVuLCBEb250RGVs
ZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KIAotYm9vbCBEYXRlT2JqZWN0RnVuY0ltcDo6aW1w
bGVtZW50c0NhbGwoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiAvLyBFQ01BIDE1
LjkuNC4yIC0gMwogSlNWYWx1ZSAqRGF0ZU9iamVjdEZ1bmNJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4
ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpCiB7Cklu
ZGV4OiBranMvYXJyYXlfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvYXJyYXlfb2JqZWN0
LmNwcAkocmV2aXNpb24gMTI5MTcpCisrKyBranMvYXJyYXlfb2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQxLDExICs0NDEsNiBAQAogICBwdXQoZXhlYyxsZW5ndGhQcm9wZXJ0eU5hbWUs
anNOdW1iZXIobGVuKSxEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtKTsKIH0KIAotYm9vbCBB
cnJheVByb3RvRnVuYzo6aW1wbGVtZW50c0NhbGwoKSBjb25zdAotewotICByZXR1cm4gdHJ1ZTsK
LX0KLQogc3RhdGljIEpTVmFsdWUgKmdldFByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmpl
Y3QgKm9iaiwgdW5zaWduZWQgaW5kZXgpCiB7CiAgICAgUHJvcGVydHlTbG90IHNsb3Q7CkBAIC05
NTEsMTEgKzk0Niw2IEBACiAgIHJldHVybiBuZXcgQXJyYXlJbnN0YW5jZShleGVjLT5sZXhpY2Fs
SW50ZXJwcmV0ZXIoKS0+YnVpbHRpbkFycmF5UHJvdG90eXBlKCksIGFyZ3MpOwogfQogCi1ib29s
IEFycmF5T2JqZWN0SW1wOjppbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0cnVl
OwotfQotCiAvLyBFQ01BIDE1LjYuMQogSlNWYWx1ZSAqQXJyYXlPYmplY3RJbXA6OmNhbGxBc0Z1
bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKi8qdGhpc09iaiovLCBjb25zdCBMaXN0
ICZhcmdzKQogewpJbmRleDoga2pzL251bWJlcl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtq
cy9udW1iZXJfb2JqZWN0LmNwcAkocmV2aXNpb24gMTI5MTcpCisrKyBranMvbnVtYmVyX29iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDEyICs3OCw2IEBACiAgIHB1dERpcmVjdChsZW5n
dGhQcm9wZXJ0eU5hbWUsIGxlbiwgRG9udERlbGV0ZXxSZWFkT25seXxEb250RW51bSk7CiB9CiAK
LQotYm9vbCBOdW1iZXJQcm90b0Z1bmM6OmltcGxlbWVudHNDYWxsKCkgY29uc3QKLXsKLSAgcmV0
dXJuIHRydWU7Ci19Ci0KIHN0YXRpYyBVU3RyaW5nIGludGVnZXJfcGFydF9ub2V4cChkb3VibGUg
ZCkKIHsKICAgICBpbnQgZGVjaW1hbFBvaW50OwpAQCAtNDU1LDExICs0NDksNiBAQAogICByZXR1
cm4gb2JqOwogfQogCi1ib29sIE51bWJlck9iamVjdEltcDo6aW1wbGVtZW50c0NhbGwoKSBjb25z
dAotewotICByZXR1cm4gdHJ1ZTsKLX0KLQogLy8gRUNNQSAxNS43LjIKIEpTVmFsdWUgKk51bWJl
ck9iamVjdEltcDo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqLyp0
aGlzT2JqKi8sIGNvbnN0IExpc3QgJmFyZ3MpCiB7CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjkyMCkKKysrIENoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDQ3IEBACiAyMDA2LTAyLTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNAor
ICAgICAgICAgIHJlbW92ZSBhIGJ1bmNoIG9mIGV4dHJhIGltcGxlbWVudHNDYWxsIG92ZXJyaWRl
cworCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
U29ydGVkIGZpbGVzLgorCisgICAgICAgICoga2pzL2ludGVybmFsLmg6IE1hZGUgSW50ZXJuYWxG
dW5jdGlvbkltcDo6Y2FsbEFzRnVuY3Rpb24gcHVyZSB2aXJ0dWFsIHNvIHRoYXQKKyAgICAgICAg
d2UnbGwgZ2V0IGEgY29tcGlsZSBlcnJvciBpZiBzb21lIHN1YmNsYXNzIG5lZ2xlY3RzIHRvIGlt
cGxlbWVudCBpdC4KKworICAgICAgICAqIGtqcy9mdW5jdGlvbi5jcHA6IChLSlM6OkZ1bmN0aW9u
SW1wOjpGdW5jdGlvbkltcCk6IFJlbW92ZSB1bm5lZWRlZCBpbml0aWFsaXphdGlvbgorICAgICAg
ICBvZiBwYXJhbSwgd2hpY2ggaXMgYW4gT3duUHRyIHNvIGl0IGdldHMgaW5pdGlhbGl6ZWQgYnkg
ZGVmYXVsdC4KKworICAgICAgICAqIGJpbmRpbmdzL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9ydW50aW1lX21ldGhvZC5oOgorICAgICAgICAqIGtqcy9hcnJheV9vYmpl
Y3QuY3BwOgorICAgICAgICAqIGtqcy9hcnJheV9vYmplY3QuaDoKKyAgICAgICAgKiBranMvYm9v
bF9vYmplY3QuY3BwOgorICAgICAgICAqIGtqcy9ib29sX29iamVjdC5oOgorICAgICAgICAqIGtq
cy9kYXRlX29iamVjdC5jcHA6CisgICAgICAgICoga2pzL2RhdGVfb2JqZWN0Lmg6CisgICAgICAg
ICoga2pzL2Vycm9yX29iamVjdC5jcHA6CisgICAgICAgICoga2pzL2Vycm9yX29iamVjdC5oOgor
ICAgICAgICAqIGtqcy9mdW5jdGlvbi5jcHA6CisgICAgICAgICoga2pzL2Z1bmN0aW9uLmg6Cisg
ICAgICAgICoga2pzL2Z1bmN0aW9uX29iamVjdC5jcHA6CisgICAgICAgICoga2pzL2Z1bmN0aW9u
X29iamVjdC5oOgorICAgICAgICAqIGtqcy9tYXRoX29iamVjdC5jcHA6CisgICAgICAgICoga2pz
L21hdGhfb2JqZWN0Lmg6CisgICAgICAgICoga2pzL251bWJlcl9vYmplY3QuY3BwOgorICAgICAg
ICAqIGtqcy9udW1iZXJfb2JqZWN0Lmg6CisgICAgICAgICoga2pzL29iamVjdF9vYmplY3QuY3Bw
OgorICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0Lmg6CisgICAgICAgICoga2pzL3JlZ2V4cF9v
YmplY3QuY3BwOgorICAgICAgICAqIGtqcy9yZWdleHBfb2JqZWN0Lmg6CisgICAgICAgICoga2pz
L3N0cmluZ19vYmplY3QuY3BwOgorICAgICAgICAqIGtqcy9zdHJpbmdfb2JqZWN0Lmg6CisgICAg
ICAgIFJlbW92ZWQgbWFueSByZW5kdW5kYW50IGltcGxlbWVudGF0aW9ucyBvZiBpbXBsZW1lbnRz
Q2FsbCBmcm9tIHN1YmNsYXNzZXMgb2YKKyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbkltcC4KKwor
MjAwNi0wMi0yMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKICAgICAgICAgLSBm
aXhlZCBidWlsZAogCiAgICAgICAgICoga2pzL2ludGVybmFsLmNwcDogKEtKUzo6SW50ZXJuYWxG
dW5jdGlvbkltcDo6aW1wbGVtZW50c0NhbGwpOgpJbmRleDogYmluZGluZ3MvcnVudGltZV9tZXRo
b2QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL3J1bnRpbWVfbWV0aG9kLmNwcAkocmV2aXNp
b24gMTI5MTcpCisrKyBiaW5kaW5ncy9ydW50aW1lX21ldGhvZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDExICs2NCw2IEBACiAgICAgcmV0dXJuIEZ1bmN0aW9uSW1wOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBSdW50aW1lTWV0aG9k
OjppbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIEpTVmFs
dWUgKlJ1bnRpbWVNZXRob2Q6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmpl
Y3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpCiB7CiAgICAgaWYgKF9tZXRob2RMaXN0Lmxl
bmd0aCgpID4gMCkgewpJbmRleDogYmluZGluZ3MvcnVudGltZV9tZXRob2QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBiaW5kaW5ncy9ydW50aW1lX21ldGhvZC5oCShyZXZpc2lvbiAxMjkxNykKKysrIGJpbmRp
bmdzL3J1bnRpbWVfbWV0aG9kLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDYgQEAKIAog
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRz
Q2FsbCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0
YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7CiAKICAgICB2
aXJ0dWFsIENvZGVUeXBlIGNvZGVUeXBlKCkgY29uc3Q7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyOTE3KQorKysgSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTI3LDEwNCAr
NTI3LDE4IEBACiAJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5MzIyQTAwMzA2QzM0
MUQzMDA5MDY3QkIgLyogbGliaWN1Y29yZS5keWxpYiAqLywKLQkJCQk1MUYwRUMwNzA1Qzg2QzlB
MDBFNkRGMUIgLyogbGlib2JqYy5keWxpYiAqLywKLQkJCQk1MUYwRUI2MTA1Qzg2QzZCMDBFNkRG
MUIgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJNjU2MEE0Q0YwNEIzQjNFNzAwOEFF
OTUyIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQk2NTYwQTYzRDA0QjNCNjlG
MDA4QUU5NTIgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayAqLywKKwkJCQk1MUYwRUI2MTA1Qzg2
QzZCMDBFNkRGMUIgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCisJCQkJOTMyMkEwMDMwNkMz
NDFEMzAwOTA2N0JCIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCisJCQkJNTFGMEVDMDcwNUM4NkM5
QTAwRTZERjFCIC8qIGxpYm9iamMuZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEZyYW1ld29y
a3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQkwOEZCNzdBRUZFODQxNzJF
QzAyQUFDMDcgLyogQ2xhc3NlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJNjVFQTRDOTkwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5jcHAgKi8sCi0J
CQkJNjVFQTRDOUEwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5oICovLAotCQkJCTY1NjIxRTZC
MDg5RTg1OTcwMDc2MEYzNSAvKiBwcm9wZXJ0eV9zbG90LmNwcCAqLywKLQkJCQk2NTYyMUU2QzA4
OUU4NTk3MDA3NjBGMzUgLyogcHJvcGVydHlfc2xvdC5oICovLAotCQkJCTkzODc3MkU1MDM4QkZF
MTkwMDg2MzVDRSAvKiBhcnJheV9pbnN0YW5jZS5oICovLAotCQkJCTY1MkMxMDdFMDhEQTdCMUUw
MDIwODg3RCAvKiBwcm90ZWN0ZWRfcmVmZXJlbmNlLmggKi8sCi0JCQkJRjY5MkE4NEUwMjU1NTk3
RDAxRkY2MEY3IC8qIGFycmF5X29iamVjdC5oICovLAotCQkJCUY2OTJBODREMDI1NTU5N0QwMUZG
NjBGNyAvKiBhcnJheV9vYmplY3QuY3BwICovLAotCQkJCUY2OTJBODUwMDI1NTU5N0QwMUZGNjBG
NyAvKiBib29sX29iamVjdC5jcHAgKi8sCi0JCQkJNzA0RkQzNTMwNTY5N0U2RDAwM0RCRUQ5IC8q
IGJvb2xfb2JqZWN0LmggKi8sCi0JCQkJRjY5MkE4NTMwMjU1NTk3RDAxRkY2MEY3IC8qIGNvbGxl
Y3Rvci5oICovLAotCQkJCUY2OTJBODUyMDI1NTU5N0QwMUZGNjBGNyAvKiBjb2xsZWN0b3IuY3Bw
ICovLAotCQkJCUY1QkIyQkM1MDMwRjc3MjEwMUZDRkUxRCAvKiBjb21wbGV0aW9uLmggKi8sCi0J
CQkJOTM3MzUyNEUwMzhEQThDMjAwODYzNUNFIC8qIGNvbnRleHQuaCAqLywKLQkJCQlGNjkyQTg1
NjAyNTU1OTdEMDFGRjYwRjcgLyogZGF0ZV9vYmplY3QuaCAqLywKLQkJCQlGNjkyQTg1NTAyNTU1
OTdEMDFGRjYwRjcgLyogZGF0ZV9vYmplY3QuY3BwICovLAotCQkJCUY2OTJBODU5MDI1NTU5N0Qw
MUZGNjBGNyAvKiBkZWJ1Z2dlci5oICovLAotCQkJCUY2OTJBODU4MDI1NTU5N0QwMUZGNjBGNyAv
KiBkZWJ1Z2dlci5jcHAgKi8sCi0JCQkJRjY5MkE4NUIwMjU1NTk3RDAxRkY2MEY3IC8qIGVycm9y
X29iamVjdC5oICovLAotCQkJCUY2OTJBODVBMDI1NTU5N0QwMUZGNjBGNyAvKiBlcnJvcl9vYmpl
Y3QuY3BwICovLAotCQkJCTkzNjRCMjczMDQ1QjdENkMwMEE5Q0FDMSAvKiBmcGNvbnN0LmNwcCAq
LywKLQkJCQlGNjkyQTg1RDAyNTU1OTdEMDFGRjYwRjcgLyogZnVuY3Rpb25fb2JqZWN0LmggKi8s
Ci0JCQkJRjY5MkE4NUMwMjU1NTk3RDAxRkY2MEY3IC8qIGZ1bmN0aW9uX29iamVjdC5jcHAgKi8s
Ci0JCQkJRjY5MkE4NUYwMjU1NTk3RDAxRkY2MEY3IC8qIGZ1bmN0aW9uLmggKi8sCi0JCQkJRjY5
MkE4NUUwMjU1NTk3RDAxRkY2MEY3IC8qIGZ1bmN0aW9uLmNwcCAqLywKLQkJCQk5MzNBMzQ5QTAz
OEFFN0M2MDA4NjM1Q0UgLyogaWRlbnRpZmllci5oICovLAotCQkJCTkzM0EzNDlEMDM4QUU4MEYw
MDg2MzVDRSAvKiBpZGVudGlmaWVyLmNwcCAqLywKLQkJCQlGNjkyQTg2MjAyNTU1OTdEMDFGRjYw
RjcgLyogaW50ZXJuYWwuaCAqLywKLQkJCQlGNjkyQTg2MTAyNTU1OTdEMDFGRjYwRjcgLyogaW50
ZXJuYWwuY3BwICovLAotCQkJCUY2OTJBODYzMDI1NTU5N0QwMUZGNjBGNyAvKiBpbnRlcnByZXRl
ci5jcHAgKi8sCi0JCQkJRjY5MkE4NjQwMjU1NTk3RDAxRkY2MEY3IC8qIGludGVycHJldGVyLmgg
Ki8sCi0JCQkJOTMxQzZDRUYwMzhFRThERTAwODYzNUNFIC8qIGxpc3QuaCAqLywKLQkJCQk5MzFD
NkNGMDAzOEVFOERFMDA4NjM1Q0UgLyogbGlzdC5jcHAgKi8sCi0JCQkJRjY5MkE4NjkwMjU1NTk3
RDAxRkY2MEY3IC8qIGxvb2t1cC5oICovLAotCQkJCUY2OTJBODY4MDI1NTU5N0QwMUZGNjBGNyAv
KiBsb29rdXAuY3BwICovLAotCQkJCUY2OTJBODZBMDI1NTU5N0QwMUZGNjBGNyAvKiBtYXRoX29i
amVjdC5jcHAgKi8sCi0JCQkJRjY5MkE4NkIwMjU1NTk3RDAxRkY2MEY3IC8qIG1hdGhfb2JqZWN0
LmggKi8sCi0JCQkJRjY5MkE4NkUwMjU1NTk3RDAxRkY2MEY3IC8qIG5vZGVzLmggKi8sCi0JCQkJ
RjY5MkE4NkQwMjU1NTk3RDAxRkY2MEY3IC8qIG5vZGVzLmNwcCAqLywKLQkJCQlGNUZGRTY1NjAy
NkI0N0E2MDE4NjM1Q0EgLyogbm9kZXMyc3RyaW5nLmNwcCAqLywKLQkJCQlGNjkyQTg3MTAyNTU1
OTdEMDFGRjYwRjcgLyogbnVtYmVyX29iamVjdC5oICovLAotCQkJCUY2OTJBODcwMDI1NTU5N0Qw
MUZGNjBGNyAvKiBudW1iZXJfb2JqZWN0LmNwcCAqLywKLQkJCQlGNjkyQTg3NDAyNTU1OTdEMDFG
RjYwRjcgLyogb2JqZWN0X29iamVjdC5oICovLAotCQkJCUY2OTJBODczMDI1NTU5N0QwMUZGNjBG
NyAvKiBvYmplY3Rfb2JqZWN0LmNwcCAqLywKLQkJCQlGNjkyQTg3NjAyNTU1OTdEMDFGRjYwRjcg
Lyogb2JqZWN0LmggKi8sCi0JCQkJRjY5MkE4NzUwMjU1NTk3RDAxRkY2MEY3IC8qIG9iamVjdC5j
cHAgKi8sCi0JCQkJRjY5MkE4NzgwMjU1NTk3RDAxRkY2MEY3IC8qIG9wZXJhdGlvbnMuaCAqLywK
LQkJCQlGNjkyQTg3NzAyNTU1OTdEMDFGRjYwRjcgLyogb3BlcmF0aW9ucy5jcHAgKi8sCi0JCQkJ
RjY5MkE4N0EwMjU1NTk3RDAxRkY2MEY3IC8qIHByb3BlcnR5X21hcC5oICovLAotCQkJCUY2OTJB
ODc5MDI1NTU5N0QwMUZGNjBGNyAvKiBwcm9wZXJ0eV9tYXAuY3BwICovLAotCQkJCTY1QzAyRkJC
MDYzNzQ2MkEwMDNFN0VFNiAvKiBwcm90ZWN0LmggKi8sCi0JCQkJRjUzNDEzOTAwMzBDRUVCMTAx
OEJFN0YzIC8qIHJlZmVyZW5jZS5jcHAgKi8sCi0JCQkJRjUzNDEzOTEwMzBDRUVCMTAxOEJFN0Yz
IC8qIHJlZmVyZW5jZS5oICovLAotCQkJCUY1NEYwODAwMDMwQ0QyMjAwMUI1QzJFQiAvKiByZWZl
cmVuY2VfbGlzdC5oICovLAotCQkJCUY1MzQxMzk0MDMwQ0Y1RjgwMThCRTdGMyAvKiByZWZlcmVu
Y2VfbGlzdC5jcHAgKi8sCi0JCQkJRjY5MkE4N0IwMjU1NTk3RDAxRkY2MEY3IC8qIHJlZ2V4cF9v
YmplY3QuY3BwICovLAotCQkJCUY2OTJBODdDMDI1NTU5N0QwMUZGNjBGNyAvKiByZWdleHBfb2Jq
ZWN0LmggKi8sCi0JCQkJRjY5MkE4N0QwMjU1NTk3RDAxRkY2MEY3IC8qIHJlZ2V4cC5jcHAgKi8s
Ci0JCQkJRjY5MkE4N0UwMjU1NTk3RDAxRkY2MEY3IC8qIHJlZ2V4cC5oICovLAotCQkJCTkzNzRE
M0E3MDM4RDlENzQwMDg2MzVDRSAvKiBzY29wZV9jaGFpbi5oICovLAotCQkJCTkzNzREM0E4MDM4
RDlENzQwMDg2MzVDRSAvKiBzY29wZV9jaGFpbi5jcHAgKi8sCi0JCQkJRjY5MkE4N0YwMjU1NTk3
RDAxRkY2MEY3IC8qIHN0cmluZ19vYmplY3QuY3BwICovLAotCQkJCUY2OTJBODgwMDI1NTU5N0Qw
MUZGNjBGNyAvKiBzdHJpbmdfb2JqZWN0LmggKi8sCi0JCQkJRjY5MkE4ODQwMjU1NTk3RDAxRkY2
MEY3IC8qIHR5cGVzLmggKi8sCi0JCQkJRjY5MkE4ODYwMjU1NTk3RDAxRkY2MEY3IC8qIHVzdHJp
bmcuaCAqLywKLQkJCQlGNjkyQTg4NTAyNTU1OTdEMDFGRjYwRjcgLyogdXN0cmluZy5jcHAgKi8s
Ci0JCQkJMTRBQkIzNkUwOTlDMDc2NDAwRTJBMjRGIC8qIHZhbHVlLmggKi8sCi0JCQkJRjY5MkE4
ODcwMjU1NTk3RDAxRkY2MEY3IC8qIHZhbHVlLmNwcCAqLywKLQkJCQkxNDgzQjU4OTA5OUJDMTk1
MDAxNkU0RjAgLyogSlNJbW1lZGlhdGUuaCAqLywKLQkJCQkxNDc2MDg2MzA5OUM2MzM4MDA0Mzcx
MjggLyogSlNJbW1lZGlhdGUuY3BwICovLAotCQkJCTE0QUJCNDU0MDk5QzJBMEYwMEUyQTI0RiAv
KiBKU1R5cGUuaCAqLywKLQkJCSk7Ci0JCQluYW1lID0gQ2xhc3NlczsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07CiAJCTUxODU2RDk1MDU2MkVFOUMwMDhCOUQ4MyAvKiBiaW5kaW5n
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNzAwREEx
MTcwNjU5ODRDRTAwNzQ3QzBCIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCAqLywKLQkJCQk1
MTg2M0Y2RjA2NTQyMEU4MDBFOUU4REQgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8sCi0JCQkJNTE4
NjNGQzQwNjU0MkQzMTAwRTlFOEREIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLywKLQkJCQk1MUNB
M0I0RjA2Q0MyMTY2MDA1NjAwRTMgLyogbnBhcGkuaCAqLywKLQkJCQk1MTk5QjFCRDA2MUI2NUJD
MDA3MEMwMDYgLyogbnBydW50aW1lLmNwcCAqLywKLQkJCQk1MTk5QjFCRTA2MUI2NUJDMDA3MEMw
MDYgLyogbnBydW50aW1lLmggKi8sCi0JCQkJNTFERkYyQzkwNkNDMzZGNjAwNkYxRUNDIC8qIG5w
cnVudGltZV9wcml2LmggKi8sCi0JCQkJODRBQkYxREUwNzBCNjI4QzAwQTNBQzA1IC8qIG5wcnVu
dGltZV9pbXBsLmggKi8sCiAJCQkJNTE4MkE1M0EwNjAxMkMzMDAwQ0JEMkYyIC8qIGNfY2xhc3Mu
Y3BwICovLAogCQkJCTUxODJBNTNCMDYwMTJDMzAwMENCRDJGMiAvKiBjX2NsYXNzLmggKi8sCiAJ
CQkJNTE4MkE0NTYwNUZGQ0Y0QjAwQ0JEMkYyIC8qIGNfaW5zdGFuY2UuY3BwICovLApAQCAtNjMz
LDggKzU0Nyw2IEBACiAJCQkJNTE4MkE0OEMwNUZGRkRDNDAwQ0JEMkYyIC8qIGNfcnVudGltZS5o
ICovLAogCQkJCTUxODJBNEZCMDYwMTBGODIwMENCRDJGMiAvKiBjX3V0aWxpdHkuY3BwICovLAog
CQkJCTUxODJBNDcwMDVGRkQ0NTAwMENCRDJGMiAvKiBjX3V0aWxpdHkuaCAqLywKLQkJCQk1MTUz
MkNDNzA1RjdGRDJDMDBFQzc3OUMgLyogTlBfanNvYmplY3QuY3BwICovLAotCQkJCTUxN0JFN0Y0
MDYxMEUzOTYwMDIyMTk0NyAvKiBOUF9qc29iamVjdC5oICovLAogCQkJCTUxN0Q1MkRDMDU2QkYy
RjUwMDM4NTFCRCAvKiBqbmlfY2xhc3MuY3BwICovLAogCQkJCTUxN0Q1MkREMDU2QkYyRjYwMDM4
NTFCRCAvKiBqbmlfY2xhc3MuaCAqLywKIAkJCQk1MTdENTM0NzA1NkJGQjVEMDAzODUxQkQgLyog
am5pX2luc3RhbmNlLmNwcCAqLywKQEAgLTY0Niw2ICs1NTgsMjIgQEAKIAkJCQk1MTFCMDg3NjA1
NjQ2OEJCMDA4MEU0ODYgLyogam5pX3J1bnRpbWUuaCAqLywKIAkJCQk1MTg1NkQ4RjA1NjJFRTk1
MDA4QjlEODMgLyogam5pX3V0aWxpdHkuY3BwICovLAogCQkJCTUxODU2RDkwMDU2MkVFOTUwMDhC
OUQ4MyAvKiBqbmlfdXRpbGl0eS5oICovLAorCQkJCTUxNTMyQ0M3MDVGN0ZEMkMwMEVDNzc5QyAv
KiBOUF9qc29iamVjdC5jcHAgKi8sCisJCQkJNTE3QkU3RjQwNjEwRTM5NjAwMjIxOTQ3IC8qIE5Q
X2pzb2JqZWN0LmggKi8sCisJCQkJNTFDQTNCNEYwNkNDMjE2NjAwNTYwMEUzIC8qIG5wYXBpLmgg
Ki8sCisJCQkJNTE5OUIxQkQwNjFCNjVCQzAwNzBDMDA2IC8qIG5wcnVudGltZS5jcHAgKi8sCisJ
CQkJNTE5OUIxQkUwNjFCNjVCQzAwNzBDMDA2IC8qIG5wcnVudGltZS5oICovLAorCQkJCTg0QUJG
MURFMDcwQjYyOEMwMEEzQUMwNSAvKiBucHJ1bnRpbWVfaW1wbC5oICovLAorCQkJCTUxREZGMkM5
MDZDQzM2RjYwMDZGMUVDQyAvKiBucHJ1bnRpbWVfcHJpdi5oICovLAorCQkJCTUxOENGOTM2MDVD
NzIyNzEwMDNDRjkwNSAvKiBvYmpjX2NsYXNzLmggKi8sCisJCQkJNTE4Q0Y5MzcwNUM3MjI3MTAw
M0NGOTA1IC8qIG9iamNfY2xhc3MubW0gKi8sCisJCQkJNTFGMEVDMTAwNUM4NkYzNTAwRTZERjFC
IC8qIG9iamNfaGVhZGVyLmggKi8sCisJCQkJNTFGMEVCMDAwNUM4NUE2MzAwRTZERjFCIC8qIG9i
amNfaW5zdGFuY2UuaCAqLywKKwkJCQk1MUYwRUIwNTA1Qzg1QTkwMDBFNkRGMUIgLyogb2JqY19p
bnN0YW5jZS5tbSAqLywKKwkJCQk1MUM0OTc0MTA1QzBBNUQ0MDA2RkJGRjUgLyogb2JqY19ydW50
aW1lLmggKi8sCisJCQkJNTE4Q0Y5MzgwNUM3MjI3MTAwM0NGOTA1IC8qIG9iamNfcnVudGltZS5t
bSAqLywKKwkJCQk1MUYwRUM5NjA1Qzg4REM3MDBFNkRGMUIgLyogb2JqY191dGlsaXR5LmggKi8s
CisJCQkJNTFGMEVDOTcwNUM4OERDNzAwRTZERjFCIC8qIG9iamNfdXRpbGl0eS5tbSAqLywKIAkJ
CQk3MDRGRDQ0NTA1Njk4RjE3MDAzREJFRDkgLyogcnVudGltZS5jcHAgKi8sCiAJCQkJNTExQjA4
NzAwNTY0Njg3MzAwODBFNDg2IC8qIHJ1bnRpbWUuaCAqLywKIAkJCQk3MDczQkUzQzA1ODEyOTFF
MDA1RUUyQzkgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCkBAIC02NTYsMTcgKzU4NCwxMSBAQAog
CQkJCTcwQjE2QTI3MDU2OUExMDkwMERCNzU2RCAvKiBydW50aW1lX29iamVjdC5oICovLAogCQkJ
CTUxMTRGNDdCMDVFNDQyNjIwMEQxQkJCRCAvKiBydW50aW1lX3Jvb3QuY3BwICovLAogCQkJCTUx
MTRGNDdDMDVFNDQyNjIwMEQxQkJCRCAvKiBydW50aW1lX3Jvb3QuaCAqLywKLQkJCQk1MThDRjkz
NjA1QzcyMjcxMDAzQ0Y5MDUgLyogb2JqY19jbGFzcy5oICovLAotCQkJCTUxOENGOTM3MDVDNzIy
NzEwMDNDRjkwNSAvKiBvYmpjX2NsYXNzLm1tICovLAotCQkJCTUxRjBFQzEwMDVDODZGMzUwMEU2
REYxQiAvKiBvYmpjX2hlYWRlci5oICovLAotCQkJCTUxRjBFQjAwMDVDODVBNjMwMEU2REYxQiAv
KiBvYmpjX2luc3RhbmNlLmggKi8sCi0JCQkJNTFGMEVCMDUwNUM4NUE5MDAwRTZERjFCIC8qIG9i
amNfaW5zdGFuY2UubW0gKi8sCi0JCQkJNTFDNDk3NDEwNUMwQTVENDAwNkZCRkY1IC8qIG9iamNf
cnVudGltZS5oICovLAotCQkJCTUxOENGOTM4MDVDNzIyNzEwMDNDRjkwNSAvKiBvYmpjX3J1bnRp
bWUubW0gKi8sCi0JCQkJNTFGMEVDOTYwNUM4OERDNzAwRTZERjFCIC8qIG9iamNfdXRpbGl0eS5o
ICovLAotCQkJCTUxRjBFQzk3MDVDODhEQzcwMEU2REYxQiAvKiBvYmpjX3V0aWxpdHkubW0gKi8s
CiAJCQkJODQ0MkEzNzYwNzQxNzVDMjAwMEFFMkVEIC8qIHNvZnRsaW5raW5nLmMgKi8sCiAJCQkJ
OTNFMjZDQ0UwOEIyOTIxOTAwRjg1MjI2IC8qIHNvZnRsaW5raW5nLmggKi8sCisJCQkJNTE4NjNG
NkYwNjU0MjBFODAwRTlFOEREIC8qIFdlYlNjcmlwdE9iamVjdC5oICovLAorCQkJCTUxODYzRkM0
MDY1NDJEMzEwMEU5RThERCAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi8sCisJCQkJNzAwREExMTcw
NjU5ODRDRTAwNzQ3QzBCIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gYmluZGluZ3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjc0LDMy
ICs1OTYsMzIgQEAKIAkJNjUxNjJFRjEwOEU2QTIxQzAwNzU1NkNEIC8qIGt4bWxjb3JlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5MzAzRjU2OTA5OTEx
OTAwMDBBRDcxQjggLyogTm9uY29weWFibGUuaCAqLywKLQkJCQk5MzAzRjU2NzA5OTExOEZBMDBB
RDcxQjggLyogT3duUHRyLmggKi8sCi0JCQkJOTMwM0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93
bkFycmF5UHRyLmggKi8sCi0JCQkJNjU5MkMzMTYwOThCN0RFMTAwMDNENEY2IC8qIFZlY3Rvci5o
ICovLAotCQkJCTY1OTJDMzE3MDk4QjdERTEwMDAzRDRGNiAvKiBWZWN0b3JUcmFpdHMuaCAqLywK
LQkJCQk2NTdFRUJCRjA5NEU0NDVFMDA4QzlDN0IgLyogSGFzaENvdW50ZWRTZXQuaCAqLywKLQkJ
CQk2NUM2NDdCMzA5M0VGOEQ2MDAyMkMzODAgLyogUmVmUHRyLmggKi8sCi0JCQkJNjU4MEY3OTUw
OTQwNzA1NjAwODJDMjE5IC8qIFBhc3NSZWZQdHIuaCAqLywKLQkJCQkxNDhBMTYyNjA5NUQxNkJC
MDA2NjZEMEQgLyogTGlzdFJlZlB0ci5oICovLAorCQkJCTkzQUE0Rjc3MDk1NzI1MUYwMDg0QjNB
NyAvKiBBbHdheXNJbmxpbmUuaCAqLywKKwkJCQk2NUUyMTdCNzA4RTdFRUNDMDAyM0U1RjYgLyog
QXNzZXJ0aW9ucy5oICovLAorCQkJCTY1RTIxN0I4MDhFN0VFQ0MwMDIzRTVGNiAvKiBBc3NlcnRp
b25zLm1tICovLAorCQkJCTY1RTIxN0I5MDhFN0VFQ0MwMDIzRTVGNiAvKiBGYXN0TWFsbG9jLmNw
cCAqLywKKwkJCQk2NUUyMTdCQTA4RTdFRUNDMDAyM0U1RjYgLyogRmFzdE1hbGxvYy5oICovLAog
CQkJCTY1RDdEMTlCMDhGMTBCNUIwMDE1QUJEOCAvKiBGYXN0TWFsbG9jSW50ZXJuYWwuaCAqLywK
LQkJCQk2NTU3RThGNzA4RUE1RDREMDA0OUNERkMgLyogSGFzaE1hcFB0clNwZWMuaCAqLywKKwkJ
CQk2NTdFRUJCRjA5NEU0NDVFMDA4QzlDN0IgLyogSGFzaENvdW50ZWRTZXQuaCAqLywKIAkJCQk2
NURGQzkyQTA4RUExNzNBMDBGNzMwMEIgLyogSGFzaEZ1bmN0aW9ucy5oICovLAogCQkJCTY1REZD
OTJCMDhFQTE3M0EwMEY3MzAwQiAvKiBIYXNoTWFwLmggKi8sCisJCQkJNjU1N0U4RjcwOEVBNUQ0
RDAwNDlDREZDIC8qIEhhc2hNYXBQdHJTcGVjLmggKi8sCiAJCQkJNjVERkM5MkMwOEVBMTczQTAw
RjczMDBCIC8qIEhhc2hTZXQuaCAqLywKIAkJCQk2NURGQzkyRDA4RUExNzNBMDBGNzMwMEIgLyog
SGFzaFRhYmxlLmNwcCAqLywKIAkJCQk2NURGQzkyRTA4RUExNzNBMDBGNzMwMEIgLyogSGFzaFRh
YmxlLmggKi8sCiAJCQkJNjVERkM5MkYwOEVBMTczQTAwRjczMDBCIC8qIEhhc2hUcmFpdHMuaCAq
LywKKwkJCQkxNDhBMTYyNjA5NUQxNkJCMDA2NjZEMEQgLyogTGlzdFJlZlB0ci5oICovLAorCQkJ
CTkzMDNGNTY5MDk5MTE5MDAwMEFENzFCOCAvKiBOb25jb3B5YWJsZS5oICovLAorCQkJCTkzMDNG
NUE0MDk5MTFBNTgwMEFENzFCOCAvKiBPd25BcnJheVB0ci5oICovLAorCQkJCTkzMDNGNTY3MDk5
MTE4RkEwMEFENzFCOCAvKiBPd25QdHIuaCAqLywKKwkJCQk2NTgwRjc5NTA5NDA3MDU2MDA4MkMy
MTkgLyogUGFzc1JlZlB0ci5oICovLAorCQkJCTY1QzY0N0IzMDkzRUY4RDYwMDIyQzM4MCAvKiBS
ZWZQdHIuaCAqLywKIAkJCQk2NTQxQkQ2RTA4RTgwQTE3MDAyQ0JFRTcgLyogVENQYWdlTWFwLmgg
Ki8sCiAJCQkJNjU0MUJENkYwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3BpbkxvY2suaCAqLywKIAkJ
CQk2NTQxQkQ3MDA4RTgwQTE3MDAyQ0JFRTcgLyogVENTeXN0ZW1BbGxvYy5jcHAgKi8sCiAJCQkJ
NjU0MUJENzEwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3lzdGVtQWxsb2MuaCAqLywKLQkJCQk2NUUy
MTdCNzA4RTdFRUNDMDAyM0U1RjYgLyogQXNzZXJ0aW9ucy5oICovLAotCQkJCTY1RTIxN0I4MDhF
N0VFQ0MwMDIzRTVGNiAvKiBBc3NlcnRpb25zLm1tICovLAotCQkJCTY1RTIxN0I5MDhFN0VFQ0Mw
MDIzRTVGNiAvKiBGYXN0TWFsbG9jLmNwcCAqLywKLQkJCQk2NUUyMTdCQTA4RTdFRUNDMDAyM0U1
RjYgLyogRmFzdE1hbGxvYy5oICovLAotCQkJCTkzQUE0Rjc3MDk1NzI1MUYwMDg0QjNBNyAvKiBB
bHdheXNJbmxpbmUuaCAqLywKKwkJCQk2NTkyQzMxNjA5OEI3REUxMDAwM0Q0RjYgLyogVmVjdG9y
LmggKi8sCisJCQkJNjU5MkMzMTcwOThCN0RFMTAwMDNENEY2IC8qIFZlY3RvclRyYWl0cy5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBreG1sY29yZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC03MDcsOCArNjI5LDg3IEBACiAJCTY1NDE3MjAwMDM5RTAxQkEwMDU4QkZFQiAvKiBranMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTA4RkI3N0FF
RkU4NDE3MkVDMDJBQUMwNyAvKiBDbGFzc2VzICovLAotCQkJCUY1QzI5MEU1MDI4NEY5NjAwMTg2
MzVDQSAvKiBPdGhlciBTb3VyY2VzICovLAorCQkJCTkzODc3MkU1MDM4QkZFMTkwMDg2MzVDRSAv
KiBhcnJheV9pbnN0YW5jZS5oICovLAorCQkJCUY2OTJBODREMDI1NTU5N0QwMUZGNjBGNyAvKiBh
cnJheV9vYmplY3QuY3BwICovLAorCQkJCUY2OTJBODRFMDI1NTU5N0QwMUZGNjBGNyAvKiBhcnJh
eV9vYmplY3QuaCAqLywKKwkJCQlGNjkyQTg1MDAyNTU1OTdEMDFGRjYwRjcgLyogYm9vbF9vYmpl
Y3QuY3BwICovLAorCQkJCTcwNEZEMzUzMDU2OTdFNkQwMDNEQkVEOSAvKiBib29sX29iamVjdC5o
ICovLAorCQkJCUY2OTJBODUyMDI1NTU5N0QwMUZGNjBGNyAvKiBjb2xsZWN0b3IuY3BwICovLAor
CQkJCUY2OTJBODUzMDI1NTU5N0QwMUZGNjBGNyAvKiBjb2xsZWN0b3IuaCAqLywKKwkJCQlGNUJC
MkJDNTAzMEY3NzIxMDFGQ0ZFMUQgLyogY29tcGxldGlvbi5oICovLAorCQkJCUY2OEVCQjhDMDI1
NUQ0QzYwMUZGNjBGNyAvKiBjb25maWcuaCAqLywKKwkJCQk5MzczNTI0RTAzOERBOEMyMDA4NjM1
Q0UgLyogY29udGV4dC5oICovLAorCQkJCUY2OTJBODU0MDI1NTU5N0QwMUZGNjBGNyAvKiBjcmVh
dGVfaGFzaF90YWJsZSAqLywKKwkJCQlGNjkyQTg1NTAyNTU1OTdEMDFGRjYwRjcgLyogZGF0ZV9v
YmplY3QuY3BwICovLAorCQkJCUY2OTJBODU2MDI1NTU5N0QwMUZGNjBGNyAvKiBkYXRlX29iamVj
dC5oICovLAorCQkJCUY2OTJBODU4MDI1NTU5N0QwMUZGNjBGNyAvKiBkZWJ1Z2dlci5jcHAgKi8s
CisJCQkJRjY5MkE4NTkwMjU1NTk3RDAxRkY2MEY3IC8qIGRlYnVnZ2VyLmggKi8sCisJCQkJNjUx
RjY0MTIwMzlENUI1RjAwNzgzOTVDIC8qIGR0b2EuY3BwICovLAorCQkJCTY1MUY2NDEzMDM5RDVC
NUYwMDc4Mzk1QyAvKiBkdG9hLmggKi8sCisJCQkJRjY5MkE4NUEwMjU1NTk3RDAxRkY2MEY3IC8q
IGVycm9yX29iamVjdC5jcHAgKi8sCisJCQkJRjY5MkE4NUIwMjU1NTk3RDAxRkY2MEY3IC8qIGVy
cm9yX29iamVjdC5oICovLAorCQkJCTkzNjRCMjczMDQ1QjdENkMwMEE5Q0FDMSAvKiBmcGNvbnN0
LmNwcCAqLywKKwkJCQlGNjkyQTg1RTAyNTU1OTdEMDFGRjYwRjcgLyogZnVuY3Rpb24uY3BwICov
LAorCQkJCUY2OTJBODVGMDI1NTU5N0QwMUZGNjBGNyAvKiBmdW5jdGlvbi5oICovLAorCQkJCUY2
OTJBODVDMDI1NTU5N0QwMUZGNjBGNyAvKiBmdW5jdGlvbl9vYmplY3QuY3BwICovLAorCQkJCUY2
OTJBODVEMDI1NTU5N0QwMUZGNjBGNyAvKiBmdW5jdGlvbl9vYmplY3QuaCAqLywKKwkJCQk5MzNB
MzQ5OTAzOEFFN0M2MDA4NjM1Q0UgLyogZ3JhbW1hci55ICovLAorCQkJCTkzM0EzNDlEMDM4QUU4
MEYwMDg2MzVDRSAvKiBpZGVudGlmaWVyLmNwcCAqLywKKwkJCQk5MzNBMzQ5QTAzOEFFN0M2MDA4
NjM1Q0UgLyogaWRlbnRpZmllci5oICovLAorCQkJCUY2OTJBODYxMDI1NTU5N0QwMUZGNjBGNyAv
KiBpbnRlcm5hbC5jcHAgKi8sCisJCQkJRjY5MkE4NjIwMjU1NTk3RDAxRkY2MEY3IC8qIGludGVy
bmFsLmggKi8sCisJCQkJRjY5MkE4NjMwMjU1NTk3RDAxRkY2MEY3IC8qIGludGVycHJldGVyLmNw
cCAqLywKKwkJCQlGNjkyQTg2NDAyNTU1OTdEMDFGRjYwRjcgLyogaW50ZXJwcmV0ZXIuaCAqLywK
KwkJCQlGNUMyOTBFNjAyODRGOThFMDE4NjM1Q0EgLyogSmF2YVNjcmlwdENvcmVQcmVmaXguaCAq
LywKKwkJCQkxNDc2MDg2MzA5OUM2MzM4MDA0MzcxMjggLyogSlNJbW1lZGlhdGUuY3BwICovLAor
CQkJCTE0ODNCNTg5MDk5QkMxOTUwMDE2RTRGMCAvKiBKU0ltbWVkaWF0ZS5oICovLAorCQkJCTY1
RUE0Qzk5MDkyQUY5RTIwMDkzRDgwMCAvKiBKU0xvY2suY3BwICovLAorCQkJCTY1RUE0QzlBMDky
QUY5RTIwMDkzRDgwMCAvKiBKU0xvY2suaCAqLywKKwkJCQkxNEFCQjQ1NDA5OUMyQTBGMDBFMkEy
NEYgLyogSlNUeXBlLmggKi8sCisJCQkJOTNGMTk4MUEwODI0NUFBRTAwMUU5QUJDIC8qIGtleXdv
cmRzLnRhYmxlICovLAorCQkJCUY2OTJBODY1MDI1NTU5N0QwMUZGNjBGNyAvKiBsZXhlci5jcHAg
Ki8sCisJCQkJRjY5MkE4NjYwMjU1NTk3RDAxRkY2MEY3IC8qIGxleGVyLmggKi8sCisJCQkJOTMx
QzZDRjAwMzhFRThERTAwODYzNUNFIC8qIGxpc3QuY3BwICovLAorCQkJCTkzMUM2Q0VGMDM4RUU4
REUwMDg2MzVDRSAvKiBsaXN0LmggKi8sCisJCQkJRjY5MkE4NjgwMjU1NTk3RDAxRkY2MEY3IC8q
IGxvb2t1cC5jcHAgKi8sCisJCQkJRjY5MkE4NjkwMjU1NTk3RDAxRkY2MEY3IC8qIGxvb2t1cC5o
ICovLAorCQkJCUY2OTJBODZBMDI1NTU5N0QwMUZGNjBGNyAvKiBtYXRoX29iamVjdC5jcHAgKi8s
CisJCQkJRjY5MkE4NkIwMjU1NTk3RDAxRkY2MEY3IC8qIG1hdGhfb2JqZWN0LmggKi8sCisJCQkJ
RjY5MkE4NkQwMjU1NTk3RDAxRkY2MEY3IC8qIG5vZGVzLmNwcCAqLywKKwkJCQlGNjkyQTg2RTAy
NTU1OTdEMDFGRjYwRjcgLyogbm9kZXMuaCAqLywKKwkJCQlGNUZGRTY1NjAyNkI0N0E2MDE4NjM1
Q0EgLyogbm9kZXMyc3RyaW5nLmNwcCAqLywKKwkJCQlGNjkyQTg3MDAyNTU1OTdEMDFGRjYwRjcg
LyogbnVtYmVyX29iamVjdC5jcHAgKi8sCisJCQkJRjY5MkE4NzEwMjU1NTk3RDAxRkY2MEY3IC8q
IG51bWJlcl9vYmplY3QuaCAqLywKKwkJCQlGNjkyQTg3NTAyNTU1OTdEMDFGRjYwRjcgLyogb2Jq
ZWN0LmNwcCAqLywKKwkJCQlGNjkyQTg3NjAyNTU1OTdEMDFGRjYwRjcgLyogb2JqZWN0LmggKi8s
CisJCQkJRjY5MkE4NzMwMjU1NTk3RDAxRkY2MEY3IC8qIG9iamVjdF9vYmplY3QuY3BwICovLAor
CQkJCUY2OTJBODc0MDI1NTU5N0QwMUZGNjBGNyAvKiBvYmplY3Rfb2JqZWN0LmggKi8sCisJCQkJ
RjY5MkE4NzcwMjU1NTk3RDAxRkY2MEY3IC8qIG9wZXJhdGlvbnMuY3BwICovLAorCQkJCUY2OTJB
ODc4MDI1NTU5N0QwMUZGNjBGNyAvKiBvcGVyYXRpb25zLmggKi8sCisJCQkJRjY5MkE4NzkwMjU1
NTk3RDAxRkY2MEY3IC8qIHByb3BlcnR5X21hcC5jcHAgKi8sCisJCQkJRjY5MkE4N0EwMjU1NTk3
RDAxRkY2MEY3IC8qIHByb3BlcnR5X21hcC5oICovLAorCQkJCTY1NjIxRTZCMDg5RTg1OTcwMDc2
MEYzNSAvKiBwcm9wZXJ0eV9zbG90LmNwcCAqLywKKwkJCQk2NTYyMUU2QzA4OUU4NTk3MDA3NjBG
MzUgLyogcHJvcGVydHlfc2xvdC5oICovLAorCQkJCTY1QzAyRkJCMDYzNzQ2MkEwMDNFN0VFNiAv
KiBwcm90ZWN0LmggKi8sCisJCQkJNjUyQzEwN0UwOERBN0IxRTAwMjA4ODdEIC8qIHByb3RlY3Rl
ZF9yZWZlcmVuY2UuaCAqLywKKwkJCQlGNTM0MTM5MDAzMENFRUIxMDE4QkU3RjMgLyogcmVmZXJl
bmNlLmNwcCAqLywKKwkJCQlGNTM0MTM5MTAzMENFRUIxMDE4QkU3RjMgLyogcmVmZXJlbmNlLmgg
Ki8sCisJCQkJRjUzNDEzOTQwMzBDRjVGODAxOEJFN0YzIC8qIHJlZmVyZW5jZV9saXN0LmNwcCAq
LywKKwkJCQlGNTRGMDgwMDAzMENEMjIwMDFCNUMyRUIgLyogcmVmZXJlbmNlX2xpc3QuaCAqLywK
KwkJCQlGNjkyQTg3RDAyNTU1OTdEMDFGRjYwRjcgLyogcmVnZXhwLmNwcCAqLywKKwkJCQlGNjky
QTg3RTAyNTU1OTdEMDFGRjYwRjcgLyogcmVnZXhwLmggKi8sCisJCQkJRjY5MkE4N0IwMjU1NTk3
RDAxRkY2MEY3IC8qIHJlZ2V4cF9vYmplY3QuY3BwICovLAorCQkJCUY2OTJBODdDMDI1NTU5N0Qw
MUZGNjBGNyAvKiByZWdleHBfb2JqZWN0LmggKi8sCisJCQkJOTM3NEQzQTgwMzhEOUQ3NDAwODYz
NUNFIC8qIHNjb3BlX2NoYWluLmNwcCAqLywKKwkJCQk5Mzc0RDNBNzAzOEQ5RDc0MDA4NjM1Q0Ug
Lyogc2NvcGVfY2hhaW4uaCAqLywKKwkJCQlGNjkyQTg3RjAyNTU1OTdEMDFGRjYwRjcgLyogc3Ry
aW5nX29iamVjdC5jcHAgKi8sCisJCQkJRjY5MkE4ODAwMjU1NTk3RDAxRkY2MEY3IC8qIHN0cmlu
Z19vYmplY3QuaCAqLywKKwkJCQk0NUUxMkQ4ODA2QTQ5QjBGMDBFOURGODQgLyogdGVzdGtqcy5j
cHAgKi8sCisJCQkJRjY5MkE4ODQwMjU1NTk3RDAxRkY2MEY3IC8qIHR5cGVzLmggKi8sCisJCQkJ
RjY5MkE4ODUwMjU1NTk3RDAxRkY2MEY3IC8qIHVzdHJpbmcuY3BwICovLAorCQkJCUY2OTJBODg2
MDI1NTU5N0QwMUZGNjBGNyAvKiB1c3RyaW5nLmggKi8sCisJCQkJRjY5MkE4ODcwMjU1NTk3RDAx
RkY2MEY3IC8qIHZhbHVlLmNwcCAqLywKKwkJCQkxNEFCQjM2RTA5OUMwNzY0MDBFMkEyNEYgLyog
dmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0ga2pzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTcxNiwyNCArNzE3LDI0IEBACiAJCTY1NDE3MjAzMDM5RTAxRjkwMDU4QkZFQiAv
KiBwY3JlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2
NTQxNzIwRTAzOUUwOEI5MDA1OEJGRUIgLyogZGZ0YWJsZXMuYyAqLywKIAkJCQk2NTQxNzIxNzAz
OUUwQjI4MDA1OEJGRUIgLyogcGNyZS1jb25maWcuaCAqLywKIAkJCQk2NTQxNzIwRjAzOUUwOEI5
MDA1OEJGRUIgLyogcGNyZS5oICovLAotCQkJCTkzRTI2QkU1MDhCMTUxNzEwMEY4NTIyNiAvKiBw
Y3JlX2ludGVybmFsLmggKi8sCi0JCQkJOTNFMjZCRkIwOEIxNTFENDAwRjg1MjI2IC8qIHVjcC5o
ICovLAotCQkJCTkzRTI2QkZDMDhCMTUxRDQwMEY4NTIyNiAvKiB1Y3BpbnRlcm5hbC5oICovLAot
CQkJCTkzRTI2QzBEMDhCMTUyMDkwMEY4NTIyNiAvKiB1Y3B0YWJsZS5jICovLAogCQkJCTkzMDc1
NEJGMDhCMEY2ODAwMEFCMzA1NiAvKiBwY3JlX2NvbXBpbGUuYyAqLywKIAkJCQk5MzA3NTRFOTA4
QjBGNzg1MDBBQjMwNTYgLyogcGNyZV9leGVjLmMgKi8sCiAJCQkJOTMwNzU0RTYwOEIwRjc3NzAw
QUIzMDU2IC8qIHBjcmVfZnVsbGluZm8uYyAqLywKIAkJCQk5M0UyNkNGNjA4QjI5QTFDMDBGODUy
MjYgLyogcGNyZV9nZXQuYyAqLywKIAkJCQk5MzA3NTREMTA4QjBGNzYyMDBBQjMwNTYgLyogcGNy
ZV9nbG9iYWxzLmMgKi8sCisJCQkJOTNFMjZCRTUwOEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50
ZXJuYWwuaCAqLywKIAkJCQk5M0UyNkJDOTA4QjE1MTE5MDBGODUyMjYgLyogcGNyZV9vcmQydXRm
OC5jICovLAogCQkJCTkzRTI2RERCMDhCMkE0RjQwMEY4NTIyNiAvKiBwY3JlX3ByaW50aW50LmMg
Ki8sCiAJCQkJOTMwNzU0Q0UwOEIwRjc0NTAwQUIzMDU2IC8qIHBjcmVfdGFibGVzLmMgKi8sCiAJ
CQkJOTNFMjZCRDAwOEIxNTEzODAwRjg1MjI2IC8qIHBjcmVfdHJ5X2ZsaXBwZWQuYyAqLywKIAkJ
CQk5M0UyNkJDRDA4QjE1MTI2MDBGODUyMjYgLyogcGNyZV91Y3BfZmluZGNoYXIuYyAqLywKIAkJ
CQk5M0UyNkJEMzA4QjE1MTQxMDBGODUyMjYgLyogcGNyZV94Y2xhc3MuYyAqLywKLQkJCQk2NTQx
NzIwRTAzOUUwOEI5MDA1OEJGRUIgLyogZGZ0YWJsZXMuYyAqLywKKwkJCQk5M0UyNkJGQjA4QjE1
MUQ0MDBGODUyMjYgLyogdWNwLmggKi8sCisJCQkJOTNFMjZCRkMwOEIxNTFENDAwRjg1MjI2IC8q
IHVjcGludGVybmFsLmggKi8sCisJCQkJOTNFMjZDMEQwOEIxNTIwOTAwRjg1MjI2IC8qIHVjcHRh
YmxlLmMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IHBjcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtNzU0LDIzICs3NTUsNiBAQAogCQkJbmFtZSA9IFJlc291cmNlczsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCUY1QzI5MEU1MDI4NEY5NjAwMTg2MzVDQSAvKiBP
dGhlciBTb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgK
LQkJCQk0NUUxMkQ4ODA2QTQ5QjBGMDBFOURGODQgLyogdGVzdGtqcy5jcHAgKi8sCi0JCQkJRjY5
MkE4NTQwMjU1NTk3RDAxRkY2MEY3IC8qIGNyZWF0ZV9oYXNoX3RhYmxlICovLAotCQkJCTkzRjE5
ODFBMDgyNDVBQUUwMDFFOUFCQyAvKiBrZXl3b3Jkcy50YWJsZSAqLywKLQkJCQk5MzNBMzQ5OTAz
OEFFN0M2MDA4NjM1Q0UgLyogZ3JhbW1hci55ICovLAotCQkJCUY2OTJBODY1MDI1NTU5N0QwMUZG
NjBGNyAvKiBsZXhlci5jcHAgKi8sCi0JCQkJRjY5MkE4NjYwMjU1NTk3RDAxRkY2MEY3IC8qIGxl
eGVyLmggKi8sCi0JCQkJRjY4RUJCOEMwMjU1RDRDNjAxRkY2MEY3IC8qIGNvbmZpZy5oICovLAot
CQkJCUY1QzI5MEU2MDI4NEY5OEUwMTg2MzVDQSAvKiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oICov
LAotCQkJCTY1MUY2NDEyMDM5RDVCNUYwMDc4Mzk1QyAvKiBkdG9hLmNwcCAqLywKLQkJCQk2NTFG
NjQxMzAzOUQ1QjVGMDA3ODM5NUMgLyogZHRvYS5oICovLAotCQkJKTsKLQkJCW5hbWUgPSAiT3Ro
ZXIgU291cmNlcyI7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogLyogRW5kIFBC
WEdyb3VwIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlv
biAqLwo=
</data>
<flag name="review"
          id="1666"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>