<?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>129293</bug_id>
          
          <creation_ts>2014-02-25 00:54:43 -0800</creation_ts>
          <short_desc>JSDOMWindow::commonVM() should return a reference.</short_desc>
          <delta_ts>2014-03-02 21:04:38 -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>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984225</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-25 00:54:43 -0800</bug_when>
    <thetext>There&apos;s always a commonVM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984226</commentid>
    <comment_count>1</comment_count>
      <attachid>225127</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-25 01:00:06 -0800</bug_when>
    <thetext>Created attachment 225127
Patcharoo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984347</commentid>
    <comment_count>2</comment_count>
      <attachid>225127</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-25 09:22:56 -0800</bug_when>
    <thetext>Comment on attachment 225127
Patcharoo

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986260</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-02 21:04:38 -0800</bug_when>
    <thetext>Committed r164968: &lt;http://trac.webkit.org/changeset/164968&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225127</attachid>
            <date>2014-02-25 01:00:06 -0800</date>
            <delta_ts>2014-02-25 09:22:56 -0800</delta_ts>
            <desc>Patcharoo</desc>
            <filename>bug-129293.diff</filename>
            <type>text/plain</type>
            <size>39876</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVmODhmYmEuLjhlZGI0MDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTAyLTI1ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSBz
aG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTI5MjkzPgorCisgICAgICAgIEFkZGVkIGEgRHJvcEFsbExvY2tzIGNvbnN0cnVjdG9yIHRoYXQg
dGFrZXMgVk0mIHdpdGhvdXQgbnVsbCBjaGVja3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKIDIwMTQtMDItMjQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIE5lZWQgdG8gaW5pdGlhbGl6ZSBWTSBzdGFjayBkYXRhIGV2ZW4gd2hlbiB0
aGUgVk0gaXMgb24gYW4gZXhjbHVzaXZlIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwCmluZGV4IDc2YTQ3ZmIuLmQ4ZDY5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFn
ZW50LmNwcApAQCAtODQsMTEgKzg0LDExIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6
VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkVycm9yUmFuZ2U+IGJ1aWxkRXJyb3JSYW5nZU9iCiAKIHZv
aWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpwYXJzZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6U3ludGF4RXJy
b3JUeXBlOjpFbnVtKiByZXN1bHQsIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxT
dHJpbmc+KiBtZXNzYWdlLCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6
RXJyb3JSYW5nZT4mIHJhbmdlKQogewotICAgIFZNKiB2bSA9IGdsb2JhbFZNKCk7CisgICAgVk0m
IHZtID0gZ2xvYmFsVk0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKICAgICBQYXJz
ZXJFcnJvciBlcnJvcjsKLSAgICBjaGVja1N5bnRheCgqdm0sIEpTQzo6bWFrZVNvdXJjZShleHBy
ZXNzaW9uKSwgZXJyb3IpOworICAgIGNoZWNrU3ludGF4KHZtLCBKU0M6Om1ha2VTb3VyY2UoZXhw
cmVzc2lvbiksIGVycm9yKTsKIAogICAgIHN3aXRjaCAoZXJyb3IubV9zeW50YXhFcnJvclR5cGUp
IHsKICAgICBjYXNlIFBhcnNlckVycm9yOjpTeW50YXhFcnJvck5vbmU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oCmluZGV4IDJiYzZlMjkuLmQ2YzFlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5oCkBAIC03Niw3ICs3Niw3IEBAIHByb3RlY3RlZDoKIAogICAgIEluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCkgeyByZXR1cm4gbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXI7IH0KIAotICAgIHZpcnR1YWwgSlNDOjpWTSogZ2xvYmFsVk0oKSA9IDA7Cisg
ICAgdmlydHVhbCBKU0M6OlZNJiBnbG9iYWxWTSgpID0gMDsKICAgICB2aXJ0dWFsIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhl
Y3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9K
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggMmY5YTI5
YS4uMTI2MTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcApA
QCAtNTQsOSArNTQsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZQogICAgIG1fYmFja2VuZERp
c3BhdGNoZXIuY2xlYXIoKTsKIH0KIAotVk0qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojpn
bG9iYWxWTSgpCitWTSYgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6Omdsb2JhbFZNKCkKIHsK
LSAgICByZXR1cm4gJm1fZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgcmV0dXJuIG1fZ2xvYmFsT2Jq
ZWN0LnZtKCk7CiB9CiAKIEluamVjdGVkU2NyaXB0IEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
OjppbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2Vu
dC5oCmluZGV4IGIwMmNiMDcuLmQ4N2ZkMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgSlNDOjpWTSogZ2xvYmFsVk0oKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEpTQzo6Vk0mIGdsb2JhbFZNKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4
ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBp
bnNwZWN0b3IgZG9lcyBub3QgeWV0IGhhdmUgYSBjb25zb2xlIG9iamVjdCB0byBtdXRlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKaW5kZXggYWY4ZGJkYi4uM2EwNWIz
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0yNTQsNiAr
MjU0LDE0IEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoVk0qIHZtKQogICAg
IG1fZHJvcHBlZExvY2tDb3VudCA9IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3ModGhpcyk7
CiB9CiAKK0pTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoVk0mIHZtKQorICAgIDog
bV9kcm9wcGVkTG9ja0NvdW50KDApCisgICAgLCBtX3ZtKCZ2bSkKK3sKKyAgICBSRUxFQVNFX0FT
U0VSVCghbV92bS0+aXNDb2xsZWN0b3JCdXN5KCkpOworICAgIG1fZHJvcHBlZExvY2tDb3VudCA9
IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3ModGhpcyk7Cit9CisKIEpTTG9jazo6RHJvcEFs
bExvY2tzOjp+RHJvcEFsbExvY2tzKCkKIHsKICAgICBpZiAoIW1fdm0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5oCmluZGV4IGQ4OTdkMTEuLmQ2NmRjZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCkBAIC0xMTAsNiArMTEwLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHB1YmxpYzoKICAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIERy
b3BBbGxMb2NrcyhFeGVjU3RhdGUqKTsKICAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIERy
b3BBbGxMb2NrcyhWTSopOworICAgICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRHJvcEFsbExv
Y2tzKFZNJik7CiAgICAgICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB+RHJvcEFsbExvY2tzKCk7
CiAgICAgICAgICAgICAKICNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUw
NmJmNTQuLmRmMzY3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wMi0yNSAg
QW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKKyAgICAgICAgSlNET01XaW5kb3c6
OmNvbW1vblZNKCkgc2hvdWxkIHJldHVybiBhIHJlZmVyZW5jZS4KKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzEyOTI5Mz4KKworICAgICAgICBTaW5jZSB0aGlzIGZ1bmN0aW9uIGFsd2F5
cyByZXR1cm5zIGEgVk0gYW5kIG5ldmVyIG51bGwsIG1ha2UgaXQKKyAgICAgICAgcmV0dXJuIGEg
cmVmZXJlbmNlIGluc3RlYWQuIFRoZXJlIGFyZSBtb3JlIFZNIGdldHRlcnMgdGhhdCBuZXZlcgor
ICAgICAgICByZXR1cm4gbnVsbCwgYnV0IEkgdHJpZWQgdG8ga2VlcCB0aGUgcGF0Y2ggZnJvbSBz
bm93YmFsbGluZy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogMjAx
NC0wMi0yNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTmVlZCB0
byBpbml0aWFsaXplIFZNIHN0YWNrIGRhdGEgZXZlbiB3aGVuIHRoZSBWTSBpcyBvbiBhbiBleGNs
dXNpdmUgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9N
V3JhcHBlcldvcmxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJX
b3JsZC5jcHAKaW5kZXggZWIzZTFlYi4uM2RkMjVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuY3BwCkBAIC0zMCwxOCArMzAsMTggQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ET01XcmFwcGVyV29ybGQ6
OkRPTVdyYXBwZXJXb3JsZChKU0M6OlZNKiB2bSwgYm9vbCBpc05vcm1hbCkKK0RPTVdyYXBwZXJX
b3JsZDo6RE9NV3JhcHBlcldvcmxkKEpTQzo6Vk0mIHZtLCBib29sIGlzTm9ybWFsKQogICAgIDog
bV92bSh2bSkKICAgICAsIG1faXNOb3JtYWwoaXNOb3JtYWwpCiB7Ci0gICAgVk06OkNsaWVudERh
dGEqIGNsaWVudERhdGEgPSBtX3ZtLT5jbGllbnREYXRhOworICAgIFZNOjpDbGllbnREYXRhKiBj
bGllbnREYXRhID0gbV92bS5jbGllbnREYXRhOwogICAgIEFTU0VSVChjbGllbnREYXRhKTsKICAg
ICBzdGF0aWNfY2FzdDxXZWJDb3JlSlNDbGllbnREYXRhKj4oY2xpZW50RGF0YSktPnJlbWVtYmVy
V29ybGQoKnRoaXMpOwogfQogCiBET01XcmFwcGVyV29ybGQ6On5ET01XcmFwcGVyV29ybGQoKQog
ewotICAgIFZNOjpDbGllbnREYXRhKiBjbGllbnREYXRhID0gbV92bS0+Y2xpZW50RGF0YTsKKyAg
ICBWTTo6Q2xpZW50RGF0YSogY2xpZW50RGF0YSA9IG1fdm0uY2xpZW50RGF0YTsKICAgICBBU1NF
UlQoY2xpZW50RGF0YSk7CiAgICAgc3RhdGljX2Nhc3Q8V2ViQ29yZUpTQ2xpZW50RGF0YSo+KGNs
aWVudERhdGEpLT5mb3JnZXRXb3JsZCgqdGhpcyk7CiAKQEAgLTY5LDcgKzY5LDcgQEAgRE9NV3Jh
cHBlcldvcmxkJiBub3JtYWxXb3JsZChKU0M6OlZNJiB2bSkKIERPTVdyYXBwZXJXb3JsZCYgbWFp
blRocmVhZE5vcm1hbFdvcmxkKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IHN0YXRpYyBET01XcmFwcGVyV29ybGQmIGNhY2hlZE5vcm1hbFdvcmxkID0gbm9ybWFsV29ybGQo
KkpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKKyAgICBzdGF0aWMgRE9NV3JhcHBlcldvcmxkJiBj
YWNoZWROb3JtYWxXb3JsZCA9IG5vcm1hbFdvcmxkKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsK
ICAgICByZXR1cm4gY2FjaGVkTm9ybWFsV29ybGQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKaW5kZXggNjE4YjUwOC4uNDAxYTliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKQEAgLTM2LDcgKzM2
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4+IERP
TU9iamVjdFdyYXBwZXJNYXA7CiAKIGNsYXNzIERPTVdyYXBwZXJXb3JsZCA6IHB1YmxpYyBSZWZD
b3VudGVkPERPTVdyYXBwZXJXb3JsZD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERPTVdyYXBwZXJXb3JsZD4gY3JlYXRlKEpTQzo6Vk0qIHZtLCBib29sIGlzTm9ybWFsID0gZmFs
c2UpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBjcmVhdGUoSlNDOjpW
TSYgdm0sIGJvb2wgaXNOb3JtYWwgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRE9NV3JhcHBlcldvcmxkKHZtLCBpc05vcm1hbCkpOwogICAgIH0KQEAgLTU0LDEz
ICs1NCwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4g
bV9pc05vcm1hbDsgfQogCi0gICAgSlNDOjpWTSogdm0oKSBjb25zdCB7IHJldHVybiBtX3ZtOyB9
CisgICAgSlNDOjpWTSYgdm0oKSBjb25zdCB7IHJldHVybiBtX3ZtOyB9CiAKIHByb3RlY3RlZDoK
LSAgICBET01XcmFwcGVyV29ybGQoSlNDOjpWTSosIGJvb2wgaXNOb3JtYWwpOworICAgIERPTVdy
YXBwZXJXb3JsZChKU0M6OlZNJiwgYm9vbCBpc05vcm1hbCk7CiAKIHByaXZhdGU6Ci0gICAgSlND
OjpWTSogbV92bTsKKyAgICBKU0M6OlZNJiBtX3ZtOwogICAgIEhhc2hTZXQ8U2NyaXB0Q29udHJv
bGxlcio+IG1fc2NyaXB0Q29udHJvbGxlcnNXaXRoV2luZG93U2hlbGxzOwogICAgIGJvb2wgbV9p
c05vcm1hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNw
cAppbmRleCBiYTcwZDRhLi5kYmVmNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RhdGljIHZvaWQgY29sbGVjdCh2b2lkKikKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhlYXAu
Y29sbGVjdEFsbEdhcmJhZ2UoKTsKKyAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLmNv
bGxlY3RBbGxHYXJiYWdlKCk7CiB9CiAKIEdDQ29udHJvbGxlciYgZ2NDb250cm9sbGVyKCkKQEAg
LTY0LDcgKzY0LDcgQEAgdm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0U29vbigpCiAg
ICAgLy8gYWJsZSB0byB1c2UgcmVwb3J0QWJhbmRvbmVkT2JqZWN0R3JhcGggb24gbW9yZSBwbGF0
Zm9ybXMuCiAjaWYgVVNFKENGKQogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpj
b21tb25WTSgpKTsKLSAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5yZXBvcnRBYmFu
ZG9uZWRPYmplY3RHcmFwaCgpOworICAgIEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAucmVw
b3J0QWJhbmRvbmVkT2JqZWN0R3JhcGgoKTsKICNlbHNlCiAgICAgaWYgKCFtX0dDVGltZXIuaXNB
Y3RpdmUoKSkKICAgICAgICAgbV9HQ1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKQEAgLTg3LDggKzg3
LDggQEAgdm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0Tm93KCkKICAgICBpZiAoIUpT
RE9NV2luZG93Ojpjb21tb25WTUV4aXN0cygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKLSAg
ICBpZiAoIUpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFwLmlzQnVzeSgpKQotICAgICAgICBK
U0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5jb2xsZWN0QWxsR2FyYmFnZSgpOworICAgIGlm
ICghSlNET01XaW5kb3c6OmNvbW1vblZNKCkuaGVhcC5pc0J1c3koKSkKKyAgICAgICAgSlNET01X
aW5kb3c6OmNvbW1vblZNKCkuaGVhcC5jb2xsZWN0QWxsR2FyYmFnZSgpOwogfQogCiB2b2lkIEdD
Q29udHJvbGxlcjo6Z2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZEZvckRlYnVnZ2luZyhi
b29sIHdhaXRVbnRpbERvbmUpCkBAIC0xMTYsMjQgKzExNiwyNCBAQCB2b2lkIEdDQ29udHJvbGxl
cjo6cmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKQogCiAgICAgLy8gV2Ugc2hvdWxkbid0IGhhdmUg
YW55IGphdmFzY3JpcHQgcnVubmluZyBvbiBvdXIgc3RhY2sgd2hlbiB0aGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZC4gVGhlCiAgICAgLy8gZm9sbG93aW5nIGxpbmUgYXNzZXJ0cyB0aGF0LgotICAgIEFT
U0VSVCghSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmVudHJ5U2NvcGUpOworICAgIEFTU0VSVCgh
SlNET01XaW5kb3c6OmNvbW1vblZNKCkuZW50cnlTY29wZSk7CiAKICAgICAvLyBCdXQgYmUgc2Fm
ZSBpbiByZWxlYXNlIGJ1aWxkcyBqdXN0IGluIGNhc2UuLi4KLSAgICBpZiAoSlNET01XaW5kb3c6
OmNvbW1vblZNKCktPmVudHJ5U2NvcGUpCisgICAgaWYgKEpTRE9NV2luZG93Ojpjb21tb25WTSgp
LmVudHJ5U2NvcGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIEpTRE9NV2luZG93Ojpjb21tb25W
TSgpLT5yZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSgpOworICAgIEpTRE9NV2luZG93Ojpjb21tb25W
TSgpLnJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KCk7CiB9CiAKIHZvaWQgR0NDb250cm9sbGVyOjpz
ZXRKYXZhU2NyaXB0R2FyYmFnZUNvbGxlY3RvclRpbWVyRW5hYmxlZChib29sIGVuYWJsZSkKIHsK
LSAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5zZXRHYXJiYWdlQ29sbGVjdGlvblRp
bWVyRW5hYmxlZChlbmFibGUpOworICAgIEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAuc2V0
R2FyYmFnZUNvbGxlY3Rpb25UaW1lckVuYWJsZWQoZW5hYmxlKTsKIH0KIAogdm9pZCBHQ0NvbnRy
b2xsZXI6OmRpc2NhcmRBbGxDb21waWxlZENvZGUoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+
ZGlzY2FyZEFsbENvZGUoKTsKKyAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5kaXNjYXJkQWxs
Q29kZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCA4NzNlMjkzLi40OTEyZDIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTU0LDcgKzU0LDcg
QEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKERPTUNvbnN0cnVjdG9y
V2l0aERvY3VtZW50KTsKIAogdm9pZCBhZGRJbXB1cmVQcm9wZXJ0eShjb25zdCBBdG9taWNTdHJp
bmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+YWRkSW1w
dXJlUHJvcGVydHkocHJvcGVydHlOYW1lKTsKKyAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5h
ZGRJbXB1cmVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOwogfQogCiBjb25zdCBKU0M6Okhhc2hUYWJs
ZSYgZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShWTSYgdm0sIGNvbnN0IEpTQzo6SGFzaFRhYmxl
JiBzdGF0aWNUYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
aW5kZXggZmIwNTc0Yy4uNjE3YWEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgKQEAgLTExNyw3ICsxMTcsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xh
c3M+IGlubGluZSBKU0M6OkpTT2JqZWN0KiBnZXRET01Qcm90b3R5cGUoSlNDOjpWTSYgdm0sCiAK
IGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQsIEpTQzo6QXJyYXlCdWZmZXIqKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIqPih3b3JsZC52bSgpLT5tX3R5cGVkQXJyYXlDb250
cm9sbGVyLmdldCgpKS0+d3JhcHBlck93bmVyKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdl
YkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcio+KHdvcmxkLnZtKCkubV90eXBlZEFycmF5Q29udHJv
bGxlci5nZXQoKSktPndyYXBwZXJPd25lcigpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgSlNDOjpBcnJheUJ1ZmZlciopCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA3OWNhODkw
Li42MTgzZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRv
d0Jhc2U6OnNoZWxsKCkgY29uc3QKICAgICByZXR1cm4gbV9zaGVsbDsKIH0KIAotVk0qIEpTRE9N
V2luZG93QmFzZTo6Y29tbW9uVk0oKQorVk0mIEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTIyOSw3ICsyMjksNyBAQCBWTSog
SlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpCiAgICAgICAgIGluaXROb3JtYWxXb3JsZENsaWVu
dERhdGEodm0pOwogICAgIH0KIAotICAgIHJldHVybiB2bTsKKyAgICByZXR1cm4gKnZtOwogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAppbmRleCBmYjRjNjAxLi5mMWMyN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNzEsNyArNzEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwoKSBjb25zdDsKIAot
ICAgICAgICBzdGF0aWMgSlNDOjpWTSogY29tbW9uVk0oKTsKKyAgICAgICAgc3RhdGljIEpTQzo6
Vk0mIGNvbW1vblZNKCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICBzdGF0aWMgYm9vbCBj
b21tb25WTUV4aXN0cygpOwogICAgICAgICBzdGF0aWMgSlNDOjpWTSomIGNvbW1vblZNSW50ZXJu
YWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKaW5k
ZXggZTc2MjYxMi4uNzA5YzMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBpbml0aWFsaXplSlNGdW5jdGlvbiBjYW4gdHJpZ2dlciBjb2RlIHRoYXQgZGVsZXRl
cyB0aGlzIGV2ZW50IGxpc3RlbmVyCiAgICAgICAgIC8vIGJlZm9yZSB3ZSdyZSBkb25lLiBJdCBz
aG91bGQgYWx3YXlzIHJldHVybiAwIGluIHRoaXMgY2FzZS4KICAgICAgICAgUmVmPEpTRXZlbnRM
aXN0ZW5lcj4gcHJvdGVjdChjb25zdF9jYXN0PEpTRXZlbnRMaXN0ZW5lciY+KCp0aGlzKSk7Ci0g
ICAgICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IHdyYXBwZXIoKm1faXNvbGF0ZWRXb3Js
ZC0+dm0oKSwgbV93cmFwcGVyLmdldCgpKTsKKyAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09i
amVjdD4gd3JhcHBlcihtX2lzb2xhdGVkV29ybGQtPnZtKCksIG1fd3JhcHBlci5nZXQoKSk7CiAK
ICAgICAgICAgaWYgKCFtX2pzRnVuY3Rpb24pIHsKICAgICAgICAgICAgIEpTQzo6SlNPYmplY3Qq
IGZ1bmN0aW9uID0gaW5pdGlhbGl6ZUpTRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmNwcAppbmRleCAzMzdhYzlmLi5hOTUxYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTEyMyw3ICsxMjMs
NyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVi
dWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6
cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9N
V2luZG93Ojpjb21tb25WTSgpKTsKLSAgICBEZWJ1Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOworICAgIERlYnVnZ2VyOjpyZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucygmSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwogfQogCiBTY3JpcHREZWJ1Z1Nl
cnZlcjo6TGlzdGVuZXJTZXQqIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6Z2V0TGlzdGVuZXJzRm9y
R2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oCmluZGV4IDE5YWRkM2YuLmMxZjYyOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oCkBAIC01
Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcml2YXRlOgogICAgICAgICBT
Y2hlZHVsZWRBY3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgZnVuY3Rpb24sIERP
TVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3JsZCk7CiAgICAgICAgIFNjaGVkdWxlZEFjdGlvbihj
b25zdCBTdHJpbmcmIGNvZGUsIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3JsZCkKLSAgICAg
ICAgICAgIDogbV9mdW5jdGlvbigqaXNvbGF0ZWRXb3JsZC52bSgpKQorICAgICAgICAgICAgOiBt
X2Z1bmN0aW9uKGlzb2xhdGVkV29ybGQudm0oKSkKICAgICAgICAgICAgICwgbV9jb2RlKGNvZGUp
CiAgICAgICAgICAgICAsIG1faXNvbGF0ZWRXb3JsZCgmaXNvbGF0ZWRXb3JsZCkKICAgICAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApp
bmRleCA3YWY0YTFjLi40ZGE3ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIEpTRE9NV2luZG93U2hl
bGwqIFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdpbmRvd1NoZWxsKERPTVdyYXBwZXJXb3JsZCYg
d29ybGQpCiB7CiAgICAgQVNTRVJUKCFtX3dpbmRvd1NoZWxscy5jb250YWlucygmd29ybGQpKTsK
IAotICAgIFZNJiB2bSA9ICp3b3JsZC52bSgpOworICAgIFZNJiB2bSA9IHdvcmxkLnZtKCk7CiAK
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwganNOdWxsKCkpOwogICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dT
aGVsbCh2bSwgSlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlKHZtLCBtX2ZyYW1lLmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpLCBzdHJ1Y3R1cmUsIHdvcmxkKSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgUGFz
c1JlZlB0cjxET01XcmFwcGVyV29ybGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdvcmxkKCkK
IAogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpnZXRBbGxXb3JsZHMoVmVjdG9yPFJlZjxET01XcmFw
cGVyV29ybGQ+PiYgd29ybGRzKQogewotICAgIHN0YXRpY19jYXN0PFdlYkNvcmVKU0NsaWVudERh
dGEqPihKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+Y2xpZW50RGF0YSktPmdldEFsbFdvcmxkcyh3
b3JsZHMpOworICAgIHN0YXRpY19jYXN0PFdlYkNvcmVKU0NsaWVudERhdGEqPihKU0RPTVdpbmRv
dzo6Y29tbW9uVk0oKS5jbGllbnREYXRhKS0+Z2V0QWxsV29ybGRzKHdvcmxkcyk7CiB9CiAKIHZv
aWQgU2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cqIG5ld0RPTVdp
bmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpCkBAIC00NjgsNyArNDY4LDcgQEAgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQo
RE9NV3JhcHBlcldvcmxkJgogCiBib29sIFNjcmlwdENvbnRyb2xsZXI6OnNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpCiB7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+dG9wQ2FsbEZyYW1lOworICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCkudG9wQ2FsbEZyYW1lOwogICAg
IGlmIChjYWxsRnJhbWUgPT0gQ2FsbEZyYW1lOjpub0NhbGxlcigpKSAKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIERPTVdyYXBwZXJXb3JsZCYgZG9tV3JhcHBlcldvcmxkID0gY3VycmVudFdv
cmxkKGNhbGxGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNDbGllbnREYXRhLmgKaW5kZXggODdlOTVkZS4uOTg5OThhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtODMsNyArODMsNyBA
QCBpbmxpbmUgdm9pZCBpbml0Tm9ybWFsV29ybGRDbGllbnREYXRhKEpTQzo6Vk0qIHZtKQogewog
ICAgIFdlYkNvcmVKU0NsaWVudERhdGEqIHdlYkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29y
ZUpTQ2xpZW50RGF0YTsKICAgICB2bS0+Y2xpZW50RGF0YSA9IHdlYkNvcmVKU0NsaWVudERhdGE7
IC8vIH5WTSBkZWxldGVzIHRoaXMgcG9pbnRlci4KLSAgICB3ZWJDb3JlSlNDbGllbnREYXRhLT5t
X25vcm1hbFdvcmxkID0gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUodm0sIHRydWUpOworICAgIHdl
YkNvcmVKU0NsaWVudERhdGEtPm1fbm9ybWFsV29ybGQgPSBET01XcmFwcGVyV29ybGQ6OmNyZWF0
ZSgqdm0sIHRydWUpOwogICAgIHZtLT5tX3R5cGVkQXJyYXlDb250cm9sbGVyID0gYWRvcHRSZWYo
bmV3IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDJkNzRhMzguLmMyYzRlZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAg
LTQwOCw3ICs0MDgsNyBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrOjp+VGFzaygpCiBK
U0M6OlZNKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp2bSgpCiB7CiAgICAgIGlmIChpc0RvY3Vt
ZW50KCkpCi0gICAgICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKTsKKyAgICAgICAg
cmV0dXJuICZKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKTsKIAogICAgIGlmIChpc1dvcmtlckdsb2Jh
bFNjb3BlKCkpCiAgICAgICAgIHJldHVybiB0b1dvcmtlckdsb2JhbFNjb3BlKHRoaXMpLT5zY3Jp
cHQoKS0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IGFhNmVhODYuLmI1Y2RhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZy
b20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgICAgICAgICBleGl0RnVsbHNj
cmVlbigpOwogCiAgICAgICAgIGlmIChtX3BsYXllcikgewotICAgICAgICAgICAgSlNDOjpWTSog
dm0gPSBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCk7CisgICAgICAgICAgICBKU0M6OlZNJiB2
bSA9IEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKTsKICAgICAgICAgICAgIEpTQzo6SlNMb2Nr
SG9sZGVyIGxvY2sodm0pOwogCiAgICAgICAgICAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0ID0g
bV9wbGF5ZXItPmV4dHJhTWVtb3J5Q29zdCgpOwpAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQp
CiAgICAgICAgICAgICBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0ID0gZXh0cmFNZW1vcnlDb3N0
OwogCiAgICAgICAgICAgICBpZiAoZXh0cmFNZW1vcnlDb3N0RGVsdGEgPiAwKQotICAgICAgICAg
ICAgICAgIHZtLT5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5Q29zdChleHRyYU1lbW9yeUNvc3REZWx0
YSk7CisgICAgICAgICAgICAgICAgdm0uaGVhcC5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoZXh0cmFN
ZW1vcnlDb3N0RGVsdGEpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggNGEwY2VmYi4u
YmFlOGUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcApAQCAtNTY5LDcgKzU2OSw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0CiAKIHN0YXRpYyBzaXplX3QgdXNlZEhlYXBTaXplKCkKIHsKLSAgICByZXR1cm4gSlNET01X
aW5kb3c6OmNvbW1vblZNKCktPmhlYXAuc2l6ZSgpOworICAgIHJldHVybiBKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS5oZWFwLnNpemUoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzZXRET01Db3VudGVycyhJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxp
bmVFdmVudCogcmVjb3JkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuY3BwCmluZGV4IDllODQyN2IuLmJhZDRhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFBh
Z2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUlzb2xhdGVkQ29udGV4dChGcmFtZSogZnJhbWUsIEpT
Qzo6RXhlY1N0YXRlKiBzYwogICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIHNjcmlw
dFN0YXRlLCBvcmlnaW4sIGZhbHNlKTsKIH0KIAotSlNDOjpWTSogUGFnZVJ1bnRpbWVBZ2VudDo6
Z2xvYmFsVk0oKQorSlNDOjpWTSYgUGFnZVJ1bnRpbWVBZ2VudDo6Z2xvYmFsVk0oKQogewogICAg
IHJldHVybiBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCBmZDQ3Yzc0Li5mMDAyYzQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTY2LDcgKzY2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KEZyYW1lKiwg
SlNDOjpFeGVjU3RhdGUqLCBTZWN1cml0eU9yaWdpbiopOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgSlNDOjpWTSogZ2xvYmFsVk0oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEpTQzo6Vk0mIGds
b2JhbFZNKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCAxNTJi
NGRjLi5iZDAzNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
UnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6
cnVuKEVycm9yU3RyaW5nKikKICAgICBtX3BhdXNlZCA9IGZhbHNlOwogfQogCi1KU0M6OlZNKiBX
b3JrZXJSdW50aW1lQWdlbnQ6Omdsb2JhbFZNKCkKK0pTQzo6Vk0mIFdvcmtlclJ1bnRpbWVBZ2Vu
dDo6Z2xvYmFsVk0oKQogewogICAgIHJldHVybiBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKaW5k
ZXggNWMyZDg2MS4uMjc0ZTY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJSdW50aW1lQWdlbnQuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVz
ZVdvcmtlckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKik7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBKU0M6OlZNKiBnbG9iYWxWTSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSlNDOjpW
TSYgZ2xvYmFsVk0oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRT
Y3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVj
dXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01lbW9yeUluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCmluZGV4IGQ0ZDI5ODQuLjNhY2M5MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBNZW1vcnlJbmZvKCkKLSAgICAgICAgOiBtX3VzZWRKU0hlYXBTaXplKEpT
RE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFwLnNpemUoKSkKLSAgICAgICAgLCBtX3RvdGFsSlNI
ZWFwU2l6ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5jYXBhY2l0eSgpKQorICAgICAg
ICA6IG1fdXNlZEpTSGVhcFNpemUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkuaGVhcC5zaXplKCkp
CisgICAgICAgICwgbV90b3RhbEpTSGVhcFNpemUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkuaGVh
cC5jYXBhY2l0eSgpKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmlu
ZGV4IDhhNzUzMGMuLjZhZmYyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNDA2
LDcgKzQwNiw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpnYXJiYWdlQ29sbGVj
dG9yQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkKGJvb2wgd2FpCiAKIHNpemVfdCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OmphdmFTY3JpcHRPYmplY3RzQ291bnQoKQogewotICAgIHJldHVybiBX
ZWJDb3JlOjpKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5vYmplY3RDb3VudCgpOworICAg
IHJldHVybiBXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLm9iamVjdENvdW50
KCk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwCmluZGV4IGY0NTg3N2MuLmRiMWM1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApA
QCAtNDYwLDcgKzQ2MCw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnY0NvbGxl
Y3RKYXZhc2NyaXB0T2JqZWN0c09uQWx0ZXJuYXRlVGhyZWFkKGJvb2wKIHVuc2lnbmVkIGxvbmcg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnY0NvdW50SmF2YXNjcmlwdE9iamVjdHMoKQogewog
ICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwotICAg
IHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5vYmplY3RDb3VudCgpOworICAg
IHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLm9iamVjdENvdW50KCk7CiB9CiAK
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpsYXlvdXRGcmFtZShXZWJLaXRXZWJGcmFt
ZSogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0
aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQpp
bmRleCBiYjM2NzdkLi43NjIyY2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29y
ZVN0YXRpc3RpY3MubW0KQEAgLTU5LDI1ICs1OSwyNSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKICsgKHNpemVfdClqYXZhU2NyaXB0T2JqZWN0c0NvdW50CiB7CiAgICAgSlNMb2NrSG9sZGVy
IGxvY2soSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwotICAgIHJldHVybiBKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS0+aGVhcC5vYmplY3RDb3VudCgpOworICAgIHJldHVybiBKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS5oZWFwLm9iamVjdENvdW50KCk7CiB9CiAKICsgKHNpemVfdClqYXZhU2NyaXB0
R2xvYmFsT2JqZWN0c0NvdW50CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6
OmNvbW1vblZNKCkpOwotICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5n
bG9iYWxPYmplY3RDb3VudCgpOworICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5o
ZWFwLmdsb2JhbE9iamVjdENvdW50KCk7CiB9CiAKICsgKHNpemVfdClqYXZhU2NyaXB0UHJvdGVj
dGVkT2JqZWN0c0NvdW50CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNv
bW1vblZNKCkpOwotICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5wcm90
ZWN0ZWRPYmplY3RDb3VudCgpOworICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5o
ZWFwLnByb3RlY3RlZE9iamVjdENvdW50KCk7CiB9CiAKICsgKHNpemVfdClqYXZhU2NyaXB0UHJv
dGVjdGVkR2xvYmFsT2JqZWN0c0NvdW50CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01X
aW5kb3c6OmNvbW1vblZNKCkpOwotICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+
aGVhcC5wcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpOworICAgIHJldHVybiBKU0RPTVdpbmRv
dzo6Y29tbW9uVk0oKS5oZWFwLnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCk7CiB9CiAKICsg
KE5TQ291bnRlZFNldCAqKWphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzCkBAIC04
Niw3ICs4Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIAogICAgIE5TQ291bnRl
ZFNldCAqcmVzdWx0ID0gW05TQ291bnRlZFNldCBzZXRdOwogCi0gICAgT3duUHRyPFR5cGVDb3Vu
dFNldD4gY291bnRzKEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFwLnByb3RlY3RlZE9iamVj
dFR5cGVDb3VudHMoKSk7CisgICAgT3duUHRyPFR5cGVDb3VudFNldD4gY291bnRzKEpTRE9NV2lu
ZG93Ojpjb21tb25WTSgpLmhlYXAucHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cygpKTsKICAgICBI
YXNoQ291bnRlZFNldDxjb25zdCBjaGFyKj46Oml0ZXJhdG9yIGVuZCA9IGNvdW50cy0+ZW5kKCk7
CiAgICAgZm9yIChIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKj46Oml0ZXJhdG9yIGl0ID0gY291
bnRzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBpdC0+dmFsdWU7ICsraSkKQEAgLTEwMSw3ICsxMDEsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICAKICAgICBOU0NvdW50ZWRTZXQgKnJlc3VsdCA9IFtOU0NvdW50ZWRT
ZXQgc2V0XTsKIAotICAgIE93blB0cjxUeXBlQ291bnRTZXQ+IGNvdW50cyhKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS0+aGVhcC5vYmplY3RUeXBlQ291bnRzKCkpOworICAgIE93blB0cjxUeXBlQ291
bnRTZXQ+IGNvdW50cyhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLm9iamVjdFR5cGVDb3Vu
dHMoKSk7CiAgICAgSGFzaENvdW50ZWRTZXQ8Y29uc3QgY2hhcio+OjppdGVyYXRvciBlbmQgPSBj
b3VudHMtPmVuZCgpOwogICAgIGZvciAoSGFzaENvdW50ZWRTZXQ8Y29uc3QgY2hhcio+OjppdGVy
YXRvciBpdCA9IGNvdW50cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgaXQtPnZhbHVlOyArK2kpCkBAIC0yMDIsOCArMjAyLDggQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgV1RGOjpGYXN0TWFsbG9jU3RhdGlzdGljcyBm
YXN0TWFsbG9jU3RhdGlzdGljcyA9IFdURjo6ZmFzdE1hbGxvY1N0YXRpc3RpY3MoKTsKICAgICAK
ICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgc2l6
ZV90IGhlYXBTaXplID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhlYXAuc2l6ZSgpOwotICAg
IHNpemVfdCBoZWFwRnJlZSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFwLmNhcGFjaXR5
KCkgLSBoZWFwU2l6ZTsKKyAgICBzaXplX3QgaGVhcFNpemUgPSBKU0RPTVdpbmRvdzo6Y29tbW9u
Vk0oKS5oZWFwLnNpemUoKTsKKyAgICBzaXplX3QgaGVhcEZyZWUgPSBKU0RPTVdpbmRvdzo6Y29t
bW9uVk0oKS5oZWFwLmNhcGFjaXR5KCkgLSBoZWFwU2l6ZTsKICAgICBHbG9iYWxNZW1vcnlTdGF0
aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRzID0gZ2xvYmFsTWVtb3J5U3RhdGlzdGljcygpOwogICAg
IAogICAgIHJldHVybiBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6
CkBAIC0yNDcsNyArMjQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiArIChzaXplX3Qp
amF2YVNjcmlwdFJlZmVyZW5jZWRPYmplY3RzQ291bnQKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9j
ayhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgcmV0dXJuIEpTRE9NV2luZG93Ojpjb21t
b25WTSgpLT5oZWFwLnByb3RlY3RlZE9iamVjdENvdW50KCk7CisgICAgcmV0dXJuIEpTRE9NV2lu
ZG93Ojpjb21tb25WTSgpLmhlYXAucHJvdGVjdGVkT2JqZWN0Q291bnQoKTsKIH0KIAogKyAoTlNT
ZXQgKilqYXZhU2NyaXB0Um9vdE9iamVjdENsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5k
ZXggNzI0NThmMy4uODVmZDdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTYyNiw3ICs2
MjYsNyBAQCBzdGF0aWMgSWRlbnRpZmllciBpZGVudGlmaWVyRnJvbUlkZW50aWZpZXJSZXAoSWRl
bnRpZmllclJlcCogaWRlbnRpZmllcikKICAgICBBU1NFUlQoaWRlbnRpZmllci0+aXNTdHJpbmco
KSk7CiAgIAogICAgIGNvbnN0IGNoYXIqIHN0ciA9IGlkZW50aWZpZXItPnN0cmluZygpOyAgICAK
LSAgICByZXR1cm4gSWRlbnRpZmllcihKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSwgU3RyaW5nOjpm
cm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhzdHIsIHN0cmxlbihzdHIpKSk7CisgICAgcmV0dXJu
IElkZW50aWZpZXIoJkpTRE9NV2luZG93Ojpjb21tb25WTSgpLCBTdHJpbmc6OmZyb21VVEY4V2l0
aExhdGluMUZhbGxiYWNrKHN0ciwgc3RybGVuKHN0cikpKTsKIH0KIAoga2Vybl9yZXR1cm5fdCBX
S1BDSW52b2tlKG1hY2hfcG9ydF90IGNsaWVudFBvcnQsIHVpbnQzMl90IHBsdWdpbklELCB1aW50
MzJfdCByZXF1ZXN0SUQsIHVpbnQzMl90IG9iamVjdElELCB1aW50NjRfdCBzZXJ2ZXJJZGVudGlm
aWVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IGUxMTVkZGIuLjNiY2E3M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTg0MSw3ICs4NDEsNyBAQCBib29s
IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0V2luZG93TlBPYmplY3QodWludDMyX3Qm
IG9iamVjdElEKQogICAgIGlmICghZnJhbWUtPnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKE5v
dEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKICAgICAgICAgb2JqZWN0SUQgPSAwOwogICAgIGVsc2UK
LSAgICAgICAgb2JqZWN0SUQgPSBtX2xvY2FsT2JqZWN0cy5pZEZvck9iamVjdCgqcGx1Z2luV29y
bGQoKS52bSgpLCBmcmFtZS0+c2NyaXB0KCkud2luZG93U2hlbGwocGx1Z2luV29ybGQoKSktPndp
bmRvdygpKTsKKyAgICAgICAgb2JqZWN0SUQgPSBtX2xvY2FsT2JqZWN0cy5pZEZvck9iamVjdChw
bHVnaW5Xb3JsZCgpLnZtKCksIGZyYW1lLT5zY3JpcHQoKS53aW5kb3dTaGVsbChwbHVnaW5Xb3Js
ZCgpKS0+d2luZG93KCkpOwogICAgICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg1Myw3
ICs4NTMsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0UGx1Z2luRWxl
bWVudE5QT2JqZWN0KHVpbnQzMl90JiBvYmplY3RJRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAogICAgIGlmIChKU09iamVjdCogb2JqZWN0ID0gZnJhbWUtPnNjcmlwdCgpLmpzT2JqZWN0
Rm9yUGx1Z2luRWxlbWVudChbbV9wbHVnaW5WaWV3IGVsZW1lbnRdKSkKLSAgICAgICAgb2JqZWN0
SUQgPSBtX2xvY2FsT2JqZWN0cy5pZEZvck9iamVjdCgqcGx1Z2luV29ybGQoKS52bSgpLCBvYmpl
Y3QpOworICAgICAgICBvYmplY3RJRCA9IG1fbG9jYWxPYmplY3RzLmlkRm9yT2JqZWN0KHBsdWdp
bldvcmxkKCkudm0oKSwgb2JqZWN0KTsKICAgICBlbHNlCiAgICAgICAgIG9iamVjdElEID0gMDsK
ICAgICAKQEAgLTg4Myw3ICs4ODMsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eTo6ZXZhbHVhdGUodWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0IFN0cmluZyYgc2NyaQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayhwbHVnaW5Xb3JsZCgpLnZt
KCkpOwotICAgIFN0cm9uZzxKU0dsb2JhbE9iamVjdD4gZ2xvYmFsT2JqZWN0KCpwbHVnaW5Xb3Js
ZCgpLnZtKCksIGZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3QocGx1Z2luV29ybGQoKSkpOwor
ICAgIFN0cm9uZzxKU0dsb2JhbE9iamVjdD4gZ2xvYmFsT2JqZWN0KHBsdWdpbldvcmxkKCkudm0o
KSwgZnJhbWUtPnNjcmlwdCgpLmdsb2JhbE9iamVjdChwbHVnaW5Xb3JsZCgpKSk7CiAgICAgRXhl
Y1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKICAgICBVc2VyR2Vz
dHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKGFsbG93UG9wdXBzID8gRGVmaW5pdGVseVBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSA6IFBvc3NpYmx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmlu
ZGV4IDAzMzU2Y2MuLjI2OWMxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgUHJveHlJ
bnN0YW5jZTo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFy
cmF5JiBuYW1lQXJyCiAKICAgICAgICAgaWYgKGlkZW50aWZpZXItPmlzU3RyaW5nKCkpIHsKICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIHN0ciA9IGlkZW50aWZpZXItPnN0cmluZygpOwotICAgICAg
ICAgICAgbmFtZUFycmF5LmFkZChJZGVudGlmaWVyKEpTRE9NV2luZG93Ojpjb21tb25WTSgpLCBT
dHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKHN0ciwgc3RybGVuKHN0cikpKSk7Cisg
ICAgICAgICAgICBuYW1lQXJyYXkuYWRkKElkZW50aWZpZXIoJkpTRE9NV2luZG93Ojpjb21tb25W
TSgpLCBTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKHN0ciwgc3RybGVuKHN0cikp
KSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbmFtZUFycmF5LmFkZChJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIGlkZW50aWZpZXItPm51bWJlcigpKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCmluZGV4IDlkZDBkMDEuLjFiODM5MjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJDb3JlU3RhdGlzdGljczo6amF2YVNjcmlwdE9iamVjdHND
b3VudCgKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICAqY291bnQgPSAoVUlOVClKU0RPTVdpbmRv
dzo6Y29tbW9uVk0oKS0+aGVhcC5vYmplY3RDb3VudCgpOworICAgICpjb3VudCA9IChVSU5UKUpT
RE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAub2JqZWN0Q291bnQoKTsKICAgICByZXR1cm4gU19P
SzsKIH0KIApAQCAtMTEwLDcgKzExMCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
Q29yZVN0YXRpc3RpY3M6OmphdmFTY3JpcHRHbG9iYWxPYmplY3RzQ291bnQoCiAgICAgICAgIHJl
dHVybiBFX1BPSU5URVI7CiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29t
bW9uVk0oKSk7Ci0gICAgKmNvdW50ID0gKFVJTlQpSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhl
YXAuZ2xvYmFsT2JqZWN0Q291bnQoKTsKKyAgICAqY291bnQgPSAoVUlOVClKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS5oZWFwLmdsb2JhbE9iamVjdENvdW50KCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAKQEAgLTEyMSw3ICsxMjEsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkNvcmVT
dGF0aXN0aWNzOjpqYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0c0NvdW50KAogICAgICAgICByZXR1
cm4gRV9QT0lOVEVSOwogCiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNvbW1v
blZNKCkpOwotICAgICpjb3VudCA9IChVSU5UKUpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFw
LnByb3RlY3RlZE9iamVjdENvdW50KCk7CisgICAgKmNvdW50ID0gKFVJTlQpSlNET01XaW5kb3c6
OmNvbW1vblZNKCkuaGVhcC5wcm90ZWN0ZWRPYmplY3RDb3VudCgpOwogICAgIHJldHVybiBTX09L
OwogfQogCkBAIC0xMzIsNyArMTMyLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJD
b3JlU3RhdGlzdGljczo6amF2YVNjcmlwdFByb3RlY3RlZEdsb2JhbE9iamVjdHNDb3UKICAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93
Ojpjb21tb25WTSgpKTsKLSAgICAqY291bnQgPSAoVUlOVClKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KS0+aGVhcC5wcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpOworICAgICpjb3VudCA9IChVSU5U
KUpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAucHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnQo
KTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMTQwLDcgKzE0MCw3IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViQ29yZVN0YXRpc3RpY3M6OmphdmFTY3JpcHRQcm90ZWN0ZWRPYmpl
Y3RUeXBlQ291bnRzCiAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBJUHJvcGVydHlCYWcyKiogdHlw
ZU5hbWVzQW5kQ291bnRzKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpj
b21tb25WTSgpKTsKLSAgICBPd25QdHI8VHlwZUNvdW50U2V0PiBqc09iamVjdFR5cGVOYW1lcyhK
U0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5wcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKCkp
OworICAgIE93blB0cjxUeXBlQ291bnRTZXQ+IGpzT2JqZWN0VHlwZU5hbWVzKEpTRE9NV2luZG93
Ojpjb21tb25WTSgpLmhlYXAucHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cygpKTsKICAgICB0eXBl
ZGVmIFR5cGVDb3VudFNldDo6Y29uc3RfaXRlcmF0b3IgSXRlcmF0b3I7CiAgICAgSXRlcmF0b3Ig
ZW5kID0ganNPYmplY3RUeXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+
IHR5cGVDb3VudE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkphdmFTY3Jp
cHRDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViSmF2YVNjcmlwdENvbGxlY3Rv
ci5jcHAKaW5kZXggOThmNDQzMS4uN2NjNjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViSmF2YVNjcmlwdENvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
SmF2YVNjcmlwdENvbGxlY3Rvci5jcHAKQEAgLTExMiw2ICsxMTIsNiBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFdlYkphdmFTY3JpcHRDb2xsZWN0b3I6Om9iamVjdENvdW50KAogICAgIH0K
IAogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICAq
Y291bnQgPSAoVUlOVClKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+aGVhcC5vYmplY3RDb3VudCgp
OworICAgICpjb3VudCA9IChVSU5UKUpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAub2JqZWN0
Q291bnQoKTsKICAgICByZXR1cm4gU19PSzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKaW5kZXggYzIxYjY3YS4uN2Ni
NzBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNh
bXBsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9y
eVNhbXBsZXJMaW51eC5jcHAKQEAgLTE1NCw4ICsxNTQsOCBAQCBXZWJNZW1vcnlTdGF0aXN0aWNz
IFdlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktpdCgpIGNvbnN0CiAgICAgYXBwZW5kS2V5VmFs
dWVQYWlyKHdlYktpdE1lbW9yeVN0YXRzLCBBU0NJSUxpdGVyYWwoIkZhc3QgTWFsbG9jIENvbW1p
dHRlZCBNZW1vcnkiKSwgZmFzdE1hbGxvY0J5dGVzQ29tbWl0dGVkKTsKICNlbmRpZgogCi0gICAg
c2l6ZV90IGpzY0hlYXBCeXRlc0luVXNlID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhlYXAu
c2l6ZSgpOwotICAgIHNpemVfdCBqc2NIZWFwQnl0ZXNDb21taXR0ZWQgPSBKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS0+aGVhcC5jYXBhY2l0eSgpOworICAgIHNpemVfdCBqc2NIZWFwQnl0ZXNJblVz
ZSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAuc2l6ZSgpOworICAgIHNpemVfdCBqc2NI
ZWFwQnl0ZXNDb21taXR0ZWQgPSBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLmNhcGFjaXR5
KCk7CiAgICAgdG90YWxCeXRlc0luVXNlICs9IGpzY0hlYXBCeXRlc0luVXNlOwogICAgIHRvdGFs
Qnl0ZXNDb21taXR0ZWQgKz0ganNjSGVhcEJ5dGVzQ29tbWl0dGVkOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQppbmRleCAwNzZmYWVm
Li4xNTI4N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYk1lbW9y
eVNhbXBsZXIubWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViTWVtb3J5
U2FtcGxlci5tYWMubW0KQEAgLTExNyw4ICsxMTcsOCBAQCBXZWJNZW1vcnlTdGF0aXN0aWNzIFdl
Yk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktpdCgpIGNvbnN0CiAgICAgdG90YWxCeXRlc0NvbW1p
dHRlZCArPSBmYXN0TWFsbG9jQnl0ZXNDb21taXR0ZWQ7CiAgICAgCiAgICAgSlNMb2NrSG9sZGVy
IGxvY2soSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwotICAgIHNpemVfdCBqc2NIZWFwQnl0ZXNJ
blVzZSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFwLnNpemUoKTsKLSAgICBzaXplX3Qg
anNjSGVhcEJ5dGVzQ29tbWl0dGVkID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhlYXAuY2Fw
YWNpdHkoKTsKKyAgICBzaXplX3QganNjSGVhcEJ5dGVzSW5Vc2UgPSBKU0RPTVdpbmRvdzo6Y29t
bW9uVk0oKS5oZWFwLnNpemUoKTsKKyAgICBzaXplX3QganNjSGVhcEJ5dGVzQ29tbWl0dGVkID0g
SlNET01XaW5kb3c6OmNvbW1vblZNKCkuaGVhcC5jYXBhY2l0eSgpOwogICAgIHRvdGFsQnl0ZXNJ
blVzZSArPSBqc2NIZWFwQnl0ZXNJblVzZTsKICAgICB0b3RhbEJ5dGVzQ29tbWl0dGVkICs9IGpz
Y0hlYXBCeXRlc0NvbW1pdHRlZDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggOTE4
MWExNi4uNzY4NzMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTUzNCw3ICs1MzQsNyBA
QCB2b2lkIEluamVjdGVkQnVuZGxlOjpnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzT25B
bHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbgogc2l6ZV90IEluamVjdGVkQnVuZGxlOjpqYXZhU2Ny
aXB0T2JqZWN0c0NvdW50KCkKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKSk7Ci0gICAgcmV0dXJuIEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5oZWFwLm9i
amVjdENvdW50KCk7CisgICAgcmV0dXJuIEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAub2Jq
ZWN0Q291bnQoKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVwb3J0RXhjZXB0aW9uKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA5MGI1NTkxLi5k
ZmY4MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCkBAIC0xMzcxLDcgKzEzNzEsNyBAQCBOUE9iamVjdCogUGx1Z2luVmlldzo6d2lu
ZG93U2NyaXB0TlBPYmplY3QoKQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1
cm4gbV9ucFJ1bnRpbWVPYmplY3RNYXAuZ2V0T3JDcmVhdGVOUE9iamVjdCgqcGx1Z2luV29ybGQo
KS52bSgpLCBmcmFtZSgpLT5zY3JpcHQoKS53aW5kb3dTaGVsbChwbHVnaW5Xb3JsZCgpKS0+d2lu
ZG93KCkpOworICAgIHJldHVybiBtX25wUnVudGltZU9iamVjdE1hcC5nZXRPckNyZWF0ZU5QT2Jq
ZWN0KHBsdWdpbldvcmxkKCkudm0oKSwgZnJhbWUoKS0+c2NyaXB0KCkud2luZG93U2hlbGwocGx1
Z2luV29ybGQoKSktPndpbmRvdygpKTsKIH0KIAogTlBPYmplY3QqIFBsdWdpblZpZXc6OnBsdWdp
bkVsZW1lbnROUE9iamVjdCgpCkBAIC0xMzg3LDcgKzEzODcsNyBAQCBOUE9iamVjdCogUGx1Z2lu
Vmlldzo6cGx1Z2luRWxlbWVudE5QT2JqZWN0KCkKICAgICBKU09iamVjdCogb2JqZWN0ID0gZnJh
bWUoKS0+c2NyaXB0KCkuanNPYmplY3RGb3JQbHVnaW5FbGVtZW50KG1fcGx1Z2luRWxlbWVudC5n
ZXQoKSk7CiAgICAgQVNTRVJUKG9iamVjdCk7CiAKLSAgICByZXR1cm4gbV9ucFJ1bnRpbWVPYmpl
Y3RNYXAuZ2V0T3JDcmVhdGVOUE9iamVjdCgqcGx1Z2luV29ybGQoKS52bSgpLCBvYmplY3QpOwor
ICAgIHJldHVybiBtX25wUnVudGltZU9iamVjdE1hcC5nZXRPckNyZWF0ZU5QT2JqZWN0KHBsdWdp
bldvcmxkKCkudm0oKSwgb2JqZWN0KTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3OjpldmFsdWF0ZShO
UE9iamVjdCogbnBPYmplY3QsIGNvbnN0IFN0cmluZyYgc2NyaXB0U3RyaW5nLCBOUFZhcmlhbnQq
IHJlc3VsdCwgYm9vbCBhbGxvd1BvcHVwcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhNGIwNWQwLi4yNDhhMjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MjczLDEwICs0Mjcz
LDEwIEBAIHZvaWQgV2ViUGFnZTo6c2V0VGh1bWJuYWlsU2NhbGUoZG91YmxlIHRodW1ibmFpbFNj
YWxlKQogCiB2b2lkIFdlYlBhZ2U6OmdldEJ5dGVjb2RlUHJvZmlsZSh1aW50NjRfdCBjYWxsYmFj
a0lEKQogewotICAgIEFTU0VSVChKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+bV9wZXJCeXRlY29k
ZVByb2ZpbGVyKTsKLSAgICBpZiAoIUpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5tX3BlckJ5dGVj
b2RlUHJvZmlsZXIpCisgICAgQVNTRVJUKEpTRE9NV2luZG93Ojpjb21tb25WTSgpLm1fcGVyQnl0
ZWNvZGVQcm9maWxlcik7CisgICAgaWYgKCFKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5tX3BlckJ5
dGVjb2RlUHJvZmlsZXIpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3Ry
aW5nQ2FsbGJhY2soU3RyaW5nKCksIGNhbGxiYWNrSUQpKTsKLSAgICBTdHJpbmcgcmVzdWx0ID0g
SlNET01XaW5kb3c6OmNvbW1vblZNKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+dG9KU09OKCk7
CisgICAgU3RyaW5nIHJlc3VsdCA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpLm1fcGVyQnl0ZWNv
ZGVQcm9maWxlci0+dG9KU09OKCk7CiAgICAgQVNTRVJUKHJlc3VsdC5sZW5ndGgoKSk7CiAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHQsIGNhbGxi
YWNrSUQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IGE2NWM4YTIuLmNlYjg3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtOTE3LDIwICs5MTcsMjAgQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRXZWJDb3JlU3Rh
dGlzdGljcyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIC8vIEdhdGhlciBKYXZhU2NyaXB0IHN0
YXRpc3RpY3MuCiAgICAgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKSk7Ci0gICAgICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KEFTQ0lJTGl0
ZXJhbCgiSmF2YVNjcmlwdE9iamVjdHNDb3VudCIpLCBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS0+
aGVhcC5vYmplY3RDb3VudCgpKTsKLSAgICAgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQo
QVNDSUlMaXRlcmFsKCJKYXZhU2NyaXB0R2xvYmFsT2JqZWN0c0NvdW50IiksIEpTRE9NV2luZG93
Ojpjb21tb25WTSgpLT5oZWFwLmdsb2JhbE9iamVjdENvdW50KCkpOwotICAgICAgICBkYXRhLnN0
YXRpc3RpY3NOdW1iZXJzLnNldChBU0NJSUxpdGVyYWwoIkphdmFTY3JpcHRQcm90ZWN0ZWRPYmpl
Y3RzQ291bnQiKSwgSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhlYXAucHJvdGVjdGVkT2JqZWN0
Q291bnQoKSk7Ci0gICAgICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KEFTQ0lJTGl0ZXJh
bCgiSmF2YVNjcmlwdFByb3RlY3RlZEdsb2JhbE9iamVjdHNDb3VudCIpLCBKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKS0+aGVhcC5wcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpKTsKKyAgICAgICAg
ZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoQVNDSUlMaXRlcmFsKCJKYXZhU2NyaXB0T2JqZWN0
c0NvdW50IiksIEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAub2JqZWN0Q291bnQoKSk7Cisg
ICAgICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KEFTQ0lJTGl0ZXJhbCgiSmF2YVNjcmlw
dEdsb2JhbE9iamVjdHNDb3VudCIpLCBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLmdsb2Jh
bE9iamVjdENvdW50KCkpOworICAgICAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldChBU0NJ
SUxpdGVyYWwoIkphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RzQ291bnQiKSwgSlNET01XaW5kb3c6
OmNvbW1vblZNKCkuaGVhcC5wcm90ZWN0ZWRPYmplY3RDb3VudCgpKTsKKyAgICAgICAgZGF0YS5z
dGF0aXN0aWNzTnVtYmVycy5zZXQoQVNDSUlMaXRlcmFsKCJKYXZhU2NyaXB0UHJvdGVjdGVkR2xv
YmFsT2JqZWN0c0NvdW50IiksIEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAucHJvdGVjdGVk
R2xvYmFsT2JqZWN0Q291bnQoKSk7CiAgICAgICAgIAotICAgICAgICBPd25QdHI8VHlwZUNvdW50
U2V0PiBwcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKEpTRE9NV2luZG93Ojpjb21tb25WTSgpLT5o
ZWFwLnByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMoKSk7CisgICAgICAgIE93blB0cjxUeXBlQ291
bnRTZXQ+IHByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMoSlNET01XaW5kb3c6OmNvbW1vblZNKCku
aGVhcC5wcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKCkpOwogICAgICAgICBmcm9tQ291bnRlZFNl
dFRvSGFzaE1hcChwcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzLmdldCgpLCBkYXRhLmphdmFTY3Jp
cHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKTsKICAgICAgICAgCi0gICAgICAgIE93blB0cjxU
eXBlQ291bnRTZXQ+IG9iamVjdFR5cGVDb3VudHMoSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhl
YXAub2JqZWN0VHlwZUNvdW50cygpKTsKKyAgICAgICAgT3duUHRyPFR5cGVDb3VudFNldD4gb2Jq
ZWN0VHlwZUNvdW50cyhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLm9iamVjdFR5cGVDb3Vu
dHMoKSk7CiAgICAgICAgIGZyb21Db3VudGVkU2V0VG9IYXNoTWFwKG9iamVjdFR5cGVDb3VudHMu
Z2V0KCksIGRhdGEuamF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMpOwogICAgICAgICAKLSAgICAg
ICAgdWludDY0X3QgamF2YVNjcmlwdEhlYXBTaXplID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCkt
PmhlYXAuc2l6ZSgpOworICAgICAgICB1aW50NjRfdCBqYXZhU2NyaXB0SGVhcFNpemUgPSBKU0RP
TVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLnNpemUoKTsKICAgICAgICAgZGF0YS5zdGF0aXN0aWNz
TnVtYmVycy5zZXQoQVNDSUlMaXRlcmFsKCJKYXZhU2NyaXB0SGVhcFNpemUiKSwgamF2YVNjcmlw
dEhlYXBTaXplKTsKLSAgICAgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoQVNDSUlMaXRl
cmFsKCJKYXZhU2NyaXB0RnJlZVNpemUiKSwgSlNET01XaW5kb3c6OmNvbW1vblZNKCktPmhlYXAu
Y2FwYWNpdHkoKSAtIGphdmFTY3JpcHRIZWFwU2l6ZSk7CisgICAgICAgIGRhdGEuc3RhdGlzdGlj
c051bWJlcnMuc2V0KEFTQ0lJTGl0ZXJhbCgiSmF2YVNjcmlwdEZyZWVTaXplIiksIEpTRE9NV2lu
ZG93Ojpjb21tb25WTSgpLmhlYXAuY2FwYWNpdHkoKSAtIGphdmFTY3JpcHRIZWFwU2l6ZSk7CiAg
ICAgfQogCiAgICAgV1RGOjpGYXN0TWFsbG9jU3RhdGlzdGljcyBmYXN0TWFsbG9jU3RhdGlzdGlj
cyA9IFdURjo6ZmFzdE1hbGxvY1N0YXRpc3RpY3MoKTsK
</data>
<flag name="review"
          id="249279"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>