<?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>52338</bug_id>
          
          <creation_ts>2011-01-12 17:08:44 -0800</creation_ts>
          <short_desc>Cleanup WebGLGetInfo and related get*Parameter helpers in WebGLRenderingContext</short_desc>
          <delta_ts>2011-01-25 09:40:12 -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>WebGL</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>
          <dependson>51908</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>333437</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-12 17:08:44 -0800</bug_when>
    <thetext>Currently for example, we have getLongParameter/getIntParameter/getUnsignedLongParameter, and according to GL type def, we actually should use int and unsigned int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339369</commentid>
    <comment_count>1</comment_count>
      <attachid>79991</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-24 16:42:57 -0800</bug_when>
    <thetext>Created attachment 79991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339391</commentid>
    <comment_count>2</comment_count>
      <attachid>79991</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-24 17:23:48 -0800</bug_when>
    <thetext>Comment on attachment 79991
Patch

Looks fine; should we be referencing GC3D typedefs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339395</commentid>
    <comment_count>3</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-24 17:32:28 -0800</bug_when>
    <thetext>I thought about using GC3D types, but then again, we already have Float32Array, Int8Array, ect, which are using generic types, so I didn&apos;t see a lot of benefits for using GC3Dint and GC3Duint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339692</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-25 09:40:12 -0800</bug_when>
    <thetext>Committed r76601: &lt;http://trac.webkit.org/changeset/76601&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79991</attachid>
            <date>2011-01-24 16:42:57 -0800</date>
            <delta_ts>2011-01-24 17:23:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52338-20110124164256.patch</filename>
            <type>text/plain</type>
            <size>27450</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NTUyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDEtMjQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDbGVhbnVwIFdlYkdMR2V0SW5mbyBhbmQgcmVsYXRlZCBnZXQqUGFyYW1l
