<?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>29836</bug_id>
          
          <creation_ts>2009-09-28 21:07:27 -0700</creation_ts>
          <short_desc>Tidy up codeblock sampler</short_desc>
          <delta_ts>2009-09-29 14:49:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>150794</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-28 21:07:27 -0700</bug_when>
    <thetext>It&apos;s kind of icky to try and use the code block sampler outside of jsc which makes finding perf bugs in the dom hard.  This bug covers some basic tidying to make it not so jsc dependent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150797</commentid>
    <comment_count>1</comment_count>
      <attachid>40281</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-28 22:07:25 -0700</bug_when>
    <thetext>Created attachment 40281
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151058</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-29 14:49:36 -0700</bug_when>
    <thetext>Committed in r48905</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40281</attachid>
            <date>2009-09-28 22:07:25 -0700</date>
            <delta_ts>2009-09-29 14:37:46 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-29836-20090928220724.patch</filename>
            <type>text/plain</type>
            <size>19085</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBmNmE2NDRhLi5lOGJkZDczIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMDktMDktMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaWR5IHVwIGNvZGVibG9j
ayBzYW1wbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yOTgzNgorCisgICAgICAgIFNvbWUgcmF0aGVyIHNpbXBsZSByZWZhY3RvcmluZyBvZiBjb2Rl
YmxvY2sgc2FtcGxlciBzbyB0aGF0CisgICAgICAgIGl0J3MgZWFzaWVyIGZvciB1cyB0byB1c2Ug
aXQgdG8gZmluZCBwcm9ibGVtcyBpbiBub24tanNjCisgICAgICAgIGVudmlyb25tZW50cworCisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIGJ5dGVjb2RlL1NhbXBsaW5n
VG9vbC5oOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFtZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJD
YWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZTo6ZXZhbHVhdGUp
OgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
SW50ZXJwcmV0ZXI6OkludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAg
ICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZW5hYmxlU2FtcGxlcik6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjpkdW1wU2FtcGxlRGF0YSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpz
dGFydFNhbXBsaW5nKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnN0b3BTYW1wbGluZyk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6SW50
ZXJwcmV0ZXI6OnNhbXBsZXIpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAocnVuV2l0aFNjcmlwdHMpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxl
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OmNoZWNrU3ludGF4KToKKyAgICAgICAgKEpTQzo6ZXZh
bHVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpF
dmFsRXhlY3V0YWJsZTo6RXZhbEV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhl
Y3V0YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4ZWN1dGFibGU6OlByb2dy
YW1FeGVjdXRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAg
ICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RhcnRTYW1wbGluZyk6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsRGF0YTo6c3RvcFNhbXBsaW5nKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpk
dW1wU2FtcGxlRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6
Z2xvYmFsRnVuY0V2YWwpOgorCiAyMDA5LTA5LTI4ICBKb2VyZyBCb3JuZW1hbm4gIDxqb2VyZy5i
b3JuZW1hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5u
LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDZmYmQzOTMuLjNjODcwNGMgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTEwNiwxMCArMTA2LDEyIEBAIF9fWk4zSlNDMTFj
aGVja1N5bnRheEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwU291cmNlQ29kZUUKIF9fWk4zSlNDMTJE
YXRlSW5zdGFuY2U0aW5mb0UKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGExMENsaWVudERhdGFEMkV2
CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTJjcmVhdGVMZWFrZWRFdgorX19aTjNKU0MxMkpTR2xv
YmFsRGF0YTEyc3RvcFNhbXBsaW5nRXYKK19fWk4zSlNDMTJKU0dsb2JhbERhdGExM3N0YXJ0U2Ft
cGxpbmdFdgorX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0ZHVtcFNhbXBsZURhdGFFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTRzaGFyZWRJbnN0YW5jZUV2CiBfX1pOM0pT
QzEySlNHbG9iYWxEYXRhNmNyZWF0ZUViCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhRDFFdgotX19a
TjNKU0MxMlNhbXBsaW5nVG9vbDRkdW1wRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxMlNhbXBs
aW5nVG9vbDVzZXR1cEV2CiBfX1pOM0pTQzEyU21hbGxTdHJpbmdzMTdjcmVhdGVFbXB0eVN0cmlu
Z0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxldGVQcm9w
ZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5oIGIvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU2FtcGxpbmdUb29sLmgKaW5kZXggNzExYjA4Ni4uOGUzZWQ5ZSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU2FtcGxpbmdUb29sLmgKQEAgLTExMyw3ICsxMTMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2FtcGxlKENvZGVCbG9jayosIEluc3RydWN0aW9u
Kik7CiAKLSAgICAgICAgU2NyaXB0RXhlY3V0YWJsZSogbV9leGVjdXRhYmxlOworICAgICAgICBS
ZWZQdHI8U2NyaXB0RXhlY3V0YWJsZT4gbV9leGVjdXRhYmxlOwogICAgICAgICBDb2RlQmxvY2sq
IG1fY29kZUJsb2NrOwogICAgICAgICBpbnQgbV9zYW1wbGVDb3VudDsKICAgICAgICAgaW50IG1f
b3Bjb2RlU2FtcGxlQ291bnQ7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKaW5kZXgg
ZGIwMjMyOS4uOTAyYTgwMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAt
MTAwLDEyICsxMDAsMTIgQEAgSlNWYWx1ZSBldmFsdWF0ZUluR2xvYmFsQ2FsbEZyYW1lKGNvbnN0
IFVTdHJpbmcmIHNjcmlwdCwgSlNWYWx1ZSYgZXhjZXB0aW9uLCBKU0cKIHsKICAgICBDYWxsRnJh
bWUqIGdsb2JhbENhbGxGcmFtZSA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCi0gICAg
RXZhbEV4ZWN1dGFibGUgZXZhbChnbG9iYWxDYWxsRnJhbWUsIG1ha2VTb3VyY2Uoc2NyaXB0KSk7
Ci0gICAgSlNPYmplY3QqIGVycm9yID0gZXZhbC5jb21waWxlKGdsb2JhbENhbGxGcmFtZSwgZ2xv
YmFsQ2FsbEZyYW1lLT5zY29wZUNoYWluKCkpOworICAgIFJlZlB0cjxFdmFsRXhlY3V0YWJsZT4g
ZXZhbCA9IEV2YWxFeGVjdXRhYmxlOjpjcmVhdGUoZ2xvYmFsQ2FsbEZyYW1lLCBtYWtlU291cmNl
KHNjcmlwdCkpOworICAgIEpTT2JqZWN0KiBlcnJvciA9IGV2YWwtPmNvbXBpbGUoZ2xvYmFsQ2Fs
bEZyYW1lLCBnbG9iYWxDYWxsRnJhbWUtPnNjb3BlQ2hhaW4oKSk7CiAgICAgaWYgKGVycm9yKQog
ICAgICAgICByZXR1cm4gZXJyb3I7CiAKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCktPmludGVycHJldGVyLT5leGVjdXRlKCZldmFsLCBnbG9iYWxDYWxsRnJhbWUsIGdsb2Jh
bE9iamVjdCwgZ2xvYmFsQ2FsbEZyYW1lLT5zY29wZUNoYWluKCksICZleGNlcHRpb24pOworICAg
IHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS0+aW50ZXJwcmV0ZXItPmV4ZWN1dGUo
ZXZhbC5nZXQoKSwgZ2xvYmFsQ2FsbEZyYW1lLCBnbG9iYWxPYmplY3QsIGdsb2JhbENhbGxGcmFt
ZS0+c2NvcGVDaGFpbigpLCAmZXhjZXB0aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggODhi
MTRlNi4uYzlkN2NjNiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJDYWxsRnJhbWUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2Fs
bEZyYW1lLmNwcApAQCAtNzksMTIgKzc5LDEyIEBAIEpTVmFsdWUgRGVidWdnZXJDYWxsRnJhbWU6
OmV2YWx1YXRlKGNvbnN0IFVTdHJpbmcmIHNjcmlwdCwgSlNWYWx1ZSYgZXhjZXB0aW9uKSBjCiAg
ICAgaWYgKCFtX2NhbGxGcmFtZS0+Y29kZUJsb2NrKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
KCk7CiAKLSAgICBFdmFsRXhlY3V0YWJsZSBldmFsKG1fY2FsbEZyYW1lLCBtYWtlU291cmNlKHNj
cmlwdCkpOwotICAgIEpTT2JqZWN0KiBlcnJvciA9IGV2YWwuY29tcGlsZShtX2NhbGxGcmFtZSwg
bV9jYWxsRnJhbWUtPnNjb3BlQ2hhaW4oKSk7CisgICAgUmVmUHRyPEV2YWxFeGVjdXRhYmxlPiBl
dmFsID0gRXZhbEV4ZWN1dGFibGU6OmNyZWF0ZShtX2NhbGxGcmFtZSwgbWFrZVNvdXJjZShzY3Jp
cHQpKTsKKyAgICBKU09iamVjdCogZXJyb3IgPSBldmFsLT5jb21waWxlKG1fY2FsbEZyYW1lLCBt
X2NhbGxGcmFtZS0+c2NvcGVDaGFpbigpKTsKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIHJldHVy
biBlcnJvcjsKIAotICAgIHJldHVybiBtX2NhbGxGcmFtZS0+c2NvcGVDaGFpbigpLT5nbG9iYWxE
YXRhLT5pbnRlcnByZXRlci0+ZXhlY3V0ZSgmZXZhbCwgbV9jYWxsRnJhbWUsIHRoaXNPYmplY3Qo
KSwgbV9jYWxsRnJhbWUtPnNjb3BlQ2hhaW4oKSwgJmV4Y2VwdGlvbik7CisgICAgcmV0dXJuIG1f
Y2FsbEZyYW1lLT5zY29wZUNoYWluKCktPmdsb2JhbERhdGEtPmludGVycHJldGVyLT5leGVjdXRl
KGV2YWwuZ2V0KCksIG1fY2FsbEZyYW1lLCB0aGlzT2JqZWN0KCksIG1fY2FsbEZyYW1lLT5zY29w
ZUNoYWluKCksICZleGNlcHRpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCAyYWFhMzI1Li44NDdiMWZh
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
KysrIGIvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC0zNjMs
MTAgKzM2MywxMyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBJbnRlcnByZXRlcjo6Y2FsbEV2YWwo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIFJlZ2lzdGVyRmlsZSogcgogfQogCiBJbnRlcnByZXRlcjo6
SW50ZXJwcmV0ZXIoKQotICAgIDogbV9zYW1wbGVyKDApCisgICAgOiBtX3NhbXBsZUVudHJ5RGVw
dGgoMCkKICAgICAsIG1fcmVlbnRyeURlcHRoKDApCiB7CiAgICAgcHJpdmF0ZUV4ZWN1dGUoSW5p
dGlhbGl6ZUFuZFJldHVybiwgMCwgMCwgMCk7CisjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykK
KyAgICBlbmFibGVTYW1wbGVyKCk7CisjZW5kaWYKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTY0
OCw3ICs2NTEsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjdXRh
YmxlKiBwcm9ncmFtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUwogCiAgICAgSlNWYWx1ZSByZXN1
bHQ7CiAgICAgewotICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZCht
X3NhbXBsZXIpOworICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZCht
X3NhbXBsZXIuZ2V0KCkpOwogCiAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7CiAjaWYgRU5BQkxF
KEpJVCkKQEAgLTcxNCw3ICs3MTcsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEZ1
bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlLCBDYWxsRnJhbWUqCiAKICAgICBK
U1ZhbHVlIHJlc3VsdDsKICAgICB7Ci0gICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBj
YWxsUmVjb3JkKG1fc2FtcGxlcik7CisgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBj
YWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAKICAgICAgICAgbV9yZWVudHJ5RGVwdGgrKzsK
ICNpZiBFTkFCTEUoSklUKQpAQCAtNzgyLDcgKzc4NSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6
OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSwgSlNWYWx1ZSogZXhjZXB0aW9uKQog
ICAgIAogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKLSAgICAgICAgU2FtcGxpbmdUb29sOjpD
YWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyKTsKKyAgICAgICAgU2FtcGxpbmdUb29sOjpD
YWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgCiAgICAgICAg
IG1fcmVlbnRyeURlcHRoKys7CiAjaWYgRU5BQkxFKEpJVCkKQEAgLTg3Niw3ICs4NzksNyBAQCBK
U1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhYmxlKiBldmFsLCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNPYmplYwogCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewotICAg
ICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIpOworICAg
ICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkp
OwogCiAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7CiAjaWYgRU5BQkxFKEpJVCkKQEAgLTMwNTYs
NyArMzA1OSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlv
bkZsYWcgZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAKICAgICAgICAgICAgIEpTVmFs
dWUgcmV0dXJuVmFsdWU7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgU2FtcGxpbmdU
b29sOjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlcik7CisgICAgICAgICAgICAg
ICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24obmV3Q2FsbEZyYW1lLCBhc09iamVjdCh2KSwgdGhpc1ZhbHVlLCBhcmdzKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKQEAgLTMyMTAsNyArMzIx
Myw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlvbkZsYWcg
ZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IEpTVmFsdWUgcmV0dXJuVmFsdWU7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgU2Ft
cGxpbmdUb29sOjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlcik7CisgICAgICAg
ICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxl
ci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24obmV3Q2FsbEZyYW1lLCBhc09iamVjdCh2KSwgdGhpc1ZhbHVlLCBhcmdzKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKQEAgLTM0NjIs
NyArMzQ2NSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlv
bkZsYWcgZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAKICAgICAgICAgICAgIEpTVmFs
dWUgcmV0dXJuVmFsdWU7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgU2FtcGxpbmdU
b29sOjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlcik7CisgICAgICAgICAgICAg
ICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5m
dW5jdGlvbihuZXdDYWxsRnJhbWUsIGFzT2JqZWN0KHYpLCBhcmdzKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKQEAgLTM5MTQsNCArMzkxNyw0MCBA
QCBDYWxsRnJhbWUqIEludGVycHJldGVyOjpmaW5kRnVuY3Rpb25DYWxsRnJhbWUoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEludGVybmFsRnVuYwogICAgIHJldHVybiAwOwogfQogCit2b2lkIEludGVy
cHJldGVyOjplbmFibGVTYW1wbGVyKCkKK3sKKyNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQor
ICAgIGlmICghbV9zYW1wbGVyKSB7CisgICAgICAgIG1fc2FtcGxlci5zZXQobmV3IFNhbXBsaW5n
VG9vbCh0aGlzKSk7CisgICAgICAgIG1fc2FtcGxlci0+c2V0dXAoKTsKKyAgICB9CisjZW5kaWYK
K30KK3ZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBTYW1wbGVEYXRhKEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQorICAgIGlmIChtX3NhbXBsZXIpCisgICAgICAg
IG1fc2FtcGxlci0+ZHVtcChleGVjKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwor
I2VuZGlmCit9Cit2b2lkIEludGVycHJldGVyOjpzdGFydFNhbXBsaW5nKCkKK3sKKyNpZiBFTkFC
TEUoU0FNUExJTkdfVEhSRUFEKQorICAgIGlmICghbV9zYW1wbGVFbnRyeURlcHRoKQorICAgICAg
ICBTYW1wbGluZ1RocmVhZDo6c3RhcnQoKTsKKworICAgIG1fc2FtcGxlRW50cnlEZXB0aCsrOwor
I2VuZGlmCit9Cit2b2lkIEludGVycHJldGVyOjpzdG9wU2FtcGxpbmcoKQoreworI2lmIEVOQUJM
RShTQU1QTElOR19USFJFQUQpCisgICAgbV9zYW1wbGVFbnRyeURlcHRoLS07CisgICAgaWYgKCFt
X3NhbXBsZUVudHJ5RGVwdGgpCisgICAgICAgIFNhbXBsaW5nVGhyZWFkOjpzdG9wKCk7CisjZW5k
aWYKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5oIGIvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaAppbmRleCA4Y2I3NWQyLi4zMDQ2YjI4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmgKQEAgLTEwNSwxMyArMTA1LDE1IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAKICAgICAgICAgdm9pZCBnZXRBcmd1bWVudHNEYXRhKENhbGxGcmFtZSosIEpT
RnVuY3Rpb24qJiwgcHRyZGlmZl90JiBmaXJzdFBhcmFtZXRlckluZGV4LCBSZWdpc3RlciomIGFy
Z3YsIGludCYgYXJnYyk7CiAgICAgICAgIAotICAgICAgICB2b2lkIHNldFNhbXBsZXIoU2FtcGxp
bmdUb29sKiBzYW1wbGVyKSB7IG1fc2FtcGxlciA9IHNhbXBsZXI7IH0KLSAgICAgICAgU2FtcGxp
bmdUb29sKiBzYW1wbGVyKCkgeyByZXR1cm4gbV9zYW1wbGVyOyB9CisgICAgICAgIFNhbXBsaW5n
VG9vbCogc2FtcGxlcigpIHsgcmV0dXJuIG1fc2FtcGxlci5nZXQoKTsgfQogCiAgICAgICAgIE5F
VkVSX0lOTElORSBKU1ZhbHVlIGNhbGxFdmFsKENhbGxGcmFtZSosIFJlZ2lzdGVyRmlsZSosIFJl
Z2lzdGVyKiBhcmd2LCBpbnQgYXJnYywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBKU1ZhbHVlJiBleGNl
cHRpb25WYWx1ZSk7CiAgICAgICAgIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogdGhyb3dFeGNl
cHRpb24oQ2FsbEZyYW1lKiYsIEpTVmFsdWUmLCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgYm9v
bCk7CiAgICAgICAgIE5FVkVSX0lOTElORSB2b2lkIGRlYnVnKENhbGxGcmFtZSosIERlYnVnSG9v
a0lELCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwogCisgICAgICAgIHZvaWQgZHVtcFNh
bXBsZURhdGEoRXhlY1N0YXRlKiBleGVjKTsKKyAgICAgICAgdm9pZCBzdGFydFNhbXBsaW5nKCk7
CisgICAgICAgIHZvaWQgc3RvcFNhbXBsaW5nKCk7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51
bSBFeGVjdXRpb25GbGFnIHsgTm9ybWFsLCBJbml0aWFsaXplQW5kUmV0dXJuIH07CiAKQEAgLTE0
OSw3ICsxNTEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIGJvb2wgaXND
YWxsQnl0ZWNvZGUoT3Bjb2RlIG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09IGdldE9wY29kZShv
cF9jYWxsKSB8fCBvcGNvZGUgPT0gZ2V0T3Bjb2RlKG9wX2NvbnN0cnVjdCkgfHwgb3Bjb2RlID09
IGdldE9wY29kZShvcF9jYWxsX2V2YWwpOyB9CiAKLSAgICAgICAgU2FtcGxpbmdUb29sKiBtX3Nh
bXBsZXI7CisgICAgICAgIHZvaWQgZW5hYmxlU2FtcGxlcigpOworICAgICAgICBpbnQgbV9zYW1w
bGVFbnRyeURlcHRoOworICAgICAgICBPd25QdHI8U2FtcGxpbmdUb29sPiBtX3NhbXBsZXI7CiAK
ICAgICAgICAgaW50IG1fcmVlbnRyeURlcHRoOwogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggM2IzNTkzNS4uODI5
YzVjNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaApAQCAtNTM4LDcgKzUzOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFByb3BlcnR5TWFwT2Zmc2V0
ID0gMzE7CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkUHV0UmVz
dWx0ID0gMzE7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICAgICAgc3RhdGljIGNv
bnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA2MzsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA2NDsKICNlbHNl
CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxs
ID0gNDE7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGVlNGUzOTMuLjkzOTliMWEgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMzYw
LDExICszNjAsOCBAQCBzdGF0aWMgYm9vbCBydW5XaXRoU2NyaXB0cyhHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFNjcmlwdD4mIHNjcgogICAgIGlmIChkdW1wKQogICAg
ICAgICBCeXRlY29kZUdlbmVyYXRvcjo6c2V0RHVtcHNHZW5lcmF0ZWRDb2RlKHRydWUpOwogCi0j
aWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICBJbnRlcnByZXRlciogaW50ZXJwcmV0ZXIg
PSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS0+aW50ZXJwcmV0ZXI7Ci0gICAgaW50ZXJwcmV0
ZXItPnNldFNhbXBsZXIobmV3IFNhbXBsaW5nVG9vbChpbnRlcnByZXRlcikpOwotICAgIGludGVy
cHJldGVyLT5zYW1wbGVyKCktPnNldHVwKCk7Ci0jZW5kaWYKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsKKwogI2lmIEVOQUJMRShTQU1Q
TElOR19GTEFHUykKICAgICBTYW1wbGluZ0ZsYWdzOjpzdGFydCgpOwogI2VuZGlmCkBAIC0zODEs
OSArMzc4LDcgQEAgc3RhdGljIGJvb2wgcnVuV2l0aFNjcmlwdHMoR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IFZlY3RvcjxTY3JpcHQ+JiBzY3IKICAgICAgICAgICAgIGZpbGVOYW1l
ID0gIltDb21tYW5kIExpbmVdIjsKICAgICAgICAgfQogCi0jaWYgRU5BQkxFKFNBTVBMSU5HX1RI
UkVBRCkKLSAgICAgICAgU2FtcGxpbmdUaHJlYWQ6OnN0YXJ0KCk7Ci0jZW5kaWYKKyAgICAgICAg
Z2xvYmFsRGF0YS0+c3RhcnRTYW1wbGluZygpOwogCiAgICAgICAgIENvbXBsZXRpb24gY29tcGxl
dGlvbiA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3Qt
Pmdsb2JhbFNjb3BlQ2hhaW4oKSwgbWFrZVNvdXJjZShzY3JpcHQsIGZpbGVOYW1lKSk7CiAgICAg
ICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGNvbXBsZXRpb24uY29tcGxUeXBlKCkgIT0gVGhyb3c7
CkBAIC0zOTQsMjAgKzM4OSwxNCBAQCBzdGF0aWMgYm9vbCBydW5XaXRoU2NyaXB0cyhHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFNjcmlwdD4mIHNjcgogICAgICAgICAg
ICAgICAgIHByaW50ZigiRW5kOiAlc1xuIiwgY29tcGxldGlvbi52YWx1ZSgpLnRvU3RyaW5nKGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKS5hc2NpaSgpKTsKICAgICAgICAgfQogCi0jaWYgRU5B
QkxFKFNBTVBMSU5HX1RIUkVBRCkKLSAgICAgICAgU2FtcGxpbmdUaHJlYWQ6OnN0b3AoKTsKLSNl
bmRpZgotCisgICAgICAgIGdsb2JhbERhdGEtPnN0b3BTYW1wbGluZygpOwogICAgICAgICBnbG9i
YWxPYmplY3QtPmdsb2JhbEV4ZWMoKS0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICB9CiAKICNpZiBF
TkFCTEUoU0FNUExJTkdfRkxBR1MpCiAgICAgU2FtcGxpbmdGbGFnczo6c3RvcCgpOwogI2VuZGlm
Ci0jaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICBpbnRlcnByZXRlci0+c2FtcGxlcigp
LT5kdW1wKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKTsKLSAgICBkZWxldGUgaW50ZXJwcmV0
ZXItPnNhbXBsZXIoKTsKLSNlbmRpZgorICAgIGdsb2JhbERhdGEtPmR1bXBTYW1wbGVEYXRhKGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKTsKICNpZiBFTkFCTEUoU0FNUExJTkdfQ09VTlRFUlMp
CiAgICAgQWJzdHJhY3RTYW1wbGluZ0NvdW50ZXI6OmR1bXAoKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggZWMzZTAwMC4uMjUwNzY5OCAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAorKysgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCkBAIC0zNyw4ICszNyw4IEBAIENvbXBsZXRpb24g
Y2hlY2tTeW50YXgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCiB7
CiAgICAgSlNMb2NrIGxvY2soZXhlYyk7CiAKLSAgICBQcm9ncmFtRXhlY3V0YWJsZSBwcm9ncmFt
KGV4ZWMsIHNvdXJjZSk7Ci0gICAgSlNPYmplY3QqIGVycm9yID0gcHJvZ3JhbS5jaGVja1N5bnRh
eChleGVjKTsKKyAgICBSZWZQdHI8UHJvZ3JhbUV4ZWN1dGFibGU+IHByb2dyYW0gPSBQcm9ncmFt
RXhlY3V0YWJsZTo6Y3JlYXRlKGV4ZWMsIHNvdXJjZSk7CisgICAgSlNPYmplY3QqIGVycm9yID0g
cHJvZ3JhbS0+Y2hlY2tTeW50YXgoZXhlYyk7CiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1
cm4gQ29tcGxldGlvbihUaHJvdywgZXJyb3IpOwogCkBAIC00OSwxNSArNDksMTUgQEAgQ29tcGxl
dGlvbiBldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW4mIHNjb3BlQ2hhaW4sIGNv
bnN0IFNvdXJjZUNvZGUmIHMKIHsKICAgICBKU0xvY2sgbG9jayhleGVjKTsKIAotICAgIFByb2dy
YW1FeGVjdXRhYmxlIHByb2dyYW0oZXhlYywgc291cmNlKTsKLSAgICBKU09iamVjdCogZXJyb3Ig
PSBwcm9ncmFtLmNvbXBpbGUoZXhlYywgc2NvcGVDaGFpbi5ub2RlKCkpOworICAgIFJlZlB0cjxQ
cm9ncmFtRXhlY3V0YWJsZT4gcHJvZ3JhbSA9IFByb2dyYW1FeGVjdXRhYmxlOjpjcmVhdGUoZXhl
Yywgc291cmNlKTsKKyAgICBKU09iamVjdCogZXJyb3IgPSBwcm9ncmFtLT5jb21waWxlKGV4ZWMs
IHNjb3BlQ2hhaW4ubm9kZSgpKTsKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIHJldHVybiBDb21w
bGV0aW9uKFRocm93LCBlcnJvcik7CiAKICAgICBKU09iamVjdCogdGhpc09iaiA9ICghdGhpc1Zh
bHVlIHx8IHRoaXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSA/IGV4ZWMtPmR5bmFtaWNHbG9i
YWxPYmplY3QoKSA6IHRoaXNWYWx1ZS50b09iamVjdChleGVjKTsKIAogICAgIEpTVmFsdWUgZXhj
ZXB0aW9uOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZXhlYy0+aW50ZXJwcmV0ZXIoKS0+ZXhlY3V0
ZSgmcHJvZ3JhbSwgZXhlYywgc2NvcGVDaGFpbi5ub2RlKCksIHRoaXNPYmosICZleGNlcHRpb24p
OworICAgIEpTVmFsdWUgcmVzdWx0ID0gZXhlYy0+aW50ZXJwcmV0ZXIoKS0+ZXhlY3V0ZShwcm9n
cmFtLmdldCgpLCBleGVjLCBzY29wZUNoYWluLm5vZGUoKSwgdGhpc09iaiwgJmV4Y2VwdGlvbik7
CiAKICAgICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgIGlmIChleGNlcHRpb24uaXNPYmplY3Qo
KSAmJiBhc09iamVjdChleGNlcHRpb24pLT5pc1dhdGNoZG9nRXhjZXB0aW9uKCkpCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IDk3Mjg3NzUuLmY3NGFiZTkgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5oCkBAIC0xNTgsMTEgKzE1OCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgY2xhc3MgRXZhbEV4ZWN1dGFibGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7
CiAgICAgcHVibGljOgotICAgICAgICBFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKLSAgICAgICAgICAgIDogU2NyaXB0RXhlY3V0YWJsZShl
eGVjLCBzb3VyY2UpCi0gICAgICAgICAgICAsIG1fZXZhbENvZGVCbG9jaygwKQotICAgICAgICB7
Ci0gICAgICAgIH0KIAogICAgICAgICB+RXZhbEV4ZWN1dGFibGUoKTsKIApAQCAtMTgxLDYgKzE3
NiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXZhbEV4
ZWN1dGFibGU+IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEV2YWxFeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSkpOyB9
CiAKICAgICBwcml2YXRlOgorICAgICAgICBFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKKyAgICAgICAgICAgIDogU2NyaXB0RXhlY3V0YWJs
ZShleGVjLCBzb3VyY2UpCisgICAgICAgICAgICAsIG1fZXZhbENvZGVCbG9jaygwKQorICAgICAg
ICB7CisgICAgICAgIH0KICAgICAgICAgRXZhbENvZGVCbG9jayogbV9ldmFsQ29kZUJsb2NrOwog
CiAjaWYgRU5BQkxFKEpJVCkKQEAgLTE5OSwxMiArMTk5LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7
CiAgICAgcHVibGljOgotICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKLSAgICAgICAgICAgIDogU2NyaXB0RXhlY3V0YWJs
ZShleGVjLCBzb3VyY2UpCi0gICAgICAgICAgICAsIG1fcHJvZ3JhbUNvZGVCbG9jaygwKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmFtRXhlY3V0YWJsZT4gY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyYW1FeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSkpOwog
ICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIH5Qcm9ncmFtRXhlY3V0YWJsZSgpOwogCiAg
ICAgICAgIFByb2dyYW1Db2RlQmxvY2smIGJ5dGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVD
aGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQpAQCAtMjIzLDYgKzIyMiwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgRXhjZXB0aW9uSW5mbyogcmVwYXJzZUV4Y2VwdGlvbkluZm8oSlNHbG9i
YWxEYXRhKiwgU2NvcGVDaGFpbk5vZGUqLCBDb2RlQmxvY2sqKSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyByZXR1cm4gMDsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgUHJvZ3JhbUV4ZWN1dGFi
bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCisgICAgICAgICAg
ICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYywgc291cmNlKQorICAgICAgICAgICAgLCBtX3Byb2dy
YW1Db2RlQmxvY2soMCkKKyAgICAgICAgeworICAgICAgICB9CiAgICAgICAgIFByb2dyYW1Db2Rl
QmxvY2sqIG1fcHJvZ3JhbUNvZGVCbG9jazsKIAogI2lmIEVOQUJMRShKSVQpCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKaW5kZXggOTllMjY2Zi4uMTIyMWVmMiAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMjUxLDQgKzI1MSwxOSBAQCBK
U0dsb2JhbERhdGE6OkNsaWVudERhdGE6On5DbGllbnREYXRhKCkKIHsKIH0KIAordm9pZCBKU0ds
b2JhbERhdGE6OnN0YXJ0U2FtcGxpbmcoKQoreworICAgIGludGVycHJldGVyLT5zdGFydFNhbXBs
aW5nKCk7Cit9CisKK3ZvaWQgSlNHbG9iYWxEYXRhOjpzdG9wU2FtcGxpbmcoKQoreworICAgIGlu
dGVycHJldGVyLT5zdG9wU2FtcGxpbmcoKTsKK30KKwordm9pZCBKU0dsb2JhbERhdGE6OmR1bXBT
YW1wbGVEYXRhKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpbnRlcnByZXRlci0+ZHVtcFNhbXBs
ZURhdGEoZXhlYyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxEYXRhLmgKaW5kZXggZDU0N2ZhYy4uM2FkOTBhZCAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5oCkBAIC0xNTUsNiArMTU1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIGJvb2wgbWFpblRocmVhZE9ubHk7CiAjZW5kaWYKIAorICAgICAgICB2b2lkIHN0YXJ0
U2FtcGxpbmcoKTsKKyAgICAgICAgdm9pZCBzdG9wU2FtcGxpbmcoKTsKKyAgICAgICAgdm9pZCBk
dW1wU2FtcGxlRGF0YShFeGVjU3RhdGUqIGV4ZWMpOwogICAgIHByaXZhdGU6CiAgICAgICAgIEpT
R2xvYmFsRGF0YShib29sIGlzU2hhcmVkLCBjb25zdCBWUHRyU2V0Jik7CiAgICAgICAgIHN0YXRp
YyBKU0dsb2JhbERhdGEqJiBzaGFyZWRJbnN0YW5jZUludGVybmFsKCk7CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDVkZWQz
NzAuLmRjMzI3MTggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCkBAIC0yODYsMTIgKzI4NiwxMiBAQCBKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0V2YWwoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3Rpb24s
IEpTVmFsdQogICAgIGlmIChKU1ZhbHVlIHBhcnNlZE9iamVjdCA9IHByZXBhcnNlci50cnlMaXRl
cmFsUGFyc2UoKSkKICAgICAgICAgcmV0dXJuIHBhcnNlZE9iamVjdDsKIAotICAgIEV2YWxFeGVj
dXRhYmxlIGV2YWwoZXhlYywgbWFrZVNvdXJjZShzKSk7Ci0gICAgSlNPYmplY3QqIGVycm9yID0g
ZXZhbC5jb21waWxlKGV4ZWMsIHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odW53cmFwcGVk
T2JqZWN0KS0+Z2xvYmFsU2NvcGVDaGFpbigpLm5vZGUoKSk7CisgICAgUmVmUHRyPEV2YWxFeGVj
dXRhYmxlPiBldmFsID0gRXZhbEV4ZWN1dGFibGU6OmNyZWF0ZShleGVjLCBtYWtlU291cmNlKHMp
KTsKKyAgICBKU09iamVjdCogZXJyb3IgPSBldmFsLT5jb21waWxlKGV4ZWMsIHN0YXRpY19jYXN0
PEpTR2xvYmFsT2JqZWN0Kj4odW53cmFwcGVkT2JqZWN0KS0+Z2xvYmFsU2NvcGVDaGFpbigpLm5v
ZGUoKSk7CiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBl
cnJvcik7CiAKLSAgICByZXR1cm4gZXhlYy0+aW50ZXJwcmV0ZXIoKS0+ZXhlY3V0ZSgmZXZhbCwg
ZXhlYywgdGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPih1bndyYXBwZWRP
YmplY3QpLT5nbG9iYWxTY29wZUNoYWluKCkubm9kZSgpLCBleGVjLT5leGNlcHRpb25TbG90KCkp
OworICAgIHJldHVybiBleGVjLT5pbnRlcnByZXRlcigpLT5leGVjdXRlKGV2YWwuZ2V0KCksIGV4
ZWMsIHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odW53cmFwcGVkT2Jq
ZWN0KS0+Z2xvYmFsU2NvcGVDaGFpbigpLm5vZGUoKSwgZXhlYy0+ZXhjZXB0aW9uU2xvdCgpKTsK
IH0KIAogSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQYXJzZUludChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYgYXJncyk=
</data>
<flag name="review"
          id="21492"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>