dGVyIGhlbHBlcnMgaW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjMzOAorCisgICAgICAgIFJlbW92ZWQgdGhl
IGxvbmcvdW5zaWduZWQgbG9uZyB0eXBlcyBhbmQgY29ycmVzcG9uZGluZyBnZXQgZnVuY3Rpb25z
CisgICAgICAgIGFuZCB1c2UgaW50L3Vuc2lnbmVkIGludCBpbnN0ZWFkLgorCisgICAgICAgICog
YmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEdl
dEluZm86OmdldEludCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEdldEluZm86OmdldFVuc2ln
bmVkSW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRCdWZmZXJQYXJhbWV0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
cm9ncmFtUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VGV4UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFZlcnRleEF0dHJpYik6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEludFBhcmFtZXRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAxMS0wMS0y
NCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNzY1MDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDE0ICs4OSwxNCBAQCBzdGF0aWMgSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgfQogICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZUZsb2F0OgogICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVMb25nOgotICAgICAgICByZXR1cm4ganNOdW1i
ZXIoaW5mby5nZXRMb25nKCkpOworICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUludDoKKyAg
ICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50KCkpOwogICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZU51bGw6CiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVTdHJpbmc6CiAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBpbmZv
LmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVVbnNpZ25lZExvbmc6
Ci0gICAgICAgIHJldHVybiBqc051bWJlcihpbmZvLmdldFVuc2lnbmVkTG9uZygpKTsKKyAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVVbnNpZ25lZEludDoKKyAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGluZm8uZ2V0VW5zaWduZWRJbnQoKSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
V2ViR0xCdWZmZXI6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5m
by5nZXRXZWJHTEJ1ZmZlcigpKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEZs
b2F0QXJyYXk6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDc2NTA4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDE0ICsx
MjAsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgIH0K
ICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKICAgICAgICAgcmV0dXJuIHY4OjpO
dW1iZXI6Ok5ldyhpbmZvLmdldEZsb2F0KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZUxvbmc6Ci0gICAgICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KGluZm8uZ2V0TG9uZygpKTsK
KyAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ6CisgICAgICAgIHJldHVybiB2ODo6SW50
ZWdlcjo6TmV3KGluZm8uZ2V0SW50KCkpOwogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZU51
bGw6CiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZVN0cmluZzoKICAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6Ok5ldyhmcm9tV2ViQ29yZVN0
cmluZyhpbmZvLmdldFN0cmluZygpKSwgaW5mby5nZXRTdHJpbmcoKS5sZW5ndGgoKSk7Ci0gICAg
Y2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5zaWduZWRMb25nOgotICAgICAgICByZXR1cm4gdjg6
OkludGVnZXI6Ok5ld0Zyb21VbnNpZ25lZChpbmZvLmdldFVuc2lnbmVkTG9uZygpKTsKKyAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVVbnNpZ25lZEludDoKKyAgICAgICAgcmV0dXJuIHY4OjpJ
bnRlZ2VyOjpOZXdGcm9tVW5zaWduZWQoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKICAgICBjYXNl
IFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIHRvVjgoaW5m
by5nZXRXZWJHTEJ1ZmZlcigpKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEZs
b2F0QXJyYXk6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5m
by5jcHAJKHJldmlzaW9uIDc2NTA4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xHZXRJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsOSArNjMsOSBAQCBXZWJHTEdldElu
Zm86OldlYkdMR2V0SW5mbyhmbG9hdCB2YWx1ZSkKIHsKIH0KIAotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8obG9uZyB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUxvbmcpCi0gICAgLCBtX2xv
bmcodmFsdWUpCitXZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhpbnQgdmFsdWUpCisgICAgOiBt
X3R5cGUoa1R5cGVJbnQpCisgICAgLCBtX2ludCh2YWx1ZSkKIHsKIH0KIApAQCAtODAsOSArODAs
OSBAQCBXZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhjb25zdCBTdHJpbmcmCiB7CiB9CiAKLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGxvbmcgdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVVbnNpZ25lZExvbmcpCi0gICAgLCBtX3Vuc2lnbmVkTG9uZyh2YWx1ZSkKK1dlYkdM
R2V0SW5mbzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkKKyAgICA6IG1fdHlwZShr
VHlwZVVuc2lnbmVkSW50KQorICAgICwgbV91bnNpZ25lZEludCh2YWx1ZSkKIHsKIH0KIApAQCAt
MTYxLDEwICsxNjEsMTAgQEAgZmxvYXQgV2ViR0xHZXRJbmZvOjpnZXRGbG9hdCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fZmxvYXQ7CiB9CiAKLWxvbmcgV2ViR0xHZXRJbmZvOjpnZXRMb25nKCkgY29u
c3QKK2ludCBXZWJHTEdldEluZm86OmdldEludCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGdldFR5
cGUoKSA9PSBrVHlwZUxvbmcpOwotICAgIHJldHVybiBtX2xvbmc7CisgICAgQVNTRVJUKGdldFR5
cGUoKSA9PSBrVHlwZUludCk7CisgICAgcmV0dXJuIG1faW50OwogfQogCiBjb25zdCBTdHJpbmcm
IFdlYkdMR2V0SW5mbzo6Z2V0U3RyaW5nKCkgY29uc3QKQEAgLTE3MywxMCArMTczLDEwIEBAIGNv
bnN0IFN0cmluZyYgV2ViR0xHZXRJbmZvOjpnZXRTdHJpbmcoKSAKICAgICByZXR1cm4gbV9zdHJp
bmc7CiB9CiAKLXVuc2lnbmVkIGxvbmcgV2ViR0xHZXRJbmZvOjpnZXRVbnNpZ25lZExvbmcoKSBj
b25zdAordW5zaWduZWQgaW50IFdlYkdMR2V0SW5mbzo6Z2V0VW5zaWduZWRJbnQoKSBjb25zdAog
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVVbnNpZ25lZExvbmcpOwotICAgIHJldHVy
biBtX3Vuc2lnbmVkTG9uZzsKKyAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlVW5zaWduZWRJ
bnQpOworICAgIHJldHVybiBtX3Vuc2lnbmVkSW50OwogfQogCiBQYXNzUmVmUHRyPFdlYkdMQnVm
ZmVyPiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCShyZXZpc2lvbiA3NjUwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC01MywxMCArNTMsMTAgQEAgcHVibGljOgogICAgICAgICBrVHlwZUJvb2wsCiAgICAgICAgIGtU
eXBlQm9vbEFycmF5LAogICAgICAgICBrVHlwZUZsb2F0LAotICAgICAgICBrVHlwZUxvbmcsCisg
ICAgICAgIGtUeXBlSW50LAogICAgICAgICBrVHlwZU51bGwsCiAgICAgICAgIGtUeXBlU3RyaW5n
LAotICAgICAgICBrVHlwZVVuc2lnbmVkTG9uZywKKyAgICAgICAga1R5cGVVbnNpZ25lZEludCwK
ICAgICAgICAga1R5cGVXZWJHTEJ1ZmZlciwKICAgICAgICAga1R5cGVXZWJHTEZsb2F0QXJyYXks
CiAgICAgICAgIGtUeXBlV2ViR0xGcmFtZWJ1ZmZlciwKQEAgLTcxLDExICs3MSwxMSBAQCBwdWJs
aWM6CiAgICAgV2ViR0xHZXRJbmZvKGJvb2wgdmFsdWUpOwogICAgIFdlYkdMR2V0SW5mbyhjb25z
dCBib29sKiB2YWx1ZSwgaW50IHNpemUpOwogICAgIFdlYkdMR2V0SW5mbyhmbG9hdCB2YWx1ZSk7
Ci0gICAgV2ViR0xHZXRJbmZvKGxvbmcgdmFsdWUpOworICAgIFdlYkdMR2V0SW5mbyhpbnQgdmFs
dWUpOwogICAgIC8vIFJlcHJlc2VudHMgdGhlIG51bGwgdmFsdWUgYW5kIHR5cGUuCiAgICAgV2Vi
R0xHZXRJbmZvKCk7CiAgICAgV2ViR0xHZXRJbmZvKGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAg
IFdlYkdMR2V0SW5mbyh1bnNpZ25lZCBsb25nIHZhbHVlKTsKKyAgICBXZWJHTEdldEluZm8odW5z
aWduZWQgaW50IHZhbHVlKTsKICAgICBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZl
cj4gdmFsdWUpOwogICAgIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFs
dWUpOwogICAgIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZhbHVl
KTsKQEAgLTk0LDkgKzk0LDkgQEAgcHVibGljOgogICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0Owog
ICAgIGNvbnN0IFZlY3Rvcjxib29sPiYgZ2V0Qm9vbEFycmF5KCkgY29uc3Q7CiAgICAgZmxvYXQg
Z2V0RmxvYXQoKSBjb25zdDsKLSAgICBsb25nIGdldExvbmcoKSBjb25zdDsKKyAgICBpbnQgZ2V0
SW50KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiBnZXRTdHJpbmcoKSBjb25zdDsKLSAgICB1
bnNpZ25lZCBsb25nIGdldFVuc2lnbmVkTG9uZygpIGNvbnN0OworICAgIHVuc2lnbmVkIGludCBn
ZXRVbnNpZ25lZEludCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGdldFdl
YkdMQnVmZmVyKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IGdldFdlYkdM
RmxvYXRBcnJheSgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gZ2V0
V2ViR0xGcmFtZWJ1ZmZlcigpIGNvbnN0OwpAQCAtMTEzLDkgKzExMyw5IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2Jvb2w7CiAgICAgVmVjdG9yPGJvb2w+IG1fYm9vbEFycmF5OwogICAgIGZsb2F0
IG1fZmxvYXQ7Ci0gICAgbG9uZyBtX2xvbmc7CisgICAgaW50IG1faW50OwogICAgIFN0cmluZyBt
X3N0cmluZzsKLSAgICB1bnNpZ25lZCBsb25nIG1fdW5zaWduZWRMb25nOworICAgIHVuc2lnbmVk
IGludCBtX3Vuc2lnbmVkSW50OwogICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gbV93ZWJnbEJ1ZmZl
cjsKICAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBtX3dlYmdsRmxvYXRBcnJheTsKICAgICBSZWZQ
dHI8V2ViR0xGcmFtZWJ1ZmZlcj4gbV93ZWJnbEZyYW1lYnVmZmVyOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShy
ZXZpc2lvbiA3NjUwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MzUsOCArMTczNSw4IEBAIFdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEIKICAgICBHQzNEaW50IHZhbHVlID0g
MDsKICAgICBtX2NvbnRleHQtPmdldEJ1ZmZlclBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2
YWx1ZSk7CiAgICAgaWYgKHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJfU0laRSkK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPih2YWx1ZSkpOwot
ICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4odmFsdWUp
KTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CiB9CiAKIFBhc3NSZWZQ
dHI8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRDb250
ZXh0QXR0cmlidXRlcygpCkBAIC0xODA5LDggKzE4MDksOCBAQCBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRGCiAgICAgICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgICAg
ICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwg
YXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4odmFsdWUp
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPih2YWx1ZSkp
OworICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBp
bnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwogICAgIH0K
IAogICAgIFdlYkdMU3RhdGVSZXN0b3Jlcih0aGlzLCBmYWxzZSk7CkBAIC0xODM5LDEzICsxODM5
LDEzIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICBXZWJH
TFN0YXRlUmVzdG9yZXIodGhpcywgZmFsc2UpOwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVEVYVFVSRToKLSAgICAgICAgcmV0dXJuIGdl
dFVuc2lnbmVkTG9uZ1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRVbnNpZ25l
ZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxJQVNF
RF9MSU5FX1dJRFRIX1JBTkdFOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xGbG9hdEFycmF5UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBTElBU0VEX1BPSU5U
X1NJWkVfUkFOR0U6CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6Ci0gICAgICAg
IHJldHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBh
cmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVS
X0JJTkRJTkc6CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1
ZmZlcj4obV9ib3VuZEFycmF5QnVmZmVyKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
QkxFTkQ6CkBAIC0xODUzLDE5ICsxODUzLDE5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFAKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoK
ICAgICAgICAgcmV0dXJuIGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkRfRFNUX0FMUEhBOgotICAgICAgICByZXR1cm4g
Z2V0VW5zaWduZWRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVO
RF9EU1RfUkdCOgotICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRMb25nUGFyYW1ldGVyKHBuYW1l
KTsKKyAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9FUVVBVElPTl9BTFBIQToKLSAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkTG9uZ1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRV
bnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
QkxFTkRfRVFVQVRJT05fUkdCOgotICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRMb25nUGFyYW1l
dGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1l
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9TUkNfQUxQSEE6Ci0gICAgICAg
IHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4g
Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkJMRU5EX1NSQ19SR0I6Ci0gICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0
ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMVUVfQklUUzoKLSAgICAgICAgcmV0dXJu
IGdldExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVy
KHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9DTEVBUl9WQUxVRToK
ICAgICAgICAgcmV0dXJuIGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgpAQCAtMTg3NiwxNSArMTg3
NiwxNSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQCiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVh
blBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNF
X01PREU6Ci0gICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5hbWUpOwor
ICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JBTToKICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4obV9jdXJyZW50UHJvZ3JhbSkpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6Ci0gICAgICAgIHJldHVybiBnZXRM
b25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAg
ICAgIHJldHVybiBnZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfRlVOQzoKLSAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkTG9uZ1BhcmFt
ZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfUkFOR0U6CiAgICAgICAgIHJl
dHVybiBnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1RFU1Q6CkBAIC0xODk4LDQzICsxODk4LDQzIEBAIFdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9CSU5ESU5HOgogICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4obV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgotICAgICAgICByZXR1cm4gZ2V0VW5z
aWduZWRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50
UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9N
SVBNQVBfSElOVDoKLSAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkTG9uZ1BhcmFtZXRlcihwbmFt
ZSk7CisgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6R1JFRU5fQklUUzoKLSAgICAgICAgcmV0dXJuIGdldExv
bmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1l
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FX1dJRFRIOgogICAgICAgICByZXR1
cm4gZ2V0RmxvYXRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
Ok1BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTOgotICAgICAgICByZXR1cm4gZ2V0TG9u
Z1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkU6
Ci0gICAgICAgIHJldHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJu
IGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFY
X0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUzoKLSAgICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0
ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfUkVOREVSQlVGRkVSX1NJWkU6Ci0gICAgICAgIHJl
dHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYX1RFWFRVUkVfSU1B
R0VfVU5JVFM6Ci0gICAgICAgIHJldHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAg
ICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TUFYX1RFWFRVUkVfU0laRToKLSAgICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIo
cG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfVkFSWUlOR19WRUNUT1JTOgotICAgICAgICByZXR1cm4g
Z2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WRVJURVhfQVRUUklCUzoK
LSAgICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNQVhf
VkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFM6Ci0gICAgICAgIHJldHVybiBnZXRMb25nUGFyYW1l
dGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYX1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlM6Ci0gICAg
ICAgIHJldHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYX1ZJRVdQ
T1JUX0RJTVM6CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1l
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpOVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZP
Uk1BVFM6CiAgICAgICAgIC8vIFdlYkdMIDEuMCBzcGVjaWZpZXMgdGhhdCB0aGVyZSBhcmUgbm8g
Y29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdHMuCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8bG9uZz4oMCkpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRp
Y19jYXN0PGludD4oMCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok5VTV9TSEFERVJf
QklOQVJZX0ZPUk1BVFM6CiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgYWx3YXlzIHJldHVy
biAwIGZvciB0aGlzPwotICAgICAgICByZXR1cm4gZ2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7Cisg
ICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlBBQ0tfQUxJR05NRU5UOgotICAgICAgICByZXR1cm4gZ2V0TG9uZ1BhcmFtZXRl
cihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlBPTFlHT05fT0ZGU0VUX0ZBQ1RPUjoKICAgICAgICAgcmV0
dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpQT0xZR09OX09GRlNFVF9GSUxMOgpAQCAtMTk0MiwxOSArMTk0MiwxOSBAQCBXZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UE9MWUdPTl9PRkZTRVRfVU5JVFM6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtZXRl
cihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0JJVFM6Ci0gICAgICAg
IHJldHVybiBnZXRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBh
cmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVS
X0JJTkRJTkc6CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFJl
bmRlcmJ1ZmZlcj4obV9yZW5kZXJidWZmZXJCaW5kaW5nKSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSRVI6CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0
LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSKSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U0FNUExFX0JVRkZFUlM6Ci0gICAgICAgIHJldHVybiBnZXRMb25nUGFy
YW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0NPVkVSQUdFX0lOVkVSVDoKICAgICAg
ICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0
UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVTOgot
ICAgICAgICByZXR1cm4gZ2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBn
ZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNT
T1JfQk9YOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihwbmFtZSk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgpAQCAtMTk2Miw1NCAr
MTk2Miw1MyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQCiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OOgogICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCBHTFNMIEVTIDEuMCAoIiArIG1fY29udGV4dC0+
Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04pICsg
IikiKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoKLSAg
ICAgICAgcmV0dXJuIGdldFVuc2lnbmVkTG9uZ1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJl
dHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZVTkM6Ci0gICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExv
bmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19QQVNT
X0RFUFRIX0ZBSUw6Ci0gICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5h
bWUpOworICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1M6Ci0g
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICBy
ZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfQkFDS19SRUY6Ci0gICAgICAgIHJldHVybiBnZXRMb25nUGFyYW1l
dGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX1ZBTFVFX01BU0s6Ci0gICAgICAg
IHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4g
Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlNURU5DSUxfQkFDS19XUklURU1BU0s6Ci0gICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExv
bmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQklUUzoKLSAg
ICAgICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gZ2V0
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0NMRUFSX1ZBTFVFOgotICAgICAgICByZXR1cm4gZ2V0TG9uZ1BhcmFtZXRlcihwbmFtZSk7Cisg
ICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfRkFJTDoKLSAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkTG9uZ1Bh
cmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihw
bmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9GVU5DOgotICAgICAg
ICByZXR1cm4gZ2V0VW5zaWduZWRMb25nUGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJu
IGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTDoKLSAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVk
TG9uZ1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9QQVNTX0RF
UFRIX1BBU1M6Ci0gICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5hbWUp
OworICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfUkVGOgotICAgICAgICByZXR1cm4gZ2V0TG9u
Z1BhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfVEVTVDoKICAgICAgICAgcmV0
dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlNURU5DSUxfVkFMVUVfTUFTSzoKLSAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkTG9uZ1Bh
cmFtZXRlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihw
bmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9XUklURU1BU0s6Ci0g
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIocG5hbWUpOworICAgICAgICBy
ZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNVQlBJWEVMX0JJVFM6Ci0gICAgICAgIHJldHVybiBnZXRMb25nUGFyYW1ldGVy
KHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJEOgogICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2Fj
dGl2ZVRleHR1cmVVbml0XS5tX3RleHR1cmUyREJpbmRpbmcpKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6CiAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KG1fdGV4dHVyZVVuaXRzW21fYWN0aXZl
VGV4dHVyZVVuaXRdLm1fdGV4dHVyZUN1YmVNYXBCaW5kaW5nKSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0
aGlzIGJlICJsb25nIiBpbiB0aGUgc3BlYz8KICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRl
cihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJH
TDoKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0ZsaXBZKTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6CiAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdM
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+
KG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWRU5ET1I6CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYmtpdCAoIiAr
IG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpICsgIikiKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgpAQCAtMjAxOCw3ICsyMDE3LDcg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgICAgICByZXR1
cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRhcmRf
ZGVyaXZhdGl2ZXMKICAgICAgICAgaWYgKG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykKLSAgICAg
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFH
TUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UX09FUyk7CisgICAgICAgICAgICByZXR1cm4gZ2V0
VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZB
VElWRV9ISU5UX09FUyk7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKICAgICBkZWZhdWx0OgpAQCAtMjA1MCw3ICsyMDQ5LDcgQEAgV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFD
VElWRV9VTklGT1JNUzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVU5JRk9S
TV9NQVhfTEVOR1RIOgogICAgICAgICBtX2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclpl
cm8ocHJvZ3JhbSksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KHN0YXRpY19jYXN0PGxvbmc+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
dmFsdWUpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKQEAgLTIwODUsMTMgKzIwODQsMTMgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UgogICAgIGlmIChtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldElu
dGVybmFsRm9ybWF0KCkgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUwKICAgICAg
ICAgJiYgIW1fcmVuZGVyYnVmZmVyQmluZGluZy0+aXNWYWxpZCgpKSB7CiAgICAgICAgIEFTU0VS
VCghaXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQoKSk7Ci0gICAgICAgIGxvbmcgdmFsdWUgPSAwOwor
ICAgICAgICBpbnQgdmFsdWUgPSAwOwogICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9XSURUSDoKLSAgICAgICAgICAg
IHZhbHVlID0gc3RhdGljX2Nhc3Q8bG9uZz4obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRXaWR0
aCgpKTsKKyAgICAgICAgICAgIHZhbHVlID0gbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRXaWR0
aCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkJVRkZFUl9IRUlHSFQ6Ci0gICAgICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PGxv
bmc+KG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SGVpZ2h0KCkpOworICAgICAgICAgICAgdmFs
dWUgPSBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEhlaWdodCgpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9SRURfU0la
RToKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0dSRUVOX1NJ
WkU6CkBAIC0yMTA2LDcgKzIxMDUsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRSCiAgICAgICAgICAgICB2YWx1ZSA9IDg7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1B
VDoKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZz4obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKSk7CisgICAg
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50
ZXJuYWxGb3JtYXQoKSk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOwogICAg
ICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwpAQCAtMjEyNiw5ICsyMTI1LDkgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkU6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPih2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
RU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50
ZXJuYWxGb3JtYXQoKSkpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVm
ZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwpAQCAtMjE1MCwxMSArMjE0OSwx
MSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTCiAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTSEFERVJfVFlQRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRTaGFk
ZXJpdihvYmplY3RPclplcm8oc2hhZGVyKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4odmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SU5GT19MT0dfTEVOR1RIOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNIQURFUl9TT1VSQ0VfTEVOR1RIOgogICAgICAgICBtX2NvbnRl
eHQtPmdldFNoYWRlcml2KG9iamVjdE9yWmVybyhzaGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPih2YWx1ZSkpOworICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKICAgICBkZWZhdWx0OgogICAgICAgICBt
X2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0pOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CkBAIC0yMjEwLDcgKzIyMDksNyBA
QCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRUCiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4UGFyYW1ldGVyaXYo
dGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nPih2YWx1ZSkpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0pOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CkBAIC0yMzMyLDcgKzIz
MzEsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVCiAgICAgICAg
ICAgICAgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CiAgICAgICAgICAgICAgICAgICAg
IG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24s
IHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPih2YWx1
ZVswXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1
ZVswXSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oSW50MzJBcnJh
eTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTDogewpAQCAtMjM5OSwxNiArMjM5OCwx
NiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRWCiAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8obV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF0ubm9ybWFsaXplZCk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFOgog
ICAgICAgICBpZiAoaW5kZXggPj0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCkpCi0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PGxvbmc+KDQpKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPihtX3ZlcnRleEF0dHJpYlN0YXRl
W2luZGV4XS5zaXplKSk7CisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19j
YXN0PGludD4oNCkpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdmVydGV4QXR0cmli
U3RhdGVbaW5kZXhdLnNpemUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9B
VFRSSUJfQVJSQVlfU1RSSURFOgogICAgICAgICBpZiAoaW5kZXggPj0gbV92ZXJ0ZXhBdHRyaWJT
dGF0ZS5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0
PGxvbmc+KDApKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25n
PihtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS5vcmlnaW5hbFN0cmlkZSkpOworICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxpbnQ+KDApKTsKKyAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS5vcmlnaW5hbFN0cmlk
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBF
OgogICAgICAgICBpZiAoaW5kZXggPj0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCkpCi0gICAg
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KEdy
YXBoaWNzQ29udGV4dDNEOjpGTE9BVCkpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLnR5cGUp
KTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQg
aW50PihHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS50eXBlKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDVVJSRU5UX1ZFUlRFWF9BVFRSSUI6CiAgICAgICAgIGlmIChpbmRleCA+PSBt
X3ZlcnRleEF0dHJpYlN0YXRlLnNpemUoKSkgewogICAgICAgICAgICAgZmxvYXQgdmFsdWVbNF0g
PSB7IDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYgfTsKQEAgLTM4MTQsMjIgKzM4MTMsMTYgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RgogCiBXZWJHTEdldEluZm8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7Ci0g
ICAgcmV0dXJuIGdldExvbmdQYXJhbWV0ZXIocG5hbWUpOwotfQotCi1XZWJHTEdldEluZm8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRMb25nUGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQotewog
ICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUs
ICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxsb25nPih2YWx1
ZSkpOworICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwogfQogCi1XZWJHTEdldEluZm8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbnNpZ25lZExvbmdQYXJhbWV0ZXIoR0MzRGVudW0g
cG5hbWUpCitXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbnNpZ25lZElu
dFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAg
ICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIEdDM0R1aW50IHVW
YWx1ZSA9IHN0YXRpY19jYXN0PEdDM0R1aW50Pih2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPih1VmFsdWUpKTsKKyAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKIH0KIAogV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVy
KEdDM0RlbnVtIHBuYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDc2NTA4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2MSw4ICs0NjEsNyBAQCBwdWJsaWM6CiAgICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5B
cnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSk7CiAgICAgV2ViR0xHZXRJbmZvIGdldEZsb2F0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKTsKICAgICBXZWJHTEdldEluZm8gZ2V0SW50UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0TG9uZ1BhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFVuc2lnbmVkTG9uZ1BhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xHZXRJbmZvIGdldFVuc2lnbmVkSW50UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKTsKICAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xGbG9hdEFycmF5
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKTsKICAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRB
cnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSk7CiAK
</data>
<flag name="review"
          id="71454"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>