Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sbzId-0030UE-Mf for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Aug 2024 09:19:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sbzIc-00CxXO-76 for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Aug 2024 09:19:10 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sbngT-00A7bT-Ap for pgsql-hackers@lists.postgresql.org; Wed, 07 Aug 2024 20:55:02 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sbngQ-003bJ5-1Z for pgsql-hackers@lists.postgresql.org; Wed, 07 Aug 2024 20:55:00 +0000 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-710887a8083so261057b3a.0 for ; Wed, 07 Aug 2024 13:54:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1723064097; x=1723668897; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=XyCFrS3JbVMHt5FgGePMUOzj1chhW6Jfbez1fubziMs=; b=o3/rMsa7DtSuxfFsVuK8VNwl7Asqd+uqEFAV/1dOv7Ny79FxY6Oe/eMo/F53cphN1s /UBHOZ/eftRKXE6V483us1oZ99wjU0hxsOEP0dT2Pf/7UBeRcj7uM3ToUEdoLynSZ8Ce b/3T4iHB0UQYv5urAL78qVeNXqalvNkMjXq6JnoFNqy69BJBwICjUElh3cOIR4eHxYQA AKoj4ec+wn6YVRmKbGoXQwryJ8av+SNr8vB2x0T2b6gRjj2JuuXKt3/XNr4oY9JT7QPY qixultxiLlByHT6XTWNqyRRuFdDVOaIYUbu5yZiLy4sOWJS7+rcoEpimxecbcFAERCxt evPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723064097; x=1723668897; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=XyCFrS3JbVMHt5FgGePMUOzj1chhW6Jfbez1fubziMs=; b=VUkY5fQP5YpcCjywIPepF89Xfx8g0rmWs1tunmSMMZh2xmlioCs8Lds7ij1yntGdf/ OYGuGDf8C5BQetzXXkz7HZr6/UWBpKNbAYmAFlmnBx3uKW6MXPga9aHnmoHLj6vwTZsk 6qojkblbe2equ4k2l9wiPDyxj95ma8iqfdgGO1F6emb5yK+R6v45/xBajBgNnqimISMy 6Vjmt7R9Wa5CDRvB190jVu9fIKwrV8TcjxluGlXZGWAkDGuVEidk1MslA3YEVPdTv/6p GnyxSh+yiZSN/UtLTwp0hLp+dc3bCMgITNqZnKLsS8cOcu4CVvh4Jv+tVg+DrErUXEuP SsrA== X-Forwarded-Encrypted: i=1; AJvYcCXm3re+yiAqjc86ecpudFoZBTIzlLMNk7WY7WhQ2+PFliXkMT8s3C8Ieax64ZaeJRgwJBjmFQOkcXEmvIR92vuVaZKMdEKivxJtwgfTbCnQO9Uo X-Gm-Message-State: AOJu0Yw7bc57GA21GHDfKi8Hae5HjWRX1SiBKiK6FMbg+aFEwwKH9Kbh fedXU45rxvd54eWYE6yPopmFlbWrxCAs5ufH2XWfJCbKwfh5fKMCadz50VNQpgNRgelRESIZFYE E X-Google-Smtp-Source: AGHT+IHeuqEnN/+kVJ4KStNFriL5mwmu/3IIHKp35BUp0bRkMpDT/XYH1gL4PJfcUlU++Cgp+OTPZg== X-Received: by 2002:a05:6a20:9f4b:b0:1c0:f0c1:5d45 with SMTP id adf61e73a8af0-1c699627beamr7394718637.44.1723064095166; Wed, 07 Aug 2024 13:54:55 -0700 (PDT) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-7106ed151basm8782646b3a.169.2024.08.07.13.54.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Aug 2024 13:54:53 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------ILCnfobTFgrrlXVrLT5hmthX" Message-ID: <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> Date: Wed, 7 Aug 2024 13:54:52 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time To: jian he Cc: Isaac Morland , Robert Haas , Jeff Davis , Peter Eisentraut , PostgreSQL Hackers References: <47550967-260b-4180-9791-b224859fe63e@illuminatedcomputing.com> <64c2b2ab-7ce9-475e-ac59-3bfec528bada@eisentraut.org> <58b6687fe9de002e4c862a412719e4f918bad987.camel@j-davis.com> <30dc3561-d7ab-42be-a1c5-096643423590@illuminatedcomputing.com> <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> Content-Language: en-US From: Paul Jungwirth In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here are some fixes based on outstanding feedback (some old some new). Details below: On 3/25/24 17:00, jian he wrote: > hi. > minor issues I found in v33-0003. > there are 29 of {check_amproc_signature?.*false} > only one {check_amproc_signature(procform->amproc, opcintype, true} > is this refactoring really worth it? I could add a separate function, for example check_amproc_retset_signature, but it would require duplicating almost the whole existing function, so a param seems better here. > We also need to refactor gistadjustmembers? You're right, added the new support procs there. > + > + intersect > + computes intersection with FOR PORTION OF > + bounds > + 13 > + > + > + without_portion > + computes remaining duration(s) outside > + FOR PORTION OF bounds > + 14 > + > needs to add "(optional)". Added. > + > +Datum > +my_range_intersect(PG_FUNCTION_ARGS) > +{ > + RangeType *r1 = PG_GETARG_RANGE_P(0); > + RangeType *r2 = PG_GETARG_RANGE_P(1); > + TypeCacheEntry *typcache; > + > + /* Different types should be prevented by ANYRANGE matching rules */ > + if (RangeTypeGetOid(r1) != RangeTypeGetOid(r2)) > elog(ERROR, "range > types do not match"); > + > + typcache = range_get_typcache(fcinfo, RangeTypeGetOid(r1)); > + > + PG_RETURN_RANGE_P(range_intersect_internal(typcache, r1, r2)); > +} > + > the elog, ERROR indentation is wrong? Fixed. > +/* > + * range_without_portion_internal - Sets outputs and outputn to the ranges > + * remaining and their count (respectively) after subtracting r2 from r1. > + * The array should never contain empty ranges. > + * The outputs will be ordered. We expect that outputs is an array of > + * RangeType pointers, already allocated with two slots. > + */ > +void > +range_without_portion_internal(TypeCacheEntry *typcache, RangeType *r1, > + RangeType *r2, RangeType **outputs, int *outputn) > the comments need to be refactored? > there is nothing related to "slot"? > not sure the "array" description is right. > (my understanding is compute rangetype r1 and r2, and save the result to > RangeType **outputs. Changed "slots" to "elements". Everything else looks correct to me. > select proisstrict, proname from pg_proc where proname = > 'range_without_portion'; > range_without_portion is strict. > but > select range_without_portion(NULL::int4range, int4range(11, 20,'[]')); > return zero rows. > Is this the expected behavior? Returning zero rows is correct if the function is never called (which is what strict does). I see other strict retset functions, e.g. json_array_elements. That also returns zero rows if you say SELECT json_array_elements(NULL); On 4/14/24 17:00, jian he wrote: > for unique index, primary key: > ii_ExclusionOps, ii_UniqueOps is enough to distinguish this index > support without overlaps, > we don't need another ii_HasWithoutOverlaps? > (i didn't test it though) I think it is worth having something named. But also ii_Exclusion is not set in index_concurrently_create_copy, so inferring when we have WITHOUT OVERLAPS will not work in that case. > ON CONFLICT DO NOTHING > ON CONFLICT (id, valid_at) DO NOTHING > ON CONFLICT ON CONSTRAINT temporal_rng_pk DO NOTHING > I am confused by the test. > here temporal_rng only has one primary key, ON CONFLICT only deals with it. > I thought these three are the same thing? They all have somewhat different code paths in infer_arbiter_indexes, and they mean different things. I recall when I first started dealing with empty ranges several of these test cases caught different bugs (as well as the DO UPDATE cases). On 8/5/24 19:02, jian he wrote: > void > ExecWithoutOverlapsNotEmpty(Relation rel, Datum attval, Oid typtype, > Oid atttypid); > > should this just be a static function? > I am not so sure. Changed. In a previous version I was calling this from two places, but I'm not anymore. > Oid typtype > should be > char typtype > ? Oops, you're right! Fixed. > errmsg("new row for relation \"%s\" contains empty > WITHOUT OVERLAPS value", > we already have Form_pg_attribute via "TupleDesc tupdesc = > RelationGetDescr(heap);" > we can make the error message be: > errmsg("cannot be empty range value for WITHOUT > OVERLAPS column \"%s\" in relation \"%s\", colname, > RelationGetRelationName(rel)) Yes, it's nicer to report the column name. Changed. > elog(ERROR, "Got unknown type for WITHOUT OVERLAPS column: %d", atttypid); > people will wonder if domain over range works or not. but currently > not, better error message would be: > elog(ERROR, "WITHOUT OVERLAPS column \"%s\" is not a range > or multirange type ", colname); > This part is unlikely to be reachable, so I don't have a strong opinion on it. Likewise. > + if (!found) > + column = NULL; > this part no need? > because if not found, the column would be last element in ColumnDef > type list columns We can later set `found` to true from inheritance (or it being a system column), and then `column` is set but wrong. So setting `column` to null seems generally clearer. But concretely, I use `column` below to give me the type (which I otherwise don't have in CREATE TABLE), so I can forbid types other than range and multirange. > also the following change also make sense: > > + if (!OidIsValid(typid) && column) > + typid = typenameTypeId(NULL, column->typeName); This is because in CREATE TABLE I need to get the type from the `column` variable. > I am confused with this change? > you found out the typid,but didn't using this information, should it be > + if (strcmp(attname, key) == 0) > + { > + typid = attr->atttypid; > + found = true; > + break; > + } Yes. Actually that is in the PERIOD patch file, but it should be in Forbid-empty-ranges. Moved. > so the failing error message be same for the following two cases: > CREATE TABLE t1 (id int4range,valid_at tsrange,b text, > CONSTRAINT temporal_rng_pk PRIMARY KEY (id, b WITHOUT OVERLAPS) > ); > > CREATE TABLE t1 (id int4range,valid_at tsrange,b text); > alter table t1 add CONSTRAINT temporal_rng_pk PRIMARY KEY (id, b > WITHOUT OVERLAPS); I think the same error message is the right thing to do here. It looks like that's what we're doing. If I've misunderstand what you want, can you clarify? On 8/6/24 07:50, jian he wrote: > in generateClonedIndexStmt > index->iswithoutoverlaps = (idxrec->indisprimary || > idxrec->indisunique) && idxrec->indisexclusion; > this case, the index accessMethod will be "gist" only? > > do you think it's necessary to: > index->iswithoutoverlaps = (idxrec->indisprimary || > idxrec->indisunique) && idxrec->indisexclusion > && strcmp(index->accessMethod, "gist") == 0); This doesn't seem necessary, and maybe we'll support non-gist someday, when this condition would be misleading. > src/bin/pg_dump/pg_dump.c and src/bin/psql/describe.c > should be "if (pset.sversion >= 180000)"? Ah, thanks. Changing these from 170000 also landed in the wrong patch file. Fixed. > + (This is sometimes called a > + temporal key, if the column is a range of dates or timestamps, but > + PostgreSQL allows ranges over any base type.) > > PostgreSQL should be decorated as > PostgreSQL Done. > in DefineIndex we have: > if (stmt->unique && !stmt->iswithoutoverlaps && !amRoutine->amcanunique) > if (stmt->indexIncludingParams != NIL && !amRoutine->amcaninclude) > if (numberOfKeyAttributes > 1 && !amRoutine->amcanmulticol) > if (exclusion && amRoutine->amgettuple == NULL) > > maybe we can add: > if (stmt->iswithoutoverlaps && strcmp(accessMethodName, "gist") != 0) > ereport(ERROR, > (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), > errmsg("access method \"%s\" does not support WITHOUT > OVERLAPS constraints", > accessMethodName))); Okay. > + /* exclusionOpNames can be non-NIL if we are creating a partition */ > + if (iswithoutoverlaps && exclusionOpNames == NIL) > + { > + indexInfo->ii_ExclusionOps = palloc_array(Oid, nkeycols); > + indexInfo->ii_ExclusionProcs = palloc_array(Oid, nkeycols); > + indexInfo->ii_ExclusionStrats = palloc_array(uint16, nkeycols); > + } > the comment is not 100% correct, i think. > creating a partition, "create table like INCLUDING ALL", both will go > through generateClonedIndexStmt. > generateClonedIndexStmt will produce exclusionOpNames if this index > supports exclusion constraint. I think the comment is correct, but non-NIL is a confusing double negative, and it's not clear that the comment is giving the motivation for the second half of the condition. I re-wrote it to be more clear. I also adjusted the `if` to avoid parsing operator names when not needed. Rebased to e56ccc8e42. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0001-Add-stratnum-GiST-support-function.patch" Content-Disposition: attachment; filename="v39-0001-Add-stratnum-GiST-support-function.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZmM2NjViZTYxOGM0MTA0ZjQyMWM4M2MxMjg0N2EwMmE3ODIzZjc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NDQgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzOSAxLzhdIEFkZCBzdHJhdG51bSBHaVNUIHN1cHBvcnQg ZnVuY3Rpb24KClRoaXMgaXMgc3VwcG9ydCBmdW5jdGlvbiAxMiBmb3IgdGhlIEdpU1QgQU0g YW5kIHRyYW5zbGF0ZXMKIndlbGwta25vd24iIFJUKlN0cmF0ZWd5TnVtYmVyIHZhbHVlcyBp bnRvIHdoYXRldmVyIHN0cmF0ZWd5IG51bWJlciBpcwp1c2VkIGJ5IHRoZSBvcGNsYXNzIChz aW5jZSBubyBwYXJ0aWN1bGFyIG51bWJlcnMgYXJlIGFjdHVhbGx5CnJlcXVpcmVkKS4gIFdl IHdpbGwgdXNlIHRoaXMgdG8gc3VwcG9ydCB0ZW1wb3JhbCBQUklNQVJZCktFWS9VTklRVUUv Rk9SRUlHTiBLRVkvRk9SIFBPUlRJT04gT0YgZnVuY3Rpb25hbGl0eS4KClRoaXMgY29tbWl0 IGFkZHMgdHdvIGltcGxlbWVudGF0aW9ucywgb25lIGZvciBpbnRlcm5hbCBHaVNUIG9wY2xh c3NlcwooanVzdCBhbiBpZGVudGl0eSBmdW5jdGlvbikgYW5kIGFub3RoZXIgZm9yIGJ0cmVl X2dpc3Qgb3BjbGFzc2VzLiAgSXQKdXBkYXRlcyBidHJlZV9naXN0IGZyb20gMS43IHRvIDEu OCwgYWRkaW5nIHRoZSBzdXBwb3J0IGZ1bmN0aW9uIGZvcgphbGwgaXRzIG9wY2xhc3Nlcy4K LS0tCiBjb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICA2 ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICB8IDg3 ICsrKysrKysrKysrKysrKysrKysrCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5j ICAgICAgICAgICAgICB8IDI3ICsrKysrKwogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QuY29udHJvbCAgICAgICAgfCAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVk L3N0cmF0bnVtLm91dCAgICAgfCAxMyArKysKIGNvbnRyaWIvYnRyZWVfZ2lzdC9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgIHwgIDIgKwogY29udHJpYi9idHJlZV9naXN0L3NxbC9zdHJh dG51bS5zcWwgICAgICAgICAgfCAgMyArCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAg ICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrLQogZG9jL3NyYy9zZ21sL3hp bmRleC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOCArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYyAgICAgICAgICAgfCAxNCArKysrCiBzcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyAgICAgICB8ICA4ICstCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdC5oICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICB8IDE4ICsrKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgIHwgIDYgKysKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IHwgMTMgKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwgICAgICB8ICA0ICsKIDE2IGZpbGVzIGNo YW5nZWQsIDI3MiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjctLTEuOC5zcWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0u b3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9naXN0L3NxbC9zdHJhdG51 bS5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUgYi9jb250 cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKaW5kZXggMDczZGNjNzQ1YzQuLjlhYjg1NDhiYzBl IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L01ha2VmaWxlCkBAIC0zMywxMiArMzMsMTQgQEAgRVhURU5TSU9OID0g YnRyZWVfZ2lzdAogREFUQSA9IGJ0cmVlX2dpc3QtLTEuMC0tMS4xLnNxbCBcCiAgICAgICAg YnRyZWVfZ2lzdC0tMS4xLS0xLjIuc3FsIGJ0cmVlX2dpc3QtLTEuMi5zcWwgYnRyZWVfZ2lz dC0tMS4yLS0xLjMuc3FsIFwKICAgICAgICBidHJlZV9naXN0LS0xLjMtLTEuNC5zcWwgYnRy ZWVfZ2lzdC0tMS40LS0xLjUuc3FsIFwKLSAgICAgICBidHJlZV9naXN0LS0xLjUtLTEuNi5z cWwgYnRyZWVfZ2lzdC0tMS42LS0xLjcuc3FsCisgICAgICAgYnRyZWVfZ2lzdC0tMS41LS0x LjYuc3FsIGJ0cmVlX2dpc3QtLTEuNi0tMS43LnNxbCBcCisgICAgICAgYnRyZWVfZ2lzdC0t MS43LS0xLjguc3FsCiBQR0ZJTEVERVNDID0gImJ0cmVlX2dpc3QgLSBCLXRyZWUgZXF1aXZh bGVudCBHaVNUIG9wZXJhdG9yIGNsYXNzZXMiCiAKIFJFR1JFU1MgPSBpbml0IGludDIgaW50 NCBpbnQ4IGZsb2F0NCBmbG9hdDggY2FzaCBvaWQgdGltZXN0YW1wIHRpbWVzdGFtcHR6IFwK ICAgICAgICAgdGltZSB0aW1ldHogZGF0ZSBpbnRlcnZhbCBtYWNhZGRyIG1hY2FkZHI4IGlu ZXQgY2lkciB0ZXh0IHZhcmNoYXIgY2hhciBcCi0gICAgICAgIGJ5dGVhIGJpdCB2YXJiaXQg bnVtZXJpYyB1dWlkIG5vdF9lcXVhbCBlbnVtIGJvb2wgcGFydGl0aW9ucworICAgICAgICBi eXRlYSBiaXQgdmFyYml0IG51bWVyaWMgdXVpZCBub3RfZXF1YWwgZW51bSBib29sIHBhcnRp dGlvbnMgXAorICAgICAgICBzdHJhdG51bQogCiBTSExJQl9MSU5LICs9ICQoZmlsdGVyIC1s bSwgJChMSUJTKSkKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QtLTEuNy0tMS44LnNxbCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjct LTEuOC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMwN2Jm ZTU3NGIwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QtLTEuNy0tMS44LnNxbApAQCAtMCwwICsxLDg3IEBACisvKiBjb250cmliL2J0cmVlX2dp c3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlw dCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9O CitcZWNobyBVc2UgIkFMVEVSIEVYVEVOU0lPTiBidHJlZV9naXN0IFVQREFURSBUTyAnMS44 JyIgdG8gbG9hZCB0aGlzIGZpbGUuIFxxdWl0CisKK0NSRUFURSBGVU5DVElPTiBnaXN0X3N0 cmF0bnVtX2J0cmVlKHNtYWxsaW50KQorUkVUVVJOUyBzbWFsbGludAorQVMgJ01PRFVMRV9Q QVRITkFNRScKK0xBTkdVQUdFIEMgSU1NVVRBQkxFIFBBUkFMTEVMIFNBRkUgU1RSSUNUOwor CitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9vaWRfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKG9pZCwgb2lkKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisK K0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludDJfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKGludDIsIGludDIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK KworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfaW50NF9vcHMgVVNJTkcgZ2lzdCBBREQK KwlGVU5DVElPTiAxMiAoaW50NCwgaW50NCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50Mikg OworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9pbnQ4X29wcyBVU0lORyBnaXN0IEFE RAorCUZVTkNUSU9OIDEyIChpbnQ4LCBpbnQ4KSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQy KSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2Zsb2F0NF9vcHMgVVNJTkcgZ2lz dCBBREQKKwlGVU5DVElPTiAxMiAoZmxvYXQ0LCBmbG9hdDQpIGdpc3Rfc3RyYXRudW1fYnRy ZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfZmxvYXQ4X29wcyBV U0lORyBnaXN0IEFERAorCUZVTkNUSU9OIDEyIChmbG9hdDgsIGZsb2F0OCkgZ2lzdF9zdHJh dG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90aW1l c3RhbXBfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHRpbWVzdGFtcCwgdGlt ZXN0YW1wKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9S IEZBTUlMWSBnaXN0X3RpbWVzdGFtcHR6X29wcyBVU0lORyBnaXN0IEFERAorCUZVTkNUSU9O IDEyICh0aW1lc3RhbXB0eiwgdGltZXN0YW1wdHopIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGlu dDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfdGltZV9vcHMgVVNJTkcgZ2lz dCBBREQKKwlGVU5DVElPTiAxMiAodGltZSwgdGltZSkgZ2lzdF9zdHJhdG51bV9idHJlZSAo aW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9kYXRlX29wcyBVU0lORyBn aXN0IEFERAorCUZVTkNUSU9OIDEyIChkYXRlLCBkYXRlKSBnaXN0X3N0cmF0bnVtX2J0cmVl IChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludGVydmFsX29wcyBV U0lORyBnaXN0IEFERAorCUZVTkNUSU9OIDEyIChpbnRlcnZhbCwgaW50ZXJ2YWwpIGdpc3Rf c3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3Rf Y2FzaF9vcHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAobW9uZXksIG1vbmV5KSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X21hY2FkZHJfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKG1hY2FkZHIs IG1hY2FkZHIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFU T1IgRkFNSUxZIGdpc3RfdGV4dF9vcHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAo dGV4dCwgdGV4dCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVS QVRPUiBGQU1JTFkgZ2lzdF9icGNoYXJfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04g MTIgKGJwY2hhciwgYnBjaGFyKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FM VEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2J5dGVhX29wcyBVU0lORyBnaXN0IEFERAorCUZV TkNUSU9OIDEyIChieXRlYSwgYnl0ZWEpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK KworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfbnVtZXJpY19vcHMgVVNJTkcgZ2lzdCBB REQKKwlGVU5DVElPTiAxMiAobnVtZXJpYywgbnVtZXJpYykgZ2lzdF9zdHJhdG51bV9idHJl ZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9iaXRfb3BzIFVTSU5H IGdpc3QgQURECisJRlVOQ1RJT04gMTIgKGJpdCwgYml0KSBnaXN0X3N0cmF0bnVtX2J0cmVl IChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X3ZiaXRfb3BzIFVTSU5H IGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHZhcmJpdCwgdmFyYml0KSBnaXN0X3N0cmF0bnVt X2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2luZXRfb3Bz IFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKGluZXQsIGluZXQpIGdpc3Rfc3RyYXRu dW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfY2lkcl9v cHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAoY2lkciwgY2lkcikgZ2lzdF9zdHJh dG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90aW1l dHpfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHRpbWV0eiwgdGltZXR6KSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X3V1aWRfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHV1aWQsIHV1aWQp IGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZ IGdpc3RfbWFjYWRkcjhfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKG1hY2Fk ZHI4LCBtYWNhZGRyOCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBP UEVSQVRPUiBGQU1JTFkgZ2lzdF9lbnVtX29wcyBVU0lORyBnaXN0IEFERAorCUZVTkNUSU9O IDEyIChhbnllbnVtLCBhbnllbnVtKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisK K0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2Jvb2xfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKGJvb2wsIGJvb2wpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmMgYi9jb250cmli L2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jCmluZGV4IDkyNTIwYWVkYWUxLi41ZmQ0Y2NlMjdk MCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QuYworKysgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jCkBAIC0zLDYgKzMsNyBAQAogICovCiAj aW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAKIFBHX01PRFVMRV9NQUdJQzsKQEAgLTEw LDYgKzExLDcgQEAgUEdfTU9EVUxFX01BR0lDOwogUEdfRlVOQ1RJT05fSU5GT19WMShnYnRf ZGVjb21wcmVzcyk7CiBQR19GVU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9pbik7CiBQR19G VU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9vdXQpOworUEdfRlVOQ1RJT05fSU5GT19WMShn aXN0X3N0cmF0bnVtX2J0cmVlKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKiBJbi9PdXQgZm9yIGtleXMKQEAgLTUxLDMgKzUz LDI4IEBAIGdidF9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJUEdfUkVUVVJO X1BPSU5URVIoUEdfR0VUQVJHX1BPSU5URVIoMCkpOwogfQorCisvKgorICogUmV0dXJucyB0 aGUgYnRyZWUgbnVtYmVyIGZvciBzdXBwb3J0ZWQgb3BlcmF0b3JzLCBvdGhlcndpc2UgaW52 YWxpZC4KKyAqLworRGF0dW0KK2dpc3Rfc3RyYXRudW1fYnRyZWUoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlTdHJhdGVneU51bWJlciBzdHJhdCA9IFBHX0dFVEFSR19VSU5UMTYoMCk7CisK Kwlzd2l0Y2ggKHN0cmF0KQorCXsKKwkJY2FzZSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJ CQlQR19SRVRVUk5fVUlOVDE2KEJURXF1YWxTdHJhdGVneU51bWJlcik7CisJCWNhc2UgUlRM ZXNzU3RyYXRlZ3lOdW1iZXI6CisJCQlQR19SRVRVUk5fVUlOVDE2KEJUTGVzc1N0cmF0ZWd5 TnVtYmVyKTsKKwkJY2FzZSBSVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJUEdfUkVU VVJOX1VJTlQxNihCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJY2FzZSBSVEdyZWF0 ZXJTdHJhdGVneU51bWJlcjoKKwkJCVBHX1JFVFVSTl9VSU5UMTYoQlRHcmVhdGVyU3RyYXRl Z3lOdW1iZXIpOworCQljYXNlIFJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQlQ R19SRVRVUk5fVUlOVDE2KEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQlkZWZh dWx0OgorCQkJUEdfUkVUVVJOX1VJTlQxNihJbnZhbGlkU3RyYXRlZ3kpOworCX0KK30KZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmNvbnRyb2wgYi9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sCmluZGV4IGZhOTE3MWE4MGEyLi5h YmY2NjUzOGYzMiAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3Qu Y29udHJvbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sCkBA IC0xLDYgKzEsNiBAQAogIyBidHJlZV9naXN0IGV4dGVuc2lvbgogY29tbWVudCA9ICdzdXBw b3J0IGZvciBpbmRleGluZyBjb21tb24gZGF0YXR5cGVzIGluIEdpU1QnCi1kZWZhdWx0X3Zl cnNpb24gPSAnMS43JworZGVmYXVsdF92ZXJzaW9uID0gJzEuOCcKIG1vZHVsZV9wYXRobmFt ZSA9ICckbGliZGlyL2J0cmVlX2dpc3QnCiByZWxvY2F0YWJsZSA9IHRydWUKIHRydXN0ZWQg PSB0cnVlCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRu dW0ub3V0IGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3N0cmF0bnVtLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWQ4MGM2NTkwZDkKLS0tIC9k ZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0ub3V0 CkBAIC0wLDAgKzEsMTMgQEAKKy0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jCitTRUxF Q1QgZ2lzdF9zdHJhdG51bV9idHJlZSgzOjpzbWFsbGludCk7CisgZ2lzdF9zdHJhdG51bV9i dHJlZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgIDAKKygx IHJvdykKKworU0VMRUNUIGdpc3Rfc3RyYXRudW1fYnRyZWUoMTg6OnNtYWxsaW50KTsKKyBn aXN0X3N0cmF0bnVtX2J0cmVlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgMworKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQKaW5kZXggYzg4 YTZhYzg0YWUuLmE0NGNlOTA1ZTU5IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L21lc29uLmJ1aWxkCkBAIC01 MCw2ICs1MCw3IEBAIGluc3RhbGxfZGF0YSgKICAgJ2J0cmVlX2dpc3QtLTEuNC0tMS41LnNx bCcsCiAgICdidHJlZV9naXN0LS0xLjUtLTEuNi5zcWwnLAogICAnYnRyZWVfZ2lzdC0tMS42 LS0xLjcuc3FsJywKKyAgJ2J0cmVlX2dpc3QtLTEuNy0tMS44LnNxbCcsCiAgIGt3YXJnczog Y29udHJpYl9kYXRhX2FyZ3MsCiApCiAKQEAgLTg5LDYgKzkwLDcgQEAgdGVzdHMgKz0gewog ICAgICAgJ2VudW0nLAogICAgICAgJ2Jvb2wnLAogICAgICAgJ3BhcnRpdGlvbnMnLAorICAg ICAgJ3N0cmF0bnVtJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9i dHJlZV9naXN0L3NxbC9zdHJhdG51bS5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0 cmF0bnVtLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjU4 Y2RiZTkzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0 cmF0bnVtLnNxbApAQCAtMCwwICsxLDMgQEAKKy0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBm dW5jCitTRUxFQ1QgZ2lzdF9zdHJhdG51bV9idHJlZSgzOjpzbWFsbGludCk7CitTRUxFQ1Qg Z2lzdF9zdHJhdG51bV9idHJlZSgxODo6c21hbGxpbnQpOwpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2dpc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKaW5kZXggMzljN2Jm MzcwZDYuLmY3ODk4MjRjODNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKQEAgLTI2Niw3ICsyNjYsNyBAQCBDUkVB VEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lTVCAobXlfaW5ldF9jb2x1bW4gaW5ldF9v cHMpOwogCiAgPHBhcmE+CiAgICBUaGVyZSBhcmUgZml2ZSBtZXRob2RzIHRoYXQgYW4gaW5k ZXggb3BlcmF0b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0 IHByb3ZpZGUsIGFuZCBzaXggdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8YWNyb255bT5HaVNU PC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4K ICAgIENvcnJlY3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCiAgICBieSBwcm9wZXIg aW1wbGVtZW50YXRpb24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5j dGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4KICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1 bmN0aW9uPiBtZXRob2RzLCB3aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2Yg dGhlCkBAIC0yODksNiArMjg5LDEwIEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lO RyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICB1c2VyLXNwZWNpZmllZCBw YXJhbWV0ZXJzLgogICAgVGhlIG9wdGlvbmFsIGVsZXZlbnRoIG1ldGhvZCA8ZnVuY3Rpb24+ c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPiBpcyB1c2VkIHRvCiAgICBzcGVlZCB1cCBidWlsZGlu ZyBhIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IGluZGV4LgorICAgVGhlIG9wdGlvbmFsIHR3 ZWxmdGggbWV0aG9kIDxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+IGlzIHVzZWQgdG8K KyAgIHRyYW5zbGF0ZSB3ZWxsLWtub3duIDxsaXRlcmFsPlJUKlN0cmF0ZWd5TnVtYmVyPC9s aXRlcmFsPnMgKGZyb20KKyAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRu dW0uaDwvZmlsZW5hbWU+KSBpbnRvIHN0cmF0ZWd5IG51bWJlcnMKKyAgIHVzZWQgYnkgdGhl IG9wZXJhdG9yIGNsYXNzLgogIDwvcGFyYT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBAIC0xMTYz LDYgKzExNjcsNjUgQEAgbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKICAgICAg IDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rp b24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZl biBhbiA8bGl0ZXJhbD5SVCpTdHJhdGVneU51bWJlcjwvbGl0ZXJhbD4gdmFsdWUgZnJvbQor ICAgICAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5h bWU+LCByZXR1cm5zIGEgc3RyYXRlZ3kKKyAgICAgICBudW1iZXIgdXNlZCBieSB0aGlzIG9w ZXJhdG9yIGNsYXNzIGZvciBtYXRjaGluZyBmdW5jdGlvbmFsaXR5LiAgVGhlCisgICAgICAg ZnVuY3Rpb24gc2hvdWxkIHJldHVybiA8bGl0ZXJhbD5JbnZhbGlkU3RyYXRlZ3k8L2xpdGVy YWw+IGlmIHRoZQorICAgICAgIG9wZXJhdG9yIGNsYXNzIGhhcyBubyBtYXRjaGluZyBzdHJh dGVneS4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxhY3Jv bnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9v ayBsaWtlCisgICAgICAgdGhpczoKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gbXlfc3RyYXRudW0oaW50ZWdlcikKK1JFVFVSTlMgaW50ZWdlcgor QVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RSSUNUOworPC9wcm9ncmFtbGlz dGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbWF0 Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2Vs ZXRvbjoKKworPHByb2dyYW1saXN0aW5nPgorUEdfRlVOQ1RJT05fSU5GT19WMShteV9zdHJh dG51bSk7CisKK0RhdHVtCitteV9zdHJhdG51bShQR19GVU5DVElPTl9BUkdTKQoreworICAg IFN0cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdf VUlOVDE2KDEpOworICAgIFN0cmF0ZWd5TnVtYmVyIHJldCA9IEludmFsaWRTdHJhdGVneTsK KworICAgIHN3aXRjaCAoc3RyYXRlZ3kpCisgICAgeworICAgICAgICBjYXNlIFJURXF1YWxT dHJhdGVneU51bWJlcjoKKyAgICAgICAgICAgIHJldCA9IEJURXF1YWxTdHJhdGVneU51bWJl cjsKKyAgICB9CisKKyAgICBQR19SRVRVUk5fVUlOVDE2KHJldCk7Cit9Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBPbmUgdHJh bnNsYXRpb24gZnVuY3Rpb24gaXMgcHJvdmlkZWQgYnkKKyAgICAgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+OgorICAgICAgIDxsaXRlcmFsPmdpc3Rfc3RyYXRu dW1faWRlbnRpdHk8L2xpdGVyYWw+IGlzIGZvciBvcGVyYXRvciBjbGFzc2VzIHRoYXQKKyAg ICAgICBhbHJlYWR5IHVzZSB0aGUgPGxpdGVyYWw+UlQqU3RyYXRlZ3lOdW1iZXI8L2xpdGVy YWw+IGNvbnN0YW50cy4gIEl0CisgICAgICAgcmV0dXJucyB3aGF0ZXZlciBpcyBwYXNzZWQg dG8gaXQuICBUaGUgPGxpdGVyYWw+YnRyZWVfZ2lzdDwvbGl0ZXJhbD4KKyAgICAgICBleHRl bnNpb24gZGVmaW5lcyBhIHNlY29uZCB0cmFuc2xhdGlvbiBmdW5jdGlvbiwKKyAgICAgICA8 bGl0ZXJhbD5naXN0X3N0cmF0bnVtX2J0cmVlPC9saXRlcmFsPiwgZm9yIG9wZXJhdG9yIGNs YXNzZXMgdGhhdCB1c2UKKyAgICAgICB0aGUgPGxpdGVyYWw+QlQqU3RyYXRlZ3lOdW1iZXI8 L2xpdGVyYWw+IGNvbnN0YW50cy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGlu ZGV4LnNnbWwKaW5kZXggMjJkOGFkMWFhYzQuLjNhMTlkYWIxNWUwIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21s CkBAIC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNU IGluZGV4ZXMgaGF2ZSBlbGV2ZW4gc3VwcG9ydCBmdW5jdGlvbnMsIHNpeCBvZiB3aGljaCBh cmUgb3B0aW9uYWwsCisgICBHaVNUIGluZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5j dGlvbnMsIHNldmVuIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4 cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1v cmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+ CkBAIC01OTAsNiArNTkwLDEyIEBACiAgICAgICAgIChvcHRpb25hbCk8L2VudHJ5PgogICAg ICAgIDxlbnRyeT4xMTwvZW50cnk+CiAgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+dHJhbnNsYXRlIHdlbGwta25vd24gc3RyYXRlZ3kgbnVtYmVycyB0byBvbmVz CisgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzIChvcHRpb25hbCk8L2VudHJ5 PgorICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9k eT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHV0aWwuYwppbmRleCA3OGU5OGQ2OGIxNS4uODY4NjczNWYyMzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbW1v bi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pbmRleGZzbS5oIgogI2luY2x1ZGUg InV0aWxzL2Zsb2F0LmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncnByb3Rvcy5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1 ZGUgInV0aWxzL3NuYXBtZ3IuaCIKQEAgLTEwNTUsMyArMTA1NiwxNiBAQCBnaXN0R2V0RmFr ZUxTTihSZWxhdGlvbiByZWwpCiAJCXJldHVybiBHZXRGYWtlTFNORm9yVW5sb2dnZWRSZWwo KTsKIAl9CiB9CisKKy8qCisgKiBSZXR1cm5zIHRoZSBzYW1lIG51bWJlciB0aGF0IHdhcyBy ZWNlaXZlZC4KKyAqCisgKiBUaGlzIGlzIGZvciBHaVNUIG9wY2xhc3NlcyB0aGF0IHVzZSB0 aGUgUlQqU3RyYXRlZ3lOdW1iZXIgY29uc3RhbnRzLgorICovCitEYXR1bQorZ2lzdF9zdHJh dG51bV9pZGVudGl0eShQR19GVU5DVElPTl9BUkdTKQoreworCVN0cmF0ZWd5TnVtYmVyIHN0 cmF0ID0gUEdfR0VUQVJHX1VJTlQxNigwKTsKKworCVBHX1JFVFVSTl9VSU5UMTYoc3RyYXQp OworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRl LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCAzNmI1 YTg1Y2YzMS4uMDkwMTU0M2E2MGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jCkBAIC0xNDYsNiArMTQ2LDEwIEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFz c29pZCkKIAkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgVk9JRE9JRCwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJ CWJyZWFrOworCQkJY2FzZSBHSVNUX1NUUkFUTlVNX1BST0M6CisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIHRydWUsCisJCQkJ CQkJCQkJCTEsIDEsIElOVDJPSUQpOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQll cmVwb3J0KElORk8sCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLApAQCAtMjY2LDcgKzI3MCw4IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFz c29pZCkKIAkJCWNvbnRpbnVlOwkJCS8qIGdvdCBpdCAqLwogCQlpZiAoaSA9PSBHSVNUX0RJ U1RBTkNFX1BST0MgfHwgaSA9PSBHSVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9D T01QUkVTU19QUk9DIHx8IGkgPT0gR0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKLQkJCWkgPT0g R0lTVF9PUFRJT05TX1BST0MgfHwgaSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MpCisJCQlp ID09IEdJU1RfT1BUSU9OU19QUk9DIHx8IGkgPT0gR0lTVF9TT1JUU1VQUE9SVF9QUk9DIHx8 CisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQykKIAkJCWNvbnRpbnVlOwkJCS8qIG9wdGlv bmFsIG1ldGhvZHMgKi8KIAkJZXJlcG9ydChJTkZPLAogCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCkBAIC0zMzgsNiArMzQzLDcgQEAgZ2lzdGFk anVzdG1lbWJlcnMoT2lkIG9wZmFtaWx5b2lkLAogCQkJY2FzZSBHSVNUX0ZFVENIX1BST0M6 CiAJCQljYXNlIEdJU1RfT1BUSU9OU19QUk9DOgogCQkJY2FzZSBHSVNUX1NPUlRTVVBQT1JU X1BST0M6CisJCQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKIAkJCQkvKiBPcHRpb25hbCwg c28gZm9yY2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBkZXBlbmRlbmN5ICovCiAJCQkJb3At PnJlZl9pc19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJlZl9pc19mYW1pbHkgPSB0cnVlOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmgKaW5kZXggYzZkY2Q2YTkwZGQuLmU3Y2VkMThhNWJhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9n aXN0LmgKQEAgLTM4LDcgKzM4LDggQEAKICNkZWZpbmUgR0lTVF9GRVRDSF9QUk9DCQkJCQk5 CiAjZGVmaW5lIEdJU1RfT1BUSU9OU19QUk9DCQkJCTEwCiAjZGVmaW5lIEdJU1RfU09SVFNV UFBPUlRfUFJPQwkJCTExCi0jZGVmaW5lIEdJU1ROUHJvY3MJCQkJCTExCisjZGVmaW5lIEdJ U1RfU1RSQVROVU1fUFJPQwkJCQkxMgorI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxMgogCiAv KgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5kZXggcGFnZS4KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCBmNjM5YzNhNmE1MS4uMzUyNTU4YzFmMDYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUwNyw2ICs1MDcsOSBAQAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnNycsIGFtcHJvYyA9PiAn Z2lzdF9ib3hfc2FtZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L2JveF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYm94JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBh bXByb2NudW0gPT4gJzgnLCBhbXByb2MgPT4gJ2dpc3RfYm94X2Rpc3RhbmNlJyB9LAoreyBh bXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdib3gn LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnMTInLAorICBh bXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9wb2x5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwb2x5Z29uJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdwb2x5Z29uJywgYW1wcm9jbnVtID0+ICcxJywKICAgYW1wcm9j ID0+ICdnaXN0X3BvbHlfY29uc2lzdGVudCcgfSwKQEAgLTUyNiw2ICs1MjksOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9s eWdvbicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAn OCcsCiAgIGFtcHJvYyA9PiAnZ2lzdF9wb2x5X2Rpc3RhbmNlJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9seWdvbicsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAnMTInLAorICBh bXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9jaXJjbGVfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NpcmNsZScsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnY2lyY2xlJywgYW1wcm9jbnVtID0+ICcxJywKICAgYW1wcm9j ID0+ICdnaXN0X2NpcmNsZV9jb25zaXN0ZW50JyB9LApAQCAtNTQ0LDYgKzU1MCw5IEBACiB7 IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9jaXJjbGVfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2NpcmNsZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2lyY2xlJywgYW1wcm9jbnVtID0+ ICc4JywKICAgYW1wcm9jID0+ICdnaXN0X2NpcmNsZV9kaXN0YW5jZScgfSwKK3sgYW1wcm9j ZmFtaWx5ID0+ICdnaXN0L2NpcmNsZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2lyY2xl JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdjaXJjbGUnLCBhbXByb2NudW0gPT4gJzEyJywK KyAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvdHN2ZWN0b3Jfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RzdmVjdG9y JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0c3ZlY3RvcicsIGFtcHJvY251bSA9PiAnMScs CiAgIGFtcHJvYyA9PiAnZ3RzdmVjdG9yX2NvbnNpc3RlbnQoaW50ZXJuYWwsdHN2ZWN0b3Is aW50MixvaWQsaW50ZXJuYWwpJyB9LApAQCAtNTk4LDYgKzYwNyw5IEBACiB7IGFtcHJvY2Zh bWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2Un LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICc3JywK ICAgYW1wcm9jID0+ICdyYW5nZV9naXN0X3NhbWUnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn Z2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXBy b2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMicsCisgIGFtcHJv YyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdn aXN0L25ldHdvcmtfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2lu ZXRfZ2lzdF9jb25zaXN0ZW50JyB9LApAQCAtNjE0LDYgKzYyNiw5IEBACiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnNycsIGFtcHJvYyA9PiAnaW5ldF9n aXN0X3NhbWUnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0Jywg YW1wcm9jbnVtID0+ICc5JywgYW1wcm9jID0+ICdpbmV0X2dpc3RfZmV0Y2gnIH0sCit7IGFt cHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdp bmV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcxMics CisgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11 bHRpcmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXBy b2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfZ2lzdF9jb25zaXN0ZW50 JyB9LApAQCAtNjMyLDYgKzY0Nyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0 aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICc3JywKICAg YW1wcm9jID0+ICdyYW5nZV9naXN0X3NhbWUnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lz dC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcx MicsCisgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAogIyBnaW4K IHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2FueWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGQzNmY2MDAxYmIx Li41NWE5ZTJkOWNkYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjI0Nyw0 ICsxMjI0NywxMCBAQAogICBwcm9hcmduYW1lcyA9PiAne3N1bW1hcml6ZWRfdGxpLHN1bW1h cml6ZWRfbHNuLHBlbmRpbmdfbHNuLHN1bW1hcml6ZXJfcGlkfScsCiAgIHByb3NyYyA9PiAn cGdfZ2V0X3dhbF9zdW1tYXJpemVyX3N0YXRlJyB9LAogCisjIEdpU1Qgc3RyYXRudW0gaW1w bGVtZW50YXRpb25zCit7IG9pZCA9PiAnODA0NycsIGRlc2NyID0+ICdHaVNUIHN1cHBvcnQn LAorICBwcm9uYW1lID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JywgcHJvcmV0dHlwZSA9 PiAnaW50MicsCisgIHByb2FyZ3R5cGVzID0+ICdpbnQyJywKKyAgcHJvc3JjID0+ICdnaXN0 X3N0cmF0bnVtX2lkZW50aXR5JyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL21pc2NfZnVuY3Rpb25zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CmluZGV4IDM1ZmI3MmYzMDJiLi41ZjdiZjZiOGFm NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9u cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9ucy5v dXQKQEAgLTgxOSwzICs4MTksMTYgQEAgU0VMRUNUIHBnX2NvbHVtbl90b2FzdF9jaHVua19p ZChhKSBJUyBOVUxMLAogCiBEUk9QIFRBQkxFIHRlc3RfY2h1bmtfaWQ7CiBEUk9QIEZVTkNU SU9OIGV4cGxhaW5fbWFza19jb3N0cyh0ZXh0LCBib29sLCBib29sLCBib29sLCBib29sKTsK Ky0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jdGlvbnMKK1NFTEVDVCBnaXN0X3N0cmF0 bnVtX2lkZW50aXR5KDM6OnNtYWxsaW50KTsKKyBnaXN0X3N0cmF0bnVtX2lkZW50aXR5IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgMworKDEg cm93KQorCitTRUxFQ1QgZ2lzdF9zdHJhdG51bV9pZGVudGl0eSgxODo6c21hbGxpbnQpOwor IGdpc3Rfc3RyYXRudW1faWRlbnRpdHkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgIDE4CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L21pc2NfZnVuY3Rpb25zLnNxbAppbmRleCBlNTcwNzgzNDUzYy4uMWU5MGQ2MGFmMzUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwKQEAgLTM2MCwzICsz NjAsNyBAQCBTRUxFQ1QgcGdfY29sdW1uX3RvYXN0X2NodW5rX2lkKGEpIElTIE5VTEwsCiAg IEZST00gdGVzdF9jaHVua19pZDsKIERST1AgVEFCTEUgdGVzdF9jaHVua19pZDsKIERST1Ag RlVOQ1RJT04gZXhwbGFpbl9tYXNrX2Nvc3RzKHRleHQsIGJvb2wsIGJvb2wsIGJvb2wsIGJv b2wpOworCistLSB0ZXN0IHN0cmF0bnVtIHN1cHBvcnQgZnVuY3Rpb25zCitTRUxFQ1QgZ2lz dF9zdHJhdG51bV9pZGVudGl0eSgzOjpzbWFsbGludCk7CitTRUxFQ1QgZ2lzdF9zdHJhdG51 bV9pZGVudGl0eSgxODo6c21hbGxpbnQpOwotLSAKMi40Mi4wCgo= --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0002-Add-temporal-PRIMARY-KEY-and-UNIQUE-constraints.patch" Content-Disposition: attachment; filename*0="v39-0002-Add-temporal-PRIMARY-KEY-and-UNIQUE-constraints.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSAwNGMyNDVjYmU3MjA0YTFmNzA5ZmQ5ZjdkYzgwMzFhYzEzYmM0MmI3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMjQgSmFuIDIwMjQgMTU6NDM6NDEgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzOSAyLzhdIEFkZCB0ZW1wb3JhbCBQUklNQVJZIEtFWSBh bmQgVU5JUVVFIGNvbnN0cmFpbnRzCgpBZGQgV0lUSE9VVCBPVkVSTEFQUyBjbGF1c2UgdG8g UFJJTUFSWSBLRVkgYW5kIFVOSVFVRSBjb25zdHJhaW50cy4KVGhlc2UgYXJlIGJhY2tlZCBi eSBHaVNUIGluZGV4ZXMgaW5zdGVhZCBvZiBCLXRyZWUgaW5kZXhlcywgc2luY2UgdGhleQph cmUgZXNzZW50aWFsbHkgZXhjbHVzaW9uIGNvbnN0cmFpbnRzIHdpdGggPSBmb3IgdGhlIHNj YWxhciBwYXJ0cyBvZgp0aGUga2V5IGFuZCAmJiBmb3IgdGhlIHRlbXBvcmFsIHBhcnQuCi0t LQogY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogLi4uL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgIHwg ICA0NCArCiBjb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg fCAgICAxICsKIGNvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwg ICB8ICAgMjUgKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgICAxMCArCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDE0ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAg ICAgICAgICAgfCAgIDQyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5j ICAgICAgICAgICAgfCAgIDI5ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAg ICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAg ICAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0 cmFpbnQuYyAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jICAgICAgICAgICAgICB8ICAxNTkgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0luZGV4aW5nLmMgICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAgICAgICAgIHwgICAgOSArLQogc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgICAyOSArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICAyOCArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgICAgMiArCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgIDE4ICst CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDE2 ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8 ICAgMzYgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICAxMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAg ICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oICAg ICAgICAgICB8ICAgMTAgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oICAgICAg ICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQgICAgIHwgMTI2NCArKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAgMiArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDg2NyArKysrKysrKysr KwogMzMgZmlsZXMgY2hhbmdlZCwgMjU5OCBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dp c3Qvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCgpkaWZm IC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlIGIvY29udHJpYi9idHJlZV9n aXN0L01ha2VmaWxlCmluZGV4IDlhYjg1NDhiYzBlLi43YWMyZGYyNmMxMCAxMDA2NDQKLS0t IGEvY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lz dC9NYWtlZmlsZQpAQCAtNDAsNyArNDAsNyBAQCBQR0ZJTEVERVNDID0gImJ0cmVlX2dpc3Qg LSBCLXRyZWUgZXF1aXZhbGVudCBHaVNUIG9wZXJhdG9yIGNsYXNzZXMiCiBSRUdSRVNTID0g aW5pdCBpbnQyIGludDQgaW50OCBmbG9hdDQgZmxvYXQ4IGNhc2ggb2lkIHRpbWVzdGFtcCB0 aW1lc3RhbXB0eiBcCiAgICAgICAgIHRpbWUgdGltZXR6IGRhdGUgaW50ZXJ2YWwgbWFjYWRk ciBtYWNhZGRyOCBpbmV0IGNpZHIgdGV4dCB2YXJjaGFyIGNoYXIgXAogICAgICAgICBieXRl YSBiaXQgdmFyYml0IG51bWVyaWMgdXVpZCBub3RfZXF1YWwgZW51bSBib29sIHBhcnRpdGlv bnMgXAotICAgICAgICBzdHJhdG51bQorICAgICAgICBzdHJhdG51bSB3aXRob3V0X292ZXJs YXBzCiAKIFNITElCX0xJTksgKz0gJChmaWx0ZXIgLWxtLCAkKExJQlMpKQogCmRpZmYgLS1n aXQgYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg Yi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJlNTJjNTIyZTg5Ci0tLSAv ZGV2L251bGwKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0CkBAIC0wLDAgKzEsNDQgQEAKKy0tIENvcmUgbXVzdCB0ZXN0IFdJVEhPVVQg T1ZFUkxBUFMKKy0tIHdpdGggYW4gaW50NHJhbmdlICsgZGF0ZXJhbmdlLAorLS0gc28gaGVy ZSB3ZSBkbyBzb21lIHNpbXBsZSB0ZXN0cworLS0gdG8gbWFrZSBzdXJlIGludCArIGRhdGVy YW5nZSB3b3JrcyB0b28sCistLSBzaW5jZSB0aGF0IGlzIHRoZSBleHBlY3RlZCB1c2UtY2Fz ZS4KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorICBpZCBpbnRlZ2VyLAorICB2YWxp ZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9y bmcKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ybmciCisgIENvbHVt biAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisg aWQgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlk X2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKK0luZGV4ZXM6Cisg ICAgInRlbXBvcmFsX3JuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsnOworICAgICAg ICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5k ZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3Jh bF9ybmdfcGsgT04gdGVtcG9yYWxfcm5nIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygx IHJvdykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUworICAoMSwgJ1syMDAw LTAxLTAxLDIwMDEtMDEtMDEpJyk7CistLSBzYW1lIGtleSwgZG9lc24ndCBvdmVybGFwOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUworICAoMSwgJ1syMDAxLTAxLTAxLDIw MDItMDEtMDEpJyk7CistLSBvdmVybGFwcyBidXQgZGlmZmVyZW50IGtleToKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDIsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAx KScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVT CisgICgxLCAnWzIwMDAtMDYtMDEsMjAwMS0wMS0wMSknKTsKK0VSUk9SOiAgY29uZmxpY3Rp bmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9y bmdfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KDEsIFswNi0wMS0yMDAwLDAx LTAxLTIwMDEpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9 KDEsIFswMS0wMS0yMDAwLDAxLTAxLTIwMDEpKS4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRy ZWVfZ2lzdC9tZXNvbi5idWlsZCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9tZXNvbi5idWlsZApp bmRleCBhNDRjZTkwNWU1OS4uNzNiMWJiZjUyYTYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRy ZWVfZ2lzdC9tZXNvbi5idWlsZAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVp bGQKQEAgLTkxLDYgKzkxLDcgQEAgdGVzdHMgKz0gewogICAgICAgJ2Jvb2wnLAogICAgICAg J3BhcnRpdGlvbnMnLAogICAgICAgJ3N0cmF0bnVtJywKKyAgICAgICd3aXRob3V0X292ZXJs YXBzJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0 L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjQzM2M2MDlhYjIyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9idHJlZV9naXN0 L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMCwwICsxLDI1IEBACistLSBDb3JlIG11 c3QgdGVzdCBXSVRIT1VUIE9WRVJMQVBTCistLSB3aXRoIGFuIGludDRyYW5nZSArIGRhdGVy YW5nZSwKKy0tIHNvIGhlcmUgd2UgZG8gc29tZSBzaW1wbGUgdGVzdHMKKy0tIHRvIG1ha2Ug c3VyZSBpbnQgKyBkYXRlcmFuZ2Ugd29ya3MgdG9vLAorLS0gc2luY2UgdGhhdCBpcyB0aGUg ZXhwZWN0ZWQgdXNlLWNhc2UuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAgaWQg aW50ZWdlciwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworXGQgdGVtcG9yYWxfcm5nCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBG Uk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsnOwor U0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nX3BrJzsKKworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIFZBTFVFUworICAoMSwgJ1syMDAwLTAxLTAxLDIwMDEtMDEtMDEp Jyk7CistLSBzYW1lIGtleSwgZG9lc24ndCBvdmVybGFwOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIFZBTFVFUworICAoMSwgJ1syMDAxLTAxLTAxLDIwMDItMDEtMDEpJyk7CistLSBv dmVybGFwcyBidXQgZGlmZmVyZW50IGtleToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBW QUxVRVMKKyAgKDIsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKScpOworLS0gc2hvdWxkIGZh aWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTCisgICgxLCAnWzIwMDAtMDYt MDEsMjAwMS0wMS0wMSknKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYjY1NGZhZTFiMmYuLjFl NTZlZGFhNzBiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMjczMCw2ICsyNzMwLDE2IEBAIFND UkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBs YWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmNvbnBlcmlvZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGNvbnN0cmFpbnQgaXMgZGVm aW5lZCB3aXRoIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+CisgICAgICAg KGZvciBwcmltYXJ5IGtleXMgYW5kIHVuaXF1ZSBjb25zdHJhaW50cykuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmNvbmtleTwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDJbXTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwgYi9kb2Mv c3JjL3NnbWwvZ2lzdC5zZ21sCmluZGV4IGY3ODk4MjRjODNiLi5kY2Y5NDMzZmE3OCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2lz dC5zZ21sCkBAIC0yOTIsNyArMjkyLDggQEAgQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVT SU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3BzKTsKICAgIFRoZSBvcHRpb25hbCB0 d2VsZnRoIG1ldGhvZCA8ZnVuY3Rpb24+c3RyYXRudW08L2Z1bmN0aW9uPiBpcyB1c2VkIHRv CiAgICB0cmFuc2xhdGUgd2VsbC1rbm93biA8bGl0ZXJhbD5SVCpTdHJhdGVneU51bWJlcjwv bGl0ZXJhbD5zIChmcm9tCiAgICA8ZmlsZW5hbWU+c3JjL2luY2x1ZGUvYWNjZXNzL3N0cmF0 bnVtLmg8L2ZpbGVuYW1lPikgaW50byBzdHJhdGVneSBudW1iZXJzCi0gICB1c2VkIGJ5IHRo ZSBvcGVyYXRvciBjbGFzcy4KKyAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzLiAgVGhp cyBsZXRzIHRoZSBjb3JlIGNvZGUgbG9vayB1cCBvcGVyYXRvcnMgZm9yCisgICB0ZW1wb3Jh bCBjb25zdHJhaW50IGluZGV4ZXMuCiAgPC9wYXJhPgogCiAgPHZhcmlhYmxlbGlzdD4KQEAg LTExNzksNiArMTE4MCwxNyBAQCBteV9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQog ICAgICAgIG9wZXJhdG9yIGNsYXNzIGhhcyBubyBtYXRjaGluZyBzdHJhdGVneS4KICAgICAg IDwvcGFyYT4KIAorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1w b3JhbCBpbmRleCBjb25zdHJhaW50cyAoaS5lLiwgPGxpdGVyYWw+UFJJTUFSWQorICAgICAg IEtFWTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlVOSVFVRTwvbGl0ZXJhbD4pLiAgSWYgdGhl IG9wZXJhdG9yIGNsYXNzCisgICAgICAgcHJvdmlkZXMgdGhpcyBmdW5jdGlvbiBhbmQgaXQg cmV0dXJucyByZXN1bHRzIGZvcgorICAgICAgIDxsaXRlcmFsPlJURXF1YWxTdHJhdGVneU51 bWJlcjwvbGl0ZXJhbD4sIGl0IGNhbiBiZSB1c2VkIGluIHRoZQorICAgICAgIG5vbi08bGl0 ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRlcmFsPiBwYXJ0KHMpIG9mIGFuIGluZGV4IGNv bnN0cmFpbnQuCisgICAgICAgSWYgaXQgcmV0dXJucyByZXN1bHRzIGZvciA8bGl0ZXJhbD5S VE92ZXJsYXBTdHJhdGVneU51bWJlcjwvbGl0ZXJhbD4sCisgICAgICAgdGhlIG9wZXJhdG9y IGNsYXNzIGNhbiBiZSB1c2VkIGluIHRoZSA8bGl0ZXJhbD5XSVRIT1VUCisgICAgICAgT1ZF UkxBUFM8L2xpdGVyYWw+IHBhcnQgb2YgYW4gaW5kZXggY29uc3RyYWludC4KKyAgICAgIDwv cGFyYT4KKwogICAgICAgPHBhcmE+CiAgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255 bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlCiAgICAgICAg dGhpczoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDkzYjNmNjY0ZjIx Li44ZjVjNzJhNDE5MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFi bGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC03 Nyw4ICs3Nyw4IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8 IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiAKIFsgQ09OU1RSQUlO VCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBs YWNlYWJsZT4gXQogeyBDSEVDSyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVSSVQgXSB8Ci0gIFVOSVFVRSBb IE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8Ci0g IFBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKKyAgVU5JUVVFIFsgTlVM TFMgWyBOT1QgXSBESVNUSU5DVCBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVS TEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRl cnM8L3JlcGxhY2VhYmxlPiB8CisgIFBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4g V0lUSE9VVCBPVkVSTEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmlu ZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CiAgIEVYQ0xVREUgWyBVU0lORyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4g XSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNsdWRlX2VsZW1lbnQ8L3Jl cGxhY2VhYmxlPiBXSVRIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRv cjwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiBbIFdIRVJFICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByZWRpY2F0ZTwvcmVwbGFjZWFibGU+ICkgXSB8CiAg IEZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0g KSBdCiAgICAgWyBNQVRDSCBGVUxMIHwgTUFUQ0ggUEFSVElBTCB8IE1BVENIIFNJTVBMRSBd IFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZQpAQCAtOTY0LDcgKzk2NCw3IEBAIFdJVEggKCBN T0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8 L3JlcGxhY2VhYmxlPiwgUkVNCiAKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0 YWJsZS1wYXJtcy11bmlxdWUiPgogICAgIDx0ZXJtPjxsaXRlcmFsPlVOSVFVRSBbIE5VTExT IFsgTk9UIF0gRElTVElOQ1QgXTwvbGl0ZXJhbD4gKGNvbHVtbiBjb25zdHJhaW50KTwvdGVy bT4KLSAgICA8dGVybT48bGl0ZXJhbD5VTklRVUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNU IF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPgorICAgIDx0ZXJtPjxsaXRlcmFsPlVOSVFV RSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhP VVQgT1ZFUkxBUFMgXSApPC9saXRlcmFsPgogICAgIDxvcHRpb25hbD4gPGxpdGVyYWw+SU5D TFVERSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLl0pPC9saXRlcmFsPiA8L29wdGlvbmFsPiAodGFibGUgY29uc3Ry YWludCk8L3Rlcm0+CiAKICAgICA8bGlzdGl0ZW0+CkBAIC05NzgsNiArOTc4LDMwIEBAIFdJ VEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xp dGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICBvZiB0aGVzZSBjb2x1bW5zLgogICAg ICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgPGxpdGVyYWw+V0lUSE9V VCBPVkVSTEFQUzwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNwZWNpZmllZCBmb3IgdGhlCisgICAg ICBsYXN0IGNvbHVtbiwgdGhlbiB0aGF0IGNvbHVtbiBpcyBjaGVja2VkIGZvciBvdmVybGFw cyBpbnN0ZWFkIG9mCisgICAgICBlcXVhbGl0eS4gIEluIHRoYXQgY2FzZSwgdGhlIG90aGVy IGNvbHVtbnMgb2YgdGhlIGNvbnN0cmFpbnQgd2lsbCBhbGxvdworICAgICAgZHVwbGljYXRl cyBzbyBsb25nIGFzIHRoZSBkdXBsaWNhdGVzIGRvbid0IG92ZXJsYXAgaW4gdGhlCisgICAg ICA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRlcmFsPiBjb2x1bW4uICAoVGhpcyBp cyBzb21ldGltZXMgY2FsbGVkIGEKKyAgICAgIHRlbXBvcmFsIGtleSwgaWYgdGhlIGNvbHVt biBpcyBhIHJhbmdlIG9mIGRhdGVzIG9yIHRpbWVzdGFtcHMsIGJ1dAorICAgICAgPHByb2R1 Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBhbGxvd3MgcmFuZ2VzIG92ZXIgYW55 IGJhc2UgdHlwZS4pCisgICAgICBJbiBlZmZlY3QsIHN1Y2ggYSBjb25zdHJhaW50IGlzIGVu Zm9yY2VkIHdpdGggYW4gPGxpdGVyYWw+RVhDTFVERTwvbGl0ZXJhbD4KKyAgICAgIGNvbnN0 cmFpbnQgcmF0aGVyIHRoYW4gYSA8bGl0ZXJhbD5VTklRVUU8L2xpdGVyYWw+IGNvbnN0cmFp bnQuICBTbyBmb3IKKyAgICAgIGV4YW1wbGUgPGxpdGVyYWw+VU5JUVVFIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk8L2xpdGVyYWw+IGJlaGF2ZXMKKyAgICAgIGxpa2UgPGxp dGVyYWw+RVhDTFVERSBVU0lORyBHSVNUIChpZCBXSVRIID0sIHZhbGlkX2F0IFdJVEgKKyAg ICAgICZhbXA7JmFtcDspPC9saXRlcmFsPi4gIFRoZSA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJM QVBTPC9saXRlcmFsPiBjb2x1bW4KKyAgICAgIG11c3QgaGF2ZSBhIHJhbmdlIG9yIG11bHRp cmFuZ2UgdHlwZS4gIChUZWNobmljYWxseSwgYW55IHR5cGUgaXMgYWxsb3dlZAorICAgICAg d2hvc2UgZGVmYXVsdCBHaVNUIG9wY2xhc3MgaW5jbHVkZXMgYW4gb3ZlcmxhcHMgb3BlcmF0 b3IuICBTZWUgdGhlCisgICAgICA8bGl0ZXJhbD5zdHJhdG51bTwvbGl0ZXJhbD4gc3VwcG9y dCBmdW5jdGlvbiB1bmRlciA8eHJlZgorICAgICAgbGlua2VuZD0iZ2lzdC1leHRlbnNpYmls aXR5Ii8+IGZvciBkZXRhaWxzLikgIFRoZSBub24tPGxpdGVyYWw+V0lUSE9VVAorICAgICAg T1ZFUkxBUFM8L2xpdGVyYWw+IGNvbHVtbnMgb2YgdGhlIGNvbnN0cmFpbnQgY2FuIGJlIGFu eSB0eXBlIHRoYXQgY2FuIGJlCisgICAgICBjb21wYXJlZCBmb3IgZXF1YWxpdHkgaW4gYSBH aVNUIGluZGV4LiAgQnkgZGVmYXVsdCwgb25seSByYW5nZSB0eXBlcyBhcmUKKyAgICAgIHN1 cHBvcnRlZCwgYnV0IHlvdSBjYW4gdXNlIG90aGVyIHR5cGVzIGJ5IGFkZGluZyB0aGUgPHhy ZWYKKyAgICAgIGxpbmtlbmQ9ImJ0cmVlLWdpc3QiLz4gZXh0ZW5zaW9uICh3aGljaCBpcyB0 aGUgZXhwZWN0ZWQgd2F5IHRvIHVzZSB0aGlzCisgICAgICBmZWF0dXJlKS4KKyAgICAgPC9w YXJhPgorCiAgICAgIDxwYXJhPgogICAgICAgRm9yIHRoZSBwdXJwb3NlIG9mIGEgdW5pcXVl IGNvbnN0cmFpbnQsIG51bGwgdmFsdWVzIGFyZSBub3QKICAgICAgIGNvbnNpZGVyZWQgZXF1 YWwsIHVubGVzcyA8bGl0ZXJhbD5OVUxMUyBOT1QgRElTVElOQ1Q8L2xpdGVyYWw+IGlzCkBA IC0xMDAwLDggKzEwMjQsMTAgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KIAogICAg ICA8cGFyYT4KICAgICAgIEFkZGluZyBhIHVuaXF1ZSBjb25zdHJhaW50IHdpbGwgYXV0b21h dGljYWxseSBjcmVhdGUgYSB1bmlxdWUgYnRyZWUKLSAgICAgIGluZGV4IG9uIHRoZSBjb2x1 bW4gb3IgZ3JvdXAgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBjb25zdHJhaW50LiAgVGhlCi0g ICAgICBjcmVhdGVkIGluZGV4IGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSB1bmlxdWUgY29u c3RyYWludC4KKyAgICAgIGluZGV4IG9uIHRoZSBjb2x1bW4gb3IgZ3JvdXAgb2YgY29sdW1u cyB1c2VkIGluIHRoZSBjb25zdHJhaW50LiAgQnV0IGlmCisgICAgICB0aGUgY29uc3RyYWlu dCBpbmNsdWRlcyBhIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+IGNsYXVz ZSwgaXQKKyAgICAgIHdpbGwgdXNlIGEgR2lTVCBpbmRleC4gIFRoZSBjcmVhdGVkIGluZGV4 IGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZQorICAgICAgdW5pcXVlIGNvbnN0cmFpbnQuCiAg ICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTEwMTksNyArMTA0NSw3IEBAIFdJVEgg KCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVy YWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVh dGV0YWJsZS1wYXJtcy1wcmltYXJ5LWtleSI+CiAgICAgPHRlcm0+PGxpdGVyYWw+UFJJTUFS WSBLRVk8L2xpdGVyYWw+IChjb2x1bW4gY29uc3RyYWludCk8L3Rlcm0+Ci0gICAgPHRlcm0+ PGxpdGVyYWw+UFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPgorICAgIDx0 ZXJtPjxsaXRlcmFsPlBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBP VkVSTEFQUyBdICk8L2xpdGVyYWw+CiAgICAgPG9wdGlvbmFsPiA8bGl0ZXJhbD5JTkNMVURF ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNl YWJsZT4gWywgLi4uXSk8L2xpdGVyYWw+IDwvb3B0aW9uYWw+ICh0YWJsZSBjb25zdHJhaW50 KTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgpAQCAtMTA1NCw4ICsxMDgw LDggQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51 bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgPHBhcmE+CiAgICAgICBB ZGRpbmcgYSA8bGl0ZXJhbD5QUklNQVJZIEtFWTwvbGl0ZXJhbD4gY29uc3RyYWludCB3aWxs IGF1dG9tYXRpY2FsbHkKICAgICAgIGNyZWF0ZSBhIHVuaXF1ZSBidHJlZSBpbmRleCBvbiB0 aGUgY29sdW1uIG9yIGdyb3VwIG9mIGNvbHVtbnMgdXNlZCBpbgotICAgICAgdGhlIGNvbnN0 cmFpbnQuICBUaGF0IGluZGV4IGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBwcmltYXJ5IGtl eQotICAgICAgY29uc3RyYWludC4KKyAgICAgIHRoZSBjb25zdHJhaW50LCBvciBHaVNUIGlm IDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+IHdhcworICAgICAgc3BlY2lm aWVkLgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHV0aWwuYwppbmRleCA4Njg2NzM1ZjIzNC4uZDJkMGIzNmQ0ZWEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtMTA2OSwzICsxMDY5LDMyIEBAIGdpc3Rfc3Ry YXRudW1faWRlbnRpdHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9VSU5UMTYo c3RyYXQpOwogfQorCisvKgorICogUmV0dXJucyB0aGUgb3BjbGFzcydzIHByaXZhdGUgc3Ry YXRudW0gdXNlZCBmb3IgdGhlIGdpdmVuIHN0cmF0ZWd5LgorICoKKyAqIENhbGxzIHRoZSBv cGNsYXNzJ3MgR0lTVF9TVFJBVE5VTV9QUk9DIHN1cHBvcnQgZnVuY3Rpb24sIGlmIGFueSwK KyAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuCisgKiBSZXR1cm5zIEludmFsaWRTdHJhdGVn eSBpZiB0aGUgZnVuY3Rpb24gaXMgbm90IGRlZmluZWQuCisgKi8KK1N0cmF0ZWd5TnVtYmVy CitHaXN0VHJhbnNsYXRlU3RyYXRudW0oT2lkIG9wY2xhc3MsIFN0cmF0ZWd5TnVtYmVyIHN0 cmF0KQoreworCU9pZAkJCW9wZmFtaWx5OworCU9pZAkJCW9wY2ludHlwZTsKKwlPaWQJCQlm dW5jaWQ7CisJRGF0dW0JCXJlc3VsdDsKKworCS8qIExvb2sgdXAgdGhlIG9wY2xhc3MgZmFt aWx5IGFuZCBpbnB1dCBkYXRhdHlwZS4gKi8KKwlpZiAoIWdldF9vcGNsYXNzX29wZmFtaWx5 X2FuZF9pbnB1dF90eXBlKG9wY2xhc3MsICZvcGZhbWlseSwgJm9wY2ludHlwZSkpCisJCXJl dHVybiBJbnZhbGlkU3RyYXRlZ3k7CisKKwkvKiBDaGVjayB3aGV0aGVyIHRoZSBmdW5jdGlv biBpcyBwcm92aWRlZC4gKi8KKwlmdW5jaWQgPSBnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWls eSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfU1RSQVROVU1fUFJPQyk7CisJaWYgKCFP aWRJc1ZhbGlkKGZ1bmNpZCkpCisJCXJldHVybiBJbnZhbGlkU3RyYXRlZ3k7CisKKwkvKiBB c2sgdGhlIHRyYW5zbGF0aW9uIGZ1bmN0aW9uICovCisJcmVzdWx0ID0gT2lkRnVuY3Rpb25D YWxsMUNvbGwoZnVuY2lkLCBJbnZhbGlkT2lkLCBVSW50MTZHZXREYXR1bShzdHJhdCkpOwor CXJldHVybiBEYXR1bUdldFVJbnQxNihyZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRl eCAwMWI0M2NjNmE4NC4uNzhlNTkzODRkMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0yMTYz LDYgKzIxNjMsNyBAQCBTdG9yZVJlbENoZWNrKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq Y2NuYW1lLCBOb2RlICpleHByLAogCQkJCQkJCSAgaXNfbG9jYWwsIC8qIGNvbmlzbG9jYWwg Ki8KIAkJCQkJCQkgIGluaGNvdW50LCAvKiBjb25pbmhjb3VudCAqLwogCQkJCQkJCSAgaXNf bm9faW5oZXJpdCwJLyogY29ubm9pbmhlcml0ICovCisJCQkJCQkJICBmYWxzZSwJLyogY29u cGVyaW9kICovCiAJCQkJCQkJICBpc19pbnRlcm5hbCk7IC8qIGludGVybmFsbHkgY29uc3Ry dWN0ZWQ/ICovCiAKIAlwZnJlZShjY2Jpbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggYTgx OWI0MTk3Y2UuLjVjNDhlNTcyOGU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0xODc0LDYg KzE4NzQsNyBAQCBpbmRleF9jb25jdXJyZW50bHlfc2V0X2RlYWQoT2lkIGhlYXBJZCwgT2lk IGluZGV4SWQpCiAgKgkJSU5ERVhfQ09OU1RSX0NSRUFURV9VUERBVEVfSU5ERVg6IHVwZGF0 ZSB0aGUgcGdfaW5kZXggcm93CiAgKgkJSU5ERVhfQ09OU1RSX0NSRUFURV9SRU1PVkVfT0xE X0RFUFM6IHJlbW92ZSBleGlzdGluZyBkZXBlbmRlbmNpZXMKICAqCQkJb2YgaW5kZXggb24g dGFibGUncyBjb2x1bW5zCisgKgkJSU5ERVhfQ09OU1RSX0NSRUFURV9XSVRIT1VUX09WRVJM QVBTOiBjb25zdHJhaW50IHVzZXMgV0lUSE9VVCBPVkVSTEFQUwogICogYWxsb3dfc3lzdGVt X3RhYmxlX21vZHM6IGFsbG93IHRhYmxlIHRvIGJlIGEgc3lzdGVtIGNhdGFsb2cKICAqIGlz X2ludGVybmFsOiBpbmRleCBpcyBjb25zdHJ1Y3RlZCBkdWUgdG8gaW50ZXJuYWwgcHJvY2Vz cwogICovCkBAIC0xODk3LDExICsxODk4LDEzIEBAIGluZGV4X2NvbnN0cmFpbnRfY3JlYXRl KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAlib29sCQltYXJrX2FzX3ByaW1hcnk7CiAJYm9v bAkJaXNsb2NhbDsKIAlib29sCQlub2luaGVyaXQ7CisJYm9vbAkJaXNfd2l0aG91dF9vdmVy bGFwczsKIAlpbnQJCQlpbmhjb3VudDsKIAogCWRlZmVycmFibGUgPSAoY29uc3RyX2ZsYWdz ICYgSU5ERVhfQ09OU1RSX0NSRUFURV9ERUZFUlJBQkxFKSAhPSAwOwogCWluaXRkZWZlcnJl ZCA9IChjb25zdHJfZmxhZ3MgJiBJTkRFWF9DT05TVFJfQ1JFQVRFX0lOSVRfREVGRVJSRUQp ICE9IDA7CiAJbWFya19hc19wcmltYXJ5ID0gKGNvbnN0cl9mbGFncyAmIElOREVYX0NPTlNU Ul9DUkVBVEVfTUFSS19BU19QUklNQVJZKSAhPSAwOworCWlzX3dpdGhvdXRfb3ZlcmxhcHMg PSAoY29uc3RyX2ZsYWdzICYgSU5ERVhfQ09OU1RSX0NSRUFURV9XSVRIT1VUX09WRVJMQVBT KSAhPSAwOwogCiAJLyogY29uc3RyYWludCBjcmVhdGlvbiBzdXBwb3J0IGRvZXNuJ3Qgd29y ayB3aGlsZSBib290c3RyYXBwaW5nICovCiAJQXNzZXJ0KCFJc0Jvb3RzdHJhcFByb2Nlc3Np bmdNb2RlKCkpOwpAQCAtMTk3OCw2ICsxOTgxLDcgQEAgaW5kZXhfY29uc3RyYWludF9jcmVh dGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkgICBpc2xvY2FsLAogCQkJCQkJ CQkgICBpbmhjb3VudCwKIAkJCQkJCQkJICAgbm9pbmhlcml0LAorCQkJCQkJCQkgICBpc193 aXRob3V0X292ZXJsYXBzLAogCQkJCQkJCQkgICBpc19pbnRlcm5hbCk7CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYwppbmRleCAzYmFmOTIzMWVkMC4uOWJlMDUw Y2NlZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCkBAIC03NSw2ICs3 NSw3IEBAIENyZWF0ZUNvbnN0cmFpbnRFbnRyeShjb25zdCBjaGFyICpjb25zdHJhaW50TmFt ZSwKIAkJCQkJICBib29sIGNvbklzTG9jYWwsCiAJCQkJCSAgaW50IGNvbkluaENvdW50LAog CQkJCQkgIGJvb2wgY29uTm9Jbmhlcml0LAorCQkJCQkgIGJvb2wgY29uUGVyaW9kLAogCQkJ CQkgIGJvb2wgaXNfaW50ZXJuYWwpCiB7CiAJUmVsYXRpb24JY29uRGVzYzsKQEAgLTE5MCw2 ICsxOTEsNyBAQCBDcmVhdGVDb25zdHJhaW50RW50cnkoY29uc3QgY2hhciAqY29uc3RyYWlu dE5hbWUsCiAJdmFsdWVzW0FudW1fcGdfY29uc3RyYWludF9jb25pc2xvY2FsIC0gMV0gPSBC b29sR2V0RGF0dW0oY29uSXNMb2NhbCk7CiAJdmFsdWVzW0FudW1fcGdfY29uc3RyYWludF9j b25pbmhjb3VudCAtIDFdID0gSW50MTZHZXREYXR1bShjb25JbmhDb3VudCk7CiAJdmFsdWVz W0FudW1fcGdfY29uc3RyYWludF9jb25ub2luaGVyaXQgLSAxXSA9IEJvb2xHZXREYXR1bShj b25Ob0luaGVyaXQpOworCXZhbHVlc1tBbnVtX3BnX2NvbnN0cmFpbnRfY29ucGVyaW9kIC0g MV0gPSBCb29sR2V0RGF0dW0oY29uUGVyaW9kKTsKIAogCWlmIChjb25rZXlBcnJheSkKIAkJ dmFsdWVzW0FudW1fcGdfY29uc3RyYWludF9jb25rZXkgLSAxXSA9IFBvaW50ZXJHZXREYXR1 bShjb25rZXlBcnJheSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRl eGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IGM1YTU2 Yzc1ZjY5Li40ZDRkZDBmNjFlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv aW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAg LTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNj ZXNzL2FtYXBpLmgiCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJhY2Nl c3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1 ZGUgImFjY2Vzcy9yZWxvcHRpb25zLmgiCkBAIC04Nyw2ICs4OCw3IEBAIHN0YXRpYyB2b2lk IENvbXB1dGVJbmRleEF0dHJzKEluZGV4SW5mbyAqaW5kZXhJbmZvLAogCQkJCQkJCSAgT2lk IGFjY2Vzc01ldGhvZElkLAogCQkJCQkJCSAgYm9vbCBhbWNhbm9yZGVyLAogCQkJCQkJCSAg Ym9vbCBpc2NvbnN0cmFpbnQsCisJCQkJCQkJICBib29sIGlzd2l0aG91dG92ZXJsYXBzLAog CQkJCQkJCSAgT2lkIGRkbF91c2VyaWQsCiAJCQkJCQkJICBpbnQgZGRsX3NlY19jb250ZXh0 LAogCQkJCQkJCSAgaW50ICpkZGxfc2F2ZV9uZXN0bGV2ZWwpOwpAQCAtMTQ1LDYgKzE0Nyw3 IEBAIHR5cGVkZWYgc3RydWN0IFJlaW5kZXhFcnJvckluZm8KICAqCQl0byBpbmRleCBvbi4K ICAqICdleGNsdXNpb25PcE5hbWVzJzogbGlzdCBvZiBuYW1lcyBvZiBleGNsdXNpb24tY29u c3RyYWludCBvcGVyYXRvcnMsCiAgKgkJb3IgTklMIGlmIG5vdCBhbiBleGNsdXNpb24gY29u c3RyYWludC4KKyAqICdpc1dpdGhvdXRPdmVybGFwcyc6IHRydWUgaWZmIHRoaXMgaW5kZXgg aGFzIGEgV0lUSE9VVCBPVkVSTEFQUyBjbGF1c2UuCiAgKgogICogVGhpcyBpcyB0YWlsb3Jl ZCB0byB0aGUgbmVlZHMgb2YgQUxURVIgVEFCTEUgQUxURVIgVFlQRSwgd2hpY2ggcmVjcmVh dGVzCiAgKiBhbnkgaW5kZXhlcyB0aGF0IGRlcGVuZGVkIG9uIGEgY2hhbmdpbmcgY29sdW1u IGZyb20gdGhlaXIgcGdfZ2V0X2luZGV4ZGVmCkBAIC0xNzQsNyArMTc3LDggQEAgYm9vbAog Q2hlY2tJbmRleENvbXBhdGlibGUoT2lkIG9sZElkLAogCQkJCQkgY29uc3QgY2hhciAqYWNj ZXNzTWV0aG9kTmFtZSwKIAkJCQkJIGNvbnN0IExpc3QgKmF0dHJpYnV0ZUxpc3QsCi0JCQkJ CSBjb25zdCBMaXN0ICpleGNsdXNpb25PcE5hbWVzKQorCQkJCQkgY29uc3QgTGlzdCAqZXhj bHVzaW9uT3BOYW1lcywKKwkJCQkJIGJvb2wgaXNXaXRob3V0T3ZlcmxhcHMpCiB7CiAJYm9v bAkJaXNjb25zdHJhaW50OwogCU9pZAkJICAgKnR5cGVJZHM7CkBAIC0yNDksOCArMjUzLDgg QEAgQ2hlY2tJbmRleENvbXBhdGlibGUoT2lkIG9sZElkLAogCQkJCQkgIGNvbG9wdGlvbnMs IGF0dHJpYnV0ZUxpc3QsCiAJCQkJCSAgZXhjbHVzaW9uT3BOYW1lcywgcmVsYXRpb25JZCwK IAkJCQkJICBhY2Nlc3NNZXRob2ROYW1lLCBhY2Nlc3NNZXRob2RJZCwKLQkJCQkJICBhbWNh bm9yZGVyLCBpc2NvbnN0cmFpbnQsIEludmFsaWRPaWQsIDAsIE5VTEwpOwotCisJCQkJCSAg YW1jYW5vcmRlciwgaXNjb25zdHJhaW50LCBpc1dpdGhvdXRPdmVybGFwcywgSW52YWxpZE9p ZCwKKwkJCQkJICAwLCBOVUxMKTsKIAogCS8qIEdldCB0aGUgc29vbi1vYnNvbGV0ZSBwZ19p bmRleCB0dXBsZS4gKi8KIAl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShJTkRFWFJFTElELCBP YmplY3RJZEdldERhdHVtKG9sZElkKSk7CkBAIC01NjAsNiArNTY0LDcgQEAgRGVmaW5lSW5k ZXgoT2lkIHRhYmxlSWQsCiAJYm9vbAkJYW1jYW5vcmRlcjsKIAlib29sCQlhbWlzc3VtbWFy aXppbmc7CiAJYW1vcHRpb25zX2Z1bmN0aW9uIGFtb3B0aW9uczsKKwlib29sCQlleGNsdXNp b247CiAJYm9vbAkJcGFydGl0aW9uZWQ7CiAJYm9vbAkJc2FmZV9pbmRleDsKIAlEYXR1bQkJ cmVsb3B0aW9uczsKQEAgLTY4MCw2ICs2ODUsMTIgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxl SWQsCiAKIAluYW1lc3BhY2VJZCA9IFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCk7CiAKKwkv KgorCSAqIEl0IGhhcyBleGNsdXNpb24gY29uc3RyYWludCBiZWhhdmlvciBpZiBpdCdzIGFu IEVYQ0xVREUgY29uc3RyYWludCBvciBhCisJICogdGVtcG9yYWwgUFJJTUFSWSBLRVkvVU5J UVVFIGNvbnN0cmFpbnQKKwkgKi8KKwlleGNsdXNpb24gPSBzdG10LT5leGNsdWRlT3BOYW1l cyB8fCBzdG10LT5pc3dpdGhvdXRvdmVybGFwczsKKwogCS8qIEVuc3VyZSB0aGF0IGl0IG1h a2VzIHNlbnNlIHRvIGluZGV4IHRoaXMga2luZCBvZiByZWxhdGlvbiAqLwogCXN3aXRjaCAo cmVsLT5yZF9yZWwtPnJlbGtpbmQpCiAJewpAQCAtODQ4LDcgKzg1OSw3IEBAIERlZmluZUlu ZGV4KE9pZCB0YWJsZUlkLAogCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JF U1NfQ1JFQVRFSURYX0FDQ0VTU19NRVRIT0RfT0lELAogCQkJCQkJCQkgYWNjZXNzTWV0aG9k SWQpOwogCi0JaWYgKHN0bXQtPnVuaXF1ZSAmJiAhYW1Sb3V0aW5lLT5hbWNhbnVuaXF1ZSkK KwlpZiAoc3RtdC0+dW5pcXVlICYmICFzdG10LT5pc3dpdGhvdXRvdmVybGFwcyAmJiAhYW1S b3V0aW5lLT5hbWNhbnVuaXF1ZSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiYWNjZXNzIG1l dGhvZCBcIiVzXCIgZG9lcyBub3Qgc3VwcG9ydCB1bmlxdWUgaW5kZXhlcyIsCkBAIC04NjMs MTEgKzg3NCwxNiBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiYWNjZXNzIG1l dGhvZCBcIiVzXCIgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aWNvbHVtbiBpbmRleGVzIiwKIAkJ CQkJCWFjY2Vzc01ldGhvZE5hbWUpKSk7Ci0JaWYgKHN0bXQtPmV4Y2x1ZGVPcE5hbWVzICYm IGFtUm91dGluZS0+YW1nZXR0dXBsZSA9PSBOVUxMKQorCWlmIChleGNsdXNpb24gJiYgYW1S b3V0aW5lLT5hbWdldHR1cGxlID09IE5VTEwpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImFj Y2VzcyBtZXRob2QgXCIlc1wiIGRvZXMgbm90IHN1cHBvcnQgZXhjbHVzaW9uIGNvbnN0cmFp bnRzIiwKIAkJCQkJCWFjY2Vzc01ldGhvZE5hbWUpKSk7CisJaWYgKHN0bXQtPmlzd2l0aG91 dG92ZXJsYXBzICYmIHN0cmNtcChhY2Nlc3NNZXRob2ROYW1lLCAiZ2lzdCIpICE9IDApCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCSBlcnJtc2coImFjY2VzcyBtZXRob2QgXCIlc1wiIGRvZXMgbm90IHN1 cHBvcnQgV0lUSE9VVCBPVkVSTEFQUyBjb25zdHJhaW50cyIsCisJCQkJCQlhY2Nlc3NNZXRo b2ROYW1lKSkpOwogCiAJYW1jYW5vcmRlciA9IGFtUm91dGluZS0+YW1jYW5vcmRlcjsKIAlh bW9wdGlvbnMgPSBhbVJvdXRpbmUtPmFtb3B0aW9uczsKQEAgLTkxNiw4ICs5MzIsOSBAQCBE ZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJICBjb2xvcHRpb25zLCBhbGxJbmRleFBh cmFtcywKIAkJCQkJICBzdG10LT5leGNsdWRlT3BOYW1lcywgdGFibGVJZCwKIAkJCQkJICBh Y2Nlc3NNZXRob2ROYW1lLCBhY2Nlc3NNZXRob2RJZCwKLQkJCQkJICBhbWNhbm9yZGVyLCBz dG10LT5pc2NvbnN0cmFpbnQsIHJvb3Rfc2F2ZV91c2VyaWQsCi0JCQkJCSAgcm9vdF9zYXZl X3NlY19jb250ZXh0LCAmcm9vdF9zYXZlX25lc3RsZXZlbCk7CisJCQkJCSAgYW1jYW5vcmRl ciwgc3RtdC0+aXNjb25zdHJhaW50LCBzdG10LT5pc3dpdGhvdXRvdmVybGFwcywKKwkJCQkJ ICByb290X3NhdmVfdXNlcmlkLCByb290X3NhdmVfc2VjX2NvbnRleHQsCisJCQkJCSAgJnJv b3Rfc2F2ZV9uZXN0bGV2ZWwpOwogCiAJLyoKIAkgKiBFeHRyYSBjaGVja3Mgd2hlbiBjcmVh dGluZyBhIFBSSU1BUlkgS0VZIGluZGV4LgpAQCAtOTM1LDcgKzk1Miw3IEBAIERlZmluZUlu ZGV4KE9pZCB0YWJsZUlkLAogCSAqIFdlIGNvdWxkIGxpZnQgdGhpcyBsaW1pdGF0aW9uIGlm IHdlIGhhZCBnbG9iYWwgaW5kZXhlcywgYnV0IHRob3NlIGhhdmUKIAkgKiB0aGVpciBvd24g cHJvYmxlbXMsIHNvIHRoaXMgaXMgYSB1c2VmdWwgZmVhdHVyZSBjb21iaW5hdGlvbi4KIAkg Ki8KLQlpZiAocGFydGl0aW9uZWQgJiYgKHN0bXQtPnVuaXF1ZSB8fCBzdG10LT5leGNsdWRl T3BOYW1lcykpCisJaWYgKHBhcnRpdGlvbmVkICYmIChzdG10LT51bmlxdWUgfHwgZXhjbHVz aW9uKSkKIAl7CiAJCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktl eShyZWwpOwogCQljb25zdCBjaGFyICpjb25zdHJhaW50X3R5cGU7CkBAIC05ODksMTAgKzEw MDYsMTAgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCQkgKiBhc3NvY2lhdGVkIHdp dGggaW5kZXggY29sdW1ucywgdG9vLiAgV2Uga25vdyB3aGF0IHRvIGRvIHdpdGgKIAkJCSAq IGJ0cmVlIG9wY2xhc3NlczsgaWYgdGhlcmUgYXJlIGV2ZXIgYW55IG90aGVyIGluZGV4IHR5 cGVzIHRoYXQKIAkJCSAqIHN1cHBvcnQgdW5pcXVlIGluZGV4ZXMsIHRoaXMgbG9naWMgd2ls bCBuZWVkIGV4dGVuc2lvbi4gQnV0IGlmCi0JCQkgKiB3ZSBoYXZlIGFuIGV4Y2x1c2lvbiBj b25zdHJhaW50LCBpdCBhbHJlYWR5IGtub3dzIHRoZQotCQkJICogb3BlcmF0b3JzLCBzbyB3 ZSBkb24ndCBoYXZlIHRvIGluZmVyIHRoZW0uCisJCQkgKiB3ZSBoYXZlIGFuIGV4Y2x1c2lv biBjb25zdHJhaW50IChvciBhIHRlbXBvcmFsIFBLKSwgaXQgYWxyZWFkeQorCQkJICoga25v d3MgdGhlIG9wZXJhdG9ycywgc28gd2UgZG9uJ3QgaGF2ZSB0byBpbmZlciB0aGVtLgogCQkJ ICovCi0JCQlpZiAoc3RtdC0+dW5pcXVlICYmIGFjY2Vzc01ldGhvZElkICE9IEJUUkVFX0FN X09JRCkKKwkJCWlmIChzdG10LT51bmlxdWUgJiYgIXN0bXQtPmlzd2l0aG91dG92ZXJsYXBz ICYmIGFjY2Vzc01ldGhvZElkICE9IEJUUkVFX0FNX09JRCkKIAkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CQkJIGVycm1zZygiY2Fubm90IG1hdGNoIHBhcnRpdGlvbiBrZXkgdG8gYW4gaW5kZXggdXNp bmcgYWNjZXNzIG1ldGhvZCBcIiVzXCIiLApAQCAtMTAzMSwxMiArMTA0OCwxMiBAQCBEZWZp bmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJewogCQkJCQkJT2lkCQkJaWR4X2Vxb3AgPSBJ bnZhbGlkT2lkOwogCi0JCQkJCQlpZiAoc3RtdC0+dW5pcXVlKQorCQkJCQkJaWYgKHN0bXQt PnVuaXF1ZSAmJiAhc3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpCiAJCQkJCQkJaWR4X2Vxb3Ag PSBnZXRfb3BmYW1pbHlfbWVtYmVyKGlkeF9vcGZhbWlseSwKIAkJCQkJCQkJCQkJCQkJICAg aWR4X29wY2ludHlwZSwKIAkJCQkJCQkJCQkJCQkJICAgaWR4X29wY2ludHlwZSwKIAkJCQkJ CQkJCQkJCQkJICAgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKLQkJCQkJCWVsc2UgaWYgKHN0 bXQtPmV4Y2x1ZGVPcE5hbWVzKQorCQkJCQkJZWxzZSBpZiAoZXhjbHVzaW9uKQogCQkJCQkJ CWlkeF9lcW9wID0gaW5kZXhJbmZvLT5paV9FeGNsdXNpb25PcHNbal07CiAJCQkJCQlBc3Nl cnQoaWR4X2Vxb3ApOwogCkBAIC0xMDQ1LDcgKzEwNjIsNyBAQCBEZWZpbmVJbmRleChPaWQg dGFibGVJZCwKIAkJCQkJCQlmb3VuZCA9IHRydWU7CiAJCQkJCQkJYnJlYWs7CiAJCQkJCQl9 Ci0JCQkJCQllbHNlIGlmIChzdG10LT5leGNsdWRlT3BOYW1lcykKKwkJCQkJCWVsc2UgaWYg KGV4Y2x1c2lvbikKIAkJCQkJCXsKIAkJCQkJCQkvKgogCQkJCQkJCSAqIFdlIGZvdW5kIGEg bWF0Y2gsIGJ1dCBpdCdzIG5vdCBhbiBlcXVhbGl0eQpAQCAtMTE4OSw2ICsxMjA2LDggQEAg RGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCWNvbnN0cl9mbGFncyB8PSBJTkRFWF9DT05T VFJfQ1JFQVRFX0RFRkVSUkFCTEU7CiAJaWYgKHN0bXQtPmluaXRkZWZlcnJlZCkKIAkJY29u c3RyX2ZsYWdzIHw9IElOREVYX0NPTlNUUl9DUkVBVEVfSU5JVF9ERUZFUlJFRDsKKwlpZiAo c3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpCisJCWNvbnN0cl9mbGFncyB8PSBJTkRFWF9DT05T VFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFM7CiAKIAlpbmRleFJlbGF0aW9uSWQgPQogCQlp bmRleF9jcmVhdGUocmVsLCBpbmRleFJlbGF0aW9uTmFtZSwgaW5kZXhSZWxhdGlvbklkLCBw YXJlbnRJbmRleElkLApAQCAtMTg1NSw2ICsxODc0LDcgQEAgQ29tcHV0ZUluZGV4QXR0cnMo SW5kZXhJbmZvICppbmRleEluZm8sCiAJCQkJICBPaWQgYWNjZXNzTWV0aG9kSWQsCiAJCQkJ ICBib29sIGFtY2Fub3JkZXIsCiAJCQkJICBib29sIGlzY29uc3RyYWludCwKKwkJCQkgIGJv b2wgaXN3aXRob3V0b3ZlcmxhcHMsCiAJCQkJICBPaWQgZGRsX3VzZXJpZCwKIAkJCQkgIGlu dCBkZGxfc2VjX2NvbnRleHQsCiAJCQkJICBpbnQgKmRkbF9zYXZlX25lc3RsZXZlbCkKQEAg LTE4NzgsNiArMTg5OCwyNSBAQCBDb21wdXRlSW5kZXhBdHRycyhJbmRleEluZm8gKmluZGV4 SW5mbywKIAllbHNlCiAJCW5leHRFeGNsT3AgPSBOVUxMOwogCisJLyoKKwkgKiBJZiB0aGlz IGlzIGEgV0lUSE9VVCBPVkVSTEFQUyBjb25zdHJhaW50LAorCSAqIHdlIG5lZWQgc3BhY2Ug Zm9yIGV4Y2x1c2lvbiBvcHMsCisJICogYnV0IHdlIGRvbid0IG5lZWQgdG8gcGFyc2UgYW55 dGhpbmcsCisJICogc28gd2UgY2FuIGxldCBuZXh0RXhjbE9wIGJlIE5VTEwuCisJICogTm90 ZSB0aGF0IGZvciBwYXJ0aXRpb25zL2luaGVyaXRpbmcvTElLRSwKKwkgKiBleGNsdXNpb25P cE5hbWVzIHdpbGwgYmUgc2V0LCBzbyB3ZSBhbHJlYWR5IGFsbG9jYXRlZCBhYm92ZS4KKwkg Ki8KKwlpZiAoaXN3aXRob3V0b3ZlcmxhcHMpCisJeworCQlpZiAoZXhjbHVzaW9uT3BOYW1l cyA9PSBOSUwpCisJCXsKKwkJCWluZGV4SW5mby0+aWlfRXhjbHVzaW9uT3BzID0gcGFsbG9j X2FycmF5KE9pZCwgbmtleWNvbHMpOworCQkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25Qcm9j cyA9IHBhbGxvY19hcnJheShPaWQsIG5rZXljb2xzKTsKKwkJCWluZGV4SW5mby0+aWlfRXhj bHVzaW9uU3RyYXRzID0gcGFsbG9jX2FycmF5KHVpbnQxNiwgbmtleWNvbHMpOworCQl9CisJ CW5leHRFeGNsT3AgPSBOVUxMOworCX0KKwogCWlmIChPaWRJc1ZhbGlkKGRkbF91c2VyaWQp KQogCQlHZXRVc2VySWRBbmRTZWNDb250ZXh0KCZzYXZlX3VzZXJpZCwgJnNhdmVfc2VjX2Nv bnRleHQpOwogCkBAIC0yMTU3LDYgKzIxOTYsMjEgQEAgQ29tcHV0ZUluZGV4QXR0cnMoSW5k ZXhJbmZvICppbmRleEluZm8sCiAJCQlpbmRleEluZm8tPmlpX0V4Y2x1c2lvblN0cmF0c1th dHRuXSA9IHN0cmF0OwogCQkJbmV4dEV4Y2xPcCA9IGxuZXh0KGV4Y2x1c2lvbk9wTmFtZXMs IG5leHRFeGNsT3ApOwogCQl9CisJCWVsc2UgaWYgKGlzd2l0aG91dG92ZXJsYXBzKQorCQl7 CisJCQlTdHJhdGVneU51bWJlciBzdHJhdDsKKwkJCU9pZAkJCW9waWQ7CisKKwkJCWlmIChh dHRuID09IG5rZXljb2xzIC0gMSkKKwkJCQlzdHJhdCA9IFJUT3ZlcmxhcFN0cmF0ZWd5TnVt YmVyOworCQkJZWxzZQorCQkJCXN0cmF0ID0gUlRFcXVhbFN0cmF0ZWd5TnVtYmVyOworCQkJ R2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3BjbGFzc09pZHNbYXR0bl0sIGF0 dHR5cGUsCisJCQkJCQkJCQkJCSAmb3BpZCwgJnN0cmF0KTsKKwkJCWluZGV4SW5mby0+aWlf RXhjbHVzaW9uT3BzW2F0dG5dID0gb3BpZDsKKwkJCWluZGV4SW5mby0+aWlfRXhjbHVzaW9u UHJvY3NbYXR0bl0gPSBnZXRfb3Bjb2RlKG9waWQpOworCQkJaW5kZXhJbmZvLT5paV9FeGNs dXNpb25TdHJhdHNbYXR0bl0gPSBzdHJhdDsKKwkJfQogCiAJCS8qCiAJCSAqIFNldCB1cCB0 aGUgcGVyLWNvbHVtbiBvcHRpb25zIChpbmRvcHRpb24gZmllbGQpLiAgRm9yIG5vdywgdGhp cyBpcwpAQCAtMjM4Nyw2ICsyNDQxLDgzIEBAIEdldERlZmF1bHRPcENsYXNzKE9pZCB0eXBl X2lkLCBPaWQgYW1faWQpCiAJcmV0dXJuIEludmFsaWRPaWQ7CiB9CiAKKy8qCisgKiBHZXRP cGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneQorICoKKyAqIG9wY2xhc3MgLSB0aGUgb3Bj bGFzcyB0byB1c2UKKyAqIGF0dHR5cGUgLSB0aGUgdHlwZSB0byBhc2sgYWJvdXQKKyAqIG9w aWQgLSBob2xkcyB0aGUgb3BlcmF0b3Igd2UgZm91bmQKKyAqIHN0cmF0IC0gaG9sZHMgdGhl IGlucHV0IGFuZCBvdXRwdXQgc3RyYXRlZ3kgbnVtYmVyCisgKgorICogRmluZHMgYW4gb3Bl cmF0b3IgZnJvbSBhICJ3ZWxsLWtub3duIiBzdHJhdGVneSBudW1iZXIuICBUaGlzIGlzIHVz ZWQgZm9yCisgKiB0ZW1wb3JhbCBpbmRleCBjb25zdHJhaW50cyAoYW5kIG90aGVyIHRlbXBv cmFsIGZlYXR1cmVzKSB0byBsb29rIHVwCisgKiBlcXVhbGl0eSBhbmQgb3ZlcmxhcHMgb3Bl cmF0b3JzLCBzaW5jZSB0aGUgc3RyYXRlZ3kgbnVtYmVycyBmb3Igbm9uLWJ0cmVlCisgKiBp bmRleGFtcyBuZWVkIG5vdCBmb2xsb3cgYW55IGZpeGVkIHNjaGVtZS4gIFdlIGFzayBhbiBv cGNsYXNzIHN1cHBvcnQKKyAqIGZ1bmN0aW9uIHRvIHRyYW5zbGF0ZSBmcm9tIHRoZSB3ZWxs LWtub3duIG51bWJlciB0byB0aGUgaW50ZXJuYWwgdmFsdWUuICBJZgorICogdGhlIGZ1bmN0 aW9uIGlzbid0IGRlZmluZWQgb3IgaXQgZ2l2ZXMgbm8gcmVzdWx0LCB3ZSByZXR1cm4KKyAq IEludmFsaWRTdHJhdGVneS4KKyAqLwordm9pZAorR2V0T3BlcmF0b3JGcm9tV2VsbEtub3du U3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAorCQkJCQkJCQkgT2lkICpvcGlk LCBTdHJhdGVneU51bWJlciAqc3RyYXQpCit7CisJT2lkCQkJb3BmYW1pbHk7CisJT2lkCQkJ b3BjaW50eXBlOworCVN0cmF0ZWd5TnVtYmVyIGluc3RyYXQgPSAqc3RyYXQ7CisKKwlBc3Nl cnQoaW5zdHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIgfHwgaW5zdHJhdCA9PSBSVE92 ZXJsYXBTdHJhdGVneU51bWJlcik7CisKKwkqb3BpZCA9IEludmFsaWRPaWQ7CisKKwlpZiAo Z2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywgJm9wZmFtaWx5 LCAmb3BjaW50eXBlKSkKKwl7CisJCS8qCisJCSAqIEFzayB0aGUgb3BjbGFzcyB0byB0cmFu c2xhdGUgdG8gaXRzIGludGVybmFsIHN0cmF0bnVtCisJCSAqCisJCSAqIEZvciBub3cgd2Ug b25seSBuZWVkIEdpU1Qgc3VwcG9ydCwgYnV0IHRoaXMgY291bGQgc3VwcG9ydCBvdGhlcgor CQkgKiBpbmRleGFtcyBpZiB3ZSB3YW50ZWQuCisJCSAqLworCQkqc3RyYXQgPSBHaXN0VHJh bnNsYXRlU3RyYXRudW0ob3BjbGFzcywgaW5zdHJhdCk7CisJCWlmICgqc3RyYXQgPT0gSW52 YWxpZFN0cmF0ZWd5KQorCQl7CisJCQlIZWFwVHVwbGUJdHVwbGU7CisKKwkJCXR1cGxlID0g U2VhcmNoU3lzQ2FjaGUxKENMQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvcGNsYXNzKSk7CisJ CQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciBjbGFzcyAldSIsIG9wY2xhc3MpOworCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVD VCksCisJCQkJCWluc3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5TnVtYmVyID8KKwkJCQkJZXJy bXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHR5cGUg JXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgorCQkJCQllcnJtc2coImNvdWxkIG5v dCBpZGVudGlmeSBhbiBvdmVybGFwcyBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90 eXBlX2JlKGF0dHR5cGUpKSwKKwkJCQkJZXJyZGV0YWlsKCJDb3VsZCBub3QgdHJhbnNsYXRl IHN0cmF0ZWd5IG51bWJlciAlZCBmb3Igb3BlcmF0b3IgY2xhc3MgXCIlc1wiIGZvciBhY2Nl c3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkJCSAgaW5zdHJhdCwgTmFtZVN0cigoKEZvcm1f cGdfb3BjbGFzcykgR0VUU1RSVUNUKHR1cGxlKSktPm9wY25hbWUpLCAiZ2lzdCIpKTsKKwor CQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwkJfQorCisJCSpvcGlkID0gZ2V0X29wZmFt aWx5X21lbWJlcihvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsICpzdHJhdCk7CisJ fQorCisJaWYgKCFPaWRJc1ZhbGlkKCpvcGlkKSkKKwl7CisJCUhlYXBUdXBsZQl0dXBsZTsK KworCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShPUEZBTUlMWU9JRCwgT2JqZWN0SWRHZXRE YXR1bShvcGZhbWlseSkpOworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIG9wZXJhdG9yIGZhbWlseSAl dSIsIG9wZmFtaWx5KTsKKworCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQlpbnN0cmF0ID09IFJURXF1YWxTdHJhdGVneU51 bWJlciA/CisJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxpdHkgb3Bl cmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgorCQkJCWVy cm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZvciB0eXBl ICVzIiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpLAorCQkJCWVycmRldGFpbCgiVGhlcmUg aXMgbm8gc3VpdGFibGUgb3BlcmF0b3IgaW4gb3BlcmF0b3IgZmFtaWx5IFwiJXNcIiBmb3Ig YWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJCSAgTmFtZVN0cigoKEZvcm1fcGdfb3Bm YW1pbHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5vcGZuYW1lKSwgImdpc3QiKSk7CisJfQorfQor CiAvKgogICoJbWFrZU9iamVjdE5hbWUoKQogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKaW5kZXggMWY5NGY0ZmRiYmMuLjJiOWRkNGRjNDQ1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwpAQCAtMTAxNTksNiArMTAxNTksNyBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVu Y2VkKExpc3QgKip3cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwgUmVsYXRpb24g cmVsLAogCQkJCQkJCQkJICBjb25pc2xvY2FsLAkvKiBpc2xvY2FsICovCiAJCQkJCQkJCQkg IGNvbmluaGNvdW50LAkvKiBpbmhjb3VudCAqLwogCQkJCQkJCQkJICBjb25ub2luaGVyaXQs IC8qIGNvbk5vSW5oZXJpdCAqLworCQkJCQkJCQkJICBmYWxzZSwJLyogY29uUGVyaW9kICov CiAJCQkJCQkJCQkgIGZhbHNlKTsJLyogaXNfaW50ZXJuYWwgKi8KIAogCU9iamVjdEFkZHJl c3NTZXQoYWRkcmVzcywgQ29uc3RyYWludFJlbGF0aW9uSWQsIGNvbnN0ck9pZCk7CkBAIC0x MDQ1Nyw2ICsxMDQ1OCw3IEBAIGFkZEZrUmVjdXJzZVJlZmVyZW5jaW5nKExpc3QgKip3cXVl dWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwgUmVsYXRpb24gcmVsLAogCQkJCQkJCQkJ ICBmYWxzZSwKIAkJCQkJCQkJCSAgMSwKIAkJCQkJCQkJCSAgZmFsc2UsCisJCQkJCQkJCQkg IGZhbHNlLAkvKiBjb25QZXJpb2QgKi8KIAkJCQkJCQkJCSAgZmFsc2UpOwogCiAJCQkvKgpA QCAtMTA5NjIsNiArMTA5NjQsNyBAQCBDbG9uZUZrUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcGFyZW50UmVsLCBSZWxhdGlvbiBwYXJ0UmVsKQogCQkJCQkJCQkgIGZh bHNlLAkvKiBpc2xvY2FsICovCiAJCQkJCQkJCSAgMSwJLyogaW5oY291bnQgKi8KIAkJCQkJ CQkJICBmYWxzZSwJLyogY29uTm9Jbmhlcml0ICovCisJCQkJCQkJCSAgZmFsc2UsCS8qIGNv blBlcmlvZCAqLwogCQkJCQkJCQkgIHRydWUpOwogCiAJCS8qIFNldCB1cCBwYXJ0aXRpb24g ZGVwZW5kZW5jaWVzIGZvciB0aGUgbmV3IGNvbnN0cmFpbnQgKi8KQEAgLTE0MTMxLDcgKzE0 MTM0LDggQEAgVHJ5UmV1c2VJbmRleChPaWQgb2xkSWQsIEluZGV4U3RtdCAqc3RtdCkKIAlp ZiAoQ2hlY2tJbmRleENvbXBhdGlibGUob2xkSWQsCiAJCQkJCQkJIHN0bXQtPmFjY2Vzc01l dGhvZCwKIAkJCQkJCQkgc3RtdC0+aW5kZXhQYXJhbXMsCi0JCQkJCQkJIHN0bXQtPmV4Y2x1 ZGVPcE5hbWVzKSkKKwkJCQkJCQkgc3RtdC0+ZXhjbHVkZU9wTmFtZXMsCisJCQkJCQkJIHN0 bXQtPmlzd2l0aG91dG92ZXJsYXBzKSkKIAl7CiAJCVJlbGF0aW9uCWlyZWwgPSBpbmRleF9v cGVuKG9sZElkLCBOb0xvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5kZXggMTcw MzYwZWRkYTguLjI5ZDMwYmZiNmY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC04 MzQsNiArODM0LDcgQEAgQ3JlYXRlVHJpZ2dlckZpcmluZ09uKENyZWF0ZVRyaWdTdG10ICpz dG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCQkJCQkJICB0cnVlLCAvKiBp c2xvY2FsICovCiAJCQkJCQkJCQkJCSAgMCwJLyogaW5oY291bnQgKi8KIAkJCQkJCQkJCQkJ ICB0cnVlLCAvKiBub2luaGVyaXQgKi8KKwkJCQkJCQkJCQkJICBmYWxzZSwJLyogY29ucGVy aW9kICovCiAJCQkJCQkJCQkJCSAgaXNJbnRlcm5hbCk7CS8qIGlzX2ludGVybmFsICovCiAJ fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCAyYTFlNzEzMzM1Ni4uMmE2NTUw ZGU5MDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMzYyMSw2ICszNjIxLDcg QEAgZG9tYWluQWRkQ2hlY2tDb25zdHJhaW50KE9pZCBkb21haW5PaWQsIE9pZCBkb21haW5O YW1lc3BhY2UsIE9pZCBiYXNlVHlwZU9pZCwKIAkJCQkJCQkgIHRydWUsIC8qIGlzIGxvY2Fs ICovCiAJCQkJCQkJICAwLAkvKiBpbmhjb3VudCAqLwogCQkJCQkJCSAgZmFsc2UsCS8qIGNv bm5vaW5oZXJpdCAqLworCQkJCQkJCSAgZmFsc2UsCS8qIGNvbnBlcmlvZCAqLwogCQkJCQkJ CSAgZmFsc2UpOwkvKiBpc19pbnRlcm5hbCAqLwogCWlmIChjb25zdHJBZGRyKQogCQlPYmpl Y3RBZGRyZXNzU2V0KCpjb25zdHJBZGRyLCBDb25zdHJhaW50UmVsYXRpb25JZCwgY2NvaWQp OwpAQCAtMzcyNyw2ICszNzI4LDcgQEAgZG9tYWluQWRkTm90TnVsbENvbnN0cmFpbnQoT2lk IGRvbWFpbk9pZCwgT2lkIGRvbWFpbk5hbWVzcGFjZSwgT2lkIGJhc2VUeXBlT2lkLAogCQkJ CQkJCSAgdHJ1ZSwgLyogaXMgbG9jYWwgKi8KIAkJCQkJCQkgIDAsCS8qIGluaGNvdW50ICov CiAJCQkJCQkJICBmYWxzZSwJLyogY29ubm9pbmhlcml0ICovCisJCQkJCQkJICBmYWxzZSwJ LyogY29ucGVyaW9kICovCiAJCQkJCQkJICBmYWxzZSk7CS8qIGlzX2ludGVybmFsICovCiAK IAlpZiAoY29uc3RyQWRkcikKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKaW5k ZXggOWYwNWIzNjU0YzEuLjU5YWNmNjdhMzZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjSW5kZXhpbmcuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj SW5kZXhpbmcuYwpAQCAtMjEwLDcgKzIxMCw3IEBAIEV4ZWNPcGVuSW5kaWNlcyhSZXN1bHRS ZWxJbmZvICpyZXN1bHRSZWxJbmZvLCBib29sIHNwZWN1bGF0aXZlKQogCQkgKiBJZiB0aGUg aW5kZXhlcyBhcmUgdG8gYmUgdXNlZCBmb3Igc3BlY3VsYXRpdmUgaW5zZXJ0aW9uLCBhZGQg ZXh0cmEKIAkJICogaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgdW5pcXVlIGluZGV4IGVudHJp ZXMuCiAJCSAqLwotCQlpZiAoc3BlY3VsYXRpdmUgJiYgaWktPmlpX1VuaXF1ZSkKKwkJaWYg KHNwZWN1bGF0aXZlICYmIGlpLT5paV9VbmlxdWUgJiYgIWluZGV4RGVzYy0+cmRfaW5kZXgt PmluZGlzZXhjbHVzaW9uKQogCQkJQnVpbGRTcGVjdWxhdGl2ZUluZGV4SW5mbyhpbmRleERl c2MsIGlpKTsKIAogCQlyZWxhdGlvbkRlc2NzW2ldID0gaW5kZXhEZXNjOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jCmluZGV4IDc4YTNjZmFmZGU0Li41ZjE2YjI2YjRj YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jCisr KyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYwpAQCAtODI5LDcgKzgy OSw3IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJICov CiAJCWlmIChpbmRleE9pZEZyb21Db25zdHJhaW50ID09IGlkeEZvcm0tPmluZGV4cmVsaWQp CiAJCXsKLQkJCWlmICghaWR4Rm9ybS0+aW5kaXN1bmlxdWUgJiYgb25jb25mbGljdC0+YWN0 aW9uID09IE9OQ09ORkxJQ1RfVVBEQVRFKQorCQkJaWYgKGlkeEZvcm0tPmluZGlzZXhjbHVz aW9uICYmIG9uY29uZmxpY3QtPmFjdGlvbiA9PSBPTkNPTkZMSUNUX1VQREFURSkKIAkJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCiAJCQkJCQkgZXJybXNnKCJPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRl ZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cyIpKSk7CkBAIC04NTQsNiArODU0LDEzIEBA IGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJaWYgKCFpZHhG b3JtLT5pbmRpc3VuaXF1ZSkKIAkJCWdvdG8gbmV4dDsKIAorCQkvKgorCQkgKiBTby1jYWxs ZWQgdW5pcXVlIGNvbnN0cmFpbnRzIHdpdGggV0lUSE9VVCBPVkVSTEFQUyBhcmUgcmVhbGx5 CisJCSAqIGV4Y2x1c2lvbiBjb25zdHJhaW50cywgc28gc2tpcCB0aG9zZSB0b28uCisJCSAq LworCQlpZiAoaWR4Rm9ybS0+aW5kaXNleGNsdXNpb24pCisJCQlnb3RvIG5leHQ7CisKIAkJ LyogQnVpbGQgQk1TIHJlcHJlc2VudGF0aW9uIG9mIHBsYWluIChub24gZXhwcmVzc2lvbikg aW5kZXggYXR0cnMgKi8KIAkJaW5kZXhlZEF0dHJzID0gTlVMTDsKIAkJZm9yIChuYXR0ID0g MDsgbmF0dCA8IGlkeEZvcm0tPmluZG5rZXlhdHRzOyBuYXR0KyspCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCBhMDQzZmQ0YzY2OS4uZWFmYTI5MGI4OGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTMy LDcgKzUzMiw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJY29sdW1ucmVm IGluX2V4cHIgaGF2aW5nX2NsYXVzZSBmdW5jX3RhYmxlIHhtbHRhYmxlIGFycmF5X2V4cHIK IAkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCiAldHlwZSA8bGlzdD4Jcm93 c2Zyb21faXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QKLSV0eXBlIDxib29s ZWFuPiBvcHRfb3JkaW5hbGl0eQorJXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9w dF93aXRob3V0X292ZXJsYXBzCiAldHlwZSA8bGlzdD4JRXhjbHVzaW9uQ29uc3RyYWludExp c3QgRXhjbHVzaW9uQ29uc3RyYWludEVsZW0KICV0eXBlIDxsaXN0PglmdW5jX2FyZ19saXN0 IGZ1bmNfYXJnX2xpc3Rfb3B0CiAldHlwZSA8bm9kZT4JZnVuY19hcmdfZXhwcgpAQCAtNDE5 Myw3ICs0MTkzLDcgQEAgQ29uc3RyYWludEVsZW06CiAJCQkJCW4tPmluaXRpYWxseV92YWxp ZCA9ICFuLT5za2lwX3ZhbGlkYXRpb247CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 Ci0JCQl8IFVOSVFVRSBvcHRfdW5pcXVlX251bGxfdHJlYXRtZW50ICcoJyBjb2x1bW5MaXN0 ICcpJyBvcHRfY19pbmNsdWRlIG9wdF9kZWZpbml0aW9uIE9wdENvbnNUYWJsZVNwYWNlCisJ CQl8IFVOSVFVRSBvcHRfdW5pcXVlX251bGxfdHJlYXRtZW50ICcoJyBjb2x1bW5MaXN0IG9w dF93aXRob3V0X292ZXJsYXBzICcpJyBvcHRfY19pbmNsdWRlIG9wdF9kZWZpbml0aW9uIE9w dENvbnNUYWJsZVNwYWNlCiAJCQkJQ29uc3RyYWludEF0dHJpYnV0ZVNwZWMKIAkJCQl7CiAJ CQkJCUNvbnN0cmFpbnQgKm4gPSBtYWtlTm9kZShDb25zdHJhaW50KTsKQEAgLTQyMDIsMTEg KzQyMDIsMTIgQEAgQ29uc3RyYWludEVsZW06CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJ CQkJCW4tPm51bGxzX25vdF9kaXN0aW5jdCA9ICEkMjsKIAkJCQkJbi0+a2V5cyA9ICQ0Owot CQkJCQluLT5pbmNsdWRpbmcgPSAkNjsKLQkJCQkJbi0+b3B0aW9ucyA9ICQ3OworCQkJCQlu LT53aXRob3V0X292ZXJsYXBzID0gJDU7CisJCQkJCW4tPmluY2x1ZGluZyA9ICQ3OworCQkJ CQluLT5vcHRpb25zID0gJDg7CiAJCQkJCW4tPmluZGV4bmFtZSA9IE5VTEw7Ci0JCQkJCW4t PmluZGV4c3BhY2UgPSAkODsKLQkJCQkJcHJvY2Vzc0NBU2JpdHMoJDksIEA5LCAiVU5JUVVF IiwKKwkJCQkJbi0+aW5kZXhzcGFjZSA9ICQ5OworCQkJCQlwcm9jZXNzQ0FTYml0cygkMTAs IEAxMCwgIlVOSVFVRSIsCiAJCQkJCQkJCSAgICZuLT5kZWZlcnJhYmxlLCAmbi0+aW5pdGRl ZmVycmVkLCBOVUxMLAogCQkJCQkJCQkgICBOVUxMLCB5eXNjYW5uZXIpOwogCQkJCQkkJCA9 IChOb2RlICopIG47CkBAIC00MjI3LDcgKzQyMjgsNyBAQCBDb25zdHJhaW50RWxlbToKIAkJ CQkJCQkJICAgTlVMTCwgeXlzY2FubmVyKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KLQkJCXwgUFJJTUFSWSBLRVkgJygnIGNvbHVtbkxpc3QgJyknIG9wdF9jX2luY2x1ZGUg b3B0X2RlZmluaXRpb24gT3B0Q29uc1RhYmxlU3BhY2UKKwkJCXwgUFJJTUFSWSBLRVkgJygn IGNvbHVtbkxpc3Qgb3B0X3dpdGhvdXRfb3ZlcmxhcHMgJyknIG9wdF9jX2luY2x1ZGUgb3B0 X2RlZmluaXRpb24gT3B0Q29uc1RhYmxlU3BhY2UKIAkJCQlDb25zdHJhaW50QXR0cmlidXRl U3BlYwogCQkJCXsKIAkJCQkJQ29uc3RyYWludCAqbiA9IG1ha2VOb2RlKENvbnN0cmFpbnQp OwpAQCAtNDIzNSwxMSArNDIzNiwxMiBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJbi0+Y29u dHlwZSA9IENPTlNUUl9QUklNQVJZOwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQlu LT5rZXlzID0gJDQ7Ci0JCQkJCW4tPmluY2x1ZGluZyA9ICQ2OwotCQkJCQluLT5vcHRpb25z ID0gJDc7CisJCQkJCW4tPndpdGhvdXRfb3ZlcmxhcHMgPSAkNTsKKwkJCQkJbi0+aW5jbHVk aW5nID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKIAkJCQkJbi0+aW5kZXhuYW1lID0g TlVMTDsKLQkJCQkJbi0+aW5kZXhzcGFjZSA9ICQ4OwotCQkJCQlwcm9jZXNzQ0FTYml0cygk OSwgQDksICJQUklNQVJZIEtFWSIsCisJCQkJCW4tPmluZGV4c3BhY2UgPSAkOTsKKwkJCQkJ cHJvY2Vzc0NBU2JpdHMoJDEwLCBAMTAsICJQUklNQVJZIEtFWSIsCiAJCQkJCQkJCSAgICZu LT5kZWZlcnJhYmxlLCAmbi0+aW5pdGRlZmVycmVkLCBOVUxMLAogCQkJCQkJCQkgICBOVUxM LCB5eXNjYW5uZXIpOwogCQkJCQkkJCA9IChOb2RlICopIG47CkBAIC00MzYxLDYgKzQzNjMs MTEgQEAgb3B0X25vX2luaGVyaXQ6CU5PIElOSEVSSVQJCQkJCQkJeyAgJCQgPSB0cnVlOyB9 CiAJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgICQkID0gZmFsc2U7IH0KIAkJOwogCitvcHRf d2l0aG91dF9vdmVybGFwczoKKwkJCVdJVEhPVVQgT1ZFUkxBUFMJCQkJCQl7ICQkID0gdHJ1 ZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQorCTsKKwogb3B0 X2NvbHVtbl9saXN0OgogCQkJJygnIGNvbHVtbkxpc3QgJyknCQkJCQkJeyAkJCA9ICQyOyB9 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKaW5kZXggZDVjMmIyZmYwYjAuLjUzNDkyYzY0NGE5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTE1NTgsNiArMTU1OCw3IEBAIGdlbmVy YXRlQ2xvbmVkSW5kZXhTdG10KFJhbmdlVmFyICpoZWFwUmVsLCBSZWxhdGlvbiBzb3VyY2Vf aWR4LAogCWluZGV4LT51bmlxdWUgPSBpZHhyZWMtPmluZGlzdW5pcXVlOwogCWluZGV4LT5u dWxsc19ub3RfZGlzdGluY3QgPSBpZHhyZWMtPmluZG51bGxzbm90ZGlzdGluY3Q7CiAJaW5k ZXgtPnByaW1hcnkgPSBpZHhyZWMtPmluZGlzcHJpbWFyeTsKKwlpbmRleC0+aXN3aXRob3V0 b3ZlcmxhcHMgPSAoaWR4cmVjLT5pbmRpc3ByaW1hcnkgfHwgaWR4cmVjLT5pbmRpc3VuaXF1 ZSkgJiYgaWR4cmVjLT5pbmRpc2V4Y2x1c2lvbjsKIAlpbmRleC0+dHJhbnNmb3JtZWQgPSB0 cnVlOwkvKiBkb24ndCBuZWVkIHRyYW5zZm9ybUluZGV4U3RtdCAqLwogCWluZGV4LT5jb25j dXJyZW50ID0gZmFsc2U7CiAJaW5kZXgtPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKQEAgLTE2 MDcsNyArMTYwOCw5IEBAIGdlbmVyYXRlQ2xvbmVkSW5kZXhTdG10KFJhbmdlVmFyICpoZWFw UmVsLCBSZWxhdGlvbiBzb3VyY2VfaWR4LAogCQkJCWludAkJCW5FbGVtczsKIAkJCQlpbnQJ CQlpOwogCi0JCQkJQXNzZXJ0KGNvbnJlYy0+Y29udHlwZSA9PSBDT05TVFJBSU5UX0VYQ0xV U0lPTik7CisJCQkJQXNzZXJ0KGNvbnJlYy0+Y29udHlwZSA9PSBDT05TVFJBSU5UX0VYQ0xV U0lPTiB8fAorCQkJCQkgICAoaW5kZXgtPmlzd2l0aG91dG92ZXJsYXBzICYmCisJCQkJCQko Y29ucmVjLT5jb250eXBlID09IENPTlNUUkFJTlRfUFJJTUFSWSB8fCBjb25yZWMtPmNvbnR5 cGUgPT0gQ09OU1RSQUlOVF9VTklRVUUpKSk7CiAJCQkJLyogRXh0cmFjdCBvcGVyYXRvciBP SURzIGZyb20gdGhlIHBnX2NvbnN0cmFpbnQgdHVwbGUgKi8KIAkJCQlkYXR1bSA9IFN5c0Nh Y2hlR2V0QXR0ck5vdE51bGwoQ09OU1RST0lELCBodF9jb25zdHIsCiAJCQkJCQkJCQkJCSAg IEFudW1fcGdfY29uc3RyYWludF9jb25leGNsb3ApOwpAQCAtMjE2MCw2ICsyMTYzLDcgQEAg dHJhbnNmb3JtSW5kZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0 ZVN0bXRDb250ZXh0ICpjeHQpCiAJfQogCWluZGV4LT5udWxsc19ub3RfZGlzdGluY3QgPSBj b25zdHJhaW50LT5udWxsc19ub3RfZGlzdGluY3Q7CiAJaW5kZXgtPmlzY29uc3RyYWludCA9 IHRydWU7CisJaW5kZXgtPmlzd2l0aG91dG92ZXJsYXBzID0gY29uc3RyYWludC0+d2l0aG91 dF9vdmVybGFwczsKIAlpbmRleC0+ZGVmZXJyYWJsZSA9IGNvbnN0cmFpbnQtPmRlZmVycmFi bGU7CiAJaW5kZXgtPmluaXRkZWZlcnJlZCA9IGNvbnN0cmFpbnQtPmluaXRkZWZlcnJlZDsK IApAQCAtMjI1Miw2ICsyMjU2LDExIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25z dHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJCQkgZXJy bXNnKCJpbmRleCBcIiVzXCIgaXMgbm90IHZhbGlkIiwgaW5kZXhfbmFtZSksCiAJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24oY3h0LT5wc3RhdGUsIGNvbnN0cmFpbnQtPmxvY2F0aW9uKSkp OwogCisJCS8qCisJCSAqIFRvZGF5IHdlIGZvcmJpZCBub24tdW5pcXVlIGluZGV4ZXMsIGJ1 dCB3ZSBjb3VsZCBwZXJtaXQgR2lTVAorCQkgKiBpbmRleGVzIHdob3NlIGxhc3QgZW50cnkg aXMgYSByYW5nZSB0eXBlIGFuZCB1c2UgdGhhdCB0byBjcmVhdGUgYQorCQkgKiBXSVRIT1VU IE9WRVJMQVBTIGNvbnN0cmFpbnQgKGkuZS4gYSB0ZW1wb3JhbCBjb25zdHJhaW50KS4KKwkJ ICovCiAJCWlmICghaW5kZXhfZm9ybS0+aW5kaXN1bmlxdWUpCiAJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKQEAgLTI1NDAs NiArMjU0OSwyMyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29u c3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCQlub3RudWxsY21kcyA9IGxh cHBlbmQobm90bnVsbGNtZHMsIG5vdG51bGxjbWQpOwogCQkJfQogCQl9CisKKwkJaWYgKGNv bnN0cmFpbnQtPndpdGhvdXRfb3ZlcmxhcHMpCisJCXsKKwkJCS8qCisJCQkgKiBUaGlzIGVu Zm9yY2VzIHRoYXQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGVxdWFsaXR5IGNvbHVtbgorCQkJ ICogYmVzaWRlcyB0aGUgV0lUSE9VVCBPVkVSTEFQUyBjb2x1bW5zLiAgVGhpcyBpcyBwZXIg U1FMCisJCQkgKiBzdGFuZGFyZC4gIFhYWCBEbyB3ZSBuZWVkIHRoaXM/CisJCQkgKi8KKwkJ CWlmIChsaXN0X2xlbmd0aChjb25zdHJhaW50LT5rZXlzKSA8IDIpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJy bXNnKCJjb25zdHJhaW50IHVzaW5nIFdJVEhPVVQgT1ZFUkxBUFMgbmVlZHMgYXQgbGVhc3Qg dHdvIGNvbHVtbnMiKSk7CisKKwkJCS8qIFdJVEhPVVQgT1ZFUkxBUFMgcmVxdWlyZXMgYSBH aVNUIGluZGV4ICovCisJCQlpbmRleC0+YWNjZXNzTWV0aG9kID0gImdpc3QiOworCQl9CisK IAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDY1MzY4NWJm ZmM1Li41MGMwMjQ3YzMwMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAt MjM5Myw2ICsyMzkzLDggQEAgcGdfZ2V0X2NvbnN0cmFpbnRkZWZfd29ya2VyKE9pZCBjb25z dHJhaW50SWQsIGJvb2wgZnVsbENvbW1hbmQsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0 cmFpbnRfY29ua2V5KTsKIAogCQkJCWtleWF0dHMgPSBkZWNvbXBpbGVfY29sdW1uX2luZGV4 X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsICZidWYpOworCQkJCWlmIChjb25Gb3Jt LT5jb25wZXJpb2QpCisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZiwgIiBXSVRI T1VUIE9WRVJMQVBTIik7CiAKIAkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmYnVmLCAnKScp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA2NmVkMjRlNDAxMi4u NWU3YTE0OTllMWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTU4 MSwxMSArNTU4MSwxNCBAQCBSZWxhdGlvbkdldElkZW50aXR5S2V5Qml0bWFwKFJlbGF0aW9u IHJlbGF0aW9uKQogLyoKICAqIFJlbGF0aW9uR2V0RXhjbHVzaW9uSW5mbyAtLSBnZXQgaW5m byBhYm91dCBpbmRleCdzIGV4Y2x1c2lvbiBjb25zdHJhaW50CiAgKgotICogVGhpcyBzaG91 bGQgYmUgY2FsbGVkIG9ubHkgZm9yIGFuIGluZGV4IHRoYXQgaXMga25vd24gdG8gaGF2ZSBh bgotICogYXNzb2NpYXRlZCBleGNsdXNpb24gY29uc3RyYWludC4gIEl0IHJldHVybnMgYXJy YXlzIChwYWxsb2MnZCBpbiBjYWxsZXIncwotICogY29udGV4dCkgb2YgdGhlIGV4Y2x1c2lv biBvcGVyYXRvciBPSURzLCB0aGVpciB1bmRlcmx5aW5nIGZ1bmN0aW9ucycKLSAqIE9JRHMs IGFuZCB0aGVpciBzdHJhdGVneSBudW1iZXJzIGluIHRoZSBpbmRleCdzIG9wY2xhc3Nlcy4g IFdlIGNhY2hlCi0gKiBhbGwgdGhpcyBpbmZvcm1hdGlvbiBzaW5jZSBpdCByZXF1aXJlcyBh IGZhaXIgYW1vdW50IG9mIHdvcmsgdG8gZ2V0LgorICogVGhpcyBzaG91bGQgYmUgY2FsbGVk IG9ubHkgZm9yIGFuIGluZGV4IHRoYXQgaXMga25vd24gdG8gaGF2ZSBhbiBhc3NvY2lhdGVk CisgKiBleGNsdXNpb24gY29uc3RyYWludCBvciBwcmltYXJ5IGtleS91bmlxdWUgY29uc3Ry YWludCB1c2luZyBXSVRIT1VUCisgKiBPVkVSTEFQUy4KKworICogSXQgcmV0dXJucyBhcnJh eXMgKHBhbGxvYydkIGluIGNhbGxlcidzIGNvbnRleHQpIG9mIHRoZSBleGNsdXNpb24gb3Bl cmF0b3IKKyAqIE9JRHMsIHRoZWlyIHVuZGVybHlpbmcgZnVuY3Rpb25zJyBPSURzLCBhbmQg dGhlaXIgc3RyYXRlZ3kgbnVtYmVycyBpbiB0aGUKKyAqIGluZGV4J3Mgb3BjbGFzc2VzLiAg V2UgY2FjaGUgYWxsIHRoaXMgaW5mb3JtYXRpb24gc2luY2UgaXQgcmVxdWlyZXMgYSBmYWly CisgKiBhbW91bnQgb2Ygd29yayB0byBnZXQuCiAgKi8KIHZvaWQKIFJlbGF0aW9uR2V0RXhj bHVzaW9uSW5mbyhSZWxhdGlvbiBpbmRleFJlbGF0aW9uLApAQCAtNTY0OSw3ICs1NjUyLDEw IEBAIFJlbGF0aW9uR2V0RXhjbHVzaW9uSW5mbyhSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAog CQlpbnQJCQluZWxlbTsKIAogCQkvKiBXZSB3YW50IHRoZSBleGNsdXNpb24gY29uc3RyYWlu dCBvd25pbmcgdGhlIGluZGV4ICovCi0JCWlmIChjb25mb3JtLT5jb250eXBlICE9IENPTlNU UkFJTlRfRVhDTFVTSU9OIHx8CisJCWlmICgoY29uZm9ybS0+Y29udHlwZSAhPSBDT05TVFJB SU5UX0VYQ0xVU0lPTiAmJgorCQkJICEoY29uZm9ybS0+Y29ucGVyaW9kICYmICgKKwkJCQkJ CQkJCSAgY29uZm9ybS0+Y29udHlwZSA9PSBDT05TVFJBSU5UX1BSSU1BUlkKKwkJCQkJCQkJ CSAgfHwgY29uZm9ybS0+Y29udHlwZSA9PSBDT05TVFJBSU5UX1VOSVFVRSkpKSB8fAogCQkJ Y29uZm9ybS0+Y29uaW5kaWQgIT0gUmVsYXRpb25HZXRSZWxpZChpbmRleFJlbGF0aW9uKSkK IAkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiNmUwMWQzZDI5Mi4uZWIzZWZh Mzg5YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNzQxMyw2ICs3NDEzLDcgQEAgZ2V0SW5kZXhl cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQog CQkJCWlfY29ubmFtZSwKIAkJCQlpX2NvbmRlZmVycmFibGUsCiAJCQkJaV9jb25kZWZlcnJl ZCwKKwkJCQlpX2NvbnBlcmlvZCwKIAkJCQlpX2NvbnRhYmxlb2lkLAogCQkJCWlfY29ub2lk LAogCQkJCWlfY29uZGVmLApAQCAtNzQ5NCwxMCArNzQ5NSwxNyBAQCBnZXRJbmRleGVzKEFy Y2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAlp ZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LAotCQkJCQkJCSAiaS5pbmRudWxsc25vdGRpc3RpbmN0ICIpOworCQkJCQkJ CSAiaS5pbmRudWxsc25vdGRpc3RpbmN0LCAiKTsKIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiZmFsc2UgQVMgaW5kbnVsbHNub3RkaXN0aW5jdCAi KTsKKwkJCQkJCQkgImZhbHNlIEFTIGluZG51bGxzbm90ZGlzdGluY3QsICIpOworCisJaWYg KGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwKKwkJCQkJCQkgImMuY29ucGVyaW9kICIpOworCWVsc2UKKwkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJOVUxMIEFTIGNvbnBlcmlvZCAiKTsKIAog CS8qCiAJICogVGhlIHBvaW50IG9mIHRoZSBtZXNzeS1sb29raW5nIG91dGVyIGpvaW4gaXMg dG8gZmluZCBhIGNvbnN0cmFpbnQgdGhhdApAQCAtNzU2NSw2ICs3NTczLDcgQEAgZ2V0SW5k ZXhlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVz KQogCWlfY29ubmFtZSA9IFBRZm51bWJlcihyZXMsICJjb25uYW1lIik7CiAJaV9jb25kZWZl cnJhYmxlID0gUFFmbnVtYmVyKHJlcywgImNvbmRlZmVycmFibGUiKTsKIAlpX2NvbmRlZmVy cmVkID0gUFFmbnVtYmVyKHJlcywgImNvbmRlZmVycmVkIik7CisJaV9jb25wZXJpb2QgPSBQ UWZudW1iZXIocmVzLCAiY29ucGVyaW9kIik7CiAJaV9jb250YWJsZW9pZCA9IFBRZm51bWJl cihyZXMsICJjb250YWJsZW9pZCIpOwogCWlfY29ub2lkID0gUFFmbnVtYmVyKHJlcywgImNv bm9pZCIpOwogCWlfY29uZGVmID0gUFFmbnVtYmVyKHJlcywgImNvbmRlZiIpOwpAQCAtNzY3 Miw2ICs3NjgxLDcgQEAgZ2V0SW5kZXhlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJs aW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCWNvbnN0cmluZm8tPmNvbmluZGV4ID0gaW5k eGluZm9bal0uZG9iai5kdW1wSWQ7CiAJCQkJY29uc3RyaW5mby0+Y29uZGVmZXJyYWJsZSA9 ICooUFFnZXR2YWx1ZShyZXMsIGosIGlfY29uZGVmZXJyYWJsZSkpID09ICd0JzsKIAkJCQlj b25zdHJpbmZvLT5jb25kZWZlcnJlZCA9ICooUFFnZXR2YWx1ZShyZXMsIGosIGlfY29uZGVm ZXJyZWQpKSA9PSAndCc7CisJCQkJY29uc3RyaW5mby0+Y29ucGVyaW9kID0gKihQUWdldHZh bHVlKHJlcywgaiwgaV9jb25wZXJpb2QpKSA9PSAndCc7CiAJCQkJY29uc3RyaW5mby0+Y29u aXNsb2NhbCA9IHRydWU7CiAJCQkJY29uc3RyaW5mby0+c2VwYXJhdGUgPSB0cnVlOwogCkBA IC0xNzEwMyw2ICsxNzExMyw4IEBAIGR1bXBDb25zdHJhaW50KEFyY2hpdmUgKmZvdXQsIGNv bnN0IENvbnN0cmFpbnRJbmZvICpjb25pbmZvKQogCQkJCQkJCQkgIChrID09IDApID8gIiIg OiAiLCAiLAogCQkJCQkJCQkgIGZtdElkKGF0dG5hbWUpKTsKIAkJCX0KKwkJCWlmIChjb25p bmZvLT5jb25wZXJpb2QpCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIiBXSVRIT1VU IE9WRVJMQVBTIik7CiAKIAkJCWlmIChpbmR4aW5mby0+aW5kbmtleWF0dHJzIDwgaW5keGlu Zm8tPmluZG5hdHRycykKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiKSBJTkNMVURF ICgiKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDRiMmU1ODcwYTljLi5iMjViOWY5MzA0ZSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCkBAIC00NzQsNiArNDc0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2NvbnN0 cmFpbnRJbmZvCiAJRHVtcElkCQljb25pbmRleDsJCS8qIGlkZW50aWZpZXMgYXNzb2NpYXRl ZCBpbmRleCBpZiBhbnkgKi8KIAlib29sCQljb25kZWZlcnJhYmxlOwkvKiB0cnVlIGlmIGNv bnN0cmFpbnQgaXMgREVGRVJSQUJMRSAqLwogCWJvb2wJCWNvbmRlZmVycmVkOwkvKiB0cnVl IGlmIGNvbnN0cmFpbnQgaXMgSU5JVElBTExZIERFRkVSUkVEICovCisJYm9vbAkJY29ucGVy aW9kOwkJLyogdHJ1ZSBpZiB0aGUgY29uc3RyYWludCBpcyBXSVRIT1VUIE9WRVJMQVBTICov CiAJYm9vbAkJY29uaXNsb2NhbDsJCS8qIHRydWUgaWYgY29uc3RyYWludCBoYXMgbG9jYWwg ZGVmaW5pdGlvbiAqLwogCWJvb2wJCXNlcGFyYXRlOwkJLyogdHJ1ZSBpZiBtdXN0IGR1bXAg YXMgc2VwYXJhdGUgaXRlbSAqLwogfSBDb25zdHJhaW50SW5mbzsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKaW5kZXggNWJjYzIyNDRkNTguLmFiNmM4MzA0OTEzIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMTAwNCw2ICsxMDA0LDQyIEBAIG15ICV0ZXN0cyA9 ICgKIAkJfSwKIAl9LAogCisJJ0NPTlNUUkFJTlQgUFJJTUFSWSBLRVkgLyBXSVRIT1VUIE9W RVJMQVBTJyA9PiB7CisJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBUQUJMRSBkdW1wX3Rlc3Qu dGVzdF90YWJsZV90cGsgKAorCQkJCQkJCWNvbDEgaW50NHJhbmdlLAorCQkJCQkJCWNvbDIg dHN0enJhbmdlLAorCQkJCQkJCUNPTlNUUkFJTlQgdGVzdF90YWJsZV90cGtfcGtleSBQUklN QVJZIEtFWSAoY29sMSwgY29sMiBXSVRIT1VUIE9WRVJMQVBTKSk7JywKKwkJcmVnZXhwID0+ IHFyL14KKwkJCVxRQUxURVIgVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZV90cGtc RSBcbl5ccysKKwkJCVxRQUREIENPTlNUUkFJTlQgdGVzdF90YWJsZV90cGtfcGtleSBQUklN QVJZIEtFWSAoY29sMSwgY29sMiBXSVRIT1VUIE9WRVJMQVBTKTtcRQorCQkJL3htLAorCQls aWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rp b25fcG9zdF9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1 bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCA9PiAxLAor CQl9LAorCX0sCisKKwknQ09OU1RSQUlOVCBVTklRVUUgLyBXSVRIT1VUIE9WRVJMQVBTJyA9 PiB7CisJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJs ZV90dXEgKAorCQkJCQkJCWNvbDEgaW50NHJhbmdlLAorCQkJCQkJCWNvbDIgdHN0enJhbmdl LAorCQkJCQkJCUNPTlNUUkFJTlQgdGVzdF90YWJsZV90dXFfdXEgVU5JUVVFIChjb2wxLCBj b2wyIFdJVEhPVVQgT1ZFUkxBUFMpKTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRF UiBUQUJMRSBPTkxZIGR1bXBfdGVzdC50ZXN0X3RhYmxlX3R1cVxFIFxuXlxzKworCQkJXFFB REQgQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3R1cV91cSBVTklRVUUgKGNvbDEsIGNvbDIgV0lU SE9VVCBPVkVSTEFQUyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5z LCAlZHVtcF90ZXN0X3NjaGVtYV9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJ CQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0FMVEVSIFRB QkxFIChwYXJ0aXRpb25lZCkgQUREIENPTlNUUkFJTlQgLi4uIEZPUkVJR04gS0VZJyA9PiB7 CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVEFCTEUg ZHVtcF90ZXN0LnRlc3RfdGFibGVfZmsgKApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA3YzlhMWYyMzRjNi4u ZmFhYmVjYmM3NmYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0yMzgzLDYgKzIzODMsMTAgQEAgZGVzY3Jp YmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCWVsc2UKIAkJ CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBmYWxzZSBBUyBpbmRpc3JlcGxpZGVu dCIpOwogCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgYzIucmVsdGFibGVzcGFj ZSIpOworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQkJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKCZidWYsICIsIGNvbi5jb25wZXJpb2QiKTsKKwkJCWVsc2UKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBmYWxzZSBBUyBjb25wZXJpb2QiKTsKIAkJCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJICAiXG5GUk9NIHBnX2NhdGFsb2cucGdf Y2xhc3MgYywgcGdfY2F0YWxvZy5wZ19jbGFzcyBjMiwgcGdfY2F0YWxvZy5wZ19pbmRleCBp XG4iCiAJCQkJCQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IGNv biBPTiAoY29ucmVsaWQgPSBpLmluZHJlbGlkIEFORCBjb25pbmRpZCA9IGkuaW5kZXhyZWxp ZCBBTkQgY29udHlwZSBJTiAoJ3AnLCd1JywneCcpKVxuIgpAQCAtMjQwNCw4ICsyNDA4LDEy IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJ CQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgICAgXCIlc1wiIiwKIAkJCQkJCQkJCSAg UFFnZXR2YWx1ZShyZXN1bHQsIGksIDApKTsKIAotCQkJCQkvKiBJZiBleGNsdXNpb24gY29u c3RyYWludCwgcHJpbnQgdGhlIGNvbnN0cmFpbnRkZWYgKi8KLQkJCQkJaWYgKHN0cmNtcChQ UWdldHZhbHVlKHJlc3VsdCwgaSwgNyksICJ4IikgPT0gMCkKKwkJCQkJLyoKKwkJCQkJICog SWYgZXhjbHVzaW9uIGNvbnN0cmFpbnQgb3IgUEsvVU5JUVVFIGNvbnN0cmFpbnQgV0lUSE9V VAorCQkJCQkgKiBPVkVSTEFQUywgcHJpbnQgdGhlIGNvbnN0cmFpbnRkZWYKKwkJCQkJICov CisJCQkJCWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXN1bHQsIGksIDcpLCAieCIpID09IDAg fHwKKwkJCQkJCXN0cmNtcChQUWdldHZhbHVlKHJlc3VsdCwgaSwgMTIpLCAidCIpID09IDAp CiAJCQkJCXsKIAkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgJXMiLAogCQkJCQkJ CQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDYpKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9naXN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCmluZGV4IGU3 Y2VkMThhNWJhLi4yMmRkMDRjMTQxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L2dpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCkBAIC0xNyw2ICsxNyw3 IEBACiAjZGVmaW5lIEdJU1RfSAogCiAjaW5jbHVkZSAiYWNjZXNzL2l0dXAuaCIKKyNpbmNs dWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgog I2luY2x1ZGUgImFjY2Vzcy94bG9nLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgi CkBAIC0yNDYsNCArMjQ3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlkbyB7IChlKS5rZXkgPSAo ayk7IChlKS5yZWwgPSAocik7IChlKS5wYWdlID0gKHBnKTsgXAogCQkgKGUpLm9mZnNldCA9 IChvKTsgKGUpLmxlYWZrZXkgPSAobCk7IH0gd2hpbGUgKDApCiAKK2V4dGVybiBTdHJhdGVn eU51bWJlciBHaXN0VHJhbnNsYXRlU3RyYXRudW0oT2lkIG9wY2xhc3MsIFN0cmF0ZWd5TnVt YmVyIHN0cmF0KTsKKwogI2VuZGlmCQkJCQkJCS8qIEdJU1RfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9pbmRleC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9pbmRl eC5oCmluZGV4IDdkNDM0ZjhlNjUzLi4yZGVhOTZmNDdjMyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9pbmRleC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXgu aApAQCAtOTMsNiArOTMsNyBAQCBleHRlcm4gT2lkCWluZGV4X2NyZWF0ZShSZWxhdGlvbiBo ZWFwUmVsYXRpb24sCiAjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfSU5JVF9ERUZFUlJF RAkoMSA8PCAyKQogI2RlZmluZQlJTkRFWF9DT05TVFJfQ1JFQVRFX1VQREFURV9JTkRFWAko MSA8PCAzKQogI2RlZmluZQlJTkRFWF9DT05TVFJfQ1JFQVRFX1JFTU9WRV9PTERfREVQUwko MSA8PCA0KQorI2RlZmluZQlJTkRFWF9DT05TVFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFMg KDEgPDwgNSkKIAogZXh0ZXJuIE9pZAlpbmRleF9jb25jdXJyZW50bHlfY3JlYXRlX2NvcHko UmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkJCSAgIE9pZCBvbGRJbmRleElkLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaAppbmRleCA3YTgwMTdmMTViNS4uOTZj MDA2MjRiMTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCkBAIC0xMDcs NiArMTA3LDEyIEBAIENBVEFMT0cocGdfY29uc3RyYWludCwyNjA2LENvbnN0cmFpbnRSZWxh dGlvbklkKQogCS8qIEhhcyBhIGxvY2FsIGRlZmluaXRpb24gYW5kIGNhbm5vdCBiZSBpbmhl cml0ZWQgKi8KIAlib29sCQljb25ub2luaGVyaXQ7CiAKKwkvKgorCSAqIEZvciBwcmltYXJ5 IGtleXMgYW5kIHVuaXF1ZSBjb25zdHJhaW50cywgc2lnbmlmaWVzIHRoZSBsYXN0IGNvbHVt biB1c2VzCisJICogb3ZlcmxhcHMgaW5zdGVhZCBvZiBlcXVhbHMuCisJICovCisJYm9vbAkJ Y29ucGVyaW9kOworCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5n dGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAogCS8qCkBAIC0xNDYsNyArMTUyLDggQEAgQ0FU QUxPRyhwZ19jb25zdHJhaW50LDI2MDYsQ29uc3RyYWludFJlbGF0aW9uSWQpCiAKIAkvKgog CSAqIElmIGFuIGV4Y2x1c2lvbiBjb25zdHJhaW50LCB0aGUgT0lEcyBvZiB0aGUgZXhjbHVz aW9uIG9wZXJhdG9ycyBmb3IKLQkgKiBlYWNoIGNvbHVtbiBvZiB0aGUgY29uc3RyYWludAor CSAqIGVhY2ggY29sdW1uIG9mIHRoZSBjb25zdHJhaW50LiAgQWxzbyBzZXQgZm9yIHVuaXF1 ZSBjb25zdHJhaW50cy9wcmltYXJ5CisJICoga2V5cyB1c2luZyBXSVRIT1VUIE9WRVJMQVBT LgogCSAqLwogCU9pZAkJCWNvbmV4Y2xvcFsxXSBCS0lfTE9PS1VQKHBnX29wZXJhdG9yKTsK IApAQCAtMjM4LDYgKzI0NSw3IEBAIGV4dGVybiBPaWQJQ3JlYXRlQ29uc3RyYWludEVudHJ5 KGNvbnN0IGNoYXIgKmNvbnN0cmFpbnROYW1lLAogCQkJCQkJCQkgIGJvb2wgY29uSXNMb2Nh bCwKIAkJCQkJCQkJICBpbnQgY29uSW5oQ291bnQsCiAJCQkJCQkJCSAgYm9vbCBjb25Ob0lu aGVyaXQsCisJCQkJCQkJCSAgYm9vbCBjb25QZXJpb2QsCiAJCQkJCQkJCSAgYm9vbCBpc19p bnRlcm5hbCk7CiAKIGV4dGVybiBib29sIENvbnN0cmFpbnROYW1lSXNVc2VkKENvbnN0cmFp bnRDYXRlZ29yeSBjb25DYXQsIE9pZCBvYmpJZCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL2RlZnJlbS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgKaW5k ZXggMjljNTExZTMxOTYuLjBjNTNkNjdkM2VlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9kZWZyZW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaApA QCAtMTQsNiArMTQsNyBAQAogI2lmbmRlZiBERUZSRU1fSAogI2RlZmluZSBERUZSRU1fSAog CisjaW5jbHVkZSAiYWNjZXNzL3N0cmF0bnVtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX25vZGUuaCIKQEAgLTQ0LDEwICs0NSwxMyBAQCBleHRlcm4gY2hhciAqQ2hv b3NlUmVsYXRpb25OYW1lKGNvbnN0IGNoYXIgKm5hbWUxLCBjb25zdCBjaGFyICpuYW1lMiwK IGV4dGVybiBib29sIENoZWNrSW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJZCwKIAkJCQkJCQkJ IGNvbnN0IGNoYXIgKmFjY2Vzc01ldGhvZE5hbWUsCiAJCQkJCQkJCSBjb25zdCBMaXN0ICph dHRyaWJ1dGVMaXN0LAotCQkJCQkJCQkgY29uc3QgTGlzdCAqZXhjbHVzaW9uT3BOYW1lcyk7 CisJCQkJCQkJCSBjb25zdCBMaXN0ICpleGNsdXNpb25PcE5hbWVzLAorCQkJCQkJCQkgYm9v bCBpc1dpdGhvdXRPdmVybGFwcyk7CiBleHRlcm4gT2lkCUdldERlZmF1bHRPcENsYXNzKE9p ZCB0eXBlX2lkLCBPaWQgYW1faWQpOwogZXh0ZXJuIE9pZAlSZXNvbHZlT3BDbGFzcyhjb25z dCBMaXN0ICpvcGNsYXNzLCBPaWQgYXR0clR5cGUsCiAJCQkJCQkgICBjb25zdCBjaGFyICph Y2Nlc3NNZXRob2ROYW1lLCBPaWQgYWNjZXNzTWV0aG9kSWQpOworZXh0ZXJuIHZvaWQgR2V0 T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBl LAorCQkJCQkJCQkJCQkgT2lkICpvcGlkLCBTdHJhdGVneU51bWJlciAqc3RyYXQpOwogCiAv KiBjb21tYW5kcy9mdW5jdGlvbmNtZHMuYyAqLwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3Jl YXRlRnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVGdW5jdGlvblN0bXQgKnN0 bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDg1YTYyYjUzOGU1Li45ZGM0NjY3 ZDJiZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjc1MCw2ICsyNzUwLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgQ29uc3RyYWludAogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5jdDsg LyogbnVsbCB0cmVhdG1lbnQgZm9yIFVOSVFVRSBjb25zdHJhaW50cyAqLwogCUxpc3QJICAg KmtleXM7CQkJLyogU3RyaW5nIG5vZGVzIG5hbWluZyByZWZlcmVuY2VkIGtleQogCQkJCQkJ CQkgKiBjb2x1bW4ocyk7IGZvciBVTklRVUUvUEsvTk9UIE5VTEwgKi8KKwlib29sCQl3aXRo b3V0X292ZXJsYXBzOwkvKiBXSVRIT1VUIE9WRVJMQVBTIHNwZWNpZmllZCAqLwogCUxpc3QJ ICAgKmluY2x1ZGluZzsJCS8qIFN0cmluZyBub2RlcyBuYW1pbmcgcmVmZXJlbmNlZCBub25r ZXkKIAkJCQkJCQkJICogY29sdW1uKHMpOyBmb3IgVU5JUVVFL1BLICovCiAJTGlzdAkgICAq ZXhjbHVzaW9uczsJCS8qIGxpc3Qgb2YgKEluZGV4RWxlbSwgb3BlcmF0b3IgbmFtZSkgcGFp cnM7CkBAIC0zMzczLDYgKzMzNzQsNyBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFN0bXQKIAli b29sCQludWxsc19ub3RfZGlzdGluY3Q7IC8qIG51bGwgdHJlYXRtZW50IGZvciBVTklRVUUg Y29uc3RyYWludHMgKi8KIAlib29sCQlwcmltYXJ5OwkJLyogaXMgaW5kZXggYSBwcmltYXJ5 IGtleT8gKi8KIAlib29sCQlpc2NvbnN0cmFpbnQ7CS8qIGlzIGl0IGZvciBhIHBrZXkvdW5p cXVlIGNvbnN0cmFpbnQ/ICovCisJYm9vbAkJaXN3aXRob3V0b3ZlcmxhcHM7CS8qIGlzIHRo ZSBjb25zdHJhaW50IFdJVEhPVVQgT1ZFUkxBUFM/ICovCiAJYm9vbAkJZGVmZXJyYWJsZTsJ CS8qIGlzIHRoZSBjb25zdHJhaW50IERFRkVSUkFCTEU/ICovCiAJYm9vbAkJaW5pdGRlZmVy cmVkOwkvKiBpcyB0aGUgY29uc3RyYWludCBJTklUSUFMTFkgREVGRVJSRUQ/ICovCiAJYm9v bAkJdHJhbnNmb3JtZWQ7CS8qIHRydWUgd2hlbiB0cmFuc2Zvcm1JbmRleFN0bXQgaXMgZmlu aXNoZWQgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOTU4 NmM0N2I1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv d2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTAsMCArMSwxMjY0IEBACistLSBUZXN0cyBmb3Ig V0lUSE9VVCBPVkVSTEFQUy4KKy0tCistLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJs ZXMgdG8gdGVzdCBwZ19kdW1wIGV0YzoKKy0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5n MiwKKy0tIHRlbXBvcmFsX2ZrX3JuZzJybmcuCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1E OworLS0KKy0tIHRlc3QgaW5wdXQgcGFyc2VyCistLQorLS0gUEsgd2l0aCBubyBjb2x1bW5z IGp1c3QgV0lUSE9VVCBPVkVSTEFQUzoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAor ICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBS SU1BUlkgS0VZICh2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0VSUk9SOiAgY29u c3RyYWludCB1c2luZyBXSVRIT1VUIE9WRVJMQVBTIG5lZWRzIGF0IGxlYXN0IHR3byBjb2x1 bW5zCistLSBQSyB3aXRoIGEgcmFuZ2UgY29sdW1uL1BFUklPRCB0aGF0IGlzbid0IHRoZXJl OgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlkIElOVEVHRVIsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKyk7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIG5hbWVkIGluIGtl eSBkb2VzIG5vdCBleGlzdAorTElORSAzOiAgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE8uLi4KKyAgICAgICAgICBeCistLSBQ SyB3aXRoIGEgbm9uLXJhbmdlIGNvbHVtbjoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IFRFWFQsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitFUlJPUjogIGRhdGEgdHlwZSB0ZXh0IGhhcyBubyBkZWZhdWx0IG9wZXJhdG9y IGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJnaXN0IgorSElOVDogIFlvdSBtdXN0IHNwZWNp ZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZhdWx0 IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorLS0gUEsgd2l0aCBvbmUgY29s dW1uIHBsdXMgYSByYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorICAtLSBT aW5jZSB3ZSBjYW4ndCBkZXBlbmQgb24gaGF2aW5nIGJ0cmVlX2dpc3QgaGVyZSwKKyAgLS0g dXNlIGFuIGludDRyYW5nZSBpbnN0ZWFkIG9mIGFuIGludC4KKyAgLS0gKFRoZSByYW5nZXR5 cGVzIHJlZ3Jlc3Npb24gdGVzdCB1c2VzIHRoZSBzYW1lIHRyaWNrLikKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7Citc ZCB0ZW1wb3JhbF9ybmcKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9y bmciCisgIENvbHVtbiAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVs bCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK K0luZGV4ZXM6CisgICAgInRlbXBvcmFsX3JuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYo b2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmdf cGsnOworICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVD VCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWlu dCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJ TkRFWCB0ZW1wb3JhbF9ybmdfcGsgT04gdGVtcG9yYWxfcm5nIFVTSU5HIGdpc3QgKGlkLCB2 YWxpZF9hdCkKKygxIHJvdykKKworLS0gUEsgZnJvbSBMSUtFOgorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3JuZzIgKExJS0UgdGVtcG9yYWxfcm5nIElOQ0xVRElORyBBTEwpOworXGQgdGVt cG9yYWxfcm5nMgorICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMiIK KyAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVs dCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CisgdmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorSW5k ZXhlczoKKyAgICAidGVtcG9yYWxfcm5nMl9wa2V5IiBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMjsKKy0t IG5vIFBLIGZyb20gSU5IRVJJVFM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoKSBJ TkhFUklUUyAodGVtcG9yYWxfcm5nKTsKK1xkIHRlbXBvcmFsX3JuZzIKKyAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3JuZzIiCisgIENvbHVtbiAgfCAgIFR5cGUgICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdl IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKK0luaGVyaXRzOiB0ZW1wb3JhbF9ybmcKKwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7Cist LSBQSyBpbiBpbmhlcml0aW5nIHRhYmxlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzIgKAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIElOSEVSSVRTICh0 ZW1wb3JhbF9ybmcpOworXGQgdGVtcG9yYWxfcm5nMgorICAgICAgICAgICAgIFRhYmxlICJw dWJsaWMudGVtcG9yYWxfcm5nMiIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcm5nX3BrIiBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitJbmhlcml0czogdGVt cG9yYWxfcm5nCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nIENBU0NBREU7CitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHRlbXBvcmFsX3JuZzIKKy0tIEFkZCBQSyB0byBh bHJlYWR5IGluaGVyaXRpbmcgdGFibGU6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcm5nMiAoKSBJTkhFUklUUyAodGVtcG9yYWxfcm5nKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX3JuZzIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3Jh bF9ybmcyCisgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ybmcyIgorICBD b2x1bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAor LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LQorIGlkICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2 YWxpZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVz OgorICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKK0luaGVyaXRzOiB0ZW1wb3JhbF9ybmcKKworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CistLSBQSyB3aXRoIHR3 byBjb2x1bW5zIHBsdXMgYSByYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgK KyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwg aWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3JuZzIK KyAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3JuZzIiCisgIENvbHVtbiAg fCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQx ICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIGlkMiAgICAg IHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCB8IGRh dGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAgICJ0ZW1w b3JhbF9ybmcyX3BrIiBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdf Y29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOworICAgICAg ICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZ IEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisK K1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX3JuZzJfcGsgT04gdGVtcG9y YWxfcm5nMiBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFsaWRfYXQpCisoMSByb3cpCisKKy0t IFBLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToKK0NSRUFURSBUWVBFIHRleHRyYW5nZTIg QVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9uPSJDIik7CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdGV4dHJhbmdl MiwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcz IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrOworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9ybmczOworRFJPUCBUWVBFIHRleHRyYW5nZTI7CistLSBQSyB3aXRoIG9uZSBjb2x1bW4g cGx1cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9tbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX21sdHJuZworICAgICAgICAgICAgICAgVGFi bGUgInB1YmxpYy50ZW1wb3JhbF9tbHRybmciCisgIENvbHVtbiAgfCAgICAgIFR5cGUgICAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAg IHwgaW50NHJhbmdlICAgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0 IHwgZGF0ZW11bHRpcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorSW5kZXhlczoK KyAgICAidGVtcG9yYWxfbWx0cm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZ19wayc7 CisgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBn X2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nX3BrJzsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVB VEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX21sdHJuZ19wayBPTiB0ZW1wb3JhbF9tbHRybmcg VVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0KQorKDEgcm93KQorCistLSBQSyB3aXRoIHR3byBj b2x1bW5zIHBsdXMgYSBtdWx0aXJhbmdlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJu ZzIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlbXVsdGlyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmcyX3BrIFBSSU1B UlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0 ZW1wb3JhbF9tbHRybmcyCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxf bWx0cm5nMiIKKyAgQ29sdW1uICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQxICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgaWQyICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlbXVsdGlyYW5nZSB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9tbHRy bmcyX3BrIiBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZzJfcGsnOworICAgICAgICAg ICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZIEtF WSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NF TEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZzJfcGsnOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX21sdHJu ZzJfcGsgT04gdGVtcG9yYWxfbWx0cm5nMiBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFsaWRf YXQpCisoMSByb3cpCisKKy0tIFVOSVFVRSB3aXRoIG5vIGNvbHVtbnMganVzdCBXSVRIT1VU IE9WRVJMQVBTOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICB2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBjb25zdHJhaW50IHVzaW5nIFdJ VEhPVVQgT1ZFUkxBUFMgbmVlZHMgYXQgbGVhc3QgdHdvIGNvbHVtbnMKKy0tIFVOSVFVRSB3 aXRoIGEgcmFuZ2UgY29sdW1uL1BFUklPRCB0aGF0IGlzbid0IHRoZXJlOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBJTlRFR0VSLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIG5hbWVkIGluIGtleSBkb2VzIG5vdCBleGlz dAorTElORSAzOiAgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE8uLi4KKyAgICAgICAgICBeCistLSBVTklRVUUgd2l0aCBhIG5v bi1yYW5nZSBjb2x1bW46CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgVEVYVCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcz X3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6 ICBkYXRhIHR5cGUgdGV4dCBoYXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgYWNj ZXNzIG1ldGhvZCAiZ2lzdCIKK0hJTlQ6ICBZb3UgbXVzdCBzcGVjaWZ5IGFuIG9wZXJhdG9y IGNsYXNzIGZvciB0aGUgaW5kZXggb3IgZGVmaW5lIGEgZGVmYXVsdCBvcGVyYXRvciBjbGFz cyBmb3IgdGhlIGRhdGEgdHlwZS4KKy0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBh IHJhbmdlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9y YWxfcm5nMworICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMyIKKyAg Q29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAK Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg dmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhl czoKKyAgICAidGVtcG9yYWxfcm5nM191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CisgICAg ICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRp ZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9y YWxfcm5nM191cSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf aW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5nM191 cSBPTiB0ZW1wb3JhbF9ybmczIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygxIHJvdykK KworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVt bnMgcGx1cyBhIHJhbmdlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZDEg aW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3JuZzMKKyAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3JuZzMiCisgIENvbHVtbiAgfCAgIFR5cGUgICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQxICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGlkMiAgICAgIHwgaW50NHJhbmdl IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF9hdCB8IGRhdGVyYW5nZSB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ybmczX3Vx IiBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorCitTRUxF Q1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9ybmczX3VxJzsKKyAgICAgICAgICAgICBwZ19nZXRfY29u c3RyYWludGRlZiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlk LCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9ybmczX3VxJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dl dF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1w b3JhbF9ybmczX3VxIE9OIHRlbXBvcmFsX3JuZzMgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZh bGlkX2F0KQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CistLSBVTklR VUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgorQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBB UyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0ZXh0cmFuZ2Uy LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcz OworRFJPUCBUWVBFIHRleHRyYW5nZTI7CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQg Q09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X3JuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKy0tIFBLIHdpdGggVVNJTkcgSU5E RVggKG5vdCBwb3NzaWJsZSk6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgSU5ERVggaWR4X3Rl bXBvcmFsM191cSBPTiB0ZW1wb3JhbDMgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0KTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAg UFJJTUFSWSBLRVkgVVNJTkcgSU5ERVggaWR4X3RlbXBvcmFsM191cTsKK0VSUk9SOiAgImlk eF90ZW1wb3JhbDNfdXEiIGlzIG5vdCBhIHVuaXF1ZSBpbmRleAorTElORSAyOiAgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsM19waworICAgICAgICAgICAgICBeCitERVRBSUw6ICBDYW5u b3QgY3JlYXRlIGEgcHJpbWFyeSBrZXkgb3IgdW5pcXVlIGNvbnN0cmFpbnQgdXNpbmcgc3Vj aCBhbiBpbmRleC4KK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gVU5JUVVFIHdpdGggVVNJ TkcgSU5ERVggKG5vdCBwb3NzaWJsZSk6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgSU5ERVgg aWR4X3RlbXBvcmFsM191cSBPTiB0ZW1wb3JhbDMgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0 KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNf dXEKKyAgVU5JUVVFIFVTSU5HIElOREVYIGlkeF90ZW1wb3JhbDNfdXE7CitFUlJPUjogICJp ZHhfdGVtcG9yYWwzX3VxIiBpcyBub3QgYSB1bmlxdWUgaW5kZXgKK0xJTkUgMjogICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgICAgICAgICAgICAgXgorREVUQUlMOiAgQ2Fu bm90IGNyZWF0ZSBhIHByaW1hcnkga2V5IG9yIHVuaXF1ZSBjb25zdHJhaW50IHVzaW5nIHN1 Y2ggYW4gaW5kZXguCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0tIFVOSVFVRSB3aXRoIFVT SU5HIFtVTklRVUVdIElOREVYIChwb3NzaWJsZSBidXQgbm90IGEgdGVtcG9yYWwgY29uc3Ry YWludCk6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgVU5JUVVFIElOREVYIGlkeF90ZW1wb3Jh bDNfdXEgT04gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9y YWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQorICBVTklRVUUgVVNJTkcgSU5E RVggaWR4X3RlbXBvcmFsM191cTsKK05PVElDRTogIEFMVEVSIFRBQkxFIC8gQUREIENPTlNU UkFJTlQgVVNJTkcgSU5ERVggd2lsbCByZW5hbWUgaW5kZXggImlkeF90ZW1wb3JhbDNfdXEi IHRvICJ0ZW1wb3JhbDNfdXEiCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0tIEFkZCByYW5n ZSBjb2x1bW4gYW5kIHRoZSBQSyBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFCTEUgdGVt cG9yYWwzICgKKyAgaWQgaW50NHJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisg IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gQWRkIHJhbmdlIGNvbHVtbiBhbmQgVU5J UVVFIGNvbnN0cmFpbnQgYXQgdGhlIHNhbWUgdGltZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs MyAoCisgIGlkIGludDRyYW5nZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQg Q09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwz X3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworRFJPUCBU QUJMRSB0ZW1wb3JhbDM7CistLQorLS0gcmFuZ2UgUEs6IHRlc3Qgd2l0aCBleGlzdGluZyBy b3dzCistLQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmdfcGs7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5n IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGs7CistLSBzaG91bGQgZmFpbDoKK0JFR0lOOwor ICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworRVJST1I6ICBjb3Vs ZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAy LTAzKSkgY29uZmxpY3RzIHdpdGgga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDEtMDEsMjAxOC0wMS0wNSkpLgorUk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9y bmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmc7Cist LQorLS0gcmFuZ2UgUEs6IHRlc3QgaW5zZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CistLSBz aG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jykp OworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNv bnN0cmFpbnQgInRlbXBvcmFsX3JuZ19wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKSBjb25mbGljdHMgd2l0aCBleGlz dGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAz KSkuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChO VUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0VSUk9SOiAg bnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAobnVsbCwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitFUlJP UjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGlu ZyByb3cgY29udGFpbnMgKFszLDQpLCBudWxsKS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBb MjAxOC0wMS0wMiwyMDE4LTAyLTAzKQorIFsxLDIpIHwgWzIwMTgtMDMtMDMsMjAxOC0wNC0w NCkKKyBbMiwzKSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisgWzMsNCkgfCBbMjAxOC0w MS0wMSwpCisoNCByb3dzKQorCistLQorLS0gcmFuZ2UgUEs6IHRlc3QgdXBkYXRlcworLS0K Ky0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQg ICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxp ZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhlIHJhbmdlIHBhcnQK K1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIHZhbGlkX2F0ID0gJ1syMDIwLTAxLTAx LDIwMjEtMDEtMDEpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9h dCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERB VEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFs aWRfYXQgPSAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknCitXSEVSRSAgIGlkID0gJ1sxMSwx MiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgIGlkICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFsxLDIpICAgfCBbMjAxOC0wMy0wMywyMDE4LTA0LTA0KQorIFsyLDMpICAg fCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQorIFszLDQpICAgfCBbMjAxOC0wMS0wMSwpCisg WzIxLDIyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpCisoNCByb3dzKQorCistLSBzaG91 bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywK KyAgICAgICAgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0w NScpCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBjb25mbGljdGluZyBrZXkg dmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3JuZ19wayIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTA1LDIwMTgt MDUtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbMjAxOC0wMy0wMywyMDE4LTA0LTA0KSkuCistLSBzZXQgdGhlIHNjYWxhciBwYXJ0 IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gTlVMTCwKKyAg ICAgICAgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wNScp CitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVt biAiaWQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIG5vdC1udWxsIGNv bnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCBbMjAxOC0w My0wNSwyMDE4LTA1LTA1KSkuCistLSBzZXQgdGhlIHJhbmdlIHBhcnQgdG8gTlVMTAorVVBE QVRFICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxp ZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIG51bGwgdmFs dWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgdmlv bGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKFsxLDIpLCBudWxsKS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCist LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpICAgfCBbMjAxOC0w My0wMywyMDE4LTA0LTA0KQorIFsyLDMpICAgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQor IFszLDQpICAgfCBbMjAxOC0wMS0wMSwpCisgWzIxLDIyKSB8IFsyMDE4LTAxLTAyLDIwMTgt MDItMDMpCisoNCByb3dzKQorCistLQorLS0gcmFuZ2UgVVE6IHRlc3Qgd2l0aCBleGlzdGlu ZyByb3dzCistLQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZQorKTsKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAz LTAzJywgJzIwMTgtMDQtMDQnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfcm5nMyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cTsKKy0tIHNo b3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMS0wNScpKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpOworRVJST1I6ICBjb3VsZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ybmczX3VxIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwg WzIwMTgtMDEtMDIsMjAxOC0wMi0wMykpIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKS4KK1JPTExCQUNLOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMzsKKy0tCistLSByYW5nZSBVUTogdGVzdCBpbnNlcnRzCistLQorLS0g b2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCBOVUxMKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1szLDQpJywgTlVMTCk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVl IHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmczX3VxIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0w NSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiks IFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpKS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5n MyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIw MTgtMDEtMDIsMjAxOC0wMi0wMykKKyBbMSwyKSB8IFsyMDE4LTAzLTAzLDIwMTgtMDQtMDQp CisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQorIFszLDQpIHwgWzIwMTgtMDEt MDEsKQorIFszLDQpIHwgCisgICAgICAgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQorKDYg cm93cykKKworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCistLSB1cGRhdGUg dGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3JuZzMKK1NFVCAgICAgaWQgPSAn WzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcy MDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgcmFuZ2UgcGFydAorVVBEQVRFICB0 ZW1wb3JhbF9ybmczCitTRVQgICAgIHZhbGlkX2F0ID0gJ1syMDIwLTAxLTAxLDIwMjEtMDEt MDEpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAx OC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBv cmFsX3JuZzMKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2F0ID0g J1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5E ICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CistLSBzZXQgdGhlIHNjYWxh ciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICBpZCA9IE5V TEwsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKQorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHNldCB0aGUgcmFuZ2UgcGFy dCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3JuZzMKK1NFVCAgICAgaWQgPSAnWzEsMikn LAorICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFs aWRfYXQgQD4gJzIwMjAtMDYtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9y bmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBb MjAxOC0wMy0wMywyMDE4LTA0LTA0KQorIFsxLDIpIHwgCisgWzIsMykgfCBbMjAxOC0wMS0w MSwyMDE4LTAxLTA1KQorIFszLDQpIHwgWzIwMTgtMDEtMDEsKQorIFszLDQpIHwgCisgICAg ICAgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQorKDYgcm93cykKKworLS0gc2hvdWxkIGZh aWw6CitVUERBVEUgIHRlbXBvcmFsX3JuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wNS0wNScpCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBB TkQgdmFsaWRfYXQgSVMgTlVMTDsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZp b2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmczX3VxIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDEsMjAxOC0wNS0wNSkp IGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAzLTAzLDIwMTgtMDQtMDQpKS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nMyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMTgt MDMtMDMsMjAxOC0wNC0wNCkKKyBbMSwyKSB8IAorIFsyLDMpIHwgWzIwMTgtMDEtMDEsMjAx OC0wMS0wNSkKKyBbMyw0KSB8IFsyMDE4LTAxLTAxLCkKKyBbMyw0KSB8IAorICAgICAgIHwg WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkKKyg2IHJvd3MpCisKK0RST1AgVEFCTEUgdGVtcG9y YWxfcm5nMzsKKy0tCistLSBtdWx0aXJhbmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93 cworLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfbWx0cm5nX3BrOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Myw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf bWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X21sdHJuZ19wazsKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKKyAgQUxU RVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworRVJS T1I6ICBjb3VsZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9t bHRybmdfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgt MDEtMDIsMjAxOC0wMi0wMyl9KSBjb25mbGljdHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9KS4KK1JPTExCQUNLOworQUxURVIg VEFCTEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nOworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3QgaW5z ZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSkpOworLS0gc2hv dWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMS0wNScpKSk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9s YXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfbWx0cm5nX3BrIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUp fSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwg e1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfSkuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitFUlJPUjogIG51bGwgdmFsdWUg aW4gY29sdW1uICJpZCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMg bm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51 bGwsIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitFUlJPUjog IG51bGwgdmFsdWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFs X21sdHJuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGlu ZyByb3cgY29udGFpbnMgKFszLDQpLCBudWxsKS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf bWx0cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsx LDIpIHwge1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfQorIFsxLDIpIHwge1syMDE4LTAzLTAz LDIwMTgtMDQtMDQpfQorIFsyLDMpIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorIFsz LDQpIHwge1syMDE4LTAxLTAxLCl9CisoNCByb3dzKQorCistLQorLS0gbXVsdGlyYW5nZSBQ SzogdGVzdCB1cGRhdGVzCistLQorLS0gdXBkYXRlIHRoZSBzY2FsYXIgcGFydAorVVBEQVRF ICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQg PSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0t IHVwZGF0ZSB0aGUgbXVsdGlyYW5nZSBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZwor U0VUICAgICB2YWxpZF9hdCA9ICd7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9JworV0hFUkUg ICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRh dGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZwor U0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRfYXQgPSAne1syMDE4LTAx LTAyLDIwMTgtMDItMDMpfScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFs aWRfYXQgQD4gJzIwMjAtMDEtMTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9t bHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgaWQgICAgfCAgICAgICAgIHZhbGlk X2F0ICAgICAgICAgIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsxLDIpICAgfCB7WzIwMTgtMDMtMDMsMjAxOC0wNC0wNCl9CisgWzIsMykgICB8IHtbMjAx OC0wMS0wMSwyMDE4LTAxLTA1KX0KKyBbMyw0KSAgIHwge1syMDE4LTAxLTAxLCl9CisgWzIx LDIyKSB8IHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0KKyg0IHJvd3MpCisKKy0tIHNob3Vs ZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAgICAgaWQgPSAnWzEsMikn LAorICAgICAgICB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w My0wNScsICcyMDE4LTA1LTA1JykpCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6 ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQg InRlbXBvcmFsX21sdHJuZ19wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIHtbMjAxOC0wMy0wNSwyMDE4LTA1LTA1KX0pIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5n IGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMy0wMywyMDE4LTA0LTA0KX0p LgorLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX21s dHJuZworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUnKSkKK1dIRVJFICAg aWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJpZCIgb2Yg cmVsYXRpb24gInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWlu dAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIHtbMjAxOC0wMy0wNSwy MDE4LTA1LTA1KX0pLgorLS0gc2V0IHRoZSBtdWx0aXJhbmdlIHBhcnQgdG8gTlVMTAorVVBE QVRFICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2 YWxpZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIG51bGwg dmFsdWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX21sdHJu ZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyByb3cg Y29udGFpbnMgKFsxLDIpLCBudWxsKS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgIGlkICAgIHwgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwy KSAgIHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfQorIFsyLDMpICAgfCB7WzIwMTgtMDEt MDEsMjAxOC0wMS0wNSl9CisgWzMsNCkgICB8IHtbMjAxOC0wMS0wMSwpfQorIFsyMSwyMikg fCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9CisoNCByb3dzKQorCistLQorLS0gbXVsdGly YW5nZSBVUTogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0tCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfbWx0cm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRp cmFuZ2UKKyk7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVM TCwgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMyw0KScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cTsKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47 CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMS0wNScpKSk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKTsKK0VSUk9SOiAgY291bGQgbm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3Ry YWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0pIGNvbmZsaWN0cyB3aXRoIGtl eSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgor Uk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmczOworLS0KKy0tIG11bHRpcmFu Z2UgVVE6IHRlc3QgaW5zZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgTlVMTCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9h dCkgVkFMVUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CistLSBzaG91bGQgZmFpbDoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNp b24gY29uc3RyYWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pIGNvbmZsaWN0 cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0w MiwyMDE4LTAyLTAzKX0pLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg CistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDE4 LTAxLTAyLDIwMTgtMDItMDMpfQorIFsxLDIpIHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQp fQorIFsyLDMpIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorIFszLDQpIHwge1syMDE4 LTAxLTAxLCl9CisgWzMsNCkgfCAKKyAgICAgICB8IHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1 KX0KKyg2IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0t CistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMK K1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAg IHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgbXVsdGly YW5nZSBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFsaWRfYXQg PSAne1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScK K0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJv dGggYXQgb25jZQorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAgIGlkID0gJ1sy MSwyMiknLAorICAgICAgICB2YWxpZF9hdCA9ICd7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9 JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0w MS0xNSc6OmRhdGU7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAg dGVtcG9yYWxfbWx0cm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSkKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIG11bHRpcmFuZ2UgcGFy dCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgaWQgPSAnWzEs MiknLAorICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQg dmFsaWRfYXQgQD4gJzIwMjAtMDYtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9tbHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsxLDIpIHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfQorIFsxLDIpIHwgCisgWzIsMykg fCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0K KyBbMyw0KSB8IAorICAgICAgIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorKDYgcm93 cykKKworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAg ICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAn MjAxOC0wNS0wNScpKQorV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5V TEw7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24g Y29uc3RyYWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KX0pIGNvbmZsaWN0cyB3 aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMy0wMywy MDE4LTA0LTA0KX0pLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDE4LTAz LTAzLDIwMTgtMDQtMDQpfQorIFsxLDIpIHwgCisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAx OC0wMS0wNSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMyw0KSB8IAorICAgICAg IHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorKDYgcm93cykKKworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9tbHRybmczOworLS0KKy0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBh bmQgYSBVTklRVUUgY29uc3RyYWludAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgaWQyIGludDhyYW5n ZSwKKyAgbmFtZSBURVhULAorICBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsM191bmlxIFVOSVFVRSAoaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZB TFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEn KSwgJ1s3LDgpJywgJ2ZvbycpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAx JywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXInKQorOworRFJPUCBUQUJMRSB0ZW1w b3JhbDM7CistLQorLS0gdGVzdCBjaGFuZ2luZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKKy0t CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9h dCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMgQUxURVIgQ09MVU1OIHZhbGlkX2F0IERST1AgTk9UIE5VTEw7CitFUlJPUjogIGNvbHVt biAidmFsaWRfYXQiIGlzIGluIGEgcHJpbWFyeSBrZXkKK0FMVEVSIFRBQkxFIHRlbXBvcmFs MyBBTFRFUiBDT0xVTU4gdmFsaWRfYXQgVFlQRSB0c3R6cmFuZ2UgVVNJTkcgdHN0enJhbmdl KGxvd2VyKHZhbGlkX2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsMyBSRU5BTUUgQ09MVU1OIHZhbGlkX2F0IFRPIHZhbGlkX3RocnU7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfdGhydTsKK0RST1AgVEFCTEUgdGVtcG9y YWwzOworLS0KKy0tIHRlc3QgUEFSVElUSU9OIEJZIGZvciByYW5nZXMKKy0tCistLSB0ZW1w b3JhbCBQUklNQVJZIEtFWToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQs CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7 CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBG T1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFS VElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScs ICdbNCw1KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxp ZF9hdCwgbmFtZSkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAwMC0wMi0wMScpLCAnb25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAt MDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2Uo JzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAx KSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKKyBbMyw0 KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKygzIHJvd3MpCisKK1NFTEVD VCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCisg WzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorKDIgcm93cykKKworU0VM RUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRo cmVlCisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CistLSB0 ZW1wb3JhbCBVTklRVUU6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFU RSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxV RVMgSU4gKCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUp Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBu YW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAw LTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScs ICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25l CisgWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorIFszLDQpIHwgWzIw MDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQorKDMgcm93cykKKworU0VMRUNUICogRlJP TSB0cDEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKKyBbMSwyKSB8 IFsyMDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwgb25lCisoMiByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0KKyBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKygx IHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKy0tIEFMVEVSIFRB QkxFIFJFUExJQ0EgSURFTlRJVFkKKy0tIChzaG91bGQgZmFpbCkKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX3JuZyBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHRlbXBvcmFsX3JuZ19w azsKK0VSUk9SOiAgY2Fubm90IHVzZSBub24tdW5pcXVlIGluZGV4ICJ0ZW1wb3JhbF9ybmdf cGsiIGFzIHJlcGxpY2EgaWRlbnRpdHkKKy0tCistLSBPTiBDT05GTElDVDogcmFuZ2VzCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywg JzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBp ZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywg JzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwg WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKyBbMSwyKSB8IFsyMDEwLTAxLTAxLDIwMjAtMDEt MDEpCisgWzIsMykgfCBbMjAwNS0wMS0wMSwyMDA2LTAxLTAxKQorKDMgcm93cykKKworVFJV TkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAt MDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0w MScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJ Tkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWlu dCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAx LTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjog IHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0 aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04g Q09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMg bm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05G TElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEs MjAxMC0wMS0wMSkKKygxIHJvdykKKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZM SUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CistLSBpZCBt YXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIw MjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsg RE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNU UkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIp IHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKyBbMSwyKSB8IFsyMDEwLTAxLTAxLDIwMjAt MDEtMDEpCisgWzIsMykgfCBbMjAwNS0wMS0wMSwyMDA2LTAxLTAxKQorKDMgcm93cykKKwor VFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIw MTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0w MS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQ REFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CitFUlJPUjogIHRoZXJlIGlz IG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09O RkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIChp ZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7 CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBt YXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVz IGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEt MDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4 Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0 aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKygx IHJvdykKKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJ TlQgdGVtcG9yYWxfcm5nX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdb MiwzKSc7CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdp dGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5v dCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0tIGRhdGUgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIFVQ REFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIE9OIENPTkZM SUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRz CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg IGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkKKygxIHJv dykKKworLS0gd2l0aCBhIFVOSVFVRSBjb25zdHJhaW50OgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05T VFJBSU5UIHRlbXBvcmFsM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK1RSVU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScs ICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gaWQg bWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIw LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0 IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpCisgWzEsMikgfCBbMjAxMC0wMS0wMSwyMDIwLTAxLTAxKQorIFsyLDMp IHwgWzIwMDUtMDEtMDEsMjAwNi0wMS0wMSkKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBv cmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0 aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBp cyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENP TkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQs IHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3Ig ZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmlj YXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERP IE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29u c3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNU ICogRlJPTSB0ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisKK1RSVU5D QVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykp OworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0w MS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RI SU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0w MS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWwzX3VxIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBk YXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBD T05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8 IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisgWzEsMikgfCBbMjAxMC0wMS0wMSwyMDIwLTAx LTAxKQorIFsyLDMpIHwgWzIwMDUtMDEtMDEsMjAwNi0wMS0wMSkKKygzIHJvd3MpCisKK1RS VU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAx JykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlk ID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUg b3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNp ZmljYXRpb24KKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBE TyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworRVJST1I6ICB0aGVy ZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9O IENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNU IChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1 KSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWlu dCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJP TSB0ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb MSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisKK1RSVU5DQVRFIHRl bXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0g d2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp KSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBV UERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gaWQg bWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIw LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIFVQ REFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIE9OIENPTkZM SUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRz CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFs M191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6 ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBj b25zdHJhaW50cworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp CisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0KKy0tIE9OIENPTkZMSUNU OiBtdWx0aXJhbmdlcworLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpKTsK Ky0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7Cist LSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09O RkxJQ1QgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg CistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDAw LTAxLTAxLDIwMTAtMDEtMDEpfQorIFsxLDIpIHwge1syMDEwLTAxLTAxLDIwMjAtMDEtMDEp fQorIFsyLDMpIHwge1syMDA1LTAxLTAxLDIwMDYtMDEtMDEpfQorKDMgcm93cykKKworVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0w MScpKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAg dGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRo ZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitF UlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRj aGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAx LTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5P VEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3Ry YWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgWzEsMikgfCB7WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl9CisoMSByb3cp CisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpKTsKKy0tIHdpdGggYSBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5n X3BrIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIERPIE5PVEhJ Tkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsgRE8gTk9USElORzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpfQorIFsx LDIpIHwge1syMDEwLTAxLTAxLDIwMjAtMDEtMDEpfQorIFsyLDMpIHwge1syMDA1LTAxLTAx LDIwMDYtMDEtMDEpfQorKDMgcm93cykKKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEt MDEnKSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgKGlkLCB2 YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VS Uk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNo aW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBu byBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFU RSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIHRoZXJlIGlzIG5v IHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJ Q1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEn KSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENM VURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNs dXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlv bgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCB7WzIwMDAtMDEtMDEsMjAxMC0wMS0w MSl9CisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpKTsKKy0t IHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfbWx0cm5nX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwz KSc7CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGgg ZXhjbHVzaW9uIGNvbnN0cmFpbnRzCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIERP IFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIE9OIENP TkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFp bnRzCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsgRE8gVVBEQVRFIFNFVCBpZCA9 IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRF IG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFsxLDIpIHwge1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpfQorKDEgcm93KQor CistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf bWx0cm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2Us CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzM7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEt MDEnKSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBPTiBDT05G TElDVCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwz KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAx JykpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9t bHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsx LDIpIHwge1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpfQorIFsxLDIpIHwge1syMDEwLTAxLTAx LDIwMjAtMDEtMDEpfQorIFsyLDMpIHwge1syMDA1LTAxLTAxLDIwMDYtMDEtMDEpfQorKDMg cm93cykKKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKSk7CistLSB3aXRo IGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9U SElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJh aW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRj aGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0 KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9u IGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0t IGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9y IGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZp Y2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAKKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCB7WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl9CisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzM7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEn KSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNU UkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTAt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbF9tbHRybmczX3VxIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywg JzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0 cm5nM191cSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAg ICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpfQorIFsxLDIpIHwge1syMDEwLTAxLTAxLDIwMjAtMDEt MDEpfQorIFsyLDMpIHwge1syMDA1LTAxLTAxLDIwMDYtMDEtMDEpfQorKDMgcm93cykKKwor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKSk7CistLSB3aXRoIGEgY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBp ZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVl IG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVj aWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzMsNCknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNv bnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGRh dGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgKGlkLCB2 YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK0VS Uk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNo aW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzEsMikgfCB7WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl9CisoMSByb3cpCisKK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZzM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEt MDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBE TyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJST1I6ICBPTiBD T05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJh aW50cworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIERPIFVQREFURSBTRVQgaWQg PSBFWENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFU RSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzCistLSBkYXRlIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJ TlQgdGVtcG9yYWxfbWx0cm5nM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzQsNSknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRl ZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9t bHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsx LDIpIHwge1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpfQorKDEgcm93KQorCitEUk9QIFRBQkxF IHRlbXBvcmFsX21sdHJuZzM7CitSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQppbmRleCAyNDI5ZWMyYmJhYS4uZGRjMTU1YzE5NWYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtNzgsNyArNzgsNyBAQCB0ZXN0OiBicmlu X2Jsb29tIGJyaW5fbXVsdGkKICMgcHNxbCBkZXBlbmRzIG9uIGNyZWF0ZV9hbQogIyBhbXV0 aWxzIGRlcGVuZHMgb24gZ2VvbWV0cnksIGNyZWF0ZV9pbmRleF9zcGdpc3QsIGhhc2hfaW5k ZXgsIGJyaW4KICMgLS0tLS0tLS0tLQotdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJf Z2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXNjX2Z1 bmN0aW9ucyBzeXN2aWV3cyB0c3JmIHRpZCB0aWRzY2FuIHRpZHJhbmdlc2NhbiBjb2xsYXRl LnV0ZjggY29sbGF0ZS5pY3UudXRmOCBpbmNyZW1lbnRhbF9zb3J0IGNyZWF0ZV9yb2xlCit0 ZXN0OiBjcmVhdGVfdGFibGVfbGlrZSBhbHRlcl9nZW5lcmljIGFsdGVyX29wZXJhdG9yIG1p c2MgYXN5bmMgZGJzaXplIG1lcmdlIG1pc2NfZnVuY3Rpb25zIHN5c3ZpZXdzIHRzcmYgdGlk IHRpZHNjYW4gdGlkcmFuZ2VzY2FuIGNvbGxhdGUudXRmOCBjb2xsYXRlLmljdS51dGY4IGlu Y3JlbWVudGFsX3NvcnQgY3JlYXRlX3JvbGUgd2l0aG91dF9vdmVybGFwcwogCiAjIGNvbGxh dGUubGludXgudXRmOCBhbmQgY29sbGF0ZS5pY3UudXRmOCB0ZXN0cyBjYW5ub3QgYmUgcnVu IGluIHBhcmFsbGVsIHdpdGggZWFjaCBvdGhlcgogdGVzdDogcnVsZXMgcHNxbCBwc3FsX2Ny b3NzdGFiIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndp bmRvd3Mud2luMTI1MgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2M3MTI2Yjg1 MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292 ZXJsYXBzLnNxbApAQCAtMCwwICsxLDg2NyBAQAorLS0gVGVzdHMgZm9yIFdJVEhPVVQgT1ZF UkxBUFMuCistLQorLS0gV2UgbGVhdmUgYmVoaW5kIHNldmVyYWwgdGFibGVzIHRvIHRlc3Qg cGdfZHVtcCBldGM6CistLSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX3JuZzIsCistLSB0ZW1w b3JhbF9ma19ybmcycm5nLgorCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworCistLQor LS0gdGVzdCBpbnB1dCBwYXJzZXIKKy0tCisKKy0tIFBLIHdpdGggbm8gY29sdW1ucyBqdXN0 IFdJVEhPVVQgT1ZFUkxBUFM6CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorICB2 YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1B UlkgS0VZICh2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworLS0gUEsgd2l0aCBh IHJhbmdlIGNvbHVtbi9QRVJJT0QgdGhhdCBpc24ndCB0aGVyZToKKworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZyAoCisgIGlkIElOVEVHRVIsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CisKKy0tIFBLIHdpdGggYSBub24tcmFuZ2UgY29sdW1uOgorCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBURVhULAorICBDT05T VFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCispOworCistLSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdl OgorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAgLS0gU2luY2Ugd2UgY2FuJ3Qg ZGVwZW5kIG9uIGhhdmluZyBidHJlZV9naXN0IGhlcmUsCisgIC0tIHVzZSBhbiBpbnQ0cmFu Z2UgaW5zdGVhZCBvZiBhbiBpbnQuCisgIC0tIChUaGUgcmFuZ2V0eXBlcyByZWdyZXNzaW9u IHRlc3QgdXNlcyB0aGUgc2FtZSB0cmljay4pCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcm5n CitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsnOworU0VMRUNUIHBnX2dldF9pbmRl eGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5h bWUgPSAndGVtcG9yYWxfcm5nX3BrJzsKKworLS0gUEsgZnJvbSBMSUtFOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzIgKExJS0UgdGVtcG9yYWxfcm5nIElOQ0xVRElORyBBTEwpOwor XGQgdGVtcG9yYWxfcm5nMgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworCistLSBubyBQ SyBmcm9tIElOSEVSSVRTOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzIgKCkgSU5IRVJJ VFMgKHRlbXBvcmFsX3JuZyk7CitcZCB0ZW1wb3JhbF9ybmcyCitEUk9QIFRBQkxFIHRlbXBv cmFsX3JuZzI7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzsKKworLS0gUEsgaW4gaW5oZXJp dGluZyB0YWJsZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9y bmcyICgKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBJTkhFUklUUyAodGVtcG9yYWxfcm5nKTsK K1xkIHRlbXBvcmFsX3JuZzIKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nIENBU0NBREU7CisK Ky0tIEFkZCBQSyB0byBhbHJlYWR5IGluaGVyaXRpbmcgdGFibGU6CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UK Kyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoKSBJTkhFUklUUyAodGVtcG9yYWxf cm5nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzIKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ Uyk7CitcZCB0ZW1wb3JhbF9ybmcyCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzI7CitEUk9Q IFRBQkxFIHRlbXBvcmFsX3JuZzsKKworLS0gUEsgd2l0aCB0d28gY29sdW1ucyBwbHVzIGEg cmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2Us CisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ybmcyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9ybmcyCitTRUxFQ1QgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0 ZW1wb3JhbF9ybmcyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Ju ZzJfcGsnOworCistLSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CitDUkVBVEUgVFlQ RSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IHRleHRyYW5nZTIsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUg dGVtcG9yYWxfcm5nMyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wazsKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMzsKK0RST1AgVFlQRSB0ZXh0cmFuZ2UyOworCistLSBQSyB3 aXRoIG9uZSBjb2x1bW4gcGx1cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfbWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX21sdHJuZworU0VM RUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhk ZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1l ID0gJ3RlbXBvcmFsX21sdHJuZ19wayc7CisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1 cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCisgIGlk MSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlk MSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX21s dHJuZzIKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZzJfcGsnOworU0VMRUNUIHBn X2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nMl9wayc7CisKKy0tIFVOSVFVRSB3aXRo IG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJMQVBTOgorCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcm5nMyAoCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmczX3VxIFVOSVFVRSAodmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CisK Ky0tIFVOSVFVRSB3aXRoIGEgcmFuZ2UgY29sdW1uL1BFUklPRCB0aGF0IGlzbid0IHRoZXJl OgorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisgIGlkIElOVEVHRVIsCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKKworLS0gVU5JUVVFIHdpdGggYSBub24tcmFuZ2UgY29sdW1uOgor CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgVEVYVCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCistLSBVTklRVUUgd2l0aCBvbmUg Y29sdW1uIHBsdXMgYSByYW5nZToKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworXGQgdGVtcG9yYWxfcm5nMworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9p ZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nM191 cSc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmczX3VxJzsKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMzsKKworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1 cyBhIHJhbmdlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZDEgaW50NHJh bmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3JuZzMKK1NFTEVDVCBwZ19nZXRfY29u c3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3JuZzNfdXEnOworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwg dHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5n M191cSc7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CisKKy0tIFVOSVFVRSB3aXRoIGEg Y3VzdG9tIHJhbmdlIHR5cGU6CitDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChz dWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Ju ZzMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IHRleHRyYW5nZTIsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX3JuZzNfdXE7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZ UEUgdGV4dHJhbmdlMjsKKworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJ TlQKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVyYW5nZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZwor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKworLS0gUEsgd2l0aCBVU0lORyBJTkRFWCAo bm90IHBvc3NpYmxlKToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZQorKTsKK0NSRUFURSBJTkRFWCBpZHhfdGVtcG9y YWwzX3VxIE9OIHRlbXBvcmFsMyBVU0lORyBnaXN0IChpZCwgdmFsaWRfYXQpOworQUxURVIg VEFCTEUgdGVtcG9yYWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworICBQUklN QVJZIEtFWSBVU0lORyBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxOworRFJPUCBUQUJMRSB0ZW1w b3JhbDM7CisKKy0tIFVOSVFVRSB3aXRoIFVTSU5HIElOREVYIChub3QgcG9zc2libGUpOgor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlCispOworQ1JFQVRFIElOREVYIGlkeF90ZW1wb3JhbDNfdXEgT04gdGVtcG9y YWwzIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSBVU0lORyBJTkRFWCBp ZHhfdGVtcG9yYWwzX3VxOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tIFVOSVFVRSB3 aXRoIFVTSU5HIFtVTklRVUVdIElOREVYIChwb3NzaWJsZSBidXQgbm90IGEgdGVtcG9yYWwg Y29uc3RyYWludCk6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgVU5JUVVFIElOREVYIGlkeF90 ZW1wb3JhbDNfdXEgT04gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpOworQUxURVIgVEFCTEUg dGVtcG9yYWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQorICBVTklRVUUgVVNJ TkcgSU5ERVggaWR4X3RlbXBvcmFsM191cTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCist LSBBZGQgcmFuZ2UgY29sdW1uIGFuZCB0aGUgUEsgYXQgdGhlIHNhbWUgdGltZQorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZQorKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsMworICBBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWwzX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworLS0gQWRkIHJhbmdlIGNv bHVtbiBhbmQgVU5JUVVFIGNvbnN0cmFpbnQgYXQgdGhlIHNhbWUgdGltZQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsMworICBBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tCistLSByYW5nZSBQSzogdGVzdCB3 aXRoIGV4aXN0aW5nIHJvd3MKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrOworCistLSBva2F5OgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfcm5nIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGs7CisKKy0tIHNo b3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzsKKworLS0KKy0tIHJhbmdl IFBLOiB0ZXN0IGluc2VydHMKKy0tCisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcy MDE4LTA0LTA0JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CisKKy0tIHNob3VsZCBm YWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0g cmFuZ2UgUEs6IHRlc3QgdXBkYXRlcworLS0KKworLS0gdXBkYXRlIHRoZSBzY2FsYXIgcGFy dAorVVBEQVRFICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJF ICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0 ZTsKKy0tIHVwZGF0ZSB0aGUgcmFuZ2UgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9ybmcKK1NF VCAgICAgdmFsaWRfYXQgPSAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknCitXSEVSRSAgIGlk ID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK Ky0tIHVwZGF0ZSBib3RoIGF0IG9uY2UKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAg IGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4g JzIwMjAtMDEtMTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3Ju ZworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUnKQorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsK Ky0tIHNldCB0aGUgc2NhbGFyIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0ZW1wb3JhbF9ybmcK K1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMy0wNScsICcyMDE4LTA1LTA1JykKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBz ZXQgdGhlIHJhbmdlIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0ZW1wb3JhbF9ybmcKK1NFVCAg ICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQg PSAnWzIxLDIyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSByYW5nZSBVUTogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MK Ky0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAz JywgJzIwMTgtMDQtMDQnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfcm5nMyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cTsKKworLS0gc2hv dWxkIGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ Uyk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzM7CisKKy0tCistLSByYW5nZSBVUTog dGVzdCBpbnNlcnRzCistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MicsICcyMDE4LTAyLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKKworLS0gc2hvdWxkIGZh aWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gcmFuZ2UgVVE6IHRlc3QgdXBkYXRlcworLS0KKworLS0gdXBkYXRlIHRoZSBzY2FsYXIg cGFydAorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitX SEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6 OmRhdGU7CistLSB1cGRhdGUgdGhlIHJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcm5n MworU0VUICAgICB2YWxpZF9hdCA9ICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScKK1dIRVJF ICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpk YXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitT RVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxpZF9hdCA9ICdbMjAxOC0wMS0w MiwyMDE4LTAyLTAzKScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRf YXQgQD4gJzIwMjAtMDEtMTUnOjpkYXRlOworLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBO VUxMCitVUERBVEUgIHRlbXBvcmFsX3JuZzMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAg ICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykKK1dI RVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHJhbmdlIHBhcnQgdG8gTlVMTAor VVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAg dmFsaWRfYXQgPSBOVUxMCitXSEVSRSAgIGlkIElTIE5VTEwgQU5EIHZhbGlkX2F0IEA+ICcy MDIwLTA2LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nMyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcm5n MworU0VUICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA1 LTA1JykKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMzsKKworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3Qgd2l0 aCBleGlzdGluZyByb3dzCistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wazsKKworLS0gb2theToKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0 LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsIE5VTEwpKSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wazsKKworLS0gc2hvdWxkIGZhaWw6CitCRUdJ TjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKSkpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJu ZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZzsKKworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3QgaW5zZXJ0cworLS0KKworLS0gb2th eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0w MycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CisKKy0tIHNob3VsZCBmYWlsOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoTlVMTCwgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJu ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBtdWx0aXJhbmdlIFBLOiB0ZXN0 IHVwZGF0ZXMKKy0tCisKKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVt cG9yYWxfbWx0cm5nCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sx LDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRh dGUgdGhlIG11bHRpcmFuZ2UgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAg ICAgdmFsaWRfYXQgPSAne1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfScKK1dIRVJFICAgaWQg PSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOwor LS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAg ICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2F0ID0gJ3tbMjAxOC0wMS0wMiwy MDE4LTAyLTAzKX0nCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0 IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1w b3JhbF9tbHRybmcKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9 IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcyMDE4LTA1LTA1Jykp CitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBO VUxMCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9IE5VTEwsCisgICAg ICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTA1Jywg JzIwMTgtMDUtMDUnKSkKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIG11 bHRpcmFuZ2UgcGFydCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAg ICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0gTlVMTAorV0hFUkUgICBpZCA9 ICdbMjEsMjIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIG11bHRpcmFuZ2UgVVE6IHRlc3Qgd2l0aCBleGlzdGlu ZyByb3dzCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UKKyk7CisKKy0tIG9rYXk6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDIt MDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycs ICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21s dHJuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmczX3VxOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworICBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJu ZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitST0xMQkFD SzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzM7CisKKy0tCistLSBtdWx0aXJhbmdlIFVR OiB0ZXN0IGluc2VydHMKKy0tCisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg TlVMTCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CisKKy0tIHNob3VsZCBmYWlsOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1 JykpKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSBtdWx0aXJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCisKKy0t IHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nMworU0VU ICAgICBpZCA9ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFs aWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRoZSBtdWx0aXJhbmdl IHBhcnQKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nMworU0VUICAgICB2YWxpZF9hdCA9ICd7 WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5E ICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBh dCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgaWQgPSAnWzIxLDIy KScsCisgICAgICAgIHZhbGlkX2F0ID0gJ3tbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0nCitX SEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1 Jzo6ZGF0ZTsKKy0tIHNldCB0aGUgc2NhbGFyIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0ZW1w b3JhbF9tbHRybmczCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKQor V0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHNldCB0aGUgbXVsdGlyYW5nZSBwYXJ0IHRv IE5VTEwKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nMworU0VUICAgICBpZCA9ICdbMSwyKScs CisgICAgICAgIHZhbGlkX2F0ID0gTlVMTAorV0hFUkUgICBpZCBJUyBOVUxMIEFORCB2YWxp ZF9hdCBAPiAnMjAyMC0wNi0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21s dHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUg IHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wNS0wNScpKQorV0hFUkUgICBpZCA9ICdb MSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21s dHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczOworCistLQorLS0gdGVzdCBhIHJhbmdlIHdpdGggYm90aCBhIFBLIGFuZCBhIFVOSVFV RSBjb25zdHJhaW50CistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIGlkMiBpbnQ4cmFuZ2UsCisgIG5h bWUgVEVYVCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdW5p cSBVTklRVUUgKGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4 KScsICdmb28nKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyksICdbOSwxMCknLCAnYmFyJykKKzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOwor CistLQorLS0gdGVzdCBjaGFuZ2luZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKKy0tCisKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRh dGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWwz IEFMVEVSIENPTFVNTiB2YWxpZF9hdCBEUk9QIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVt cG9yYWwzIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzdHpyYW5nZSBVU0lORyB0c3R6 cmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1cHBlcih2YWxpZF9hdCkpOworQUxURVIgVEFCTEUg dGVtcG9yYWwzIFJFTkFNRSBDT0xVTU4gdmFsaWRfYXQgVE8gdmFsaWRfdGhydTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF90aHJ1OworRFJPUCBUQUJMRSB0 ZW1wb3JhbDM7CisKKy0tCistLSB0ZXN0IFBBUlRJVElPTiBCWSBmb3IgcmFuZ2VzCistLQor CistLSB0ZW1wb3JhbCBQUklNQVJZIEtFWToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBu YW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBM SVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJM RSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4g KCdbMyw0KScsICdbNCw1KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQg KGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCisgICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor U0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJP TSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZDsKKworLS0gdGVtcG9yYWwgVU5JUVVFOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2Us CisgIG5hbWUgdGV4dCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3VxIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBM SVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJM RSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4g KCdbMyw0KScsICdbNCw1KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQg KGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCisgICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor U0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJP TSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZDsKKworLS0gQUxURVIgVEFCTEUgUkVQTElDQSBJREVOVElUWQorLS0gKHNob3Vs ZCBmYWlsKQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nIFJFUExJQ0EgSURFTlRJVFkgVVNJ TkcgSU5ERVggdGVtcG9yYWxfcm5nX3BrOworCistLQorLS0gT04gQ09ORkxJQ1Q6IHJhbmdl cworLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7 CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAx LTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRhdGUg bWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFs X3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0g d2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0w MScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gaWQgbWF0 Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIw LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBk YXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5H OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor CitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmdfcGsgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElD VCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBOT1RISU5HOworLS0gZGF0ZSBt YXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsg RE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFs aWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CistLSBp ZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywg JzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNF VCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9O IENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5p ZCArICdbNCw1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJ TlQgdGVtcG9yYWxfcm5nX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdb Myw0KSc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2Uo JzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5U IHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQs NSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CisKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbDNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlk IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkg T04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWwzOworSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFs aWRfYXQpIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2 YWxpZF9hdCkgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QK K0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScs IGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChp ZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENP TkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIE5PVEhJTkc7CistLSBkYXRl IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBO T1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAx JywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRF IFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzMsNCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdl KCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9h dCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVt cG9yYWwzOworSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3 aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykp IE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIFVQREFURSBTRVQg aWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xV REVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRh dGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENP TlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCAr ICdbNCw1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLQorLS0gT04gQ09ORkxJQ1Q6IG11 bHRpcmFuZ2VzCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKSk7Cist LSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0g aWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBPTiBDT05GTElDVCBETyBOT1RI SU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZM SUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpKTsK Ky0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQp IERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIE9O IENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMg YnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8g Tk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSkpOworLS0gd2l0 aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3Jh bF9tbHRybmdfcGsgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsg RE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpKSBP TiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wayBETyBOT1RISU5H OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKSk7CistLSB3aXRoIGEgY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcy MDIwLTAxLTAxJykpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywg JzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBT RVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X21sdHJuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJykpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZMSUNU IE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIERP IFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CistLSBkYXRlIG1hdGNo ZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0 ZW1wb3JhbF9tbHRybmdfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0 LDUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0gd2l0aCBhIFVOSVFVRSBjb25zdHJhaW50OgorCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfbWx0cm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11 bHRpcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZzM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywg JzIwMTAtMDEtMDEnKSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9OIENPTkZM SUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykp KSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkg T04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMg YnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEw LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERP IE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkpIE9O IENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitUUlVOQ0FURSB0ZW1w b3JhbF9tbHRybmczOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJykpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpKSBP TiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgRE8gTk9USElO RzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIE9OIENPTkZMSUNU IE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBETyBOT1RISU5HOworLS0gZGF0 ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRl bXBvcmFsX21sdHJuZzM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMTAtMDEtMDEnKSkpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkp IE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURF RC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykp KSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVE RUQuaWQgKyAnWzMsNCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwz KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAx JykpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhD TFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgT04gQ09O U1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURF RC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykp KSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgRE8gVVBE QVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbF9tbHRybmczX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCitEUk9QIFRBQkxFIHRlbXBvcmFsX21sdHJuZzM7CisKK1JFU0VUIGRhdGVzdHls ZTsKLS0gCjIuNDIuMAoK --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0003-Forbid-empty-ranges-multiranges-in-WITHOUT-OVERL.patch" Content-Disposition: attachment; filename*0="v39-0003-Forbid-empty-ranges-multiranges-in-WITHOUT-OVERL.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlMWE4ZjA0ZWE1Y2NjYjg0OWYwMTFhOTQ4MmY1OGM3MzRiZjU5ODhjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMSBKdW4gMjAyNCAxNToyNDo1NiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggdjM5IDMvOF0gRm9yYmlkIGVtcHR5IHJhbmdlcy9tdWx0aXJh bmdlcyBpbiBXSVRIT1VUIE9WRVJMQVBTCiBjb2x1bW5zCgpCZWNhdXNlICdlbXB0eScgJiYg J2VtcHR5JyBpcyBmYWxzZSwgdGhlIHRlbXBvcmFsIFBLL1VRIGNvbnN0cmFpbnQgYWxsb3dz CmR1cGxpY2F0ZXMsIHdoaWNoIGlzIGNvbmZ1c2luZyB0byB1c2VycyBhbmQgYnJlYWtzIGlu dGVybmFsCmV4cGVjdGF0aW9ucy4gRm9yIGluc3RhbmNlIHdoZW4gR1JPVVAgQlkgY2hlY2tz IGZ1bmN0aW9uYWwgZGVwZW5kZW5jaWVzCm9uIHRoZSBQSywgaXQgYWxsb3dzIHNlbGVjdGlu ZyBvdGhlciBjb2x1bW5zIGZyb20gdGhlIHRhYmxlLCBidXQgaW4gdGhlCnByZXNlbmNlIG9m IGR1cGxpY2F0ZSBrZXlzIHlvdSBjb3VsZCBnZXQgdGhlIHZhbHVlIGZyb20gYW55IG9mIHRo ZWlyCnJvd3MuIFNvIHdlIG5lZWQgdG8gZm9yYmlkIGVtcHRpZXMuCgpUaGlzIGFsbCBtZWFu cyB3ZSBjYW4gb25seSBzdXBwb3J0IHJhbmdlcyBhbmQgbXVsdGlyYW5nZXMgZm9yIHRlbXBv cmFsClBLL1VRcy4gU28gSSBhZGRlZCBhIGNoZWNrIGFuZCB1cGRhdGVkIHRoZSBkb2NzIGFu ZCB0ZXN0cy4KLS0tCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMyAtCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAg ICAgICAgfCAxNSArKy0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAg ICAgICAgICAgfCAxMCArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jICAg ICAgICAgICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcu YyAgICAgICAgICAgfCA2NCArKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL25vZGVzL21h a2VmdW5jcy5jICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCA0OCArKysrKysrKysrLQogc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvbWFrZWZ1bmNzLmggICAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0ICAgICB8IDgwICsrKysrKysrKysr KysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAg ICB8IDU2ICsrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDI2MyBpbnNlcnRpb25z KCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2lzdC5z Z21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCBkY2Y5NDMzZmE3OC4uNjM4ZDkx MmRjMmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2dpc3Quc2dtbApAQCAtMTE4Niw5ICsxMTg2LDYgQEAgbXlfc29ydHN1cHBvcnQo UEdfRlVOQ1RJT05fQVJHUykKICAgICAgICBwcm92aWRlcyB0aGlzIGZ1bmN0aW9uIGFuZCBp dCByZXR1cm5zIHJlc3VsdHMgZm9yCiAgICAgICAgPGxpdGVyYWw+UlRFcXVhbFN0cmF0ZWd5 TnVtYmVyPC9saXRlcmFsPiwgaXQgY2FuIGJlIHVzZWQgaW4gdGhlCiAgICAgICAgbm9uLTxs aXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+IHBhcnQocykgb2YgYW4gaW5kZXgg Y29uc3RyYWludC4KLSAgICAgICBJZiBpdCByZXR1cm5zIHJlc3VsdHMgZm9yIDxsaXRlcmFs PlJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyPC9saXRlcmFsPiwKLSAgICAgICB0aGUgb3BlcmF0 b3IgY2xhc3MgY2FuIGJlIHVzZWQgaW4gdGhlIDxsaXRlcmFsPldJVEhPVVQKLSAgICAgICBP VkVSTEFQUzwvbGl0ZXJhbD4gcGFydCBvZiBhbiBpbmRleCBjb25zdHJhaW50LgogICAgICAg PC9wYXJhPgogCiAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CmluZGV4IDhmNWM3MmE0MTkxLi45MjQzODEwYzNmZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV90YWJsZS5zZ21sCkBAIC05OTEsMTUgKzk5MSwxMiBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICAgZXhhbXBsZSA8bGl0ZXJhbD5VTklRVUUgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKTwvbGl0ZXJhbD4gYmVoYXZlcwogICAgICAgbGlrZSA8bGl0ZXJh bD5FWENMVURFIFVTSU5HIEdJU1QgKGlkIFdJVEggPSwgdmFsaWRfYXQgV0lUSAogICAgICAg JmFtcDsmYW1wOyk8L2xpdGVyYWw+LiAgVGhlIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8 L2xpdGVyYWw+IGNvbHVtbgotICAgICAgbXVzdCBoYXZlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5n ZSB0eXBlLiAgKFRlY2huaWNhbGx5LCBhbnkgdHlwZSBpcyBhbGxvd2VkCi0gICAgICB3aG9z ZSBkZWZhdWx0IEdpU1Qgb3BjbGFzcyBpbmNsdWRlcyBhbiBvdmVybGFwcyBvcGVyYXRvci4g IFNlZSB0aGUKLSAgICAgIDxsaXRlcmFsPnN0cmF0bnVtPC9saXRlcmFsPiBzdXBwb3J0IGZ1 bmN0aW9uIHVuZGVyIDx4cmVmCi0gICAgICBsaW5rZW5kPSJnaXN0LWV4dGVuc2liaWxpdHki Lz4gZm9yIGRldGFpbHMuKSAgVGhlIG5vbi08bGl0ZXJhbD5XSVRIT1VUCi0gICAgICBPVkVS TEFQUzwvbGl0ZXJhbD4gY29sdW1ucyBvZiB0aGUgY29uc3RyYWludCBjYW4gYmUgYW55IHR5 cGUgdGhhdCBjYW4gYmUKLSAgICAgIGNvbXBhcmVkIGZvciBlcXVhbGl0eSBpbiBhIEdpU1Qg aW5kZXguICBCeSBkZWZhdWx0LCBvbmx5IHJhbmdlIHR5cGVzIGFyZQotICAgICAgc3VwcG9y dGVkLCBidXQgeW91IGNhbiB1c2Ugb3RoZXIgdHlwZXMgYnkgYWRkaW5nIHRoZSA8eHJlZgot ICAgICAgbGlua2VuZD0iYnRyZWUtZ2lzdCIvPiBleHRlbnNpb24gKHdoaWNoIGlzIHRoZSBl eHBlY3RlZCB3YXkgdG8gdXNlIHRoaXMKLSAgICAgIGZlYXR1cmUpLgorICAgICAgbXVzdCBo YXZlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlLiAgRW1wdHkgcmFuZ2VzL211bHRpcmFu Z2VzIGFyZQorICAgICAgbm90IHBlcm1pdHRlZC4gIFRoZSBub24tPGxpdGVyYWw+V0lUSE9V VCBPVkVSTEFQUzwvbGl0ZXJhbD4gY29sdW1ucyBvZgorICAgICAgdGhlIGNvbnN0cmFpbnQg Y2FuIGJlIGFueSB0eXBlIHRoYXQgY2FuIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eSBpbiBh CisgICAgICBHaVNUIGluZGV4LiAgQnkgZGVmYXVsdCwgb25seSByYW5nZSB0eXBlcyBhcmUg c3VwcG9ydGVkLCBidXQgeW91IGNhbiB1c2UKKyAgICAgIG90aGVyIHR5cGVzIGJ5IGFkZGlu ZyB0aGUgPHhyZWYgbGlua2VuZD0iYnRyZWUtZ2lzdCIvPiBleHRlbnNpb24gKHdoaWNoCisg ICAgICBpcyB0aGUgZXhwZWN0ZWQgd2F5IHRvIHVzZSB0aGlzIGZlYXR1cmUpLgogICAgICA8 L3BhcmE+CiAKICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggNWM0OGU1NzI4 ZTkuLjJmZmRkN2EzY2NjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4 LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0xMzk0LDcgKzEzOTQs OCBAQCBpbmRleF9jb25jdXJyZW50bHlfY3JlYXRlX2NvcHkoUmVsYXRpb24gaGVhcFJlbGF0 aW9uLCBPaWQgb2xkSW5kZXhJZCwKIAkJCQkJCQlvbGRJbmZvLT5paV9OdWxsc05vdERpc3Rp bmN0LAogCQkJCQkJCWZhbHNlLAkvKiBub3QgcmVhZHkgZm9yIGluc2VydHMgKi8KIAkJCQkJ CQl0cnVlLAotCQkJCQkJCWluZGV4UmVsYXRpb24tPnJkX2luZGFtLT5hbXN1bW1hcml6aW5n KTsKKwkJCQkJCQlpbmRleFJlbGF0aW9uLT5yZF9pbmRhbS0+YW1zdW1tYXJpemluZywKKwkJ CQkJCQlvbGRJbmZvLT5paV9XaXRob3V0T3ZlcmxhcHMpOwogCiAJLyoKIAkgKiBFeHRyYWN0 IHRoZSBsaXN0IG9mIGNvbHVtbiBuYW1lcyBhbmQgdGhlIGNvbHVtbiBudW1iZXJzIGZvciB0 aGUgbmV3CkBAIC0yNDMxLDcgKzI0MzIsOCBAQCBCdWlsZEluZGV4SW5mbyhSZWxhdGlvbiBp bmRleCkKIAkJCQkJICAgaW5kZXhTdHJ1Y3QtPmluZG51bGxzbm90ZGlzdGluY3QsCiAJCQkJ CSAgIGluZGV4U3RydWN0LT5pbmRpc3JlYWR5LAogCQkJCQkgICBmYWxzZSwKLQkJCQkJICAg aW5kZXgtPnJkX2luZGFtLT5hbXN1bW1hcml6aW5nKTsKKwkJCQkJICAgaW5kZXgtPnJkX2lu ZGFtLT5hbXN1bW1hcml6aW5nLAorCQkJCQkgICBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNp b24gJiYgaW5kZXhTdHJ1Y3QtPmluZGlzdW5pcXVlKTsKIAogCS8qIGZpbGwgaW4gYXR0cmli dXRlIG51bWJlcnMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtQXR0czsgaSsrKQpAQCAtMjQ5 MCw3ICsyNDkyLDggQEAgQnVpbGREdW1teUluZGV4SW5mbyhSZWxhdGlvbiBpbmRleCkKIAkJ CQkJICAgaW5kZXhTdHJ1Y3QtPmluZG51bGxzbm90ZGlzdGluY3QsCiAJCQkJCSAgIGluZGV4 U3RydWN0LT5pbmRpc3JlYWR5LAogCQkJCQkgICBmYWxzZSwKLQkJCQkJICAgaW5kZXgtPnJk X2luZGFtLT5hbXN1bW1hcml6aW5nKTsKKwkJCQkJICAgaW5kZXgtPnJkX2luZGFtLT5hbXN1 bW1hcml6aW5nLAorCQkJCQkgICBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb24gJiYgaW5k ZXhTdHJ1Y3QtPmluZGlzdW5pcXVlKTsKIAogCS8qIGZpbGwgaW4gYXR0cmlidXRlIG51bWJl cnMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtQXR0czsgaSsrKQpAQCAtMzIyNyw3ICszMjMw LDYgQEAgSW5kZXhDaGVja0V4Y2x1c2lvbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJaW5k ZXhJbmZvLT5paV9QcmVkaWNhdGVTdGF0ZSA9IE5VTEw7CiB9CiAKLQogLyoKICAqIHZhbGlk YXRlX2luZGV4IC0gc3VwcG9ydCBjb2RlIGZvciBjb25jdXJyZW50IGluZGV4IGJ1aWxkcwog ICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggNGQ0ZGQwZjYxZTYuLjlhZjU5 MmYyNWQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMjQyLDcgKzI0Miw3 IEBAIENoZWNrSW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJZCwKIAkgKi8KIAlpbmRleEluZm8g PSBtYWtlSW5kZXhJbmZvKG51bWJlck9mQXR0cmlidXRlcywgbnVtYmVyT2ZBdHRyaWJ1dGVz LAogCQkJCQkJCSAgYWNjZXNzTWV0aG9kSWQsIE5JTCwgTklMLCBmYWxzZSwgZmFsc2UsCi0J CQkJCQkJICBmYWxzZSwgZmFsc2UsIGFtc3VtbWFyaXppbmcpOworCQkJCQkJCSAgZmFsc2Us IGZhbHNlLCBhbXN1bW1hcml6aW5nLCBpc1dpdGhvdXRPdmVybGFwcyk7CiAJdHlwZUlkcyA9 IHBhbGxvY19hcnJheShPaWQsIG51bWJlck9mQXR0cmlidXRlcyk7CiAJY29sbGF0aW9uSWRz ID0gcGFsbG9jX2FycmF5KE9pZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKIAlvcGNsYXNzSWRz ID0gcGFsbG9jX2FycmF5KE9pZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKQEAgLTkyMCw3ICs5 MjAsOCBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJCQkgIHN0bXQtPm51bGxz X25vdF9kaXN0aW5jdCwKIAkJCQkJCQkgICFjb25jdXJyZW50LAogCQkJCQkJCSAgY29uY3Vy cmVudCwKLQkJCQkJCQkgIGFtaXNzdW1tYXJpemluZyk7CisJCQkJCQkJICBhbWlzc3VtbWFy aXppbmcsCisJCQkJCQkJICBzdG10LT5pc3dpdGhvdXRvdmVybGFwcyk7CiAKIAl0eXBlSWRz ID0gcGFsbG9jX2FycmF5KE9pZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKIAljb2xsYXRpb25J ZHMgPSBwYWxsb2NfYXJyYXkoT2lkLCBudW1iZXJPZkF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCA1OWFjZjY3YTM2YS4uMjYzOTgwY2Q1NDcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBAIC0xMTQsNiArMTE0LDgg QEAKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm5vZGVzL25v ZGVGdW5jcy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxz L211bHRpcmFuZ2V0eXBlcy5oIgorI2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNp bmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAKIC8qIHdhaXRNb2RlIGFyZ3VtZW50IHRvIGNo ZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludCgpICovCkBAIC0xNDEsNiArMTQz LDggQEAgc3RhdGljIGJvb2wgaW5kZXhfdW5jaGFuZ2VkX2J5X3VwZGF0ZShSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLAogCQkJCQkJCQkJICBSZWxhdGlvbiBpbmRleFJlbGF0aW9u KTsKIHN0YXRpYyBib29sIGluZGV4X2V4cHJlc3Npb25fY2hhbmdlZF93YWxrZXIoTm9kZSAq bm9kZSwKIAkJCQkJCQkJCQkJQml0bWFwc2V0ICphbGxVcGRhdGVkQ29scyk7CitzdGF0aWMg dm9pZCBFeGVjV2l0aG91dE92ZXJsYXBzTm90RW1wdHkoUmVsYXRpb24gcmVsLCBOYW1lRGF0 YSBhdHRuYW1lLCBEYXR1bSBhdHR2YWwsCisJCQkJCQkJCQkJY2hhciB0eXB0eXBlLCBPaWQg YXR0dHlwaWQpOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJRXhlY09wZW5JbmRpY2VzCkBAIC03 MjAsNiArNzI0LDMyIEBAIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludChS ZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIAkJY29uc3RyX3N0cmF0cyA9IGluZGV4 SW5mby0+aWlfVW5pcXVlU3RyYXRzOwogCX0KIAorCS8qCisJICogSWYgdGhpcyBpcyBhIFdJ VEhPVVQgT1ZFUkxBUFMgY29uc3RyYWludCwKKwkgKiB3ZSBtdXN0IGFsc28gZm9yYmlkIGVt cHR5IHJhbmdlcy9tdWx0aXJhbmdlcy4KKwkgKiBUaGlzIG11c3QgaGFwcGVuIGJlZm9yZSB3 ZSBsb29rIGZvciBOVUxMcyBiZWxvdywKKwkgKiBvciBhIFVOSVFVRSBjb25zdHJhaW50IGNv dWxkIGluc2VydCBhbiBlbXB0eQorCSAqIHJhbmdlIGFsb25nIHdpdGggYSBOVUxMIHNjYWxh ciBwYXJ0LgorCSAqLworCWlmIChpbmRleEluZm8tPmlpX1dpdGhvdXRPdmVybGFwcykKKwl7 CisJCS8qCisJCSAqIExvb2sgdXAgdGhlIHR5cGUgZnJvbSB0aGUgaGVhcCB0dXBsZSwKKwkJ ICogYnV0IGNoZWNrIHRoZSBEYXR1bSBmcm9tIHRoZSBpbmRleCB0dXBsZS4KKwkJICovCisJ CUF0dHJOdW1iZXIgYXR0bm8gPSBpbmRleEluZm8tPmlpX0luZGV4QXR0ck51bWJlcnNbaW5k bmtleWF0dHMgLSAxXTsKKworCQlpZiAoIWlzbnVsbFtpbmRua2V5YXR0cyAtIDFdKQorCQl7 CisJCQlUdXBsZURlc2MgdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IoaGVhcCk7CisJCQlG b3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGF0dG5vIC0g MSk7CisJCQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShh dHQtPmF0dHR5cGlkLCAwKTsKKwkJCUV4ZWNXaXRob3V0T3ZlcmxhcHNOb3RFbXB0eShoZWFw LCBhdHQtPmF0dG5hbWUsCisJCQkJCQkJCQkJdmFsdWVzW2luZG5rZXlhdHRzIC0gMV0sCisJ CQkJCQkJCQkJdHlwY2FjaGUtPnR5cHR5cGUsIGF0dC0+YXR0dHlwaWQpOworCQl9CisJfQor CiAJLyoKIAkgKiBJZiBhbnkgb2YgdGhlIGlucHV0IHZhbHVlcyBhcmUgTlVMTCwgYW5kIHRo ZSBpbmRleCB1c2VzIHRoZSBkZWZhdWx0CiAJICogbnVsbHMtYXJlLWRpc3RpbmN0IG1vZGUs IHRoZSBjb25zdHJhaW50IGNoZWNrIGlzIGFzc3VtZWQgdG8gcGFzcyAoaS5lLiwKQEAgLTEw OTcsMyArMTEyNywzNyBAQCBpbmRleF9leHByZXNzaW9uX2NoYW5nZWRfd2Fsa2VyKE5vZGUg Km5vZGUsIEJpdG1hcHNldCAqYWxsVXBkYXRlZENvbHMpCiAJcmV0dXJuIGV4cHJlc3Npb25f dHJlZV93YWxrZXIobm9kZSwgaW5kZXhfZXhwcmVzc2lvbl9jaGFuZ2VkX3dhbGtlciwKIAkJ CQkJCQkJICAodm9pZCAqKSBhbGxVcGRhdGVkQ29scyk7CiB9CisKKy8qCisgKiBFeGVjV2l0 aG91dE92ZXJsYXBzTm90RW1wdHkgLSByYWlzZSBhbiBlcnJvciBpZiB0aGUgdHVwbGUgaGFz IGFuIGVtcHR5CisgKiByYW5nZSBvciBtdWx0aXJhbmdlIGluIHRoZSBnaXZlbiBhdHRyaWJ1 dGUuCisgKi8KK3N0YXRpYyB2b2lkCitFeGVjV2l0aG91dE92ZXJsYXBzTm90RW1wdHkoUmVs YXRpb24gcmVsLCBOYW1lRGF0YSBhdHRuYW1lLCBEYXR1bSBhdHR2YWwsIGNoYXIgdHlwdHlw ZSwgT2lkIGF0dHR5cGlkKQoreworCWJvb2wgaXNlbXB0eTsKKwlSYW5nZVR5cGUgKnI7CisJ TXVsdGlyYW5nZVR5cGUgKm1yOworCisJc3dpdGNoICh0eXB0eXBlKQorCXsKKwkJY2FzZSBU WVBUWVBFX1JBTkdFOgorCQkJciA9IERhdHVtR2V0UmFuZ2VUeXBlUChhdHR2YWwpOworCQkJ aXNlbXB0eSA9IFJhbmdlSXNFbXB0eShyKTsKKwkJCWJyZWFrOworCQljYXNlIFRZUFRZUEVf TVVMVElSQU5HRToKKwkJCW1yID0gRGF0dW1HZXRNdWx0aXJhbmdlVHlwZVAoYXR0dmFsKTsK KwkJCWlzZW1wdHkgPSBNdWx0aXJhbmdlSXNFbXB0eShtcik7CisJCQlicmVhazsKKwkJZGVm YXVsdDoKKwkJCWVsb2coRVJST1IsICJXSVRIT1VUIE9WRVJMQVBTIGNvbHVtbiBcIiVzXCIg aXMgbm90IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSIsCisJCQkJIE5hbWVTdHIoYXR0bmFtZSkp OworCX0KKworCS8qIFJlcG9ydCBhIENIRUNLX1ZJT0xBVElPTiAqLworCWlmIChpc2VtcHR5 KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ0hFQ0tfVklPTEFU SU9OKSwKKwkJCQkgZXJybXNnKCJlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlIGZvdW5k IGluIGNvbHVtbiBcIiVzXCIgaW4gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCU5hbWVTdHIo YXR0bmFtZSksIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Cit9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L21ha2VmdW5jcy5jCmluZGV4IDYxYWMxNzJhODU3Li45Y2FjM2MxYzI3YiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbWFrZWZ1bmNzLmMKQEAgLTc2MCw3ICs3NjAsOCBAQCBtYWtlX2FuZHNfaW1wbGljaXQo RXhwciAqY2xhdXNlKQogSW5kZXhJbmZvICoKIG1ha2VJbmRleEluZm8oaW50IG51bWF0dHJz LCBpbnQgbnVta2V5YXR0cnMsIE9pZCBhbW9pZCwgTGlzdCAqZXhwcmVzc2lvbnMsCiAJCQkg IExpc3QgKnByZWRpY2F0ZXMsIGJvb2wgdW5pcXVlLCBib29sIG51bGxzX25vdF9kaXN0aW5j dCwKLQkJCSAgYm9vbCBpc3JlYWR5LCBib29sIGNvbmN1cnJlbnQsIGJvb2wgc3VtbWFyaXpp bmcpCisJCQkgIGJvb2wgaXNyZWFkeSwgYm9vbCBjb25jdXJyZW50LCBib29sIHN1bW1hcml6 aW5nLAorCQkJICBib29sIHdpdGhvdXRvdmVybGFwcykKIHsKIAlJbmRleEluZm8gICpuID0g bWFrZU5vZGUoSW5kZXhJbmZvKTsKIApAQCAtNzc1LDYgKzc3Niw3IEBAIG1ha2VJbmRleElu Zm8oaW50IG51bWF0dHJzLCBpbnQgbnVta2V5YXR0cnMsIE9pZCBhbW9pZCwgTGlzdCAqZXhw cmVzc2lvbnMsCiAJbi0+aWlfSW5kZXhVbmNoYW5nZWQgPSBmYWxzZTsKIAluLT5paV9Db25j dXJyZW50ID0gY29uY3VycmVudDsKIAluLT5paV9TdW1tYXJpemluZyA9IHN1bW1hcml6aW5n OworCW4tPmlpX1dpdGhvdXRPdmVybGFwcyA9IHdpdGhvdXRvdmVybGFwczsKIAogCS8qIHN1 bW1hcml6aW5nIGluZGV4ZXMgY2Fubm90IGNvbnRhaW4gbm9uLWtleSBhdHRyaWJ1dGVzICov CiAJQXNzZXJ0KCFzdW1tYXJpemluZyB8fCAobnVta2V5YXR0cnMgPT0gbnVtYXR0cnMpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDUzNDkyYzY0NGE5Li4yYTdm OGZkMTU0ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0yMzk3LDcg KzIzOTcsOCBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3Ry YWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkgKiBGb3IgVU5JUVVFIGFuZCBQUklN QVJZIEtFWSwgd2UganVzdCBoYXZlIGEgbGlzdCBvZiBjb2x1bW4gbmFtZXMuCiAJICoKIAkg KiBNYWtlIHN1cmUgcmVmZXJlbmNlZCBrZXlzIGV4aXN0LiAgSWYgd2UgYXJlIG1ha2luZyBh IFBSSU1BUlkgS0VZIGluZGV4LAotCSAqIGFsc28gbWFrZSBzdXJlIHRoZXkgYXJlIE5PVCBO VUxMLgorCSAqIGFsc28gbWFrZSBzdXJlIHRoZXkgYXJlIE5PVCBOVUxMLiAgRm9yIFdJVEhP VVQgT1ZFUkxBUFMgY29uc3RyYWludHMsCisJICogd2UgbWFrZSBzdXJlIHRoZSBsYXN0IHBh cnQgaXMgYSByYW5nZSBvciBtdWx0aXJhbmdlLgogCSAqLwogCWVsc2UKIAl7CkBAIC0yNDA5 LDYgKzI0MTAsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29u c3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCUNvbHVtbkRlZiAgKmNvbHVt biA9IE5VTEw7CiAJCQlMaXN0Q2VsbCAgICpjb2x1bW5zOwogCQkJSW5kZXhFbGVtICAqaXBh cmFtOworCQkJT2lkCQkJdHlwaWQgPSBJbnZhbGlkT2lkOwogCiAJCQkvKiBNYWtlIHN1cmUg cmVmZXJlbmNlZCBjb2x1bW4gZXhpc3RzLiAqLwogCQkJZm9yZWFjaChjb2x1bW5zLCBjeHQt PmNvbHVtbnMpCkBAIC0yNDIwLDYgKzI0MjIsOSBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFp bnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJ CQkJYnJlYWs7CiAJCQkJfQogCQkJfQorCQkJaWYgKCFmb3VuZCkKKwkJCQljb2x1bW4gPSBO VUxMOworCiAJCQlpZiAoZm91bmQpCiAJCQl7CiAJCQkJLyoKQEAgLTI0NzUsNiArMjQ4MCw3 IEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25zdHJhaW50ICpjb25zdHJhaW50LCBD cmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJCQkJaWYgKHN0cmNtcChrZXksIGluaG5hbWUp ID09IDApCiAJCQkJCQl7CiAJCQkJCQkJZm91bmQgPSB0cnVlOworCQkJCQkJCXR5cGlkID0g aW5oYXR0ci0+YXR0dHlwaWQ7CiAKIAkJCQkJCQkvKgogCQkJCQkJCSAqIEl0J3MgdGVtcHRp bmcgdG8gc2V0IGZvcmNlZF9ub3RfbnVsbCBpZiB0aGUKQEAgLTI1MjQsNiArMjUzMCw0NiBA QCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3Jl YXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCQl9CiAJCQl9CiAKKwkJCS8qIFRoZSBXSVRIT1VU IE9WRVJMQVBTIHBhcnQgKGlmIGFueSkgbXVzdCBiZSBhIHJhbmdlIG9yIG11bHRpcmFuZ2Ug dHlwZS4gKi8KKwkJCWlmIChjb25zdHJhaW50LT53aXRob3V0X292ZXJsYXBzICYmIGxjID09 IGxpc3RfbGFzdF9jZWxsKGNvbnN0cmFpbnQtPmtleXMpKQorCQkJeworCQkJCWlmICghZm91 bmQgJiYgY3h0LT5pc2FsdGVyKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTG9vayB1cCB0 aGUgY29sdW1uIHR5cGUgb24gZXhpc3RpbmcgdGFibGUuCisJCQkJCSAqIElmIHdlIGNhbid0 IGZpbmQgaXQsIGxldCB0aGluZ3MgZmFpbCBpbiBEZWZpbmVJbmRleC4KKwkJCQkJICovCisJ CQkJCVJlbGF0aW9uIHJlbCA9IGN4dC0+cmVsOworCQkJCQlmb3IgKGludCBpID0gMDsgaSA8 IHJlbC0+cmRfYXR0LT5uYXR0czsgaSsrKQorCQkJCQl7CisJCQkJCQlGb3JtX3BnX2F0dHJp YnV0ZSBhdHRyID0gVHVwbGVEZXNjQXR0cihyZWwtPnJkX2F0dCwgaSk7CisJCQkJCQljb25z dCBjaGFyICphdHRuYW1lOworCisJCQkJCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJ CQkJCWJyZWFrOworCisJCQkJCQlhdHRuYW1lID0gTmFtZVN0cihhdHRyLT5hdHRuYW1lKTsK KwkJCQkJCWlmIChzdHJjbXAoYXR0bmFtZSwga2V5KSA9PSAwKQorCQkJCQkJeworCQkJCQkJ CWZvdW5kID0gdHJ1ZTsKKwkJCQkJCQl0eXBpZCA9IGF0dHItPmF0dHR5cGlkOworCQkJCQkJ CWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJCQkJfQorCQkJCWlmIChmb3VuZCkKKwkJCQl7 CisJCQkJCWlmICghT2lkSXNWYWxpZCh0eXBpZCkgJiYgY29sdW1uKQorCQkJCQkJdHlwaWQg PSB0eXBlbmFtZVR5cGVJZChOVUxMLCBjb2x1bW4tPnR5cGVOYW1lKTsKKworCQkJCQlpZiAo IU9pZElzVmFsaWQodHlwaWQpIHx8ICEodHlwZV9pc19yYW5nZSh0eXBpZCkgfHwgdHlwZV9p c19tdWx0aXJhbmdlKHR5cGlkKSkpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQko ZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBpbiBXSVRIT1VUIE9WRVJMQVBTIGlzIG5vdCBhIHJhbmdlIG9yIG11 bHRpcmFuZ2UgdHlwZSIsIGtleSksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3h0 LT5wc3RhdGUsIGNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOworCQkJCX0KKwkJCX0KKwogCQkJ LyogT0ssIGFkZCBpdCB0byB0aGUgaW5kZXggZGVmaW5pdGlvbiAqLwogCQkJaXBhcmFtID0g bWFrZU5vZGUoSW5kZXhFbGVtKTsKIAkJCWlwYXJhbS0+bmFtZSA9IHBzdHJkdXAoa2V5KTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggYzM2NzBmNzE1OGMuLjk5ZDk4ZTJkZTUwIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMjAyLDYgKzIwMiw3IEBAIHR5cGVkZWYgc3Ry dWN0IEluZGV4SW5mbwogCWJvb2wJCWlpX0NvbmN1cnJlbnQ7CiAJYm9vbAkJaWlfQnJva2Vu SG90Q2hhaW47CiAJYm9vbAkJaWlfU3VtbWFyaXppbmc7CisJYm9vbAkJaWlfV2l0aG91dE92 ZXJsYXBzOwogCWludAkJCWlpX1BhcmFsbGVsV29ya2VyczsKIAlPaWQJCQlpaV9BbTsKIAl2 b2lkCSAgICppaV9BbUNhY2hlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvbWFr ZWZ1bmNzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9tYWtlZnVuY3MuaAppbmRleCA1MjA5ZDNk ZTg5Yy4uMDc2NWU1YzU3YjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL21ha2Vm dW5jcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL21ha2VmdW5jcy5oCkBAIC05OCw3ICs5 OCw3IEBAIGV4dGVybiBJbmRleEluZm8gKm1ha2VJbmRleEluZm8oaW50IG51bWF0dHJzLCBp bnQgbnVta2V5YXR0cnMsIE9pZCBhbW9pZCwKIAkJCQkJCQkJTGlzdCAqZXhwcmVzc2lvbnMs IExpc3QgKnByZWRpY2F0ZXMsCiAJCQkJCQkJCWJvb2wgdW5pcXVlLCBib29sIG51bGxzX25v dF9kaXN0aW5jdCwKIAkJCQkJCQkJYm9vbCBpc3JlYWR5LCBib29sIGNvbmN1cnJlbnQsCi0J CQkJCQkJCWJvb2wgc3VtbWFyaXppbmcpOworCQkJCQkJCQlib29sIHN1bW1hcml6aW5nLCBi b29sIHdpdGhvdXRvdmVybGFwcyk7CiAKIGV4dGVybiBOb2RlICptYWtlU3RyaW5nQ29uc3Qo Y2hhciAqc3RyLCBpbnQgbG9jYXRpb24pOwogZXh0ZXJuIERlZkVsZW0gKm1ha2VEZWZFbGVt KGNoYXIgKm5hbWUsIE5vZGUgKmFyZywgaW50IGxvY2F0aW9uKTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CmluZGV4IDE5NTg2YzQ3 YjU1Li4wZmUzOTQ5Zjc0NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC93aXRob3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBAIC0yNyw4ICsyNyw5IEBAIENSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ybmcgKAogICB2YWxpZF9hdCBURVhULAogICBDT05TVFJBSU5UIHRlbXBvcmFs X3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiAp OwotRVJST1I6ICBkYXRhIHR5cGUgdGV4dCBoYXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFz cyBmb3IgYWNjZXNzIG1ldGhvZCAiZ2lzdCIKLUhJTlQ6ICBZb3UgbXVzdCBzcGVjaWZ5IGFu IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgaW5kZXggb3IgZGVmaW5lIGEgZGVmYXVsdCBvcGVy YXRvciBjbGFzcyBmb3IgdGhlIGRhdGEgdHlwZS4KK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9h dCIgaW4gV0lUSE9VVCBPVkVSTEFQUyBpcyBub3QgYSByYW5nZSBvciBtdWx0aXJhbmdlIHR5 cGUKK0xJTkUgNDogICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPLi4uCisgICAgICAgICAgXgogLS0gUEsgd2l0aCBvbmUgY29s dW1uIHBsdXMgYSByYW5nZToKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAogICAtLSBT aW5jZSB3ZSBjYW4ndCBkZXBlbmQgb24gaGF2aW5nIGJ0cmVlX2dpc3QgaGVyZSwKQEAgLTIz OCw4ICsyMzksOSBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCiAgIHZhbGlkX2F0 IFRFWFQsCiAgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKLUVSUk9SOiAgZGF0YSB0eXBlIHRleHQgaGFz IG5vIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIGFjY2VzcyBtZXRob2QgImdpc3QiCi1I SU5UOiAgWW91IG11c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4 IG9yIGRlZmluZSBhIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBkYXRhIHR5cGUu CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIGluIFdJVEhPVVQgT1ZFUkxBUFMgaXMgbm90 IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlCitMSU5FIDQ6ICAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgTy4uLgorICAgICAg ICAgIF4KIC0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgogQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3JuZzMgKAogICBpZCBpbnQ0cmFuZ2UsCkBAIC0zOTMsNiArMzk1 LDEyIEBAIEJFR0lOOwogRVJST1I6ICBjb3VsZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKSkgY29uZmxpY3RzIHdpdGgga2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgogUk9MTEJB Q0s7CistLSByZWplY3RzIGVtcHR5OgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICdlbXB0eScpOworICBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitFUlJPUjogIGVt cHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUgZm91bmQgaW4gY29sdW1uICJ2YWxpZF9hdCIg aW4gcmVsYXRpb24gInRlbXBvcmFsX3JuZyIKK1JPTExCQUNLOwogQUxURVIgVEFCTEUgdGVt cG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogREVMRVRFIEZST00gdGVtcG9yYWxf cm5nOwogLS0KQEAgLTQxMyw2ICs0MjEsOSBAQCBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAobnVsbCwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgogSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CiBFUlJP UjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGlu ZyByb3cgY29udGFpbnMgKFszLDQpLCBudWxsKS4KKy0tIHJlamVjdHMgZW1wdHk6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAn ZW1wdHknKTsKK0VSUk9SOiAgZW1wdHkgV0lUSE9VVCBPVkVSTEFQUyB2YWx1ZSBmb3VuZCBp biBjb2x1bW4gInZhbGlkX2F0IiBpbiByZWxhdGlvbiAidGVtcG9yYWxfcm5nIgogU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgCiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQEAgLTQ3MSw2ICs0ODIsMTIgQEAgU0VUICAgICBpZCA9ICdbMSwyKScsCiBXSEVS RSAgIGlkID0gJ1syMSwyMiknOwogRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAidmFs aWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIG5vdC1udWxsIGNv bnN0cmFpbnQKIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChbMSwyKSwgbnVsbCku CistLSByZWplY3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQg PSAnWzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9ICdlbXB0eScKK1dIRVJFICAgaWQgPSAn WzIxLDIyKSc7CitFUlJPUjogIGVtcHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUgZm91bmQg aW4gY29sdW1uICJ2YWxpZF9hdCIgaW4gcmVsYXRpb24gInRlbXBvcmFsX3JuZyIKIFNFTEVD VCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICAgIGlkICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCiAtLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtNTAzLDYgKzUyMCwxMiBAQCBCRUdJTjsKIEVSUk9SOiAgY291bGQg bm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcm5nM191cSIKIERF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDIt MDMpKSBjb25mbGljdHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0w MS0wMSwyMDE4LTAxLTA1KSkuCiBST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJ TjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMyw0KScsICdlbXB0eScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyk7CitFUlJPUjogIGVtcHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUgZm91 bmQgaW4gY29sdW1uICJ2YWxpZF9hdCIgaW4gcmVsYXRpb24gInRlbXBvcmFsX3JuZzMiCitS T0xMQkFDSzsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK IERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzM7CiAtLQpAQCAtNTE5LDYgKzU0Miw5IEBAIElO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCkn LCBOVUxMKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsK IEVSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ybmczX3VxIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0 aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDItMDMp KS4KKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ2VtcHR5Jyk7CitFUlJPUjogIGVtcHR5IFdJ VEhPVVQgT1ZFUkxBUFMgdmFsdWUgZm91bmQgaW4gY29sdW1uICJ2YWxpZF9hdCIgaW4gcmVs YXRpb24gInRlbXBvcmFsX3JuZzMiCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg CiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU3Niw2ICs2MDIsMTcg QEAgU0VUICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA1 LTA1JykKIFdIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOwogRVJS T1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFp bnQgInRlbXBvcmFsX3JuZzNfdXEiCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcg a2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkpLgor LS0gcmVqZWN0cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICB2YWxp ZF9hdCA9ICdlbXB0eScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBO VUxMOworRVJST1I6ICBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlIGZvdW5kIGluIGNv bHVtbiAidmFsaWRfYXQiIGluIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmczIgorLS0gc3RpbGwg cmVqZWN0cyBlbXB0eSB3aGVuIHNjYWxhciBwYXJ0IGlzIE5VTEw6CitVUERBVEUgIHRlbXBv cmFsX3JuZzMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9hdCA9ICdlbXB0 eScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOworRVJST1I6 ICBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlIGZvdW5kIGluIGNvbHVtbiAidmFsaWRf YXQiIGluIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmczIgogU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICAgaWQgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIAogLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02MDYs NiArNjQzLDEyIEBAIEJFR0lOOwogRVJST1I6ICBjb3VsZCBub3QgY3JlYXRlIGV4Y2x1c2lv biBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRybmdfcGsiCiBERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9KSBjb25mbGljdHMg d2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0w NSl9KS4KIFJPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAn e30nKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworRVJST1I6ICBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlIGZvdW5kIGlu IGNvbHVtbiAidmFsaWRfYXQiIGluIHJlbGF0aW9uICJ0ZW1wb3JhbF9tbHRybmciCitST0xM QkFDSzsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9tbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzsKIC0tCkBAIC02MjYsNiArNjY5 LDkgQEAgREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIHtbMjAxOC0wMS0w MSwyMDE4LTAxLTA1KX0pLgogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CiBFUlJPUjogIG51bGwgdmFsdWUgaW4g Y29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0 ZXMgbm90LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMg KFszLDQpLCBudWxsKS4KKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAne30nKTsKK0VSUk9S OiAgZW1wdHkgV0lUSE9VVCBPVkVSTEFQUyB2YWx1ZSBmb3VuZCBpbiBjb2x1bW4gInZhbGlk X2F0IiBpbiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIgogU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICAKIC0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CkBAIC02ODQsNiArNzMwLDEyIEBAIFNFVCAgICAgaWQgPSAnWzEsMiknLAogV0hFUkUgICBp ZCA9ICdbMjEsMjIpJzsKIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0 IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50CiBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzEsMiksIG51bGwpLgor LS0gcmVqZWN0cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQgICAgIGlk ID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfYXQgPSAne30nCitXSEVSRSAgIGlkID0gJ1sy MSwyMiknOworRVJST1I6ICBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlIGZvdW5kIGlu IGNvbHVtbiAidmFsaWRfYXQiIGluIHJlbGF0aW9uICJ0ZW1wb3JhbF9tbHRybmciCiBTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgICBp ZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCiAtLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03MTYsNiArNzY4LDEyIEBAIEJFR0lOOwogRVJST1I6 ICBjb3VsZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRy bmczX3VxIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAx LTAyLDIwMTgtMDItMDMpfSkgY29uZmxpY3RzIHdpdGgga2V5IChpZCwgdmFsaWRfYXQpPShb MSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfSkuCiBST0xMQkFDSzsKKy0tIHJlamVj dHMgZW1wdHk6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICd7fScpOworICBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVF IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitFUlJPUjogIGVtcHR5IFdJVEhP VVQgT1ZFUkxBUFMgdmFsdWUgZm91bmQgaW4gY29sdW1uICJ2YWxpZF9hdCIgaW4gcmVsYXRp b24gInRlbXBvcmFsX21sdHJuZzMiCitST0xMQkFDSzsKIEFMVEVSIFRBQkxFIHRlbXBvcmFs X21sdHJuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZzM7CiAtLQpAQCAtNzMyLDYgKzc5MCw5IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7 CiBFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29u c3RyYWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pIGNvbmZsaWN0cyB3aXRo IGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKX0pLgorLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAne30nKTsKK0VSUk9SOiAg ZW1wdHkgV0lUSE9VVCBPVkVSTEFQUyB2YWx1ZSBmb3VuZCBpbiBjb2x1bW4gInZhbGlkX2F0 IiBpbiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nMyIKIFNFTEVDVCAqIEZST00gdGVtcG9y YWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgIGlkICAgfCAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgIAogLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K QEAgLTc4OSw2ICs4NTAsMTcgQEAgU0VUICAgICB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA1LTA1JykpCiBXSEVSRSAgIGlkID0g J1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKIEVSUk9SOiAgY29uZmxpY3Rpbmcga2V5 IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRybmcz X3VxIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAzLTAx LDIwMTgtMDUtMDUpfSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRf YXQpPShbMSwyKSwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfSkuCistLSByZWplY3RzIGVt cHR5OgorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAgIHZhbGlkX2F0ID0gJ3t9 JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitFUlJPUjog IGVtcHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUgZm91bmQgaW4gY29sdW1uICJ2YWxpZF9h dCIgaW4gcmVsYXRpb24gInRlbXBvcmFsX21sdHJuZzMiCistLSBzdGlsbCByZWplY3RzIGVt cHR5IHdoZW4gc2NhbGFyIHBhcnQgaXMgTlVMTDoKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5n MworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gJ3t9JworV0hFUkUg ICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitFUlJPUjogIGVtcHR5IFdJ VEhPVVQgT1ZFUkxBUFMgdmFsdWUgZm91bmQgaW4gY29sdW1uICJ2YWxpZF9hdCIgaW4gcmVs YXRpb24gInRlbXBvcmFsX21sdHJuZzMiCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJu ZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAKIC0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGNjNzEyNmI4NTMx Li5lMDVmYTFkMDBjMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVy bGFwcy5zcWwKQEAgLTI2NCw2ICsyNjQsMTEgQEAgQkVHSU47CiAgIElOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOwogICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9y bmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6 CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgJ2VtcHR5Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNLOwogQUxURVIgVEFCTEUgdGVtcG9yYWxf cm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOwog CkBAIC0yODEsNiArMjg2LDggQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywKIElOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOwogSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKKy0tIHJlamVjdHMgZW1wdHk6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMs NCknLCAnZW1wdHknKTsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKIAogLS0KQEAgLTMxOSw2ICszMjYsMTEgQEAgVVBEQVRFICB0ZW1wb3Jh bF9ybmcKIFNFVCAgICAgaWQgPSAnWzEsMiknLAogICAgICAgICB2YWxpZF9hdCA9IE5VTEwK IFdIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSByZWplY3RzIGVtcHR5OgorVVBEQVRFICB0 ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9 ICdlbXB0eScKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CiBTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIC0tCkBAIC0zNDUsNiArMzU3LDEx IEBAIEJFR0lOOwogICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSk7CiAgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIFJP TExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ2VtcHR5Jyk7Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5n M191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNL OwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9y bmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMzsKIApAQCAtMzYyLDYgKzM3OSw4IEBAIElOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsK IAogLS0gc2hvdWxkIGZhaWw6CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSk7CistLSByZWplY3RzIGVtcHR5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICdlbXB0eScpOwogU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAogLS0KQEAgLTM5 OSw2ICs0MTgsMTUgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKIFVQREFURSAgdGVtcG9yYWxfcm5nMwogU0VUICAgICB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA1LTA1JykKIFdIRVJFICAgaWQgPSAn WzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOworLS0gcmVqZWN0cyBlbXB0eToKK1VQREFU RSAgdGVtcG9yYWxfcm5nMworU0VUICAgICB2YWxpZF9hdCA9ICdlbXB0eScKK1dIRVJFICAg aWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOworLS0gc3RpbGwgcmVqZWN0cyBl bXB0eSB3aGVuIHNjYWxhciBwYXJ0IGlzIE5VTEw6CitVUERBVEUgIHRlbXBvcmFsX3JuZzMK K1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9hdCA9ICdlbXB0eScKK1dIRVJF ICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOwogU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9y YWxfcm5nMzsKIApAQCAtNDIxLDYgKzQ0OSwxMSBAQCBCRUdJTjsKICAgSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwogICBB TFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0 cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBS T0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ3t9Jyk7Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9t bHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K1JPTExCQUNLOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpOwogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nOwogCkBAIC00MzgsNiAr NDcxLDggQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXIKIElOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKIElO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0 KScsIE5VTEwpOworLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICd7fScpOwogU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiAtLQpAQCAt NDc2LDYgKzUxMSwxMSBAQCBVUERBVEUgIHRlbXBvcmFsX21sdHJuZwogU0VUICAgICBpZCA9 ICdbMSwyKScsCiAgICAgICAgIHZhbGlkX2F0ID0gTlVMTAogV0hFUkUgICBpZCA9ICdbMjEs MjIpJzsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VU ICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0gJ3t9JworV0hFUkUgICBp ZCA9ICdbMjEsMjIpJzsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKIAogLS0KQEAgLTUwMiw2ICs1NDIsMTEgQEAgQkVHSU47CiAgIElO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CiAgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKIFJPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywg J3t9Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKK1JPTExCQUNLOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpOwogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMzsKIApAQCAtNTE5 LDYgKzU2NCw4IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKIAogLS0gc2hvdWxkIGZhaWw6CiBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkp OworLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAne30nKTsKIFNFTEVDVCAqIEZST00gdGVt cG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIC0tCkBAIC01NTYsNiAr NjAzLDE1IEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiBVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKIFNFVCAgICAgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wNS0wNScp KQogV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CistLSByZWpl Y3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAgIHZhbGlkX2F0 ID0gJ3t9JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7Cist LSBzdGlsbCByZWplY3RzIGVtcHR5IHdoZW4gc2NhbGFyIHBhcnQgaXMgTlVMTDoKK1VQREFU RSAgdGVtcG9yYWxfbWx0cm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlk X2F0ID0gJ3t9JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7 CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmczOwogCi0tIAoyLjQyLjAKCg== --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0004-Add-temporal-FOREIGN-KEY-contraints.patch" Content-Disposition: attachment; filename="v39-0004-Add-temporal-FOREIGN-KEY-contraints.patch" Content-Transfer-Encoding: base64 RnJvbSA1NjFlZjE4ZjE3NzY0NTVjODJjOWNhMzRiYjNlNDE1ZDNhZTM0NjkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFN1biwgMjQgTWFyIDIwMjQgMDc6Mzc6MTMgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzOSA0LzhdIEFkZCB0ZW1wb3JhbCBGT1JFSUdOIEtFWSBj b250cmFpbnRzCgpBZGQgUEVSSU9EIGNsYXVzZSB0byBmb3JlaWduIGtleSBjb25zdHJhaW50 IGRlZmluaXRpb25zLiAgVGhpcyBpcwpzdXBwb3J0ZWQgZm9yIHJhbmdlIGFuZCBtdWx0aXJh bmdlIHR5cGVzLiAgVGVtcG9yYWwgZm9yZWlnbiBrZXlzIGNoZWNrCmZvciByYW5nZSBjb250 YWlubWVudCBpbnN0ZWFkIG9mIGVxdWFsaXR5LgoKVGhpcyBmZWF0dXJlIG1hdGNoZXMgdGhl IGJlaGF2aW9yIG9mIHRoZSBTUUwgc3RhbmRhcmQgdGVtcG9yYWwgZm9yZWlnbgprZXlzLCBi dXQgaXQgd29ya3Mgb24gUG9zdGdyZVNRTCdzIG5hdGl2ZSByYW5nZXMgaW5zdGVhZCBvZiBT UUwncwoicGVyaW9kcyIsIHdoaWNoIGRvbid0IGV4aXN0IGluIFBvc3RncmVTUUwgKHlldCku CgpSZWZlcmVuY2UgYWN0aW9ucyBPTiB7VVBEQVRFLERFTEVURX0ge0NBU0NBREUsU0VUIE5V TEwsU0VUIERFRkFVTFR9CmFyZSBub3Qgc3VwcG9ydGVkIHlldC4KLS0tCiAuLi4vYnRyZWVf Z2lzdC9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgfCAgIDQ4ICsKIGNvbnRyaWIv YnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICB8ICAgMjggKwogZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICA0NSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICA1OCAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAgICAgICAgICAgICAgfCAgIDMx ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAg MjI2ICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAg IHwgICA0NSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAg ICAgIHwgIDE2OSArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAg ICAgICAgICB8ICAgMTcgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5o ICAgICAgICAgICB8ICAgMjEgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oICAg ICAgICAgICAgICAgICB8ICAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCAgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dCAgICAgfCAxMjgzICsrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAxMjM0ICsrKysrKysr KysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDMxMDUgaW5zZXJ0aW9ucygrKSwgMTA4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93 aXRob3V0X292ZXJsYXBzLm91dCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dAppbmRleCBiZTUyYzUyMmU4OS4uMTg4NTY5MDBkZWQgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKQEAgLTQyLDMgKzQyLDUxIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMK ICAgKDEsICdbMjAwMC0wNi0wMSwyMDAxLTAxLTAxKScpOwogRVJST1I6ICBjb25mbGljdGlu ZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3Ju Z19wayIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oMSwgWzA2LTAxLTIwMDAsMDEt MDEtMjAwMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0o MSwgWzAxLTAxLTIwMDAsMDEtMDEtMjAwMSkpLgorLS0gRm9yZWlnbiBrZXkKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAgaWQgaW50ZWdlciwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50ZWdlciwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcm5nMnJu ZworICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrX3JuZzJybmciCisgIENv bHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAor IHZhbGlkX2F0ICB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgcGFy ZW50X2lkIHwgaW50ZWdlciAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6 CisgICAgInRlbXBvcmFsX2ZrX3JuZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQp CisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWlu dCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2ZrX3JuZzJybmdfZmsnOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisoMSByb3cpCisKKy0t IG9rYXkKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVTCisgICgxLCAn WzIwMDAtMDEtMDEsMjAwMS0wMS0wMSknLCAxKTsKKy0tIG9rYXkgc3Bhbm5pbmcgdHdvIHBh cmVudCByZWNvcmRzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMK KyAgKDIsICdbMjAwMC0wMS0wMSwyMDAyLTAxLTAxKScsIDEpOworLS0ga2V5IGlzIG1pc3Np bmcKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVTCisgICgzLCAnWzIw MDAtMDEtMDEsMjAwMS0wMS0wMSknLCAzKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50 X2lkLCB2YWxpZF9hdCk9KDMsIFswMS0wMS0yMDAwLDAxLTAxLTIwMDEpKSBpcyBub3QgcHJl c2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4KKy0tIGtleSBleGlzdCBidXQgaXMgb3V0 c2lkZSByYW5nZQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAg KDQsICdbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKScsIDIpOworRVJST1I6ICBpbnNlcnQgb3Ig dXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5 IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oMiwgWzAxLTAxLTIwMDEsMDEtMDEtMjAwMikpIGlz IG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgorLS0ga2V5IGV4aXN0IGJ1 dCBpcyBwYXJ0bHkgb3V0c2lkZSByYW5nZQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyBWQUxVRVMKKyAgKDUsICdbMjAwMC0wMS0wMSwyMDAyLTAxLTAxKScsIDIpOworRVJS T1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oMiwgWzAxLTAxLTIwMDAs MDEtMDEtMjAwMikpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgpk aWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNx bCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXgg NDMzYzYwOWFiMjIuLmIxYjU4MWZjYWJjIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dp c3Qvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9z cWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTIzLDMgKzIzLDMxIEBAIElOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyBWQUxVRVMKIC0tIHNob3VsZCBmYWlsOgogSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIFZBTFVFUwogICAoMSwgJ1syMDAwLTA2LTAxLDIwMDEtMDEtMDEpJyk7CisK Ky0tIEZvcmVpZ24ga2V5CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisg IGlkIGludGVnZXIsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludGVn ZXIsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQor KTsKK1xkIHRlbXBvcmFsX2ZrX3JuZzJybmcKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRl ZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2Zr X3JuZzJybmdfZmsnOworCistLSBva2F5CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIFZBTFVFUworICAoMSwgJ1syMDAwLTAxLTAxLDIwMDEtMDEtMDEpJywgMSk7CistLSBv a2F5IHNwYW5uaW5nIHR3byBwYXJlbnQgcmVjb3JkczoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgVkFMVUVTCisgICgyLCAnWzIwMDAtMDEtMDEsMjAwMi0wMS0wMSknLCAx KTsKKy0tIGtleSBpcyBtaXNzaW5nCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IFZBTFVFUworICAoMywgJ1syMDAwLTAxLTAxLDIwMDEtMDEtMDEpJywgMyk7CistLSBrZXkg ZXhpc3QgYnV0IGlzIG91dHNpZGUgcmFuZ2UKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgVkFMVUVTCisgICg0LCAnWzIwMDEtMDEtMDEsMjAwMi0wMS0wMSknLCAyKTsKKy0t IGtleSBleGlzdCBidXQgaXMgcGFydGx5IG91dHNpZGUgcmFuZ2UKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVTCisgICg1LCAnWzIwMDAtMDEtMDEsMjAwMi0wMS0w MSknLCAyKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMWU1NmVkYWE3MGIuLmJmYjk3ODY1ZTE4 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMjczNiw3ICsyNzM2LDggQEAgU0NSQU0tU0hBLTI1 NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8 cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIFRo aXMgY29uc3RyYWludCBpcyBkZWZpbmVkIHdpdGggPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQ UzwvbGl0ZXJhbD4KLSAgICAgICAoZm9yIHByaW1hcnkga2V5cyBhbmQgdW5pcXVlIGNvbnN0 cmFpbnRzKS4KKyAgICAgICAoZm9yIHByaW1hcnkga2V5cyBhbmQgdW5pcXVlIGNvbnN0cmFp bnRzKSBvciA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+CisgICAgICAgKGZvciBmb3JlaWdu IGtleXMpLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCA5MjQzODEwYzNmZS4uOWQ1NTIyNDFhMTYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtODAsNyArODAsNyBAQCBD UkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxP R0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogICBVTklRVUUgWyBOVUxMUyBbIE5PVCBdIERJ U1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9WRVJMQVBTIF0gKSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFi bGU+IHwKICAgUFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9WRVJM QVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVy czwvcmVwbGFjZWFibGU+IHwKICAgRVhDTFVERSBbIFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5pbmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2x1ZGVfZWxlbWVudDwvcmVwbGFjZWFibGU+IFdJ VEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yPC9yZXBsYWNlYWJs ZT4gWywgLi4uIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFy YW1ldGVyczwvcmVwbGFjZWFibGU+IFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cHJlZGljYXRlPC9yZXBsYWNlYWJsZT4gKSBdIHwKLSAgRk9SRUlHTiBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSApIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKyAgRk9SRUlH TiBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSApIFJFRkVSRU5DRVMgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBb LCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gXSApIF0KICAgICBbIE1BVENIIEZVTEwgfCBNQVRDSCBQ QVJUSUFMIHwgTUFUQ0ggU0lNUExFIF0gWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlCiBjbGFz cz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIFsgT04g VVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rp b248L3JlcGxhY2VhYmxlPiBdIH0KIFsgREVGRVJSQUJMRSB8IE5PVCBERUZFUlJBQkxFIF0g WyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFMTFkgSU1NRURJQVRFIF0KQEAgLTExNDcs OCArMTE0Nyw4IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtcmVmZXJlbmNlcyI+CiAgICAgPHRlcm0+ PGxpdGVyYWw+UkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVm dGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+ICkgXSBbIE1BVENIIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2VhYmxlPiBdIFsgT04gREVMRVRFIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxh Y2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5y ZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFsPiAoY29sdW1uIGNv bnN0cmFpbnQpPC90ZXJtPgogCi0gICA8dGVybT48bGl0ZXJhbD5GT1JFSUdOIEtFWSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICkKLSAgICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCisgICA8dGVy bT48bGl0ZXJhbD5GT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkK KyAgICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJs ZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVm Y29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKSBdCiAgICAg WyBNQVRDSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWF0Y2h0eXBlPC9yZXBs YWNlYWJsZT4gXQogICAgIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBPTiBVUERB VEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwv cmVwbGFjZWFibGU+IF08L2xpdGVyYWw+CkBAIC0xMTY0LDcgKzExNjQsMzIgQEAgV0lUSCAo IE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJh bDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgIHByaW1hcnkga2V5IG9mIHRoZSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPgogICAgICAg aXMgdXNlZC4gIE90aGVyd2lzZSwgdGhlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPgogICAgICAgbGlzdCBtdXN0IHJlZmVyIHRvIHRo ZSBjb2x1bW5zIG9mIGEgbm9uLWRlZmVycmFibGUgdW5pcXVlIG9yIHByaW1hcnkga2V5Ci0g ICAgICBjb25zdHJhaW50IG9yIGJlIHRoZSBjb2x1bW5zIG9mIGEgbm9uLXBhcnRpYWwgdW5p cXVlIGluZGV4LiAgVGhlIHVzZXIKKyAgICAgIGNvbnN0cmFpbnQgb3IgYmUgdGhlIGNvbHVt bnMgb2YgYSBub24tcGFydGlhbCB1bmlxdWUgaW5kZXguCisgICAgIDwvcGFyYT4KKworICAg ICA8cGFyYT4KKyAgICAgIElmIHRoZSBsYXN0IGNvbHVtbiBpcyBtYXJrZWQgd2l0aCA8bGl0 ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+LCBpdCBpcworICAgICAgdHJlYXRlZCBpbiBhIHNwZWNp YWwgd2F5LiAgV2hpbGUgdGhlIG5vbi08bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+CisgICAg ICBjb2x1bW5zIGFyZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkgKGFuZCB0aGVyZSBtdXN0IGJl IGF0IGxlYXN0IG9uZSBvZgorICAgICAgdGhlbSksIHRoZSA8bGl0ZXJhbD5QRVJJT0Q8L2xp dGVyYWw+IGNvbHVtbiBpcyBub3QuICBJbnN0ZWFkLCB0aGUKKyAgICAgIGNvbnN0cmFpbnQg aXMgY29uc2lkZXJlZCBzYXRpc2ZpZWQgaWYgdGhlIHJlZmVyZW5jZWQgdGFibGUgaGFzIG1h dGNoaW5nCisgICAgICByZWNvcmRzIChiYXNlZCBvbiB0aGUgbm9uLTxsaXRlcmFsPlBFUklP RDwvbGl0ZXJhbD4gcGFydHMgb2YgdGhlIGtleSkKKyAgICAgIHdob3NlIGNvbWJpbmVkIDxs aXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gdmFsdWVzIGNvbXBsZXRlbHkgY292ZXIgdGhlCisg ICAgICByZWZlcmVuY2luZyByZWNvcmQncy4gIEluIG90aGVyIHdvcmRzLCB0aGUgcmVmZXJl bmNlIG11c3QgaGF2ZSBhCisgICAgICByZWZlcmVudCBmb3IgaXRzIGVudGlyZSBkdXJhdGlv bi4gIFRoaXMgY29sdW1uIG11c3QgYmUgYSByYW5nZSBvcgorICAgICAgbXVsdGlyYW5nZSB0 eXBlLiAgSW4gYWRkaXRpb24sIHRoZSByZWZlcmVuY2VkIHRhYmxlIG11c3QgaGF2ZSBhIHBy aW1hcnkKKyAgICAgIGtleSBvciB1bmlxdWUgY29uc3RyYWludCBkZWNsYXJlZCB3aXRoIDxs aXRlcmFsPldJVEhPVVQKKyAgICAgIE9WRVJMQVBTPC9saXRlcmFsPi4gRmluYWxseSwgaWYg dGhlIGZvcmVpZ24ga2V5IGhhcyBhIFBFUklPRAorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gc3BlY2lmaWNhdGlvbgor ICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+LAorICAgICAgaWYgcHJlc2VudCwgbXVzdCBhbHNv IGJlIG1hcmtlZCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+LiAgSWYgdGhlCisgICAgICA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4g Y2xhdXNlIGlzIG9taXR0ZWQsCisgICAgICBhbmQgdGh1cyB0aGUgcmVmdGFibGUncyBwcmlt YXJ5IGtleSBjb25zdHJhaW50IGNob3NlbiwgdGhlIHByaW1hcnkga2V5CisgICAgICBtdXN0 IGhhdmUgaXRzIGZpbmFsIGNvbHVtbiBtYXJrZWQgPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQ UzwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIFRoZSB1 c2VyCiAgICAgICBtdXN0IGhhdmUgPGxpdGVyYWw+UkVGRVJFTkNFUzwvbGl0ZXJhbD4gcGVy bWlzc2lvbiBvbiB0aGUgcmVmZXJlbmNlZAogICAgICAgdGFibGUgKGVpdGhlciB0aGUgd2hv bGUgdGFibGUsIG9yIHRoZSBzcGVjaWZpYyByZWZlcmVuY2VkIGNvbHVtbnMpLiAgVGhlCiAg ICAgICBhZGRpdGlvbiBvZiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgcmVxdWlyZXMgYQpA QCAtMTIzOCw2ICsxMjYzLDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAg ICAgICAgdmFsdWVzIG9mIHRoZSByZWZlcmVuY2luZyBjb2x1bW4ocykgdG8gdGhlIG5ldyB2 YWx1ZXMgb2YgdGhlCiAgICAgICAgICAgcmVmZXJlbmNlZCBjb2x1bW5zLCByZXNwZWN0aXZl bHkuCiAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIElu IGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQu CisgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJs aXN0ZW50cnk+CiAKQEAgLTEyNDksNiArMTI3OCwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICAgICAgIHJlZmVyZW5jaW5nIGNvbHVtbnMsIHRvIG51bGwuIEEgc3Vi c2V0IG9mIGNvbHVtbnMgY2FuIG9ubHkgYmUKICAgICAgICAgICBzcGVjaWZpZWQgZm9yIDxs aXRlcmFsPk9OIERFTEVURTwvbGl0ZXJhbD4gYWN0aW9ucy4KICAgICAgICAgIDwvcGFyYT4K KworICAgICAgICAgPHBhcmE+CisgICAgICAgICAgSW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtl eSwgdGhpcyBvcHRpb24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgIDwvcGFyYT4KICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMTI2Miw2 ICsxMjk1LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgICAgKFRo ZXJlIG11c3QgYmUgYSByb3cgaW4gdGhlIHJlZmVyZW5jZWQgdGFibGUgbWF0Y2hpbmcgdGhl IGRlZmF1bHQKICAgICAgICAgICB2YWx1ZXMsIGlmIHRoZXkgYXJlIG5vdCBudWxsLCBvciB0 aGUgb3BlcmF0aW9uIHdpbGwgZmFpbC4pCiAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAg IDxwYXJhPgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoaXMgb3B0 aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgICA8L3ZhcmlhYmxlbGlzdD4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKaW5kZXggOWJlMDUwY2NlZTguLjFl MmRmMDMxYTg0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFp bnQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYwpAQCAtMTUs NiArMTUsNyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3Mv Z2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvZ2lzdC5oIgogI2luY2x1ZGUgImFjY2Vzcy9o dHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgogI2luY2x1ZGUg ImFjY2Vzcy90YWJsZS5oIgpAQCAtMTM0OSw2ICsxMzUwLDYzIEBAIERlY29uc3RydWN0RmtD b25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAJKm51bWZrcyA9 IG51bWtleXM7CiB9CiAKKy8qCisgKiBGaW5kRmtQZXJpb2RPcGVycyAtCisgKgorICogTG9v a3MgdXAgdGhlIG9wZXJhdG9yIG9pZHMgdXNlZCBmb3IgdGhlIFBFUklPRCBwYXJ0IG9mIGEg dGVtcG9yYWwgZm9yZWlnbiBrZXkuCisgKiBUaGUgb3BjbGFzcyBzaG91bGQgYmUgdGhlIG9w Y2xhc3Mgb2YgdGhhdCBQRVJJT0QgZWxlbWVudC4KKyAqIEV2ZXJ5dGhpbmcgZWxzZSBpcyBh biBvdXRwdXQ6IGNvbnRhaW5lZGJ5b3Blcm9pZCBpcyB0aGUgQ29udGFpbmVkQnkgb3BlcmF0 b3IgZm9yCisgKiB0eXBlcyBtYXRjaGluZyB0aGUgUEVSSU9EIGVsZW1lbnQuCisgKiBhZ2dl ZGNvbnRhaW5lZGJ5b3Blcm9pZCBpcyBhbHNvIGEgQ29udGFpbmVkQnkgb3BlcmF0b3IsCisg KiBidXQgb25lIHdob3NlIHJocyBpcyBhIG11bHRpcmFuZ2UuCisgKiBUaGF0IHdheSBmb3Jl aWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIpLgorICov Cit2b2lkCitGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKKwkJCQkgIE9pZCAqY29u dGFpbmVkYnlvcGVyb2lkLAorCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCkK K3sKKwlPaWQJCQlvcGZhbWlseSA9IEludmFsaWRPaWQ7CisJT2lkCQkJb3BjaW50eXBlID0g SW52YWxpZE9pZDsKKwlTdHJhdGVneU51bWJlciBzdHJhdDsKKworCS8qIE1ha2Ugc3VyZSB3 ZSBoYXZlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZS4gKi8KKwlpZiAoZ2V0X29wY2xhc3Nfb3Bm YW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywgJm9wZmFtaWx5LCAmb3BjaW50eXBlKSkK Kwl7CisJCWlmIChvcGNpbnR5cGUgIT0gQU5ZUkFOR0VPSUQgJiYgb3BjaW50eXBlICE9IEFO WU1VTFRJUkFOR0VPSUQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJpbnZhbGlkIHR5cGUg Zm9yIFBFUklPRCBwYXJ0IG9mIGZvcmVpZ24ga2V5IiksCisJCQkJCWVycmRldGFpbCgiT25s eSByYW5nZSBhbmQgbXVsdGlyYW5nZSBhcmUgc3VwcG9ydGVkLiIpKTsKKworCX0KKwllbHNl CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGNsYXNzICV1Iiwg b3BjbGFzcyk7CisKKwkvKgorCSAqIExvb2sgdXAgdGhlIENvbnRhaW5lZEJ5IG9wZXJhdG9y IHdob3NlIGxocyBhbmQgcmhzIGFyZSB0aGUgb3BjbGFzcydzCisJICogdHlwZS4gV2UgdXNl IHRoaXMgdG8gb3B0aW1pemUgUkkgY2hlY2tzOiBpZiB0aGUgbmV3IHZhbHVlIGluY2x1ZGVz IGFsbAorCSAqIG9mIHRoZSBvbGQgdmFsdWUsIHRoZW4gd2UgY2FuIHRyZWF0IHRoZSBhdHRy aWJ1dGUgYXMgaWYgaXQgZGlkbid0CisJICogY2hhbmdlLCBhbmQgc2tpcCB0aGUgUkkgY2hl Y2suCisJICovCisJc3RyYXQgPSBSVENvbnRhaW5lZEJ5U3RyYXRlZ3lOdW1iZXI7CisJR2V0 T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3BjbGFzcywKKwkJCQkJCQkJCSBJbnZh bGlkT2lkLAorCQkJCQkJCQkJIGNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkJCSAmc3Ry YXQpOworCisJLyoKKwkgKiBOb3cgbG9vayB1cCB0aGUgQ29udGFpbmVkQnkgb3BlcmF0b3Iu IEl0cyBsZWZ0IGFyZyBtdXN0IGJlIHRoZSB0eXBlIG9mCisJICogdGhlIGNvbHVtbiAob3Ig cmF0aGVyIG9mIHRoZSBvcGNsYXNzKS4gSXRzIHJpZ2h0IGFyZyBtdXN0IG1hdGNoIHRoZQor CSAqIHJldHVybiB0eXBlIG9mIHRoZSBzdXBwb3J0IHByb2MuCisJICovCisJc3RyYXQgPSBS VENvbnRhaW5lZEJ5U3RyYXRlZ3lOdW1iZXI7CisJR2V0T3BlcmF0b3JGcm9tV2VsbEtub3du U3RyYXRlZ3kob3BjbGFzcywKKwkJCQkJCQkJCSBBTllNVUxUSVJBTkdFT0lELAorCQkJCQkJ CQkJIGFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICZzdHJhdCk7Cit9CisK IC8qCiAgKiBEZXRlcm1pbmUgd2hldGhlciBhIHJlbGF0aW9uIGNhbiBiZSBwcm92ZW4gZnVu Y3Rpb25hbGx5IGRlcGVuZGVudCBvbgogICogYSBzZXQgb2YgZ3JvdXBpbmcgY29sdW1ucy4g IElmIHNvLCByZXR1cm4gdHJ1ZSBhbmQgYWRkIHRoZSBwZ19jb25zdHJhaW50CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IDlhZjU5MmYyNWQ2Li4zZDUxZTQ5NDllYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTIyMDYsNyArMjIwNiw3IEBAIENvbXB1 dGVJbmRleEF0dHJzKEluZGV4SW5mbyAqaW5kZXhJbmZvLAogCQkJCXN0cmF0ID0gUlRPdmVy bGFwU3RyYXRlZ3lOdW1iZXI7CiAJCQllbHNlCiAJCQkJc3RyYXQgPSBSVEVxdWFsU3RyYXRl Z3lOdW1iZXI7Ci0JCQlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNz T2lkc1thdHRuXSwgYXR0dHlwZSwKKwkJCUdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0 ZWd5KG9wY2xhc3NPaWRzW2F0dG5dLCBJbnZhbGlkT2lkLAogCQkJCQkJCQkJCQkgJm9waWQs ICZzdHJhdCk7CiAJCQlpbmRleEluZm8tPmlpX0V4Y2x1c2lvbk9wc1thdHRuXSA9IG9waWQ7 CiAJCQlpbmRleEluZm8tPmlpX0V4Y2x1c2lvblByb2NzW2F0dG5dID0gZ2V0X29wY29kZShv cGlkKTsKQEAgLTI0NDYsNyArMjQ0Niw3IEBAIEdldERlZmF1bHRPcENsYXNzKE9pZCB0eXBl X2lkLCBPaWQgYW1faWQpCiAgKiBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneQog ICoKICAqIG9wY2xhc3MgLSB0aGUgb3BjbGFzcyB0byB1c2UKLSAqIGF0dHR5cGUgLSB0aGUg dHlwZSB0byBhc2sgYWJvdXQKKyAqIHJoc3R5cGUgLSB0aGUgdHlwZSBmb3IgdGhlIHJpZ2h0 LWhhbmQgc2lkZSwgb3IgSW52YWxpZE9pZCB0byB1c2UgdGhlIHR5cGUgb2YgdGhlIGdpdmVu IG9wY2xhc3MuCiAgKiBvcGlkIC0gaG9sZHMgdGhlIG9wZXJhdG9yIHdlIGZvdW5kCiAgKiBz dHJhdCAtIGhvbGRzIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHN0cmF0ZWd5IG51bWJlcgogICoK QEAgLTI0NTksMTQgKzI0NTksMTQgQEAgR2V0RGVmYXVsdE9wQ2xhc3MoT2lkIHR5cGVfaWQs IE9pZCBhbV9pZCkKICAqIEludmFsaWRTdHJhdGVneS4KICAqLwogdm9pZAotR2V0T3BlcmF0 b3JGcm9tV2VsbEtub3duU3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAorR2V0 T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCByaHN0eXBl LAogCQkJCQkJCQkgT2lkICpvcGlkLCBTdHJhdGVneU51bWJlciAqc3RyYXQpCiB7CiAJT2lk CQkJb3BmYW1pbHk7CiAJT2lkCQkJb3BjaW50eXBlOwogCVN0cmF0ZWd5TnVtYmVyIGluc3Ry YXQgPSAqc3RyYXQ7CiAKLQlBc3NlcnQoaW5zdHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1i ZXIgfHwgaW5zdHJhdCA9PSBSVE92ZXJsYXBTdHJhdGVneU51bWJlcik7CisJQXNzZXJ0KGlu c3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5TnVtYmVyIHx8IGluc3RyYXQgPT0gUlRPdmVybGFw U3RyYXRlZ3lOdW1iZXIgfHwgaW5zdHJhdCA9PSBSVENvbnRhaW5lZEJ5U3RyYXRlZ3lOdW1i ZXIpOwogCiAJKm9waWQgPSBJbnZhbGlkT2lkOwogCkBAIC0yNDg5LDE2ICsyNDg5LDIxIEBA IEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQgYXR0 dHlwZSwKIAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAotCQkJCQlpbnN0cmF0ID09IFJURXF1YWxTdHJhdGVneU51bWJlciA/ Ci0JCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGVxdWFsaXR5IG9wZXJhdG9y IGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpIDoKLQkJCQkJZXJybXNn KCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0b3IgZm9yIHR5cGUgJXMi LCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSksCisJCQkJCWluc3RyYXQgPT0gUlRFcXVhbFN0 cmF0ZWd5TnVtYmVyID8gZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxpdHkg b3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUpKSA6CisJ CQkJCWluc3RyYXQgPT0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXIgPyBlcnJtc2coImNvdWxk IG5vdCBpZGVudGlmeSBhbiBvdmVybGFwcyBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1h dF90eXBlX2JlKG9wY2ludHlwZSkpIDoKKwkJCQkJaW5zdHJhdCA9PSBSVENvbnRhaW5lZEJ5 U3RyYXRlZ3lOdW1iZXIgPyBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhIGNvbnRhaW5l ZC1ieSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkp IDogMCwKIAkJCQkJZXJyZGV0YWlsKCJDb3VsZCBub3QgdHJhbnNsYXRlIHN0cmF0ZWd5IG51 bWJlciAlZCBmb3Igb3BlcmF0b3IgY2xhc3MgXCIlc1wiIGZvciBhY2Nlc3MgbWV0aG9kIFwi JXNcIi4iLAogCQkJCQkJCSAgaW5zdHJhdCwgTmFtZVN0cigoKEZvcm1fcGdfb3BjbGFzcykg R0VUU1RSVUNUKHR1cGxlKSktPm9wY25hbWUpLCAiZ2lzdCIpKTsKLQotCQkJUmVsZWFzZVN5 c0NhY2hlKHR1cGxlKTsKIAkJfQogCi0JCSpvcGlkID0gZ2V0X29wZmFtaWx5X21lbWJlcihv cGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsICpzdHJhdCk7CisJCS8qCisJCSAqIFdl IHBhcmFtZXRlcml6ZSByaHN0eXBlIHNvIGZvcmVpZ24ga2V5cyBjYW4gYXNrIGZvciBhIDxA IG9wZXJhdG9yCisJCSAqIHdob3NlIHJocyBtYXRjaGVzIHRoZSBhZ2dyZWdhdGUgZnVuY3Rp b24uIEZvciBleGFtcGxlIHJhbmdlX2FnZworCQkgKiByZXR1cm5zIGFueW11bHRpcmFuZ2Uu CisJCSAqLworCQlpZiAoIU9pZElzVmFsaWQocmhzdHlwZSkpCisJCQlyaHN0eXBlID0gb3Bj aW50eXBlOworCQkqb3BpZCA9IGdldF9vcGZhbWlseV9tZW1iZXIob3BmYW1pbHksIG9wY2lu dHlwZSwgcmhzdHlwZSwgKnN0cmF0KTsKIAl9CiAKIAlpZiAoIU9pZElzVmFsaWQoKm9waWQp KQpAQCAtMjUxMSw5ICsyNTE2LDkgQEAgR2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRl Z3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAogCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAotCQkJCWluc3RyYXQgPT0gUlRF cXVhbFN0cmF0ZWd5TnVtYmVyID8KLQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBh biBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5 cGUpKSA6Ci0JCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3Bl cmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSksCisJCQkJaW5z dHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIgPyBlcnJtc2coImNvdWxkIG5vdCBpZGVu dGlmeSBhbiBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2Jl KG9wY2ludHlwZSkpIDoKKwkJCQlpbnN0cmF0ID09IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVy ID8gZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0b3IgZm9y IHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUpKSA6CisJCQkJaW5zdHJhdCA9 PSBSVENvbnRhaW5lZEJ5U3RyYXRlZ3lOdW1iZXIgPyBlcnJtc2coImNvdWxkIG5vdCBpZGVu dGlmeSBhIGNvbnRhaW5lZC1ieSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBl X2JlKG9wY2ludHlwZSkpIDogMCwKIAkJCQllcnJkZXRhaWwoIlRoZXJlIGlzIG5vIHN1aXRh YmxlIG9wZXJhdG9yIGluIG9wZXJhdG9yIGZhbWlseSBcIiVzXCIgZm9yIGFjY2VzcyBtZXRo b2QgXCIlc1wiLiIsCiAJCQkJCQkgIE5hbWVTdHIoKChGb3JtX3BnX29wZmFtaWx5KSBHRVRT VFJVQ1QodHVwbGUpKS0+b3BmbmFtZSksICJnaXN0IikpOwogCX0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMKaW5kZXggMmI5ZGQ0ZGM0NDUuLmM1MmYzMTM3MjYxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTYsNiArMTYsNyBAQAogCiAjaW5jbHVkZSAiYWNj ZXNzL2F0dG1hcC5oIgogI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFj Y2Vzcy9naXN0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgogI2luY2x1ZGUgImFj Y2Vzcy9oZWFwYW1feGxvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy9tdWx0aXhhY3QuaCIKQEAg LTIxNSw2ICsyMTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBOZXdDb25zdHJhaW50CiAJQ29uc3Ry VHlwZQljb250eXBlOwkJLyogQ0hFQ0sgb3IgRk9SRUlHTiAqLwogCU9pZAkJCXJlZnJlbGlk OwkJLyogUEsgcmVsLCBpZiBGT1JFSUdOICovCiAJT2lkCQkJcmVmaW5kaWQ7CQkvKiBPSUQg b2YgUEsncyBpbmRleCwgaWYgRk9SRUlHTiAqLworCWJvb2wJCWNvbndpdGhwZXJpb2Q7CS8q IFdoZXRoZXIgdGhlIG5ldyBGT1JFSUdOIEtFWSB1c2VzIFBFUklPRCAqLwogCU9pZAkJCWNv bmlkOwkJCS8qIE9JRCBvZiBwZ19jb25zdHJhaW50IGVudHJ5LCBpZiBGT1JFSUdOICovCiAJ Tm9kZQkgICAqcXVhbDsJCQkvKiBDaGVjayBleHByIG9yIENPTlNUUl9GT1JFSUdOIENvbnN0 cmFpbnQgKi8KIAlFeHByU3RhdGUgICpxdWFsc3RhdGU7CQkvKiBFeGVjdXRpb24gc3RhdGUg Zm9yIENIRUNLIGV4cHIgKi8KQEAgLTM4OSwxNiArMzkxLDE3IEBAIHN0YXRpYyBpbnQJdHJh bnNmb3JtQ29sdW1uTmFtZUxpc3QoT2lkIHJlbElkLCBMaXN0ICpjb2xMaXN0LAogc3RhdGlj IGludAl0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShSZWxhdGlvbiBwa3JlbCwgT2lkICpp bmRleE9pZCwKIAkJCQkJCQkJCSAgIExpc3QgKiphdHRuYW1lbGlzdCwKIAkJCQkJCQkJCSAg IGludDE2ICphdHRudW1zLCBPaWQgKmF0dHR5cGlkcywKLQkJCQkJCQkJCSAgIE9pZCAqb3Bj bGFzc2VzKTsKKwkJCQkJCQkJCSAgIE9pZCAqb3BjbGFzc2VzLCBib29sICpwa19oYXNfd2l0 aG91dF9vdmVybGFwcyk7CiBzdGF0aWMgT2lkCXRyYW5zZm9ybUZrZXlDaGVja0F0dHJzKFJl bGF0aW9uIHBrcmVsLAogCQkJCQkJCQkJaW50IG51bWF0dHJzLCBpbnQxNiAqYXR0bnVtcywK LQkJCQkJCQkJCU9pZCAqb3BjbGFzc2VzKTsKKwkJCQkJCQkJCWJvb2wgd2l0aF9wZXJpb2Qs IE9pZCAqb3BjbGFzc2VzLAorCQkJCQkJCQkJYm9vbCAqcGtfaGFzX3dpdGhvdXRfb3Zlcmxh cHMpOwogc3RhdGljIHZvaWQgY2hlY2tGa2V5UGVybWlzc2lvbnMoUmVsYXRpb24gcmVsLCBp bnQxNiAqYXR0bnVtcywgaW50IG5hdHRzKTsKIHN0YXRpYyBDb2VyY2lvblBhdGhUeXBlIGZp bmRGa2V5Q2FzdChPaWQgdGFyZ2V0VHlwZUlkLCBPaWQgc291cmNlVHlwZUlkLAogCQkJCQkJ CQkJIE9pZCAqZnVuY2lkKTsKIHN0YXRpYyB2b2lkIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0 cmFpbnQoY2hhciAqY29ubmFtZSwKIAkJCQkJCQkJCQkgUmVsYXRpb24gcmVsLCBSZWxhdGlv biBwa3JlbCwKLQkJCQkJCQkJCQkgT2lkIHBraW5kT2lkLCBPaWQgY29uc3RyYWludE9pZCk7 CisJCQkJCQkJCQkJIE9pZCBwa2luZE9pZCwgT2lkIGNvbnN0cmFpbnRPaWQsIGJvb2wgaGFz cGVyaW9kKTsKIHN0YXRpYyB2b2lkIENoZWNrQWx0ZXJUYWJsZUlzU2FmZShSZWxhdGlvbiBy ZWwpOwogc3RhdGljIHZvaWQgQVRDb250cm9sbGVyKEFsdGVyVGFibGVTdG10ICpwYXJzZXRy ZWUsCiAJCQkJCQkgUmVsYXRpb24gcmVsLCBMaXN0ICpjbWRzLCBib29sIHJlY3Vyc2UsIExP Q0tNT0RFIGxvY2ttb2RlLApAQCAtNTEwLDcgKzUxMyw4IEBAIHN0YXRpYyBPYmplY3RBZGRy ZXNzIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAq Zmtjb25zdHJhCiAJCQkJCQkJCQkJCU9pZCAqcGZlcW9wZXJhdG9ycywgT2lkICpwcGVxb3Bl cmF0b3JzLCBPaWQgKmZmZXFvcGVyYXRvcnMsCiAJCQkJCQkJCQkJCWludCBudW1ma2RlbHNl dGNvbHMsIGludDE2ICpma2RlbHNldGNvbHMsCiAJCQkJCQkJCQkJCWJvb2wgb2xkX2NoZWNr X29rLAotCQkJCQkJCQkJCQlPaWQgcGFyZW50RGVsVHJpZ2dlciwgT2lkIHBhcmVudFVwZFRy aWdnZXIpOworCQkJCQkJCQkJCQlPaWQgcGFyZW50RGVsVHJpZ2dlciwgT2lkIHBhcmVudFVw ZFRyaWdnZXIsCisJCQkJCQkJCQkJCWJvb2wgd2l0aF9wZXJpb2QpOwogc3RhdGljIHZvaWQg dmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAq ZmthdHRudW1zLAogCQkJCQkJCQkJCSBpbnQgbnVtZmtzZXRjb2xzLCBjb25zdCBpbnQxNiAq ZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkJCQkgTGlzdCAqZmtzZXRjb2xzKTsKQEAgLTUy MCw3ICs1MjQsOSBAQCBzdGF0aWMgdm9pZCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0 ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCiAJCQkJCQkJCQlPaWQgKnBm ZXFvcGVyYXRvcnMsIE9pZCAqcHBlcW9wZXJhdG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAog CQkJCQkJCQkJaW50IG51bWZrZGVsc2V0Y29scywgaW50MTYgKmZrZGVsc2V0Y29scywKIAkJ CQkJCQkJCWJvb2wgb2xkX2NoZWNrX29rLCBMT0NLTU9ERSBsb2NrbW9kZSwKLQkJCQkJCQkJ CU9pZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlcik7CisJCQkJCQkJ CQlPaWQgcGFyZW50SW5zVHJpZ2dlciwgT2lkIHBhcmVudFVwZFRyaWdnZXIsCisJCQkJCQkJ CQlib29sIHdpdGhfcGVyaW9kKTsKKwogc3RhdGljIHZvaWQgQ2xvbmVGb3JlaWduS2V5Q29u c3RyYWludHMoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcGFyZW50UmVsLAogCQkJCQkJCQkJ ICAgUmVsYXRpb24gcGFydGl0aW9uUmVsKTsKIHN0YXRpYyB2b2lkIENsb25lRmtSZWZlcmVu Y2VkKFJlbGF0aW9uIHBhcmVudFJlbCwgUmVsYXRpb24gcGFydGl0aW9uUmVsKTsKQEAgLTU5 NDUsNyArNTk1MSw4IEBAIEFUUmV3cml0ZVRhYmxlcyhBbHRlclRhYmxlU3RtdCAqcGFyc2V0 cmVlLCBMaXN0ICoqd3F1ZXVlLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAogCQkJCXZhbGlkYXRl Rm9yZWlnbktleUNvbnN0cmFpbnQoZmtjb25zdHJhaW50LT5jb25uYW1lLCByZWwsIHJlZnJl bCwKIAkJCQkJCQkJCQkJIGNvbi0+cmVmaW5kaWQsCi0JCQkJCQkJCQkJCSBjb24tPmNvbmlk KTsKKwkJCQkJCQkJCQkJIGNvbi0+Y29uaWQsCisJCQkJCQkJCQkJCSBjb24tPmNvbndpdGhw ZXJpb2QpOwogCiAJCQkJLyoKIAkJCQkgKiBObyBuZWVkIHRvIG1hcmsgdGhlIGNvbnN0cmFp bnQgcm93IGFzIHZhbGlkYXRlZCwgd2UgZGlkCkBAIC05NTkzLDYgKzk2MDAsOCBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCU9pZAkJCXBwZXFvcGVyYXRvcnNbSU5ERVhfTUFYX0tF WVNdID0gezB9OwogCU9pZAkJCWZmZXFvcGVyYXRvcnNbSU5ERVhfTUFYX0tFWVNdID0gezB9 OwogCWludDE2CQlma2RlbHNldGNvbHNbSU5ERVhfTUFYX0tFWVNdID0gezB9OworCWJvb2wJ CXdpdGhfcGVyaW9kOworCWJvb2wJCXBrX2hhc193aXRob3V0X292ZXJsYXBzOwogCWludAkJ CWk7CiAJaW50CQkJbnVtZmtzLAogCQkJCW51bXBrcywKQEAgLTk2ODcsNiArOTY5NiwxMSBA QCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCW51bWZrcyA9IHRyYW5zZm9ybUNvbHVtbk5h bWVMaXN0KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJCQkJCQkJCSBma2NvbnN0cmFpbnQt PmZrX2F0dHJzLAogCQkJCQkJCQkJIGZrYXR0bnVtLCBma3R5cG9pZCk7CisJd2l0aF9wZXJp b2QgPSBma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kIHx8IGZrY29uc3RyYWludC0+cGtf d2l0aF9wZXJpb2Q7CisJaWYgKHdpdGhfcGVyaW9kICYmICFma2NvbnN0cmFpbnQtPmZrX3dp dGhfcGVyaW9kKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX0ZPUkVJR05fS0VZKSwKKwkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9E IG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxl IikpOwogCiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3JtQ29sdW1uTmFtZUxpc3QoUmVs YXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29uc3RyYWludC0+ZmtfZGVs X3NldF9jb2xzLApAQCAtOTcwNiwxOCArOTcyMCw0MCBAQCBBVEFkZEZvcmVpZ25LZXlDb25z dHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLAogCQludW1wa3MgPSB0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShwa3JlbCwgJmlu ZGV4T2lkLAogCQkJCQkJCQkJCQkmZmtjb25zdHJhaW50LT5wa19hdHRycywKIAkJCQkJCQkJ CQkJcGthdHRudW0sIHBrdHlwb2lkLAotCQkJCQkJCQkJCQlvcGNsYXNzZXMpOworCQkJCQkJ CQkJCQlvcGNsYXNzZXMsICZwa19oYXNfd2l0aG91dF9vdmVybGFwcyk7CisKKwkJLyogSWYg dGhlIHByaW1hcnkga2V5IHVzZXMgV0lUSE9VVCBPVkVSTEFQUywgdGhlIGZrIG11c3QgdXNl IFBFUklPRCAqLworCQlpZiAocGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHMgJiYgIWZrY29uc3Ry YWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9GT1JFSUdOX0tFWSksCisJCQkJCWVycm1zZygiZm9yZWlnbiBr ZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVm ZXJlbmNpbmcgdGFibGUiKSk7CiAJfQogCWVsc2UKIAl7CiAJCW51bXBrcyA9IHRyYW5zZm9y bUNvbHVtbk5hbWVMaXN0KFJlbGF0aW9uR2V0UmVsaWQocGtyZWwpLAogCQkJCQkJCQkJCSBm a2NvbnN0cmFpbnQtPnBrX2F0dHJzLAogCQkJCQkJCQkJCSBwa2F0dG51bSwgcGt0eXBvaWQp OworCisJCS8qIFNpbmNlIHdlIGdvdCBwa19hdHRycywgb25lIHNob3VsZCBiZSBhIHBlcmlv ZC4gKi8KKwkJaWYgKHdpdGhfcGVyaW9kICYmICFma2NvbnN0cmFpbnQtPnBrX3dpdGhfcGVy aW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf Rk9SRUlHTl9LRVkpLAorCQkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9u IHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlIikp OworCiAJCS8qIExvb2sgZm9yIGFuIGluZGV4IG1hdGNoaW5nIHRoZSBjb2x1bW4gbGlzdCAq LwogCQlpbmRleE9pZCA9IHRyYW5zZm9ybUZrZXlDaGVja0F0dHJzKHBrcmVsLCBudW1wa3Ms IHBrYXR0bnVtLAotCQkJCQkJCQkJCSAgIG9wY2xhc3Nlcyk7CisJCQkJCQkJCQkJICAgd2l0 aF9wZXJpb2QsIG9wY2xhc3NlcywgJnBrX2hhc193aXRob3V0X292ZXJsYXBzKTsKIAl9CiAK KwkvKgorCSAqIElmIHRoZSByZWZlcmVuY2VkIHByaW1hcnkga2V5IGhhcyBXSVRIT1VUIE9W RVJMQVBTLCB0aGUgZm9yZWlnbiBrZXkKKwkgKiBtdXN0IHVzZSBQRVJJT0QuCisJICovCisJ aWYgKHBrX2hhc193aXRob3V0X292ZXJsYXBzICYmICF3aXRoX3BlcmlvZCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9GT1JFSUdOX0tFWSksCisJ CQkJZXJybXNnKCJmb3JlaWduIGtleSBtdXN0IHVzZSBQRVJJT0Qgd2hlbiByZWZlcmVuY2lu ZyBhIHByaW1hcnkgdXNpbmcgV0lUSE9VVCBPVkVSTEFQUyIpKTsKKwogCS8qCiAJICogTm93 IHdlIGNhbiBjaGVjayBwZXJtaXNzaW9ucy4KIAkgKi8KQEAgLTk3NTEsNiArOTc4NywyOCBA QCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQl9CiAJfQogCisJLyoKKwkgKiBTb21lIGFj dGlvbnMgYXJlIGN1cnJlbnRseSB1bnN1cHBvcnRlZCBmb3IgZm9yZWlnbiBrZXlzIHVzaW5n IFBFUklPRC4KKwkgKi8KKwlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwl7 CisJCWlmIChma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9O X0NBU0NBREUgfHwKKwkJCWZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNU Ul9BQ1RJT05fU0VUTlVMTCB8fAorCQkJZmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uID09 IEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygi dW5zdXBwb3J0ZWQgJXMgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5n IFBFUklPRCIsCisJCQkJCQkgICAiT04gVVBEQVRFIikpOworCisJCWlmIChma2NvbnN0cmFp bnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX0NBU0NBREUgfHwKKwkJCWZr Y29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUTlVMTCB8 fAorCQkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9T RVRERUZBVUxUKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygidW5zdXBwb3J0ZWQgJXMgYWN0 aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRCIsCisJCQkJCQkg ICAiT04gREVMRVRFIikpOworCX0KKwogCS8qCiAJICogTG9vayB1cCB0aGUgZXF1YWxpdHkg b3BlcmF0b3JzIHRvIHVzZSBpbiB0aGUgY29uc3RyYWludC4KIAkgKgpAQCAtOTc5NywxNiAr OTg1NSw1NiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFs dGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlvcGNpbnR5cGUgPSBjbGFf dHVwLT5vcGNpbnR5cGU7CiAJCVJlbGVhc2VTeXNDYWNoZShjbGFfaHQpOwogCi0JCS8qCi0J CSAqIENoZWNrIGl0J3MgYSBidHJlZTsgY3VycmVudGx5IHRoaXMgY2FuIG5ldmVyIGZhaWwg c2luY2Ugbm8gb3RoZXIKLQkJICogaW5kZXggQU1zIHN1cHBvcnQgdW5pcXVlIGluZGV4ZXMu ICBJZiB3ZSBldmVyIGRpZCBoYXZlIG90aGVyIHR5cGVzCi0JCSAqIG9mIHVuaXF1ZSBpbmRl eGVzLCB3ZSdkIG5lZWQgYSB3YXkgdG8gZGV0ZXJtaW5lIHdoaWNoIG9wZXJhdG9yCi0JCSAq IHN0cmF0ZWd5IG51bWJlciBpcyBlcXVhbGl0eS4gIChJcyBpdCByZWFzb25hYmxlIHRvIGlu c2lzdCB0aGF0Ci0JCSAqIGV2ZXJ5IHN1Y2ggaW5kZXggQU0gdXNlIGJ0cmVlJ3MgbnVtYmVy IGZvciBlcXVhbGl0eT8pCi0JCSAqLwotCQlpZiAoYW1pZCAhPSBCVFJFRV9BTV9PSUQpCi0J CQllbG9nKEVSUk9SLCAib25seSBiLXRyZWUgaW5kZXhlcyBhcmUgc3VwcG9ydGVkIGZvciBm b3JlaWduIGtleXMiKTsKLQkJZXFzdHJhdGVneSA9IEJURXF1YWxTdHJhdGVneU51bWJlcjsK KwkJaWYgKHdpdGhfcGVyaW9kKQorCQl7CisJCQlTdHJhdGVneU51bWJlciBydHN0cmF0ZWd5 OworCQkJYm9vbAkJZm9yX292ZXJsYXBzID0gd2l0aF9wZXJpb2QgJiYgaSA9PSBudW1wa3Mg LSAxOworCisJCQkvKgorCQkJICogR2lTVCBpbmRleGVzIGFyZSByZXF1aXJlZCB0byBzdXBw b3J0IHRlbXBvcmFsIGZvcmVpZ24ga2V5cworCQkJICogYmVjYXVzZSB0aGV5IGNvbWJpbmUg ZXF1YWxzIGFuZCBvdmVybGFwcy4KKwkJCSAqLworCQkJaWYgKGFtaWQgIT0gR0lTVF9BTV9P SUQpCisJCQkJZWxvZyhFUlJPUiwgIm9ubHkgR2lTVCBpbmRleGVzIGFyZSBzdXBwb3J0ZWQg Zm9yIHRlbXBvcmFsIGZvcmVpZ24ga2V5cyIpOworCisJCQlydHN0cmF0ZWd5ID0gZm9yX292 ZXJsYXBzID8gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXIgOiBSVEVxdWFsU3RyYXRlZ3lOdW1i ZXI7CisKKwkJCS8qCisJCQkgKiBBbiBvcGNsYXNzIGNhbiB1c2Ugd2hhdGV2ZXIgc3RyYXRl Z3kgbnVtYmVycyBpdCB3YW50cywgc28gd2UKKwkJCSAqIGFzayB0aGUgb3BjbGFzcyB3aGF0 IG51bWJlciBpdCBhY3R1YWxseSB1c2VzIGluc3RlYWQgb2Ygb3VyIFJUKgorCQkJICogY29u c3RhbnRzLgorCQkJICovCisJCQllcXN0cmF0ZWd5ID0gR2lzdFRyYW5zbGF0ZVN0cmF0bnVt KG9wY2xhc3Nlc1tpXSwgcnRzdHJhdGVneSk7CisJCQlpZiAoZXFzdHJhdGVneSA9PSBJbnZh bGlkU3RyYXRlZ3kpCisJCQl7CisJCQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJdHVwbGUg PSBTZWFyY2hTeXNDYWNoZTEoQ0xBT0lELCBPYmplY3RJZEdldERhdHVtKG9wY2xhc3Nlc1tp XSkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciBjbGFzcyAldSIsIG9wY2xh c3Nlc1tpXSk7CisKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkJZm9yX292ZXJsYXBzCisJCQkJCQk/IGVycm1z ZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZvciBmb3JlaWdu IGtleSIpCisJCQkJCQk6IGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGVxdWFsaXR5 IG9wZXJhdG9yIGZvciBmb3JlaWduIGtleSIpLAorCQkJCQkJZXJyZGV0YWlsKCJDb3VsZCBu b3QgdHJhbnNsYXRlIHN0cmF0ZWd5IG51bWJlciAlZCBmb3Igb3BlcmF0b3IgY2xhc3MgXCIl c1wiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkJCQkgIHJ0c3RyYXRlZ3ks IE5hbWVTdHIoKChGb3JtX3BnX29wY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpLT5vcGNuYW1l KSwgImdpc3QiKSk7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogQ2hl Y2sgaXQncyBhIGJ0cmVlOyBjdXJyZW50bHkgdGhpcyBjYW4gbmV2ZXIgZmFpbCBzaW5jZSBu bworCQkJICogb3RoZXIgaW5kZXggQU1zIHN1cHBvcnQgdW5pcXVlIGluZGV4ZXMuICBJZiB3 ZSBldmVyIGRpZCBoYXZlCisJCQkgKiBvdGhlciB0eXBlcyBvZiB1bmlxdWUgaW5kZXhlcywg d2UnZCBuZWVkIGEgd2F5IHRvIGRldGVybWluZQorCQkJICogd2hpY2ggb3BlcmF0b3Igc3Ry YXRlZ3kgbnVtYmVyIGlzIGVxdWFsaXR5LiAgKFdlIGNvdWxkIHVzZQorCQkJICogc29tZXRo aW5nIGxpa2UgR2lzdFRyYW5zbGF0ZVN0cmF0bnVtLikKKwkJCSAqLworCQkJaWYgKGFtaWQg IT0gQlRSRUVfQU1fT0lEKQorCQkJCWVsb2coRVJST1IsICJvbmx5IGItdHJlZSBpbmRleGVz IGFyZSBzdXBwb3J0ZWQgZm9yIGZvcmVpZ24ga2V5cyIpOworCQkJZXFzdHJhdGVneSA9IEJU RXF1YWxTdHJhdGVneU51bWJlcjsKKwkJfQogCiAJCS8qCiAJCSAqIFRoZXJlIGhhZCBiZXR0 ZXIgYmUgYSBwcmltYXJ5IGVxdWFsaXR5IG9wZXJhdG9yIGZvciB0aGUgaW5kZXguCkBAIC05 OTU2LDYgKzEwMDU0LDIyIEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndx dWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCWZmZXFvcGVy YXRvcnNbaV0gPSBmZmVxb3A7CiAJfQogCisJLyoKKwkgKiBGb3IgRktzIHdpdGggUEVSSU9E IHdlIG5lZWQgYWRkaXRpb25hbCBvcGVyYXRvcnMgdG8gY2hlY2sgd2hldGhlciB0aGUKKwkg KiByZWZlcmVuY2luZyByb3cncyByYW5nZSBpcyBjb250YWluZWQgYnkgdGhlIGFnZ3JlZ2F0 ZWQgcmFuZ2VzIG9mIHRoZQorCSAqIHJlZmVyZW5jZWQgcm93KHMpLiBGb3IgcmFuZ2V0eXBl cyBhbmQgbXVsdGlyYW5nZXR5cGVzIHRoaXMgaXMKKwkgKiBmay5wZXJpb2RhdHQgPEAgcmFu Z2VfYWdnKHBrLnBlcmlvZGF0dCkuIFRob3NlIGFyZSB0aGUgb25seSB0eXBlcyB3ZQorCSAq IHN1cHBvcnQgZm9yIG5vdy4gRktzIHdpbGwgbG9vayB0aGVzZSB1cCBhdCAicnVudGltZSIs IGJ1dCB3ZSBzaG91bGQKKwkgKiBtYWtlIHN1cmUgdGhlIGxvb2t1cCB3b3JrcyBoZXJlLCBl dmVuIGlmIHdlIGRvbid0IHVzZSB0aGUgdmFsdWVzLgorCSAqLworCWlmICh3aXRoX3Blcmlv ZCkKKwl7CisJCU9pZAkJCXBlcmlvZG9wZXJvaWQ7CisJCU9pZAkJCWFnZ2VkcGVyaW9kb3Bl cm9pZDsKKworCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0sICZw ZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2RvcGVyb2lkKTsKKwl9CisKIAkvKgogCSAqIENy ZWF0ZSBhbGwgdGhlIGNvbnN0cmFpbnQgYW5kIHRyaWdnZXIgb2JqZWN0cywgcmVjdXJzaW5n IHRvIHBhcnRpdGlvbnMKIAkgKiBhcyBuZWNlc3NhcnkuICBGaXJzdCBoYW5kbGUgdGhlIHJl ZmVyZW5jZWQgc2lkZS4KQEAgLTk5NzIsNyArMTAwODYsOCBAQCBBVEFkZEZvcmVpZ25LZXlD b25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCQkJCQkJCQkJIG51bWZrZGVsc2V0Y29scywKIAkJCQkJCQkJCSBma2RlbHNl dGNvbHMsCiAJCQkJCQkJCQkgb2xkX2NoZWNrX29rLAotCQkJCQkJCQkJIEludmFsaWRPaWQs IEludmFsaWRPaWQpOworCQkJCQkJCQkJIEludmFsaWRPaWQsIEludmFsaWRPaWQsCisJCQkJ CQkJCQkgd2l0aF9wZXJpb2QpOwogCiAJLyogTm93IGhhbmRsZSB0aGUgcmVmZXJlbmNpbmcg c2lkZS4gKi8KIAlhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyh3cXVldWUsIGZrY29uc3RyYWlu dCwgcmVsLCBwa3JlbCwKQEAgLTk5ODgsNyArMTAxMDMsOCBAQCBBVEFkZEZvcmVpZ25LZXlD b25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCQkJCQkJCWZrZGVsc2V0Y29scywKIAkJCQkJCQlvbGRfY2hlY2tfb2ssCiAJ CQkJCQkJbG9ja21vZGUsCi0JCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCk7CisJCQkJ CQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKKwkJCQkJCQl3aXRoX3BlcmlvZCk7CiAKIAkv KgogCSAqIERvbmUuICBDbG9zZSBwayB0YWJsZSwgYnV0IGtlZXAgbG9jayB1bnRpbCB3ZSd2 ZSBjb21taXR0ZWQuCkBAIC0xMDA3Myw3ICsxMDE4OSw4IEBAIGFkZEZrUmVjdXJzZVJlZmVy ZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlv biByZWwsCiAJCQkJCSAgIE9pZCAqcHBlcW9wZXJhdG9ycywgT2lkICpmZmVxb3BlcmF0b3Jz LAogCQkJCQkgICBpbnQgbnVtZmtkZWxzZXRjb2xzLCBpbnQxNiAqZmtkZWxzZXRjb2xzLAog CQkJCQkgICBib29sIG9sZF9jaGVja19vaywKLQkJCQkJICAgT2lkIHBhcmVudERlbFRyaWdn ZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyKQorCQkJCQkgICBPaWQgcGFyZW50RGVsVHJpZ2dl ciwgT2lkIHBhcmVudFVwZFRyaWdnZXIsCisJCQkJCSAgIGJvb2wgd2l0aF9wZXJpb2QpCiB7 CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCU9pZAkJCWNvbnN0ck9pZDsKQEAgLTEwMTU5 LDcgKzEwMjc2LDcgQEAgYWRkRmtSZWN1cnNlUmVmZXJlbmNlZChMaXN0ICoqd3F1ZXVlLCBD b25zdHJhaW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSAgY29u aXNsb2NhbCwJLyogaXNsb2NhbCAqLwogCQkJCQkJCQkJICBjb25pbmhjb3VudCwJLyogaW5o Y291bnQgKi8KIAkJCQkJCQkJCSAgY29ubm9pbmhlcml0LCAvKiBjb25Ob0luaGVyaXQgKi8K LQkJCQkJCQkJCSAgZmFsc2UsCS8qIGNvblBlcmlvZCAqLworCQkJCQkJCQkJICB3aXRoX3Bl cmlvZCwJLyogY29uUGVyaW9kICovCiAJCQkJCQkJCQkgIGZhbHNlKTsJLyogaXNfaW50ZXJu YWwgKi8KIAogCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgQ29uc3RyYWludFJlbGF0aW9u SWQsIGNvbnN0ck9pZCk7CkBAIC0xMDIzNSw3ICsxMDM1Miw4IEBAIGFkZEZrUmVjdXJzZVJl ZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxh dGlvbiByZWwsCiAJCQkJCQkJCSAgIHBmZXFvcGVyYXRvcnMsIHBwZXFvcGVyYXRvcnMsIGZm ZXFvcGVyYXRvcnMsCiAJCQkJCQkJCSAgIG51bWZrZGVsc2V0Y29scywgZmtkZWxzZXRjb2xz LAogCQkJCQkJCQkgICBvbGRfY2hlY2tfb2ssCi0JCQkJCQkJCSAgIGRlbGV0ZVRyaWdnZXJP aWQsIHVwZGF0ZVRyaWdnZXJPaWQpOworCQkJCQkJCQkgICBkZWxldGVUcmlnZ2VyT2lkLCB1 cGRhdGVUcmlnZ2VyT2lkLAorCQkJCQkJCQkgICB3aXRoX3BlcmlvZCk7CiAKIAkJCS8qIERv bmUgLS0gY2xlYW4gdXAgKGJ1dCBrZWVwIHRoZSBsb2NrKSAqLwogCQkJdGFibGVfY2xvc2Uo cGFydFJlbCwgTm9Mb2NrKTsKQEAgLTEwMjkzLDcgKzEwNDExLDggQEAgYWRkRmtSZWN1cnNl UmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBS ZWxhdGlvbiByZWwsCiAJCQkJCQlPaWQgKnBmZXFvcGVyYXRvcnMsIE9pZCAqcHBlcW9wZXJh dG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAogCQkJCQkJaW50IG51bWZrZGVsc2V0Y29scywg aW50MTYgKmZrZGVsc2V0Y29scywKIAkJCQkJCWJvb2wgb2xkX2NoZWNrX29rLCBMT0NLTU9E RSBsb2NrbW9kZSwKLQkJCQkJCU9pZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBk VHJpZ2dlcikKKwkJCQkJCU9pZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJp Z2dlciwKKwkJCQkJCWJvb2wgd2l0aF9wZXJpb2QpCiB7CiAJT2lkCQkJaW5zZXJ0VHJpZ2dl ck9pZCwKIAkJCQl1cGRhdGVUcmlnZ2VyT2lkOwpAQCAtMTAzNDEsNiArMTA0NjAsNyBAQCBh ZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2Nv bnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCW5ld2Nvbi0+cmVmcmVsaWQgPSBSZWxhdGlv bkdldFJlbGlkKHBrcmVsKTsKIAkJCW5ld2Nvbi0+cmVmaW5kaWQgPSBpbmRleE9pZDsKIAkJ CW5ld2Nvbi0+Y29uaWQgPSBwYXJlbnRDb25zdHI7CisJCQluZXdjb24tPmNvbndpdGhwZXJp b2QgPSBma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kOwogCQkJbmV3Y29uLT5xdWFsID0g KE5vZGUgKikgZmtjb25zdHJhaW50OwogCiAJCQl0YWItPmNvbnN0cmFpbnRzID0gbGFwcGVu ZCh0YWItPmNvbnN0cmFpbnRzLCBuZXdjb24pOwpAQCAtMTA0NTgsNyArMTA1NzgsNyBAQCBh ZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2Nv bnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSAgZmFsc2UsCiAJCQkJCQkJCQkg IDEsCiAJCQkJCQkJCQkgIGZhbHNlLAotCQkJCQkJCQkJICBmYWxzZSwJLyogY29uUGVyaW9k ICovCisJCQkJCQkJCQkgIHdpdGhfcGVyaW9kLAkvKiBjb25QZXJpb2QgKi8KIAkJCQkJCQkJ CSAgZmFsc2UpOwogCiAJCQkvKgpAQCAtMTA0ODksNyArMTA2MDksOCBAQCBhZGRGa1JlY3Vy c2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQs IFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCW9sZF9jaGVja19vaywKIAkJCQkJCQkJCWxvY2tt b2RlLAogCQkJCQkJCQkJaW5zZXJ0VHJpZ2dlck9pZCwKLQkJCQkJCQkJCXVwZGF0ZVRyaWdn ZXJPaWQpOworCQkJCQkJCQkJdXBkYXRlVHJpZ2dlck9pZCwKKwkJCQkJCQkJCXdpdGhfcGVy aW9kKTsKIAogCQkJdGFibGVfY2xvc2UocGFydGl0aW9uLCBOb0xvY2spOwogCQl9CkBAIC0x MDcyNSw3ICsxMDg0Niw4IEBAIENsb25lRmtSZWZlcmVuY2VkKFJlbGF0aW9uIHBhcmVudFJl bCwgUmVsYXRpb24gcGFydGl0aW9uUmVsKQogCQkJCQkJCSAgIGNvbmZkZWxzZXRjb2xzLAog CQkJCQkJCSAgIHRydWUsCiAJCQkJCQkJICAgZGVsZXRlVHJpZ2dlck9pZCwKLQkJCQkJCQkg ICB1cGRhdGVUcmlnZ2VyT2lkKTsKKwkJCQkJCQkgICB1cGRhdGVUcmlnZ2VyT2lkLAorCQkJ CQkJCSAgIGNvbnN0ckZvcm0tPmNvbnBlcmlvZCk7CiAKIAkJdGFibGVfY2xvc2UoZmtSZWws IE5vTG9jayk7CiAJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CkBAIC0xMDgxOCw2ICsxMDk0 MCw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJl bnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJCUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlp bnNlcnRUcmlnZ2VyT2lkLAogCQkJCQl1cGRhdGVUcmlnZ2VyT2lkOworCQlib29sCQl3aXRo X3BlcmlvZDsKIAogCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShDT05TVFJPSUQsIE9iamVj dElkR2V0RGF0dW0ocGFyZW50Q29uc3RyT2lkKSk7CiAJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXBsZSkpCkBAIC0xMDkzMyw2ICsxMTA1Niw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhM aXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJ CQlma2NvbnN0cmFpbnQtPmNvbm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoY29uc3RyRm9ybS0+ Y29ubmFtZSkpOwogCiAJCWluZGV4T2lkID0gY29uc3RyRm9ybS0+Y29uaW5kaWQ7CisJCXdp dGhfcGVyaW9kID0gY29uc3RyRm9ybS0+Y29ucGVyaW9kOwogCQljb25zdHJPaWQgPQogCQkJ Q3JlYXRlQ29uc3RyYWludEVudHJ5KGZrY29uc3RyYWludC0+Y29ubmFtZSwKIAkJCQkJCQkJ ICBjb25zdHJGb3JtLT5jb25uYW1lc3BhY2UsCkBAIC0xMDk2NCw3ICsxMTA4OCw3IEBAIENs b25lRmtSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJl bGF0aW9uIHBhcnRSZWwpCiAJCQkJCQkJCSAgZmFsc2UsCS8qIGlzbG9jYWwgKi8KIAkJCQkJ CQkJICAxLAkvKiBpbmhjb3VudCAqLwogCQkJCQkJCQkgIGZhbHNlLAkvKiBjb25Ob0luaGVy aXQgKi8KLQkJCQkJCQkJICBmYWxzZSwJLyogY29uUGVyaW9kICovCisJCQkJCQkJCSAgd2l0 aF9wZXJpb2QsCS8qIGNvblBlcmlvZCAqLwogCQkJCQkJCQkgIHRydWUpOwogCiAJCS8qIFNl dCB1cCBwYXJ0aXRpb24gZGVwZW5kZW5jaWVzIGZvciB0aGUgbmV3IGNvbnN0cmFpbnQgKi8K QEAgLTEwOTk4LDcgKzExMTIyLDggQEAgQ2xvbmVGa1JlZmVyZW5jaW5nKExpc3QgKip3cXVl dWUsIFJlbGF0aW9uIHBhcmVudFJlbCwgUmVsYXRpb24gcGFydFJlbCkKIAkJCQkJCQkJZmFs c2UsCS8qIG5vIG9sZCBjaGVjayBleGlzdHMgKi8KIAkJCQkJCQkJQWNjZXNzRXhjbHVzaXZl TG9jaywKIAkJCQkJCQkJaW5zZXJ0VHJpZ2dlck9pZCwKLQkJCQkJCQkJdXBkYXRlVHJpZ2dl ck9pZCk7CisJCQkJCQkJCXVwZGF0ZVRyaWdnZXJPaWQsCisJCQkJCQkJCXdpdGhfcGVyaW9k KTsKIAkJdGFibGVfY2xvc2UocGtyZWwsIE5vTG9jayk7CiAJfQogCkBAIC0xMTgwOSw3ICsx MTkzNCw4IEBAIHRyYW5zZm9ybUNvbHVtbk5hbWVMaXN0KE9pZCByZWxJZCwgTGlzdCAqY29s TGlzdCwKICAqCiAgKglMb29rIHVwIHRoZSBuYW1lcywgYXR0bnVtcywgYW5kIHR5cGVzIG9m IHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzCiAgKglmb3IgdGhlIHBrcmVsLiAgQWxzbyBy ZXR1cm4gdGhlIGluZGV4IE9JRCBhbmQgaW5kZXggb3BjbGFzc2VzIG9mIHRoZQotICoJaW5k ZXggc3VwcG9ydGluZyB0aGUgcHJpbWFyeSBrZXkuCisgKglpbmRleCBzdXBwb3J0aW5nIHRo ZSBwcmltYXJ5IGtleS4gIEFsc28gcmV0dXJuIHdoZXRoZXIgdGhlIGluZGV4IGhhcworICoJ V0lUSE9VVCBPVkVSTEFQUy4KICAqCiAgKglBbGwgcGFyYW1ldGVycyBleGNlcHQgcGtyZWwg YXJlIG91dHB1dCBwYXJhbWV0ZXJzLiAgQWxzbywgdGhlIGZ1bmN0aW9uCiAgKglyZXR1cm4g dmFsdWUgaXMgdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIGluIHRoZSBwcmltYXJ5IGtleS4K QEAgLTExODIwLDcgKzExOTQ2LDcgQEAgc3RhdGljIGludAogdHJhbnNmb3JtRmtleUdldFBy aW1hcnlLZXkoUmVsYXRpb24gcGtyZWwsIE9pZCAqaW5kZXhPaWQsCiAJCQkJCQkgICBMaXN0 ICoqYXR0bmFtZWxpc3QsCiAJCQkJCQkgICBpbnQxNiAqYXR0bnVtcywgT2lkICphdHR0eXBp ZHMsCi0JCQkJCQkgICBPaWQgKm9wY2xhc3NlcykKKwkJCQkJCSAgIE9pZCAqb3BjbGFzc2Vz LCBib29sICpwa19oYXNfd2l0aG91dF9vdmVybGFwcykKIHsKIAlMaXN0CSAgICppbmRleG9p ZGxpc3Q7CiAJTGlzdENlbGwgICAqaW5kZXhvaWRzY2FuOwpAQCAtMTE4OTgsNiArMTIwMjQs OCBAQCB0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShSZWxhdGlvbiBwa3JlbCwgT2lkICpp bmRleE9pZCwKIAkJCQkJCQkgICBtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cigqYXR0bnVt QXR0TmFtZShwa3JlbCwgcGthdHRubykpKSkpOwogCX0KIAorCSpwa19oYXNfd2l0aG91dF9v dmVybGFwcyA9IGluZGV4U3RydWN0LT5pbmRpc2V4Y2x1c2lvbjsKKwogCVJlbGVhc2VTeXND YWNoZShpbmRleFR1cGxlKTsKIAogCXJldHVybiBpOwpAQCAtMTE5MTEsMTQgKzEyMDM5LDE2 IEBAIHRyYW5zZm9ybUZrZXlHZXRQcmltYXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmlu ZGV4T2lkLAogICoKICAqCVJldHVybnMgdGhlIE9JRCBvZiB0aGUgdW5pcXVlIGluZGV4IHN1 cHBvcnRpbmcgdGhlIGNvbnN0cmFpbnQgYW5kCiAgKglwb3B1bGF0ZXMgdGhlIGNhbGxlci1w cm92aWRlZCAnb3BjbGFzc2VzJyBhcnJheSB3aXRoIHRoZSBvcGNsYXNzZXMKLSAqCWFzc29j aWF0ZWQgd2l0aCB0aGUgaW5kZXggY29sdW1ucy4KKyAqCWFzc29jaWF0ZWQgd2l0aCB0aGUg aW5kZXggY29sdW1ucy4gIEFsc28gc2V0cyB3aGV0aGVyIHRoZSBpbmRleAorICoJdXNlcyBX SVRIT1VUIE9WRVJMQVBTLgogICoKICAqCVJhaXNlcyBhbiBFUlJPUiBvbiB2YWxpZGF0aW9u IGZhaWx1cmUuCiAgKi8KIHN0YXRpYyBPaWQKIHRyYW5zZm9ybUZrZXlDaGVja0F0dHJzKFJl bGF0aW9uIHBrcmVsLAogCQkJCQkJaW50IG51bWF0dHJzLCBpbnQxNiAqYXR0bnVtcywKLQkJ CQkJCU9pZCAqb3BjbGFzc2VzKQorCQkJCQkJYm9vbCB3aXRoX3BlcmlvZCwgT2lkICpvcGNs YXNzZXMsCisJCQkJCQlib29sICpwa19oYXNfd2l0aG91dF9vdmVybGFwcykKIHsKIAlPaWQJ CQlpbmRleG9pZCA9IEludmFsaWRPaWQ7CiAJYm9vbAkJZm91bmQgPSBmYWxzZTsKQEAgLTEx OTY1LDEyICsxMjA5NSwxMiBAQCB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhSZWxhdGlvbiBw a3JlbCwKIAkJaW5kZXhTdHJ1Y3QgPSAoRm9ybV9wZ19pbmRleCkgR0VUU1RSVUNUKGluZGV4 VHVwbGUpOwogCiAJCS8qCi0JCSAqIE11c3QgaGF2ZSB0aGUgcmlnaHQgbnVtYmVyIG9mIGNv bHVtbnM7IG11c3QgYmUgdW5pcXVlIGFuZCBub3QgYQotCQkgKiBwYXJ0aWFsIGluZGV4OyBm b3JnZXQgaXQgaWYgdGhlcmUgYXJlIGFueSBleHByZXNzaW9ucywgdG9vLiBJbnZhbGlkCi0J CSAqIGluZGV4ZXMgYXJlIG91dCBhcyB3ZWxsLgorCQkgKiBNdXN0IGhhdmUgdGhlIHJpZ2h0 IG51bWJlciBvZiBjb2x1bW5zOyBtdXN0IGJlIHVuaXF1ZSAob3IgaWYKKwkJICogdGVtcG9y YWwgdGhlbiBleGNsdXNpb24gaW5zdGVhZCkgYW5kIG5vdCBhIHBhcnRpYWwgaW5kZXg7IGZv cmdldCBpdAorCQkgKiBpZiB0aGVyZSBhcmUgYW55IGV4cHJlc3Npb25zLCB0b28uIEludmFs aWQgaW5kZXhlcyBhcmUgb3V0IGFzIHdlbGwuCiAJCSAqLwogCQlpZiAoaW5kZXhTdHJ1Y3Qt PmluZG5rZXlhdHRzID09IG51bWF0dHJzICYmCi0JCQlpbmRleFN0cnVjdC0+aW5kaXN1bmlx dWUgJiYKKwkJCSh3aXRoX3BlcmlvZCA/IGluZGV4U3RydWN0LT5pbmRpc2V4Y2x1c2lvbiA6 IGluZGV4U3RydWN0LT5pbmRpc3VuaXF1ZSkgJiYKIAkJCWluZGV4U3RydWN0LT5pbmRpc3Zh bGlkICYmCiAJCQloZWFwX2F0dGlzbnVsbChpbmRleFR1cGxlLCBBbnVtX3BnX2luZGV4X2lu ZHByZWQsIE5VTEwpICYmCiAJCQloZWFwX2F0dGlzbnVsbChpbmRleFR1cGxlLCBBbnVtX3Bn X2luZGV4X2luZGV4cHJzLCBOVUxMKSkKQEAgLTEyMDA4LDYgKzEyMTM4LDEzIEBAIHRyYW5z Zm9ybUZrZXlDaGVja0F0dHJzKFJlbGF0aW9uIHBrcmVsLAogCQkJCWlmICghZm91bmQpCiAJ CQkJCWJyZWFrOwogCQkJfQorCQkJLyogVGhlIGxhc3QgYXR0cmlidXRlIGluIHRoZSBpbmRl eCBtdXN0IGJlIHRoZSBQRVJJT0QgRksgcGFydCAqLworCQkJaWYgKGZvdW5kICYmIHdpdGhf cGVyaW9kKQorCQkJeworCQkJCWludDE2CQlwZXJpb2RhdHRudW0gPSBhdHRudW1zW251bWF0 dHJzIC0gMV07CisKKwkJCQlmb3VuZCA9IChwZXJpb2RhdHRudW0gPT0gaW5kZXhTdHJ1Y3Qt PmluZGtleS52YWx1ZXNbbnVtYXR0cnMgLSAxXSk7CisJCQl9CiAKIAkJCS8qCiAJCQkgKiBS ZWZ1c2UgdG8gdXNlIGEgZGVmZXJyYWJsZSB1bmlxdWUvcHJpbWFyeSBrZXkuICBUaGlzIGlz IHBlciBTUUwKQEAgLTEyMDIzLDYgKzEyMTYwLDEwIEBAIHRyYW5zZm9ybUZrZXlDaGVja0F0 dHJzKFJlbGF0aW9uIHBrcmVsLAogCQkJCWZvdW5kX2RlZmVycmFibGUgPSB0cnVlOwogCQkJ CWZvdW5kID0gZmFsc2U7CiAJCQl9CisKKwkJCS8qIFdlIG5lZWQgdG8ga25vdyB3aGV0aGVy IHRoZSBpbmRleCBoYXMgV0lUSE9VVCBPVkVSTEFQUyAqLworCQkJaWYgKGZvdW5kKQorCQkJ CSpwa19oYXNfd2l0aG91dF9vdmVybGFwcyA9IGluZGV4U3RydWN0LT5pbmRpc2V4Y2x1c2lv bjsKIAkJfQogCQlSZWxlYXNlU3lzQ2FjaGUoaW5kZXhUdXBsZSk7CiAJCWlmIChmb3VuZCkK QEAgLTEyMTE3LDcgKzEyMjU4LDggQEAgdmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludChj aGFyICpjb25uYW1lLAogCQkJCQkJCSBSZWxhdGlvbiByZWwsCiAJCQkJCQkJIFJlbGF0aW9u IHBrcmVsLAogCQkJCQkJCSBPaWQgcGtpbmRPaWQsCi0JCQkJCQkJIE9pZCBjb25zdHJhaW50 T2lkKQorCQkJCQkJCSBPaWQgY29uc3RyYWludE9pZCwKKwkJCQkJCQkgYm9vbCBoYXNwZXJp b2QpCiB7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3Q7CiAJVGFibGVTY2FuRGVzYyBzY2FuOwpA QCAtMTIxNDUsOSArMTIyODcsMTEgQEAgdmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludChj aGFyICpjb25uYW1lLAogCiAJLyoKIAkgKiBTZWUgaWYgd2UgY2FuIGRvIGl0IHdpdGggYSBz aW5nbGUgTEVGVCBKT0lOIHF1ZXJ5LiAgQSBmYWxzZSByZXN1bHQKLQkgKiBpbmRpY2F0ZXMg d2UgbXVzdCBwcm9jZWVkIHdpdGggdGhlIGZpcmUtdGhlLXRyaWdnZXIgbWV0aG9kLgorCSAq IGluZGljYXRlcyB3ZSBtdXN0IHByb2NlZWQgd2l0aCB0aGUgZmlyZS10aGUtdHJpZ2dlciBt ZXRob2QuIFdlIGNhbid0IGRvCisJICogYSBMRUZUIEpPSU4gZm9yIHRlbXBvcmFsIEZLcyB5 ZXQsIGJ1dCB3ZSBjYW4gb25jZSB3ZSBzdXBwb3J0IHRlbXBvcmFsCisJICogbGVmdCBqb2lu cy4KIAkgKi8KLQlpZiAoUklfSW5pdGlhbF9DaGVjaygmdHJpZywgcmVsLCBwa3JlbCkpCisJ aWYgKCFoYXNwZXJpb2QgJiYgUklfSW5pdGlhbF9DaGVjaygmdHJpZywgcmVsLCBwa3JlbCkp CiAJCXJldHVybjsKIAogCS8qCkBAIC0xMjI5OCw2ICsxMjQ0Miw3IEBAIGNyZWF0ZUZvcmVp Z25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQsIENvbnN0 cmFpbnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dlci0+d2hlbkNsYXVzZSA9IE5VTEw7CiAJZmtf dHJpZ2dlci0+dHJhbnNpdGlvblJlbHMgPSBOSUw7CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVs ID0gTlVMTDsKKwogCXN3aXRjaCAoZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uKQogCXsK IAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fTk9BQ1RJT046CkBAIC0xMjM1OCw2ICsxMjUwMyw3 IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCBy ZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dlci0+d2hlbkNsYXVz ZSA9IE5VTEw7CiAJZmtfdHJpZ2dlci0+dHJhbnNpdGlvblJlbHMgPSBOSUw7CiAJZmtfdHJp Z2dlci0+Y29uc3RycmVsID0gTlVMTDsKKwogCXN3aXRjaCAoZmtjb25zdHJhaW50LT5ma191 cGRfYWN0aW9uKQogCXsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fTk9BQ1RJT046CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCBlYWZhMjkwYjg4Yi4uNGFkZGY0ZDUzM2UgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQpAQCAtNTI1LDEyICs1MjUsMTMgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQkgU2V0UmVzZXRDbGF1c2UgRnVuY3Rpb25TZXRSZXNldENsYXVzZQogCiAldHlwZSA8bm9k ZT4JVGFibGVFbGVtZW50IFR5cGVkVGFibGVFbGVtZW50IENvbnN0cmFpbnRFbGVtIERvbWFp bkNvbnN0cmFpbnRFbGVtIFRhYmxlRnVuY0VsZW1lbnQKLSV0eXBlIDxub2RlPgljb2x1bW5E ZWYgY29sdW1uT3B0aW9ucworJXR5cGUgPG5vZGU+CWNvbHVtbkRlZiBjb2x1bW5PcHRpb25z IG9wdGlvbmFsUGVyaW9kTmFtZQogJXR5cGUgPGRlZmVsdD4JZGVmX2VsZW0gcmVsb3B0aW9u X2VsZW0gb2xkX2FnZ3JfZWxlbSBvcGVyYXRvcl9kZWZfZWxlbQogJXR5cGUgPG5vZGU+CWRl Zl9hcmcgY29sdW1uRWxlbSB3aGVyZV9jbGF1c2Ugd2hlcmVfb3JfY3VycmVudF9jbGF1c2UK IAkJCQlhX2V4cHIgYl9leHByIGNfZXhwciBBZXhwckNvbnN0IGluZGlyZWN0aW9uX2VsIG9w dF9zbGljZV9ib3VuZAogCQkJCWNvbHVtbnJlZiBpbl9leHByIGhhdmluZ19jbGF1c2UgZnVu Y190YWJsZSB4bWx0YWJsZSBhcnJheV9leHByCiAJCQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0 b3JfZGVmX2FyZworJXR5cGUgPGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAl dHlwZSA8bGlzdD4Jcm93c2Zyb21faXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xp c3QKICV0eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFw cwogJXR5cGUgPGxpc3Q+CUV4Y2x1c2lvbkNvbnN0cmFpbnRMaXN0IEV4Y2x1c2lvbkNvbnN0 cmFpbnRFbGVtCkBAIC03NjQsNyArNzY1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5 KTsKIAlPVkVSIE9WRVJMQVBTIE9WRVJMQVkgT1ZFUlJJRElORyBPV05FRCBPV05FUgogCiAJ UEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVJUSVRJT05T IFBBU1NJTkcgUEFTU1dPUkQgUEFUSAotCVBMQUNJTkcgUExBTiBQTEFOUyBQT0xJQ1kKKwlQ RVJJT0QgUExBQ0lORyBQTEFOIFBMQU5TIFBPTElDWQogCVBPU0lUSU9OIFBSRUNFRElORyBQ UkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCiAJUFJJT1IgUFJJ VklMRUdFUyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFVCTElD QVRJT04KIApAQCAtNDI4MiwyMSArNDI4MywzMSBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJ CQkJICAgTlVMTCwgeXlzY2FubmVyKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K LQkJCXwgRk9SRUlHTiBLRVkgJygnIGNvbHVtbkxpc3QgJyknIFJFRkVSRU5DRVMgcXVhbGlm aWVkX25hbWUKLQkJCQlvcHRfY29sdW1uX2xpc3Qga2V5X21hdGNoIGtleV9hY3Rpb25zIENv bnN0cmFpbnRBdHRyaWJ1dGVTcGVjCisJCQl8IEZPUkVJR04gS0VZICcoJyBjb2x1bW5MaXN0 IG9wdGlvbmFsUGVyaW9kTmFtZSAnKScgUkVGRVJFTkNFUyBxdWFsaWZpZWRfbmFtZQorCQkJ CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0IGtleV9tYXRjaCBrZXlfYWN0aW9ucyBDb25z dHJhaW50QXR0cmlidXRlU3BlYwogCQkJCXsKIAkJCQkJQ29uc3RyYWludCAqbiA9IG1ha2VO b2RlKENvbnN0cmFpbnQpOwogCiAJCQkJCW4tPmNvbnR5cGUgPSBDT05TVFJfRk9SRUlHTjsK IAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKLQkJCQkJbi0+cGt0YWJsZSA9ICQ3OworCQkJCQlu LT5wa3RhYmxlID0gJDg7CiAJCQkJCW4tPmZrX2F0dHJzID0gJDQ7Ci0JCQkJCW4tPnBrX2F0 dHJzID0gJDg7Ci0JCQkJCW4tPmZrX21hdGNodHlwZSA9ICQ5OwotCQkJCQluLT5ma191cGRf YWN0aW9uID0gKCQxMCktPnVwZGF0ZUFjdGlvbi0+YWN0aW9uOwotCQkJCQluLT5ma19kZWxf YWN0aW9uID0gKCQxMCktPmRlbGV0ZUFjdGlvbi0+YWN0aW9uOwotCQkJCQluLT5ma19kZWxf c2V0X2NvbHMgPSAoJDEwKS0+ZGVsZXRlQWN0aW9uLT5jb2xzOwotCQkJCQlwcm9jZXNzQ0FT Yml0cygkMTEsIEAxMSwgIkZPUkVJR04gS0VZIiwKKwkJCQkJaWYgKCQ1KQorCQkJCQl7CisJ CQkJCQluLT5ma19hdHRycyA9IGxhcHBlbmQobi0+ZmtfYXR0cnMsICQ1KTsKKwkJCQkJCW4t PmZrX3dpdGhfcGVyaW9kID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQluLT5wa19hdHRycyA9IGxp bml0aWFsKCQ5KTsKKwkJCQkJaWYgKGxzZWNvbmQoJDkpKQorCQkJCQl7CisJCQkJCQluLT5w a19hdHRycyA9IGxhcHBlbmQobi0+cGtfYXR0cnMsIGxzZWNvbmQoJDkpKTsKKwkJCQkJCW4t PnBrX3dpdGhfcGVyaW9kID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQluLT5ma19tYXRjaHR5cGUg PSAkMTA7CisJCQkJCW4tPmZrX3VwZF9hY3Rpb24gPSAoJDExKS0+dXBkYXRlQWN0aW9uLT5h Y3Rpb247CisJCQkJCW4tPmZrX2RlbF9hY3Rpb24gPSAoJDExKS0+ZGVsZXRlQWN0aW9uLT5h Y3Rpb247CisJCQkJCW4tPmZrX2RlbF9zZXRfY29scyA9ICgkMTEpLT5kZWxldGVBY3Rpb24t PmNvbHM7CisJCQkJCXByb2Nlc3NDQVNiaXRzKCQxMiwgQDEyLCAiRk9SRUlHTiBLRVkiLAog CQkJCQkJCQkgICAmbi0+ZGVmZXJyYWJsZSwgJm4tPmluaXRkZWZlcnJlZCwKIAkJCQkJCQkJ ICAgJm4tPnNraXBfdmFsaWRhdGlvbiwgTlVMTCwKIAkJCQkJCQkJICAgeXlzY2FubmVyKTsK QEAgLTQzNzgsNiArNDM4OSwxNiBAQCBjb2x1bW5MaXN0OgogCQkJfCBjb2x1bW5MaXN0ICcs JyBjb2x1bW5FbGVtCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAkJOwogCitvcHRp b25hbFBlcmlvZE5hbWU6CisJCQknLCcgUEVSSU9EIGNvbHVtbkVsZW0geyAkJCA9ICQzOyB9 CisJCQl8IC8qRU1QVFkqLyAgICAgICAgICAgICAgIHsgJCQgPSBOVUxMOyB9CisJOworCitv cHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdDoKKwkJCScoJyBjb2x1bW5MaXN0IG9wdGlvbmFs UGVyaW9kTmFtZSAnKScJCQl7ICQkID0gbGlzdF9tYWtlMigkMiwgJDMpOyB9CisJCQl8IC8q RU1QVFkqLwkJCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTIoTklMLCBOVUxMKTsgfQorCQk7CisK IGNvbHVtbkVsZW06IENvbElkCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VTdHJp bmcoJDEpOwpAQCAtMTc3NzIsNiArMTc3OTMsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJ CQl8IFBBU1NJTkcKIAkJCXwgUEFTU1dPUkQKIAkJCXwgUEFUSAorCQkJfCBQRVJJT0QKIAkJ CXwgUExBTgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kKQEAgLTE4Mzk4LDYgKzE4NDIwLDcg QEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECiAJ CQl8IFBBVEgKKwkJCXwgUEVSSU9ECiAJCQl8IFBMQUNJTkcKIAkJCXwgUExBTgogCQkJfCBQ TEFOUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCA2MjYwMWE2ZDgw Yy4uZGIzMGE2Y2MxZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBA IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWlu dC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3RyaWdnZXIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUg ImV4ZWN1dG9yL3NwaS5oIgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUgInV0aWxzL2lu dmFsLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9yYW5nZXR5cGVzLmgiCiAjaW5jbHVkZSAi dXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvcmxzLmgiCiAjaW5jbHVkZSAidXRpbHMv cnVsZXV0aWxzLmgiCkBAIC05Niw2ICs5OCw5IEBACiAgKgogICogSW5mb3JtYXRpb24gZXh0 cmFjdGVkIGZyb20gYW4gRksgcGdfY29uc3RyYWludCBlbnRyeS4gIFRoaXMgaXMgY2FjaGVk IGluCiAgKiByaV9jb25zdHJhaW50X2NhY2hlLgorICoKKyAqIE5vdGUgdGhhdCBwZi9wcC9m Zl9lcV9vcHJzIG1heSBob2xkIHRoZSBvdmVybGFwcyBvcGVyYXRvciBpbnN0ZWFkIG9mIGVx dWFscworICogZm9yIHRoZSBQRVJJT0QgcGFydCBvZiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5 LgogICovCiB0eXBlZGVmIHN0cnVjdCBSSV9Db25zdHJhaW50SW5mbwogewpAQCAtMTE1LDEy ICsxMjAsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3RyYWludEluZm8KIAlpbnQxNgkJ Y29uZmRlbHNldGNvbHNbUklfTUFYX05VTUtFWVNdOyAvKiBhdHRudW1zIG9mIGNvbHMgdG8g c2V0IG9uCiAJCQkJCQkJCQkJCQkgKiBkZWxldGUgKi8KIAljaGFyCQljb25mbWF0Y2h0eXBl OwkvKiBmb3JlaWduIGtleSdzIG1hdGNoIHR5cGUgKi8KKwlib29sCQloYXNwZXJpb2Q7CQkv KiBpZiB0aGUgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0QgKi8KIAlpbnQJCQlua2V5czsJCQkv KiBudW1iZXIgb2Yga2V5IGNvbHVtbnMgKi8KIAlpbnQxNgkJcGtfYXR0bnVtc1tSSV9NQVhf TlVNS0VZU107IC8qIGF0dG51bXMgb2YgcmVmZXJlbmNlZCBjb2xzICovCiAJaW50MTYJCWZr X2F0dG51bXNbUklfTUFYX05VTUtFWVNdOyAvKiBhdHRudW1zIG9mIHJlZmVyZW5jaW5nIGNv bHMgKi8KIAlPaWQJCQlwZl9lcV9vcHJzW1JJX01BWF9OVU1LRVlTXTsgLyogZXF1YWxpdHkg b3BlcmF0b3JzIChQSyA9IEZLKSAqLwogCU9pZAkJCXBwX2VxX29wcnNbUklfTUFYX05VTUtF WVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKFBLID0gUEspICovCiAJT2lkCQkJZmZfZXFf b3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykg Ki8KKwlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCisJT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAvKiBm a2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7 CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJhaW50 SW5mbzsKIApAQCAtMTk5LDggKzIwNyw4IEBAIHN0YXRpYyB2b2lkIHJpX0J1aWxkUXVlcnlL ZXkoUklfUXVlcnlLZXkgKmtleSwKIAkJCQkJCQkgaW50MzIgY29uc3RyX3F1ZXJ5bm8pOwog c3RhdGljIGJvb2wgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3Qg Km9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAogCQkJCQkJIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sIGJvb2wgcmVsX2lzX3BrKTsKLXN0YXRpYyBib29sIHJp X0F0dHJpYnV0ZXNFcXVhbChPaWQgZXFfb3ByLCBPaWQgdHlwZWlkLAotCQkJCQkJCSAgIERh dHVtIG9sZHZhbHVlLCBEYXR1bSBuZXd2YWx1ZSk7CitzdGF0aWMgYm9vbCByaV9Db21wYXJl V2l0aENhc3QoT2lkIGVxX29wciwgT2lkIHR5cGVpZCwKKwkJCQkJCQkgICBEYXR1bSBsaHMs IERhdHVtIHJocyk7CiAKIHN0YXRpYyB2b2lkIHJpX0luaXRIYXNoVGFibGVzKHZvaWQpOwog c3RhdGljIHZvaWQgSW52YWxpZGF0ZUNvbnN0cmFpbnRDYWNoZUNhbGxCYWNrKERhdHVtIGFy ZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpOwpAQCAtMzYyLDE0ICszNzAsNDEg QEAgUklfRktleV9jaGVjayhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJCSAqCQkgICBGT1Ig S0VZIFNIQVJFIE9GIHgKIAkJICogVGhlIHR5cGUgaWQncyBmb3IgdGhlICQgcGFyYW1ldGVy cyBhcmUgdGhvc2Ugb2YgdGhlCiAJCSAqIGNvcnJlc3BvbmRpbmcgRksgYXR0cmlidXRlcy4K KwkJICoKKwkJICogQnV0IGZvciB0ZW1wb3JhbCBGS3Mgd2UgbmVlZCB0byBtYWtlIHN1cmUK KwkJICogdGhlIEZLJ3MgcmFuZ2UgaXMgY29tcGxldGVseSBjb3ZlcmVkLgorCQkgKiBTbyB3 ZSB1c2UgdGhpcyBxdWVyeSBpbnN0ZWFkOgorCQkgKiAgU0VMRUNUIDEKKwkJICoJRlJPTQko CisJCSAqCQlTRUxFQ1QgcGtwZXJpb2RhdHQgQVMgcgorCQkgKgkJRlJPTSAgIFtPTkxZXSBw a3RhYmxlIHgKKwkJICoJCVdIRVJFICBwa2F0dDEgPSAkMSBbQU5EIC4uLl0KKwkJICoJCUFO RCAgICBwa3BlcmlvZGF0dCAmJiAkbgorCQkgKgkJRk9SIEtFWSBTSEFSRSBPRiB4CisJCSAq CSkgeDEKKwkJICogIEhBVklORyAkbiA8QCByYW5nZV9hZ2coeDEucikKKwkJICogTm90ZSBp ZiBGT1IgS0VZIFNIQVJFIGV2ZXIgYWxsb3dzIEdST1VQIEJZIGFuZCBIQVZJTkcKKwkJICog d2UgY2FuIG1ha2UgdGhpcyBhIGJpdCBzaW1wbGVyLgogCQkgKiAtLS0tLS0tLS0tCiAJCSAq LwogCQlpbml0U3RyaW5nSW5mbygmcXVlcnlidWYpOwogCQlwa19vbmx5ID0gcGtfcmVsLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CiAJCQkiIiA6 ICJPTkxZICI7CiAJCXF1b3RlUmVsYXRpb25OYW1lKHBrcmVsbmFtZSwgcGtfcmVsKTsKLQkJ YXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCi0J CQkJCQkgcGtfb25seSwgcGtyZWxuYW1lKTsKKwkJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQor CQl7CisJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUocGtfcmVs LCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJCWFwcGVu ZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkJCSAiU0VMRUNUIDEgRlJPTSAoU0VMRUNU ICVzIEFTIHIgRlJPTSAlcyVzIHgiLAorCQkJCQkJCSBhdHRuYW1lLCBwa19vbmx5LCBwa3Jl bG5hbWUpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnli dWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCisJCQkJCQkJIHBrX29ubHksIHBrcmVsbmFt ZSk7CisJCX0KIAkJcXVlcnlzZXAgPSAiV0hFUkUiOwogCQlmb3IgKGludCBpID0gMDsgaSA8 IHJpaW5mby0+bmtleXM7IGkrKykKIAkJewpAQCAtMzg3LDYgKzQyMiwxOCBAQCBSSV9GS2V5 X2NoZWNrKFRyaWdnZXJEYXRhICp0cmlnZGF0YSkKIAkJCXF1ZXJ5b2lkc1tpXSA9IGZrX3R5 cGU7CiAJCX0KIAkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcXVlcnlidWYsICIgRk9SIEtF WSBTSEFSRSBPRiB4Iik7CisJCWlmIChyaWluZm8tPmhhc3BlcmlvZCkKKwkJeworCQkJT2lk CQkJZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWlu Zm8tPm5rZXlzIC0gMV0pOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIikg eDEgSEFWSU5HICIpOworCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCByaWluZm8tPm5r ZXlzKTsKKwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsICIiLAorCQkJCQkJCXBhcmFt bmFtZSwgZmtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRf Ynlfb3BlciwKKwkJCQkJCQkicGdfY2F0YWxvZy5yYW5nZV9hZ2ciLCBBTllNVUxUSVJBTkdF T0lEKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiKHgxLnIpIik7CisJCX0K IAogCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCiAJCXFwbGFuID0gcmlfUGxh bkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMsIHF1ZXJ5b2lkcywKQEAgLTQ5 NCwxNCArNTQxLDQwIEBAIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBrX3JlbCwgUmVs YXRpb24gZmtfcmVsLAogCQkgKgkJICAgRk9SIEtFWSBTSEFSRSBPRiB4CiAJCSAqIFRoZSB0 eXBlIGlkJ3MgZm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQogCQkgKiBQ SyBhdHRyaWJ1dGVzIHRoZW1zZWx2ZXMuCisJCSAqCisJCSAqIEJ1dCBmb3IgdGVtcG9yYWwg RktzIHdlIG5lZWQgdG8gbWFrZSBzdXJlCisJCSAqIHRoZSBvbGQgUEsncyByYW5nZSBpcyBj b21wbGV0ZWx5IGNvdmVyZWQuCisJCSAqIFNvIHdlIHVzZSB0aGlzIHF1ZXJ5IGluc3RlYWQ6 CisJCSAqICBTRUxFQ1QgMQorCQkgKiAgRlJPTSAgICAoCisJCSAqCSAgU0VMRUNUIHBrcGVy aW9kYXR0IEFTIHIKKwkJICoJICBGUk9NICAgW09OTFldIHBrdGFibGUgeAorCQkgKgkgIFdI RVJFICBwa2F0dDEgPSAkMSBbQU5EIC4uLl0KKwkJICoJICBBTkQgICAgcGtwZXJpb2RhdHQg JiYgJG4KKwkJICoJICBGT1IgS0VZIFNIQVJFIE9GIHgKKwkJICogICkgeDEKKwkJICogIEhB VklORyAkbiA8QCByYW5nZV9hZ2coeDEucikKKwkJICogTm90ZSBpZiBGT1IgS0VZIFNIQVJF IGV2ZXIgYWxsb3dzIEdST1VQIEJZIGFuZCBIQVZJTkcKKwkJICogd2UgY2FuIG1ha2UgdGhp cyBhIGJpdCBzaW1wbGVyLgogCQkgKiAtLS0tLS0tLS0tCiAJCSAqLwogCQlpbml0U3RyaW5n SW5mbygmcXVlcnlidWYpOwogCQlwa19vbmx5ID0gcGtfcmVsLT5yZF9yZWwtPnJlbGtpbmQg PT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CiAJCQkiIiA6ICJPTkxZICI7CiAJCXF1 b3RlUmVsYXRpb25OYW1lKHBrcmVsbmFtZSwgcGtfcmVsKTsKLQkJYXBwZW5kU3RyaW5nSW5m bygmcXVlcnlidWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCi0JCQkJCQkgcGtfb25seSwg cGtyZWxuYW1lKTsKKwkJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQorCQl7CisJCQlxdW90ZU9u ZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3Jp aW5mby0+bmtleXMgLSAxXSkpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwK KwkJCQkJCQkgIlNFTEVDVCAxIEZST00gKFNFTEVDVCAlcyBBUyByIEZST00gJXMlcyB4IiwK KwkJCQkJCQkgYXR0bmFtZSwgcGtfb25seSwgcGtyZWxuYW1lKTsKKwkJfQorCQllbHNlCisJ CXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiU0VMRUNUIDEgRlJPTSAlcyVz IHgiLAorCQkJCQkJCSBwa19vbmx5LCBwa3JlbG5hbWUpOworCQl9CiAJCXF1ZXJ5c2VwID0g IldIRVJFIjsKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCiAJ CXsKQEAgLTUxOCw2ICs1OTEsMTggQEAgcmlfQ2hlY2tfUGtfTWF0Y2goUmVsYXRpb24gcGtf cmVsLCBSZWxhdGlvbiBma19yZWwsCiAJCQlxdWVyeW9pZHNbaV0gPSBwa190eXBlOwogCQl9 CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnF1ZXJ5YnVmLCAiIEZPUiBLRVkgU0hBUkUg T0YgeCIpOworCQlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJCXsKKwkJCU9pZAkJCWZrX3R5 cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5 cyAtIDFdKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIpIHgxIEhBVklO RyAiKTsKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgcmlpbmZvLT5ua2V5cyk7CisJ CQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVmLCAiIiwKKwkJCQkJCQlwYXJhbW5hbWUsIGZr X3R5cGUsCisJCQkJCQkJcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIs CisJCQkJCQkJInBnX2NhdGFsb2cucmFuZ2VfYWdnIiwgQU5ZTVVMVElSQU5HRU9JRCk7CisJ CQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIih4MS5yKSIpOworCQl9CiAKIAkJLyog UHJlcGFyZSBhbmQgc2F2ZSB0aGUgcGxhbiAqLwogCQlxcGxhbiA9IHJpX1BsYW5DaGVjayhx dWVyeWJ1Zi5kYXRhLCByaWluZm8tPm5rZXlzLCBxdWVyeW9pZHMsCkBAIC0yMTYyLDYgKzIy NDcsNyBAQCByaV9Mb2FkQ29uc3RyYWludEluZm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAJcmlp bmZvLT5jb25mdXBkdHlwZSA9IGNvbkZvcm0tPmNvbmZ1cGR0eXBlOwogCXJpaW5mby0+Y29u ZmRlbHR5cGUgPSBjb25Gb3JtLT5jb25mZGVsdHlwZTsKIAlyaWluZm8tPmNvbmZtYXRjaHR5 cGUgPSBjb25Gb3JtLT5jb25mbWF0Y2h0eXBlOworCXJpaW5mby0+aGFzcGVyaW9kID0gY29u Rm9ybS0+Y29ucGVyaW9kOwogCiAJRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3codHVwLAog CQkJCQkJCSAgICZyaWluZm8tPm5rZXlzLApAQCAtMjE3Myw2ICsyMjU5LDIwIEBAIHJpX0xv YWRDb25zdHJhaW50SW5mbyhPaWQgY29uc3RyYWludE9pZCkKIAkJCQkJCQkgICAmcmlpbmZv LT5uZGVsc2V0Y29scywKIAkJCQkJCQkgICByaWluZm8tPmNvbmZkZWxzZXRjb2xzKTsKIAor CS8qCisJICogRm9yIHRlbXBvcmFsIEZLcywgZ2V0IHRoZSBvcGVyYXRvcnMgYW5kIGZ1bmN0 aW9ucyB3ZSBuZWVkLiBXZSBhc2sgdGhlCisJICogb3BjbGFzcyBvZiB0aGUgUEsgZWxlbWVu dCBmb3IgdGhlc2UuIFRoaXMgYWxsIGdldHMgY2FjaGVkIChhcyBkb2VzIHRoZQorCSAqIGdl bmVyYXRlZCBwbGFuKSwgc28gdGhlcmUncyBubyBwZXJmb3JtYW5jZSBpc3N1ZS4KKwkgKi8K KwlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJeworCQlPaWQJCQlvcGNsYXNzID0gZ2V0X2lu ZGV4X2NvbHVtbl9vcGNsYXNzKGNvbkZvcm0tPmNvbmluZGlkLCByaWluZm8tPm5rZXlzKTsK KworCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzLAorCQkJCQkJICAmcmlpbmZvLT5wZXJp b2RfY29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9j b250YWluZWRfYnlfb3Blcik7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiAKIAkv KgpAQCAtMjc4NCw3ICsyODg0LDEwIEBAIHJpX0hhc2hQcmVwYXJlZFBsYW4oUklfUXVlcnlL ZXkgKmtleSwgU1BJUGxhblB0ciBwbGFuKQogLyoKICAqIHJpX0tleXNFcXVhbCAtCiAgKgot ICogQ2hlY2sgaWYgYWxsIGtleSB2YWx1ZXMgaW4gT0xEIGFuZCBORVcgYXJlIGVxdWFsLgor ICogQ2hlY2sgaWYgYWxsIGtleSB2YWx1ZXMgaW4gT0xEIGFuZCBORVcgYXJlICJlcXVpdmFs ZW50IjoKKyAqIEZvciBub3JtYWwgRktzIHdlIGNoZWNrIGZvciBlcXVhbGl0eS4KKyAqIEZv ciB0ZW1wb3JhbCBGS3Mgd2UgY2hlY2sgdGhhdCB0aGUgUEsgc2lkZSBpcyBhIHN1cGVyc2V0 IG9mIGl0cyBvbGQgdmFsdWUsCisgKiBvciB0aGUgRksgc2lkZSBpcyBhIHN1YnNldCBvZiBp dHMgb2xkIHZhbHVlLgogICoKICAqIE5vdGU6IGF0IHNvbWUgcG9pbnQgd2UgbWlnaHQgd2lz aCB0byByZWRlZmluZSB0aGlzIGFzIGNoZWNraW5nIGZvcgogICogIklTIE5PVCBESVNUSU5D VCIgcmF0aGVyIHRoYW4gIj0iLCB0aGF0IGlzLCBhbGxvdyB0d28gbnVsbHMgdG8gYmUKQEAg LTI4NDAsMTMgKzI5NDMsMjUgQEAgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVU YWJsZVNsb3QgKm9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAogCQl9CiAJCWVs c2UKIAkJeworCQkJT2lkCQkJZXFfb3ByOworCisJCQkvKgorCQkJICogV2hlbiBjb21wYXJp bmcgdGhlIFBFUklPRCBjb2x1bW5zIHdlIGNhbiBza2lwIHRoZSBjaGVjaworCQkJICogd2hl bmV2ZXIgdGhlIHJlZmVyZW5jaW5nIGNvbHVtbiBzdGF5ZWQgZXF1YWwgb3Igc2hyYW5rLCBz byB0ZXN0CisJCQkgKiB3aXRoIHRoZSBjb250YWluZWQtYnkgb3BlcmF0b3IgaW5zdGVhZC4K KwkJCSAqLworCQkJaWYgKHJpaW5mby0+aGFzcGVyaW9kICYmIGkgPT0gcmlpbmZvLT5ua2V5 cyAtIDEpCisJCQkJZXFfb3ByID0gcmlpbmZvLT5wZXJpb2RfY29udGFpbmVkX2J5X29wZXI7 CisJCQllbHNlCisJCQkJZXFfb3ByID0gcmlpbmZvLT5mZl9lcV9vcHJzW2ldOworCiAJCQkv KgogCQkJICogRm9yIHRoZSBGSyB0YWJsZSwgY29tcGFyZSB3aXRoIHRoZSBhcHByb3ByaWF0 ZSBlcXVhbGl0eQogCQkJICogb3BlcmF0b3IuICBDaGFuZ2VzIHRoYXQgY29tcGFyZSBlcXVh bCB3aWxsIHN0aWxsIHNhdGlzZnkgdGhlCiAJCQkgKiBjb25zdHJhaW50IGFmdGVyIHRoZSB1 cGRhdGUuCiAJCQkgKi8KLQkJCWlmICghcmlfQXR0cmlidXRlc0VxdWFsKHJpaW5mby0+ZmZf ZXFfb3Byc1tpXSwgUklBdHRUeXBlKHJlbCwgYXR0bnVtc1tpXSksCi0JCQkJCQkJCQlvbGR2 YWx1ZSwgbmV3dmFsdWUpKQorCQkJaWYgKCFyaV9Db21wYXJlV2l0aENhc3QoZXFfb3ByLCBS SUF0dFR5cGUocmVsLCBhdHRudW1zW2ldKSwKKwkJCQkJCQkJCW5ld3ZhbHVlLCBvbGR2YWx1 ZSkpCiAJCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJfQpAQCAtMjg1NiwyOSArMjk3MSwzMSBA QCByaV9LZXlzRXF1YWwoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwg VHVwbGVUYWJsZVNsb3QgKm5ld3Nsb3QsCiAKIAogLyoKLSAqIHJpX0F0dHJpYnV0ZXNFcXVh bCAtCisgKiByaV9Db21wYXJlV2l0aENhc3QgLQogICoKLSAqIENhbGwgdGhlIGFwcHJvcHJp YXRlIGVxdWFsaXR5IGNvbXBhcmlzb24gb3BlcmF0b3IgZm9yIHR3byB2YWx1ZXMuCisgKiBD YWxsIHRoZSBhcHByb3ByaWF0ZSBjb21wYXJpc29uIG9wZXJhdG9yIGZvciB0d28gdmFsdWVz LgorICogTm9ybWFsbHkgdGhpcyBpcyBlcXVhbGl0eSwgYnV0IGZvciB0aGUgUEVSSU9EIHBh cnQgb2YgZm9yZWlnbiBrZXlzCisgKiBpdCBpcyBDb250YWluZWRCeSwgc28gdGhlIG9yZGVy IG9mIGxocyB2cyByaHMgaXMgc2lnbmlmaWNhbnQuCiAgKgogICogTkI6IHdlIGhhdmUgYWxy ZWFkeSBjaGVja2VkIHRoYXQgbmVpdGhlciB2YWx1ZSBpcyBudWxsLgogICovCiBzdGF0aWMg Ym9vbAotcmlfQXR0cmlidXRlc0VxdWFsKE9pZCBlcV9vcHIsIE9pZCB0eXBlaWQsCi0JCQkJ ICAgRGF0dW0gb2xkdmFsdWUsIERhdHVtIG5ld3ZhbHVlKQorcmlfQ29tcGFyZVdpdGhDYXN0 KE9pZCBlcV9vcHIsIE9pZCB0eXBlaWQsCisJCQkJICAgRGF0dW0gbGhzLCBEYXR1bSByaHMp CiB7CiAJUklfQ29tcGFyZUhhc2hFbnRyeSAqZW50cnkgPSByaV9IYXNoQ29tcGFyZU9wKGVx X29wciwgdHlwZWlkKTsKIAogCS8qIERvIHdlIG5lZWQgdG8gY2FzdCB0aGUgdmFsdWVzPyAq LwogCWlmIChPaWRJc1ZhbGlkKGVudHJ5LT5jYXN0X2Z1bmNfZmluZm8uZm5fb2lkKSkKIAl7 Ci0JCW9sZHZhbHVlID0gRnVuY3Rpb25DYWxsMygmZW50cnktPmNhc3RfZnVuY19maW5mbywK LQkJCQkJCQkJIG9sZHZhbHVlLAotCQkJCQkJCQkgSW50MzJHZXREYXR1bSgtMSksIC8qIHR5 cG1vZCAqLwotCQkJCQkJCQkgQm9vbEdldERhdHVtKGZhbHNlKSk7CS8qIGltcGxpY2l0IGNv ZXJjaW9uICovCi0JCW5ld3ZhbHVlID0gRnVuY3Rpb25DYWxsMygmZW50cnktPmNhc3RfZnVu Y19maW5mbywKLQkJCQkJCQkJIG5ld3ZhbHVlLAotCQkJCQkJCQkgSW50MzJHZXREYXR1bSgt MSksIC8qIHR5cG1vZCAqLwotCQkJCQkJCQkgQm9vbEdldERhdHVtKGZhbHNlKSk7CS8qIGlt cGxpY2l0IGNvZXJjaW9uICovCisJCWxocyA9IEZ1bmN0aW9uQ2FsbDMoJmVudHJ5LT5jYXN0 X2Z1bmNfZmluZm8sCisJCQkJCQkJbGhzLAorCQkJCQkJCUludDMyR2V0RGF0dW0oLTEpLAkv KiB0eXBtb2QgKi8KKwkJCQkJCQlCb29sR2V0RGF0dW0oZmFsc2UpKTsJLyogaW1wbGljaXQg Y29lcmNpb24gKi8KKwkJcmhzID0gRnVuY3Rpb25DYWxsMygmZW50cnktPmNhc3RfZnVuY19m aW5mbywKKwkJCQkJCQlyaHMsCisJCQkJCQkJSW50MzJHZXREYXR1bSgtMSksCS8qIHR5cG1v ZCAqLworCQkJCQkJCUJvb2xHZXREYXR1bShmYWxzZSkpOwkvKiBpbXBsaWNpdCBjb2VyY2lv biAqLwogCX0KIAogCS8qCkBAIC0yODkyLDEwICszMDA5LDE2IEBAIHJpX0F0dHJpYnV0ZXNF cXVhbChPaWQgZXFfb3ByLCBPaWQgdHlwZWlkLAogCSAqIG9wZW4pLCB3ZSdsbCBqdXN0IHVz ZSB0aGUgZGVmYXVsdCBjb2xsYXRpb24gaGVyZSwgd2hpY2ggY291bGQgbGVhZCB0bwogCSAq IHNvbWUgZmFsc2UgbmVnYXRpdmVzLiAgQWxsIHRoaXMgd291bGQgYnJlYWsgaWYgd2UgZXZl ciBhbGxvdwogCSAqIGRhdGFiYXNlLXdpZGUgY29sbGF0aW9ucyB0byBiZSBub25kZXRlcm1p bmlzdGljLgorCSAqCisJICogV2l0aCByYW5nZS9tdWx0aXJhbmdldHlwZXMsIHRoZSBjb2xs YXRpb24gb2YgdGhlIGJhc2UgdHlwZSBpcyBzdG9yZWQgYXMKKwkgKiBwYXJ0IG9mIHRoZSBy YW5nZXR5cGUgKHBnX3JhbmdlLnJuZ2NvbGxhdGlvbiksIGFuZCBhbHdheXMgdXNlZCwgc28K KwkgKiB0aGVyZSBpcyBubyBkYW5nZXIgb2YgaW5jb25zaXN0ZW5jeSBldmVuIHVzaW5nIGEg bm9uLWVxdWFscyBvcGVyYXRvci4KKwkgKiBCdXQgaWYgd2Ugc3VwcG9ydCBhcmJpdHJhcnkg dHlwZXMgd2l0aCBQRVJJT0QsIHdlIHNob3VsZCBwZXJoYXBzIGp1c3QKKwkgKiBhbHdheXMg Zm9yY2UgYSByZS1jaGVjay4KIAkgKi8KIAlyZXR1cm4gRGF0dW1HZXRCb29sKEZ1bmN0aW9u Q2FsbDJDb2xsKCZlbnRyeS0+ZXFfb3ByX2ZpbmZvLAogCQkJCQkJCQkJCSAgREVGQVVMVF9D T0xMQVRJT05fT0lELAotCQkJCQkJCQkJCSAgb2xkdmFsdWUsIG5ld3ZhbHVlKSk7CisJCQkJ CQkJCQkJICBsaHMsIHJocykpOwogfQogCiAvKgpAQCAtMjk1MCw3ICszMDczLDcgQEAgcmlf SGFzaENvbXBhcmVPcChPaWQgZXFfb3ByLCBPaWQgdHlwZWlkKQogCQkgKiB0aGUgY2FzdCBm dW5jdGlvbiB0byBnZXQgdG8gdGhlIG9wZXJhdG9yJ3MgaW5wdXQgdHlwZS4KIAkJICoKIAkJ ICogWFhYIGV2ZW50dWFsbHkgaXQgd291bGQgYmUgZ29vZCB0byBzdXBwb3J0IGFycmF5LWNv ZXJjaW9uIGNhc2VzCi0JCSAqIGhlcmUgYW5kIGluIHJpX0F0dHJpYnV0ZXNFcXVhbCgpLiAg QXQgdGhlIG1vbWVudCB0aGVyZSBpcyBubyBwb2ludAorCQkgKiBoZXJlIGFuZCBpbiByaV9D b21wYXJlV2l0aENhc3QoKS4gIEF0IHRoZSBtb21lbnQgdGhlcmUgaXMgbm8gcG9pbnQKIAkJ ICogYmVjYXVzZSBjYXNlcyBpbnZvbHZpbmcgbm9uaWRlbnRpY2FsIGFycmF5IHR5cGVzIHdp bGwgYmUgcmVqZWN0ZWQKIAkJICogYXQgY29uc3RyYWludCBjcmVhdGlvbiB0aW1lLgogCQkg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDUwYzAyNDdjMzAwLi5iMGQ3 ZjUxYmU2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzM4LDcgKzMz OCw3IEBAIHN0YXRpYyBjaGFyICpwZ19nZXRfdmlld2RlZl93b3JrZXIoT2lkIHZpZXdvaWQs CiAJCQkJCQkJCSAgIGludCBwcmV0dHlGbGFncywgaW50IHdyYXBDb2x1bW4pOwogc3RhdGlj IGNoYXIgKnBnX2dldF90cmlnZ2VyZGVmX3dvcmtlcihPaWQgdHJpZ2lkLCBib29sIHByZXR0 eSk7CiBzdGF0aWMgaW50CWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkoRGF0dW0gY29s dW1uX2luZGV4X2FycmF5LCBPaWQgcmVsSWQsCi0JCQkJCQkJCQkJIFN0cmluZ0luZm8gYnVm KTsKKwkJCQkJCQkJCQkgYm9vbCB3aXRoUGVyaW9kLCBTdHJpbmdJbmZvIGJ1Zik7CiBzdGF0 aWMgY2hhciAqcGdfZ2V0X3J1bGVkZWZfd29ya2VyKE9pZCBydWxlb2lkLCBpbnQgcHJldHR5 RmxhZ3MpOwogc3RhdGljIGNoYXIgKnBnX2dldF9pbmRleGRlZl93b3JrZXIoT2lkIGluZGV4 cmVsaWQsIGludCBjb2xubywKIAkJCQkJCQkJCWNvbnN0IE9pZCAqZXhjbHVkZU9wcywKQEAg LTIyNjAsNyArMjI2MCw4IEBAIHBnX2dldF9jb25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29u c3RyYWludElkLCBib29sIGZ1bGxDb21tYW5kLAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0 ck5vdE51bGwoQ09OU1RST0lELCB0dXAsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFp bnRfY29ua2V5KTsKIAotCQkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkodmFsLCBj b25Gb3JtLT5jb25yZWxpZCwgJmJ1Zik7CisJCQkJLyogSWYgaXQgaXMgYSB0ZW1wb3JhbCBm b3JlaWduIGtleSB0aGVuIGl0IHVzZXMgUEVSSU9ELiAqLworCQkJCWRlY29tcGlsZV9jb2x1 bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgY29uRm9ybS0+Y29ucGVy aW9kLCAmYnVmKTsKIAogCQkJCS8qIGFkZCBmb3JlaWduIHJlbGF0aW9uIG5hbWUgKi8KIAkJ CQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIpIFJFRkVSRU5DRVMgJXMoIiwKQEAgLTIyNzEs NyArMjI3Miw3IEBAIHBnX2dldF9jb25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29uc3RyYWlu dElkLCBib29sIGZ1bGxDb21tYW5kLAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5vdE51 bGwoQ09OU1RST0lELCB0dXAsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRfY29u ZmtleSk7CiAKLQkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9y bS0+Y29uZnJlbGlkLCAmYnVmKTsKKwkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5 KHZhbCwgY29uRm9ybS0+Y29uZnJlbGlkLCBjb25Gb3JtLT5jb25wZXJpb2QsICZidWYpOwog CiAJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKIApAQCAtMjM1Nyw3ICsy MzU4LDcgQEAgcGdfZ2V0X2NvbnN0cmFpbnRkZWZfd29ya2VyKE9pZCBjb25zdHJhaW50SWQs IGJvb2wgZnVsbENvbW1hbmQsCiAJCQkJaWYgKCFpc251bGwpCiAJCQkJewogCQkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIgKCIpOwotCQkJCQlkZWNvbXBpbGVfY29sdW1u X2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsICZidWYpOworCQkJCQlkZWNv bXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsIGZhbHNl LCAmYnVmKTsKIAkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKIAkJCQl9 CiAKQEAgLTIzOTIsNyArMjM5Myw3IEBAIHBnX2dldF9jb25zdHJhaW50ZGVmX3dvcmtlcihP aWQgY29uc3RyYWludElkLCBib29sIGZ1bGxDb21tYW5kLAogCQkJCXZhbCA9IFN5c0NhY2hl R2V0QXR0ck5vdE51bGwoQ09OU1RST0lELCB0dXAsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2Nv bnN0cmFpbnRfY29ua2V5KTsKIAotCQkJCWtleWF0dHMgPSBkZWNvbXBpbGVfY29sdW1uX2lu ZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsICZidWYpOworCQkJCWtleWF0dHMg PSBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQs IGZhbHNlLCAmYnVmKTsKIAkJCQlpZiAoY29uRm9ybS0+Y29ucGVyaW9kKQogCQkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIgV0lUSE9VVCBPVkVSTEFQUyIpOwogCkBAIC0y NTc2LDcgKzI1NzcsNyBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3JrZXIoT2lkIGNvbnN0 cmFpbnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKICAqLwogc3RhdGljIGludAogZGVjb21waWxl X2NvbHVtbl9pbmRleF9hcnJheShEYXR1bSBjb2x1bW5faW5kZXhfYXJyYXksIE9pZCByZWxJ ZCwKLQkJCQkJCQkgU3RyaW5nSW5mbyBidWYpCisJCQkJCQkJIGJvb2wgd2l0aFBlcmlvZCwg U3RyaW5nSW5mbyBidWYpCiB7CiAJRGF0dW0JICAgKmtleXM7CiAJaW50CQkJbktleXM7CkBA IC0yNTk1LDcgKzI1OTYsOSBAQCBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KERhdHVt IGNvbHVtbl9pbmRleF9hcnJheSwgT2lkIHJlbElkLAogCQlpZiAoaiA9PSAwKQogCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIoY29sTmFtZSkpOwog CQllbHNlCi0JCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgJXMiLCBxdW90ZV9pZGVudGlm aWVyKGNvbE5hbWUpKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiLCAlcyVzIiwKKwkJ CQkJCQkgKHdpdGhQZXJpb2QgJiYgaiA9PSBuS2V5cyAtIDEpID8gIlBFUklPRCAiIDogIiIs CisJCQkJCQkJIHF1b3RlX2lkZW50aWZpZXIoY29sTmFtZSkpOwogCX0KIAogCXJldHVybiBu S2V5czsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgKaW5kZXggOTZjMDA2MjRi MTUuLjExNTIxN2E2MTYyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bnN0cmFpbnQuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaApA QCAtMTA4LDggKzEwOCw4IEBAIENBVEFMT0cocGdfY29uc3RyYWludCwyNjA2LENvbnN0cmFp bnRSZWxhdGlvbklkKQogCWJvb2wJCWNvbm5vaW5oZXJpdDsKIAogCS8qCi0JICogRm9yIHBy aW1hcnkga2V5cyBhbmQgdW5pcXVlIGNvbnN0cmFpbnRzLCBzaWduaWZpZXMgdGhlIGxhc3Qg Y29sdW1uIHVzZXMKLQkgKiBvdmVybGFwcyBpbnN0ZWFkIG9mIGVxdWFscy4KKwkgKiBGb3Ig cHJpbWFyeSBrZXlzLCB1bmlxdWUgY29uc3RyYWludHMsIGFuZCBmb3JlaWduIGtleXMsIHNp Z25pZmllcyB0aGUKKwkgKiBsYXN0IGNvbHVtbiB1c2VzIG92ZXJsYXBzIGluc3RlYWQgb2Yg ZXF1YWxzLgogCSAqLwogCWJvb2wJCWNvbnBlcmlvZDsKIApAQCAtMTI3LDIwICsxMjcsMjIg QEAgQ0FUQUxPRyhwZ19jb25zdHJhaW50LDI2MDYsQ29uc3RyYWludFJlbGF0aW9uSWQpCiAJ aW50MTYJCWNvbmZrZXlbMV07CiAKIAkvKgotCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBP SURzIG9mIHRoZSBQSyA9IEZLIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IgZWFjaAotCSAqIGNv bHVtbiBvZiB0aGUgY29uc3RyYWludAorCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBPSURz IG9mIHRoZSBQSyA9IEZLIGVxdWFsaXR5L292ZXJsYXAgb3BlcmF0b3JzCisJICogZm9yIGVh Y2ggY29sdW1uIG9mIHRoZSBjb25zdHJhaW50CiAJICovCiAJT2lkCQkJY29ucGZlcW9wWzFd IEJLSV9MT09LVVAocGdfb3BlcmF0b3IpOwogCiAJLyoKLQkgKiBJZiBhIGZvcmVpZ24ga2V5 LCB0aGUgT0lEcyBvZiB0aGUgUEsgPSBQSyBlcXVhbGl0eSBvcGVyYXRvcnMgZm9yIGVhY2gK LQkgKiBjb2x1bW4gb2YgdGhlIGNvbnN0cmFpbnQgKGkuZS4sIGVxdWFsaXR5IGZvciB0aGUg cmVmZXJlbmNlZCBjb2x1bW5zKQorCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBPSURzIG9m IHRoZSBQSyA9IFBLIGVxdWFsaXR5L292ZXJsYXAgb3BlcmF0b3JzCisJICogZm9yIGVhY2gg Y29sdW1uIG9mIHRoZSBjb25zdHJhaW50IChpLmUuLCBlcXVhbGl0eSBmb3IgdGhlIHJlZmVy ZW5jZWQKKwkgKiBjb2x1bW5zKQogCSAqLwogCU9pZAkJCWNvbnBwZXFvcFsxXSBCS0lfTE9P S1VQKHBnX29wZXJhdG9yKTsKIAogCS8qCi0JICogSWYgYSBmb3JlaWduIGtleSwgdGhlIE9J RHMgb2YgdGhlIEZLID0gRksgZXF1YWxpdHkgb3BlcmF0b3JzIGZvciBlYWNoCi0JICogY29s dW1uIG9mIHRoZSBjb25zdHJhaW50IChpLmUuLCBlcXVhbGl0eSBmb3IgdGhlIHJlZmVyZW5j aW5nIGNvbHVtbnMpCisJICogSWYgYSBmb3JlaWduIGtleSwgdGhlIE9JRHMgb2YgdGhlIEZL ID0gRksgZXF1YWxpdHkvb3ZlcmxhcCBvcGVyYXRvcnMKKwkgKiBmb3IgZWFjaCBjb2x1bW4g b2YgdGhlIGNvbnN0cmFpbnQgKGkuZS4sIGVxdWFsaXR5IGZvciB0aGUgcmVmZXJlbmNpbmcK KwkgKiBjb2x1bW5zKQogCSAqLwogCU9pZAkJCWNvbmZmZXFvcFsxXSBCS0lfTE9PS1VQKHBn X29wZXJhdG9yKTsKIApAQCAtMjc3LDYgKzI3OSw5IEBAIGV4dGVybiB2b2lkIERlY29uc3Ry dWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJ CQkJCQkgICBBdHRyTnVtYmVyICpjb25rZXksIEF0dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJ CQkJCQkgICBPaWQgKnBmX2VxX29wcnMsIE9pZCAqcHBfZXFfb3BycywgT2lkICpmZl9lcV9v cHJzLAogCQkJCQkJCQkJICAgaW50ICpudW1fZmtfZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVy ICpma19kZWxfc2V0X2NvbHMpOworZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnMoT2lk IG9wY2xhc3MsCisJCQkJCQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkg IE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQpOwogCiBleHRlcm4gYm9vbCBjaGVja19m dW5jdGlvbmFsX2dyb3VwaW5nKE9pZCByZWxpZCwKIAkJCQkJCQkJCSAgSW5kZXggdmFybm8s IEluZGV4IHZhcmxldmVsc3VwLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZGVmcmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaAppbmRleCAwYzUzZDY3 ZDNlZS4uNWZkMDk1ZWExNzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Rl ZnJlbS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCkBAIC01MCw3ICs1 MCw3IEBAIGV4dGVybiBib29sIENoZWNrSW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJZCwKIGV4 dGVybiBPaWQJR2V0RGVmYXVsdE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCk7CiBl eHRlcm4gT2lkCVJlc29sdmVPcENsYXNzKGNvbnN0IExpc3QgKm9wY2xhc3MsIE9pZCBhdHRy VHlwZSwKIAkJCQkJCSAgIGNvbnN0IGNoYXIgKmFjY2Vzc01ldGhvZE5hbWUsIE9pZCBhY2Nl c3NNZXRob2RJZCk7Ci1leHRlcm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJh dGVneShPaWQgb3BjbGFzcywgT2lkIGF0dHR5cGUsCitleHRlcm4gdm9pZCBHZXRPcGVyYXRv ckZyb21XZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIHJoc3R5cGUsCiAJCQkJ CQkJCQkJCSBPaWQgKm9waWQsIFN0cmF0ZWd5TnVtYmVyICpzdHJhdCk7CiAKIC8qIGNvbW1h bmRzL2Z1bmN0aW9uY21kcy5jICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOWRj NDY2N2QyYmQuLjFjYjdiMDJjNWMyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0y NzY3LDYgKzI3NjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdHJhaW50CiAJUmFuZ2VWYXIg ICAqcGt0YWJsZTsJCS8qIFByaW1hcnkga2V5IHRhYmxlICovCiAJTGlzdAkgICAqZmtfYXR0 cnM7CQkvKiBBdHRyaWJ1dGVzIG9mIGZvcmVpZ24ga2V5ICovCiAJTGlzdAkgICAqcGtfYXR0 cnM7CQkvKiBDb3JyZXNwb25kaW5nIGF0dHJzIGluIFBLIHRhYmxlICovCisJYm9vbAkJZmtf d2l0aF9wZXJpb2Q7IC8qIExhc3QgYXR0cmlidXRlIG9mIEZLIHVzZXMgUEVSSU9EICovCisJ Ym9vbAkJcGtfd2l0aF9wZXJpb2Q7IC8qIExhc3QgYXR0cmlidXRlIG9mIFBLIHVzZXMgUEVS SU9EICovCiAJY2hhcgkJZmtfbWF0Y2h0eXBlOwkvKiBGVUxMLCBQQVJUSUFMLCBTSU1QTEUg Ki8KIAljaGFyCQlma191cGRfYWN0aW9uOwkvKiBPTiBVUERBVEUgYWN0aW9uICovCiAJY2hh cgkJZmtfZGVsX2FjdGlvbjsJLyogT04gREVMRVRFIGFjdGlvbiAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCmluZGV4IGY3ZmU4MzRjZjQ1Li5mOWE0YWZkNDcyMyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtMzM5LDYgKzMzOSw3IEBAIFBHX0tFWVdPUkQoInBhcnRpdGlvbnMiLCBQQVJUSVRJ T05TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNz aW5nIiwgUEFTU0lORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgicGFzc3dvcmQiLCBQQVNTV09SRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgicGF0aCIsIFBBVEgsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKK1BHX0tFWVdPUkQoInBlcmlvZCIsIFBFUklPRCwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhY2luZyIsIFBMQUNJTkcsIFJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFuIiwgUExBTiwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhbnMiLCBQTEFO UywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5kZXggMGZlMzk0OWY3NDYu Ljg2MTcxYzk5NGM5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dp dGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQKQEAgLTEzMzMsNCArMTMzMywxMjg3IEBAIFNFTEVDVCAqIEZS T00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAoMSByb3cpCiAK IERST1AgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMzsKKy0tCistLSB0ZXN0IEZLIGRlcGVuZGVu Y2llcworLS0KKy0tIGNhbid0IGRyb3AgYSByYW5nZSByZWZlcmVuY2VkIGJ5IGFuIEZLLCB1 bmxlc3Mgd2l0aCBDQVNDQURFCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWwz X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitFUlJPUjogIGNhbm5vdCBkcm9wIGNv bHVtbiB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMgYmVjYXVzZSBvdGhlciBvYmplY3Rz IGRlcGVuZCBvbiBpdAorREVUQUlMOiAgY29uc3RyYWludCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcgZGVwZW5kcyBvbiBjb2x1bW4gdmFs aWRfYXQgb2YgdGFibGUgdGVtcG9yYWwzCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUg dG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxURVIgVEFCTEUgdGVtcG9y YWwzIERST1AgQ09MVU1OIHZhbGlkX2F0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIGNvbnN0cmFpbnQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBvbiB0YWJsZSB0ZW1w b3JhbF9ma19ybmcycm5nCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitEUk9Q IFRBQkxFIHRlbXBvcmFsMzsKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCByYW5nZSByZWZl cmVuY2VzIHJhbmdlCistLQorLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1w b3JhbF9ybmc7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nIChpZCBpbnQ0cmFuZ2UsIHZh bGlkX2F0IGRhdGVyYW5nZSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0 Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgaW50NHJhbmdlLAorICBwYXJlbnRfaWQgaW50 NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsyIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19mazIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mazIiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVt bnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVz OiBpbnQ0cmFuZ2UgYW5kIGRhdGVyYW5nZS4KKy0tIHdvcmtzOiBQRVJJT0QgZm9yIGJvdGgg cmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKKy0t IHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBw YXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZl cmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlCistLSAocGFyZW50 X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBzaG91 bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpCispOworRVJS T1I6ICBmb3JlaWduIGtleSBtdXN0IHVzZSBQRVJJT0Qgd2hlbiByZWZlcmVuY2luZyBhIHBy aW1hcnkgdXNpbmcgV0lUSE9VVCBPVkVSTEFQUworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQp IFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lk LCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKK0VSUk9SOiAgZm9yZWln biBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUg cmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVG RVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQpCispOworRVJST1I6ICBmb3Jl aWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0 aGUgcmVmZXJlbmNlZCB0YWJsZQorLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBF UklPRCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZv cmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3Qg dGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZl cmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOworRFJPUCBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRd CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSBzaG91bGQgZmFp bCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcgKGlkLCBQRVJJT0QgaWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSByZWZl cmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1cGxpY2F0ZXMKKy0tIFR3 byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nMl9w ayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBw YXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFs X2ZrMl9ybmcycm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3Ju ZzJybmciCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJybmdfcGsiIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0 cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1AgVEFCTEUgdGVt cG9yYWxfZmsyX3JuZzJybmc7CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RS QUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2Us CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBj b2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZDEgaW50NHJhbmdl LAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcy cm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3JuZzJybmciCisg ICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVs dCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVs bCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5k ZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgor ICAgICJ0ZW1wb3JhbF9mazJfcm5nMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcy KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24g dGhlIHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmssCisgIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzcmFuZ2UgVVNJ TkcgdHNyYW5nZShsb3dlcih2YWxpZF9hdCksIHVwcGVyKHZhbGlkX2F0KSk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgY2Fubm90IGJlIGltcGxlbWVudGVk CitERVRBSUw6ICBLZXkgY29sdW1ucyAidmFsaWRfYXQiIGFuZCAidmFsaWRfYXQiIGFyZSBv ZiBpbmNvbXBhdGlibGUgdHlwZXM6IHRzcmFuZ2UgYW5kIGRhdGVyYW5nZS4KK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUg ZGF0ZXJhbmdlIFVTSU5HIGRhdGVyYW5nZShsb3dlcih2YWxpZF9hdCk6OmRhdGUsIHVwcGVy KHZhbGlkX2F0KTo6ZGF0ZSk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLSBz aG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBw YXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKTsK K0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3Qg Y29udGFpbiBkdXBsaWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0K K0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSwK KyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpLAor ICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSksCisg ICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDItMDEnKSwgJ1sxLDIpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAnWzEsMiknKTsKKy0t IHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CitF UlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9y bmciLgorLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmc7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tCistLSB0ZXN0IHBn X2dldF9jb25zdHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9p ZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5n MnJuZ19mayc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29u c3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwor LS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAxJyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIs MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAnWzEsMiknKTsK K0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJu Z19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFs X3JuZyIuCistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDIt MDMnLCAnMjAxOC0wMy0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyksICdbMSwyKScpOworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKy0tIHNsaWRlIHRoZSBlZGdlIGFjcm9zcyBhIHJl ZmVyZW5jZWQgdHJhbnNpdGlvbjoKK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTIwJykgV0hFUkUg aWQgPSAnWzEsMiknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcm5n MnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNS0w MScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lk LCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTA1LTAxKSkgaXMgbm90IHBy ZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCitVUERBVEUgdGVtcG9yYWxfZmtfcm5n MnJuZyBTRVQgcGFyZW50X2lkID0gJ1s4LDkpJyBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJP UjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsi CitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbOCw5KSwgWzIwMTgtMDEt MDIsMjAxOC0wMi0yMCkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmci LgorLS0gQUxURVIgRksgREVGRVJSQUJMRQorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgICAoJ1s1LDYpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICAgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworICBJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICAgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScp OworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAgQUxURVIgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkg REVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2 KSc7IC0tc2hvdWxkIG5vdCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVy ZS4KK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICBPTiBVUERBVEUgTk8gQUNUSU9O OworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlk IGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBh IFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlz IHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0w MScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVk Z2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksICdbNiw3KScpOworVVBEQVRFIHRl bXBvcmFsX3JuZworU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9 ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1 JykKKyAgICAgICAgICAgICAgICAgICAgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0w Mi0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMy0wMScpIEVORAor V0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKK1dIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9y bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBhIFBL IHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5v dCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgICAg REVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0ZW1wb3JhbF9ybmcg U0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQor ICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAx LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJybmciLgorLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gdGhlbiBkZWxldGUg dGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVk czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCkn OworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYt MDEtMDEnLCAnMjAxNi0wMi0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICBPTiBVUERBVEUgUkVTVFJJQ1Q7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQg aXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEg UEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMg cmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAx JykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRn ZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSwgJ1s2LDcpJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nCitTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0g JzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KQorICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAy LTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5ECitX SEVSRSBpZCA9ICdbNiw3KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs2LDcpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5n Ii4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAx Ni0wMi0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIuCitST0xMQkFDSzsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFy dCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0gYSBQ SyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJl ZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBL IGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJl ZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIGRlbGV0ZSB0aGF0 IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciLgorLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJl IHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRo ZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICBPTiBERUxFVEUgUkVTVFJJ Q1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0 ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5j ZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxz IGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JF R0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAgQUxURVIgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFM TFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorUk9MTEJBQ0s7 CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUg UEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CistLQorLS0gdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZworICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBD QVNDQURFOworRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3Jl aWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IHVwZGF0ZXMgU0VUIE5VTEwKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6 ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJh aW50IHVzaW5nIFBFUklPRAorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAg ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRF IFNFVCBERUZBVUxUOworRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZv ciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0KKy0tIHRlc3QgRk9S RUlHTiBLRVksIG11bHRpcmFuZ2UgcmVmZXJlbmNlcyBtdWx0aXJhbmdlCistLQorLS0gdGVz dCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmc7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfbWx0cm5nICggaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlbXVsdGly YW5nZSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfbWx0cm5nX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyk7CistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCBt dWx0aXJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBpbnQ0bXVsdGlyYW5nZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX3BrMiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsyIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsyIiBjYW5ub3QgYmUg aW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxp ZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50NG11bHRpcmFuZ2UgYW5kIGRh dGVtdWx0aXJhbmdlLgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJl bnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmc7CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6Cist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9h dCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkKKyk7 CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0 YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkLCB2YWxp ZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lm eSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisgIHBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IG11c3QgdXNlIFBFUklPRCB3aGVu IHJlZmVyZW5jaW5nIGEgcHJpbWFyeSB1c2luZyBXSVRIT1VUIE9WRVJMQVBTCistLSAocGFy ZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0t IEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgZGF0ZW11bHRpcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJS T1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBi dXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQp IFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3Bl Y2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworKTsK K0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFi bGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRp cmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMg UEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2Vk IHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisp OworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0 YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gd2l0aCBpbmZlcnJlZCBQ SyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRp cmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZworKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJ T0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFi bGUKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29s dW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChp ZCwgUEVSSU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1 bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCistLSBUd28gc2NhbGFyIGNv bHVtbnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMjsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9tbHRybmcyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5n Ml9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgcGFyZW50X2lkMSBp bnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgICAg ICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIgorICAgQ29s dW1uICAgfCAgICAgIFR5cGUgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVs dCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSAgICAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgIHwgZGF0ZW11bHRpcmFuZ2UgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRyYW5nZSAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMihpZDEsIGlkMiwgUEVS SU9EIHZhbGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n OworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQKKy0tCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOwor LS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcKKyAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IgorICAgQ29sdW1uICAgfCAgICAgIFR5cGUgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSAgICAgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgIHwgZGF0ZW11bHRpcmFuZ2Ug fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRyYW5nZSAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMihpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1 cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIGlkKTsKK0VSUk9SOiAg Zm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBk dXBsaWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSksCisgICgnWzEsMikn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcp KSksCisgICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMS0wNScpKSksCisgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCBOVUxMKSkpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJykpLCAnWzEsMiknKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9E IHZhbGlkX2F0KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDInLCAnMjAxOC0wNC0wMScpKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVS SU9EIHZhbGlkX2F0KTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50 X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDIsMjAxOC0wNC0wMSl9KSBpcyBu b3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIi4KKy0tIG9rYXkgYWdhaW46 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFs aWRfYXQpOworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCitTRUxFQ1Qg cGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrJzsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIHRlbXBvcmFsX21sdHJuZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorKDEgcm93KQor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywg JzIwMTgtMDItMDEnKSksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDIn LCAnMjAxOC0wNC0wMScpKSwgJ1sxLDIpJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiCitERVRBSUw6 ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAyLDIwMTgt MDQtMDEpfSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX21sdHJuZyIuCist LSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDItMDMnLCAnMjAxOC0wMy0wMycpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIs MyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0w MScpKSwgJ1sxLDIpJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCist LQorLS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgor VVBEQVRFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMjAnKSkgV0hFUkUg aWQgPSAnWzEsMiknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wNS0wMScpKSBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjog IGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmci IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwg e1syMDE4LTAxLTAyLDIwMTgtMDUtMDEpfSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRl bXBvcmFsX21sdHJuZyIuCitVUERBVEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQg cGFyZW50X2lkID0gJ1s4LDkpJyBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjogIGluc2Vy dCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbOCw5KSwge1syMDE4 LTAxLTAyLDIwMTgtMDItMjApfSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFs X21sdHJuZyIuCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAgICgnWzUsNikn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KSksCisgICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsNCkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcp KSwgJ1s1LDYpJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcK KyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAg ICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0Lgor Q09NTUlUOyAtLSBzaG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRy bmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisgIE9OIFVQREFURSBOTyBBQ1RJT047 CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQg aXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIw MTYtMDItMDEnKSkgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBz dWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1 c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJF IGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIw MTYtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIEEg UEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwor ICAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpLAorICAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0 LDUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDIt MTUnKSksICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZworU0VUIHZhbGlkX2F0 ID0gQ0FTRSBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpCisgICAg ICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRI RU4gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEn KSkgRU5ECitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxz IGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcg U0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywg JzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJl bmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7 CisgIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKKyAgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5naW5n IHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlk ID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4K Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBS RUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgT04g VVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNl IHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEg UEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMg cmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSksCisgICgnWzUsNikn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgt MDMtMDEnKSk7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMKKyAgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNiw3KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMKKyAgKCdbNCw1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0xNScsICcyMDE4LTAyLTE1JykpLCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0w MS0wMScgVEhFTiBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMS0wNScpKQorICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9 ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAzLTAxJykpIEVORAorV0hFUkUgaWQgPSAnWzYsNyknOworRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9u IHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNiw3KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0t IGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChl dmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBE QVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorICBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgt MDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUg c2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdb Nyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUg dGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m aworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVS RU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZl cmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKSkpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlk ID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2gg dGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAg KCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykp LCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1 c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gYSBQSyBkZWxl dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3Rp bCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworQ09N TUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRy bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklD VAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpOworREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQg c3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNh dXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIGRl bGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZv cmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmciLgorUk9MTEJBQ0s7CistLQorLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6 IHJhbmdlcworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlk KTsKK0NSRUFURSBUQUJMRSB0cDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCkn LCAnWzksMTApJywgJ1sxMSwxMiknKTsKK0NSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9G IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQs NSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFM VUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScp LCAnb25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0w My0wMScpLCAnb25lJyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpLCAndHdvJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0 aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElO ICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwx MiknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYs NyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CistLQorLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdb MSwyKScpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAxLTAxLTAxJywgJzIwMDItMDEt MDEnKSwgJ1syLDMpJyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAwMC0wMi0xNScpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMTAt MDItMTUnKSwgJ1sxLDIpJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg InRma3AxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDEwLTAxLTAxLDIwMTAtMDItMTUpKSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1 JyksICdbMyw0KScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0Zmtw MSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9 KFszLDQpLCBbMjAwMC0wMS0wMSwyMDAwLTAyLTE1KSkgaXMgbm90IHByZXNlbnQgaW4gdGFi bGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksg cmVmZXJlbmNpbmcgdXBkYXRlcworLS0KK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAw LTAyLTEzJykgV0hFUkUgaWQgPSAnWzIsMyknOworLS0gbW92ZSBhIHJvdyBmcm9tIHRoZSBm aXJzdCBwYXJ0aXRpb24gdG8gdGhlIHNlY29uZAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgU0VUIGlkID0gJ1s0LDUpJyBXSEVSRSBpZCA9ICdbMSwyKSc7Cist LSBtb3ZlIGEgcm93IGZyb20gdGhlIHNlY29uZCBwYXJ0aXRpb24gdG8gdGhlIGZpcnN0CitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgaWQgPSAnWzEsMikn IFdIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMDAtMDQtMDEnKSBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjogIGNv bmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGZr cDFfcGtleSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTAx LTAxLDIwMDAtMDQtMDEpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxp ZF9hdCk9KFsxLDIpLCBbMjAwMC0wMS0wMSwyMDAwLTA0LTAxKSkuCistLQorLS0gcGFydGl0 aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpIFdIRVJFIGlkID0gJ1s1LDYp JzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcy MDE2LTAzLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVu dF9pZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1Jywg JzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9p ZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAx LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwor ICBPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYt MDEtMDEnLCAnMjAxNi0wMi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwor VVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwor LS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKKyAgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRw MSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KKy0tCist LSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcy MDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91 bGQgZmFpbDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgorLS0KKy0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorQUxURVIgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZworICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURF OworRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtl eSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6ICB1bnN1 cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVz aW5nIFBFUklPRAorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTAorLS0KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIERFRkFVTFQKKy0tCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0n LAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m aworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworICAgIE9OIERFTEVURSBTRVQg REVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIHVuc3VwcG9ydGVkIE9O IFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9E CistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU CistLQorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworRFJP UCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmc7CistLQorLS0gRksgYmV0d2VlbiBw YXJ0aXRpb25lZCB0YWJsZXM6IG11bHRpcmFuZ2VzCistLQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UsCisgIG5hbWUgdGV4dCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJpdGlvbmVkX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAx IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFZBTFVFUyBJ TiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEs MTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIx LDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMp JywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdb MTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAn WzI0LDI1KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChp ZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSksICdvbmUnKSwKKyAgKCdb MSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAz LTAxJykpLCAnb25lJyksCisgICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKSwgJ3R3bycpOworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKykgUEFSVElU SU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBGT1IgVkFMVUVTIElOICgnWzEs MiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAn WzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywg J1syMywyNCknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBGT1IgVkFMVUVTIElOICgnWzAsMSknLCAn WzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMp JywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywgJ1syMCwyMSknLCAnWzIyLDIz KScsICdbMjQsMjUpJyk7CistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5z ZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JykpLCAn WzEsMiknKSwKKyAgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMS0w MS0wMScsICcyMDAyLTAxLTAxJykpLCAnWzIsMyknKSwKKyAgKCdbMiwzKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JykpLCAnWzEsMikn KTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAo J1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMTAt MDItMTUnKSksICdbMSwyKScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxl ICJ0ZmtwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lk LCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTAtMDEtMDEsMjAxMC0wMi0xNSl9KSBpcyBub3Qg cHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIi4KK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JykpLCAnWzMsNCknKTsKK0VSUk9S OiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdf ZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMyw0KSwge1syMDAw LTAxLTAxLDIwMDAtMDItMTUpfSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNp bmcgdXBkYXRlcworLS0KK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcy bWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0w MS0wMScsICcyMDAwLTAyLTEzJykpIFdIRVJFIGlkID0gJ1syLDMpJzsKKy0tIG1vdmUgYSBy b3cgZnJvbSB0aGUgZmlyc3QgcGFydGl0aW9uIHRvIHRoZSBzZWNvbmQKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFNFVCBpZCA9ICdbNCw1KScgV0hF UkUgaWQgPSAnWzEsMiknOworLS0gbW92ZSBhIHJvdyBmcm9tIHRoZSBzZWNvbmQgcGFydGl0 aW9uIHRvIHRoZSBmaXJzdAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcgU0VUIGlkID0gJ1sxLDIpJyBXSEVSRSBpZCA9ICdbNCw1KSc7CistLSBzaG91 bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n IFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScs ICcyMDAwLTA0LTAxJykpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgY29uZmxpY3Rp bmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZmtwMV9wa2V5 IgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDAwLTAxLTAxLDIw MDAtMDQtMDEpfSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwge1syMDAwLTAxLTAxLDIwMDAtMDQtMDEpfSkuCistLQorLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSks ICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0w My0wMScpKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBzaG91 bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKSkKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfcGFyZW50 X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtb MjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyIuCistLQorLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKSk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJ Q1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcKKyAgT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEn KSkpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KSBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCisgIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorICBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRh YmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19tbHRybmcybWx0cm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRl bGV0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUn LCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0g c2hvdWxkIGZhaWw6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcg V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfcGFyZW50X2lkX3ZhbGlk X2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyIuCistLQorLS0gcGFydGl0aW9uZWQg RksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBE QVRFIENBU0NBREU7CitFUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLQorLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCistLQorLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLQorQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZworICAgIE9OIERFTEVURSBTRVQgTlVMTCBP TiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rp b24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLQorLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorLS0KKy0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK0FMVEVS IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWzAsMSknLAorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maworICAg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZworICAgIE9OIERFTEVURSBTRVQgREVG QVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQ REFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECist LQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCist LQorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7CiBSRVNFVCBkYXRlc3R5 bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4 IGUwNWZhMWQwMGMwLi45NDNlZGYzZGE2MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTkyMCw0ICs5MjAsMTIzOCBAQCBTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRB QkxFIHRlbXBvcmFsX21sdHJuZzM7CiAKKy0tCistLSB0ZXN0IEZLIGRlcGVuZGVuY2llcwor LS0KKworLS0gY2FuJ3QgZHJvcCBhIHJhbmdlIHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVz cyB3aXRoIENBU0NBREUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWwzIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9Q IENPTFVNTiB2YWxpZF9hdCBDQVNDQURFOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZ LCByYW5nZSByZWZlcmVuY2VzIHJhbmdlCistLQorCistLSB0ZXN0IHRhYmxlIHNldHVwCitE Uk9QIFRBQkxFIHRlbXBvcmFsX3JuZzsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKGlk IGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X3JuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKworLS0gQ2FuJ3QgY3JlYXRlIGEg Rksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGludDRyYW5nZSwK KyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX3BrMiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsyIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CisKKy0tIHdvcmtzOiBQRVJJT0QgZm9yIGJvdGgg cmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKKwor LS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgorCistLSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5D RVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlk LCB2YWxpZF9hdCkKKy0tIGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0 IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQg c3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOwor LS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9S RUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFu Z2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7Cist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcgKGlkKQorKTsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50 NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworLS0gd2l0aCBp bmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJh bmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZworKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKKy0tIChwYXJlbnRfaWQp IFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNl IG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcg KGlkLCBQRVJJT0QgaWQpCispOworCistLSBUd28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFC TEUgdGVtcG9yYWxfcm5nMjsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKKyAgaWQx IGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrMl9ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2Us CisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVS SU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycm5nCitEUk9QIFRBQkxF IHRlbXBvcmFsX2ZrMl9ybmcycm5nOworCistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQg Q09OU1RSQUlOVAorLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28g c2NhbGFyIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkMSBp bnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxf ZmsyX3JuZzJybmcKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0 YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKyAg QUxURVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUgdHNyYW5nZSBVU0lORyB0c3JhbmdlKGxvd2Vy KHZhbGlkX2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBBTFRF UiBDT0xVTU4gdmFsaWRfYXQgVFlQRSBkYXRlcmFuZ2UgVVNJTkcgZGF0ZXJhbmdlKGxvd2Vy KHZhbGlkX2F0KTo6ZGF0ZSwgdXBwZXIodmFsaWRfYXQpOjpkYXRlKTsKKworLS0gd2l0aCBp bmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m aworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxp Y2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsyCisgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFs cmVhZHkKKy0tCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAx OC0wMi0wMycpKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0JykpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7 CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpLCAnWzEsMiknKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyks ICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzsKKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CisKKy0tCist LSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9ma19ybmcycm5nX2ZrJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5z ZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDItMDEnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyksICdb MSwyKScpOworLS0gbm93IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAy LTAzJywgJzIwMTgtMDMtMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAnWzEsMiknKTsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKworLS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3Nz IGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJybmcg U0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMjAnKSBX SEVSRSBpZCA9ICdbMSwyKSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9m a19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTA1LTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOworVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJy bmcgU0VUIHBhcmVudF9pZCA9ICdbOCw5KScgV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBB TFRFUiBGSyBERUZFUlJBQkxFCisKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsNCkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVS UkVEOworCisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7 IC0tc2hvdWxkIG5vdCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4K KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisgIE9O IFVQREFURSBOTyBBQ1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1 c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpIFdIRVJFIGlk ID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2gg dGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sz LDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0w Mi0wMScsICcyMDE2LTAzLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gQSBQSyB1cGRh dGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNiw3KScs IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwor ICAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSwgJ1s2 LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nCitTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4g bG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDEtMDUnKQorICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2VyKHZh bGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcy MDE4LTAzLTAxJykgRU5ECitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJl Y2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lO OworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAgQUxURVIgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkg REVGRVJSRUQ7CisKKyAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp OworQ09NTUlUOworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisgIE9O IFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVz ZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykgV0hFUkUgaWQg PSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0 aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0Ogor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYpJywgZGF0 ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAy LTAxJywgJzIwMTYtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBBIFBLIHVwZGF0 ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNiw3KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s2LDcpJywg ZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisg ICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpLCAnWzYs NyknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBs b3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMS0wNScpCisgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFs aWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDMtMDEnKSBFTkQKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHRo YXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21t aXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgICBB TFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBERUZFUlJBQkxF IElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCisgIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFp bHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCitXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFD VElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5n OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1l cmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBu dW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNikn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScs IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBh IFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGEgUEsgZGVs ZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0 aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcK KyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBERUZF UlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2Jq ZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisgIE9OIERFTEVURSBSRVNUUklD VDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRl IHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNl ZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMg YmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVH SU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgICBBTFRFUiBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxM WSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOworUk9MTEJBQ0s7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29y ZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSB0ZXN0IE9OIFVQREFURS9ERUxF VEUgb3B0aW9ucworLS0KKworLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FE RQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUg Q0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKworLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVw ZGF0ZXMgU0VUIE5VTEwKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbOSwxMCknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcK KyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVs bCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbMTIsMTMpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n CisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICAgIE9O IERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CisKKy0tCistLSB0 ZXN0IEZPUkVJR04gS0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQorLS0K KworLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmc7CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nICggaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBk YXRlbXVsdGlyYW5nZSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBt aXNtYXRjaGVkIG11bHRpcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGludDRtdWx0aXJh bmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfcGsyIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mazIg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CisKKy0t IHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKworLS0gKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VT IHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRp cmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwg dmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIGJvdGggc2hvdWxkIHNw ZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJl bnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVj aWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJlbnRf aWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwg UEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVS SU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyk7CistLSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQpCispOworLS0gKHBhcmVudF9p ZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlbXVsdGlyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIHdpdGggaW5mZXJyZWQg UEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0 aXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZworKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZzsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9tbHRybmcKKyk7CisKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2Yg ZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVs dGlyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIGlkKQorKTsKKworLS0gVHdvIHNj YWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX21sdHJuZzI7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfbWx0cm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgcGFy ZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwg aWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CisKKy0tCistLSB0 ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2Zr CisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworCistLSBUd28g c2NhbGFyIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBw YXJlbnRfaWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisK Ky0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1u czoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mazIKKyAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCBQRVJJT0QgaWQpOworCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQor LS0KKworREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykp KSwKKyAgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycs ICcyMDE4LTA0LTA0JykpKSwKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKSwKKyAgKCdbMyw0KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CisKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpKSwgJ1sx LDIpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScpOworLS0gc2hv dWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBva2F5IGFnYWluOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsK KworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCisKK1NFTEVDVCBwZ19n ZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1l ID0gJ3RlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsnOworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2luZyBpbnNlcnRzCistLQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpKSwg J1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJykp LCAnWzEsMiknKTsKKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MicsICcyMDE4LTA0LTAxJykpLCAnWzEsMiknKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNpbmcgdXBkYXRlcworLS0KKworLS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJl bmNlZCB0cmFuc2l0aW9uOgorVVBEQVRFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDItMjAnKSkgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gc2hvdWxkIGZhaWw6CitVUERB VEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNS0wMScpKSBXSEVSRSBpZCA9 ICdbMSwyKSc7CitVUERBVEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgcGFyZW50 X2lkID0gJ1s4LDkpJyBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIEFMVEVSIEZLIERFRkVS UkFCTEUKKworQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMKKyAgICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAorICAgICgnWzUsNiknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CisgIElO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOworICBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVG RVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBzaG91bGQgZmFpbCBo ZXJlLgorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRf YXQpCisgIE9OIFVQREFURSBOTyBBQ1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2Nl ZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkgV0hFUkUgaWQgPSAnWzUs NiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVt ZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwK KyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcy MDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2Ug YmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAorICAoJ1s2LDcpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSksICdbNiw3KScpOworVVBEQVRFIHRl bXBvcmFsX21sdHJuZworU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZhbGlkX2F0 KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAxLTA1JykpCisgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIo dmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5ECitXSEVSRSBpZCA9ICdbNiw3KSc7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZDoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVj YXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47 CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgICBBTFRFUiBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgICBERUZFUlJBQkxF IElOSVRJQUxMWSBERUZFUlJFRDsKKworICBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2 LTAyLTAxJykpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0NPTU1J VDsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgT04gVVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpIFdIRVJFIGlkID0gJ1s1 LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51 bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSks CisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdl IGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JykpLCAnWzYsNyknKTsKK1VQREFURSB0 ZW1wb3JhbF9tbHRybmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9h dCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMS0wNScpKQorICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2Vy KHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykpIEVORAorV0hFUkUgaWQgPSAnWzYsNykn OworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5j ZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOwor CisgIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKKyAgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUg c2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdb Nyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIGEgUEsgZGVs ZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVu Y2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0g J1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhl IG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdb NSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAn WzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2Ug Ym90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZh aWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoK K0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgREVG RVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0NPTU1JVDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisgIE9O IERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFu Z2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBm YWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6 CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICAg IEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIERF RkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitST0xMQkFDSzsK KworLS0KKy0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiByYW5nZXMKKy0tCisK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorICBDT05TVFJBSU5U IHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBU QUJMRSB0cDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFM VUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywg J1sxMSwxMiknKTsKK0NSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNykn LCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCisg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25l JyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScp LCAndHdvJyk7CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKSBQQVJU SVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScs ICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOworQ1JF QVRFIFRBQkxFIHRma3AyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5 KScsICdbMTAsMTEpJywgJ1sxMiwxMyknKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jaW5nIGluc2VydHMKKy0tCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMSwyKScp LAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAxLTAxLTAxJywgJzIwMDItMDEtMDEnKSwg J1syLDMpJyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0w Mi0xNScpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMTAtMDItMTUn KSwgJ1sxLDIpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzMsNCknKTsKKworLS0KKy0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0tCisKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDAwLTAyLTEzJykgV0hFUkUgaWQgPSAnWzIsMyknOworLS0gbW92 ZSBhIHJvdyBmcm9tIHRoZSBmaXJzdCBwYXJ0aXRpb24gdG8gdGhlIHNlY29uZAorVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIGlkID0gJ1s0LDUpJyBXSEVS RSBpZCA9ICdbMSwyKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIHNlY29uZCBwYXJ0aXRp b24gdG8gdGhlIGZpcnN0CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBTRVQgaWQgPSAnWzEsMiknIFdIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIHNob3VsZCBmYWls OgorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDQtMDEnKSBXSEVSRSBpZCA9ICdb MSwyKSc7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8g QUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2 KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCisgIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0w MScpOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykK KyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0KKy0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m azsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nCisgIE9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpOworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykK KyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAx JywgJzIwMTYtMDItMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0KKy0tIHBhcnRp dGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0w My0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gc2hvdWxkIGZh aWw6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERQorLS0KKworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m aworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworICAgIE9OIERFTEVURSBDQVND QURFIE9OIFVQREFURSBDQVNDQURFOworCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcK KyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworCistLQorLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCistLQor LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQor CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisgIEFMVEVS IENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZworICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERB VEUgU0VUIERFRkFVTFQ7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nOwor CistLQorLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6IG11bHRpcmFuZ2VzCist LQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgbmFtZSB0ZXh0LAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfbWx0cm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1Qg KGlkKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAn WzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sx NywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJM RSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgVkFM VUVTIElOICgnWzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAn WzEwLDExKScsICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywg J1syMCwyMSknLCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgn WzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0w Mi0wMScpKSwgJ29uZScpLAorICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSksICdvbmUnKSwKKyAgKCdbMiwzKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpLCAn dHdvJyk7CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcy bWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwK KyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFC TEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgp JywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgp JywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZr cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcg Rk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4 LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4 LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOworCistLQorLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSksICdbMSwyKScpLAorICAoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAxLTAxLTAxJywgJzIwMDItMDEtMDEnKSksICdb MiwzKScpLAorICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMDAtMDItMTUnKSksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAxMC0wMi0xNScpKSwgJ1sxLDIpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpKSwgJ1szLDQpJyk7CisKKy0t CistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xMycpKSBX SEVSRSBpZCA9ICdbMiwzKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0IHBhcnRp dGlvbiB0byB0aGUgc2Vjb25kCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBTRVQgaWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIG1v dmUgYSByb3cgZnJvbSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFNFVCBpZCA9ICdbMSwy KScgV0hFUkUgaWQgPSAnWzQsNSknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wNC0wMScpKSBXSEVSRSBp ZCA9ICdbMSwyKSc7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0w Mi0wMScpKSk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKKyAgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCisgIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKSk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CisKKy0tCist LSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZworICBPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKSk7CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpIFdIRVJFIGlk ID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJykpOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx Ni0wMS0wMScsICcyMDE2LTAyLTAxJykpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBS RVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSksICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIHNob3Vs ZCBmYWlsOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBE QVRFIENBU0NBREU7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgQ0FTQ0FERQorLS0KKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTAorLS0KKworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZworICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7 CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwK Ky0tCisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWzAsMSkn LAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZworICAg IE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CisKKy0tCist LSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisK K0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0RS T1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nOworCiBSRVNFVCBkYXRlc3R5 bGU7Ci0tIAoyLjQyLjAKCg== --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0005-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v39-0005-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSAwM2RjOWVjNGFiOGU0YzI4MTk5MTA3NTBhNTI0OTBkZDQxZGIzMTViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHYzOSA1LzhdIEFkZCBzdXBwb3J0IGZ1bmNzIGZvciBGT1Ig UE9SVElPTiBPRgoKLSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoKICBUaGVzZSBq dXN0IGNhbGwgdGhlIGV4aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAgYnV0IHRoZXkg bGV0IHVzIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1cGRhdGVkL2Rl bGV0ZWQKICBpbiBhIEZPUiBQT1JUSU9OIGNvbW1hbmQuCgotIEFkZHMge211bHRpLH1yYW5n ZV93aXRob3V0X3BvcnRpb24gc3VwcG9ydCBwcm9jcwoKICBUaGVzZSByZXR1cm4gU0VUT0Yg dGhlaXIgaW5wdXQgdHlwZSBhbmQgd29yayBsaWtlIG1pbnVzIGJ1dCBkb24ndAogIGZhaWwg b24gc3BsaXRzLiBUaGV5IG5ldmVyIGNvbnRhaW4gZW1wdHkgZWxlbWVudHMuIFdlIHdpbGwg dXNlIHRoaXMgdG8KICBjb21wdXRlIEZPUiBQT1JUSU9OIE9GIGxlZnRvdmVycy4KLS0tCiBj b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU2 ICsrKysrKysrKysrKysrKystCiBkb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgICAgICAgICAg ICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFs aWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxp ZGF0ZS5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYyAgICAgICAgfCAgMzEgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4 L2FtdmFsaWRhdGUuYyAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHZhbGlkYXRlLmMgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9z cGdpc3Qvc3BndmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L211bHRpcmFuZ2V0eXBlcy5jICAgICAgIHwgIDcxICsrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jICAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysr KysrKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oICAgICAgICAgICAgICAg fCAgIDQgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAg ICAgIHwgIDE1ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAgIDggKwogc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oICAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5 cGVzLm91dCB8IDExNiArKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3JhbmdldHlwZXMub3V0ICAgICAgfCAgNTQgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9tdWx0aXJhbmdldHlwZXMuc3FsICAgICAgfCAgMjIgKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9yYW5nZXR5cGVzLnNxbCAgICAgICAgICAgfCAgMTAgKysKIDIxIGZpbGVzIGNoYW5n ZWQsIDY4MCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyBiL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5j CmluZGV4IDg4YzVhNzkxOTc1Li45ZTM5ZTM5ZTE3NCAxMDA2NDQKLS0tIGEvY29udHJpYi9i bG9vbS9ibHZhbGlkYXRlLmMKKysrIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKQEAg LTEwNSw3ICsxMDUsNyBAQCBibHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2gg KHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQkxPT01fSEFTSF9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0 T0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkxLCAxLCBvcGNr ZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQkxPT01fT1BUSU9OU19QUk9DOgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBiZmI5Nzg2NWUxOC4uYTVmZjVjOGRhNTUgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC04NjUsNyArODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJh PgogICAgICAgIFRoZSBCLXRyZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMg YWNjb3JkaW5nIHRvLCBpZiBhbgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlm IGEgc2VhcmNoIG9wZXJhdG9yCisgICAgICAgb3JkZXJpbmcgb3BlcmF0b3I7IHplcm8gaWYg YSBzZWFyY2ggb3BlcmF0b3Igb3IgcG9ydGlvbiBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZ2lzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCA2MzhkOTEy ZGMyZC4uZDAwZGY1YzVmYTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApAQCAtMjY2LDcgKzI2Niw3IEBAIENSRUFU RSBJTkRFWCBPTiBteV90YWJsZSBVU0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29w cyk7CiAKICA8cGFyYT4KICAgIFRoZXJlIGFyZSBmaXZlIG1ldGhvZHMgdGhhdCBhbiBpbmRl eCBvcGVyYXRvciBjbGFzcyBmb3IKLSAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG11c3Qg cHJvdmlkZSwgYW5kIHNldmVuIHRoYXQgYXJlIG9wdGlvbmFsLgorICAgPGFjcm9ueW0+R2lT VDwvYWNyb255bT4gbXVzdCBwcm92aWRlLCBhbmQgbmluZSB0aGF0IGFyZSBvcHRpb25hbC4K ICAgIENvcnJlY3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCiAgICBieSBwcm9wZXIg aW1wbGVtZW50YXRpb24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5j dGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4KICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1 bmN0aW9uPiBtZXRob2RzLCB3aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2Yg dGhlCkBAIC0yOTQsNiArMjk0LDEyIEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lO RyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICA8ZmlsZW5hbWU+c3JjL2lu Y2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmg8L2ZpbGVuYW1lPikgaW50byBzdHJhdGVneSBudW1i ZXJzCiAgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRoaXMgbGV0cyB0aGUgY29y ZSBjb2RlIGxvb2sgdXAgb3BlcmF0b3JzIGZvcgogICAgdGVtcG9yYWwgY29uc3RyYWludCBp bmRleGVzLgorICAgVGhlIG9wdGlvbmFsIHRoaXJ0ZWVudGggbWV0aG9kIDxmdW5jdGlvbj5p bnRlcnNlY3Q8L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5CisgICA8bGl0ZXJhbD5GT1IgUE9SVElP TiBPRjwvbGl0ZXJhbD4gdG8gY29tcHV0ZSB0aGUgbmV3IGJvdW5kcyBvZiB0aGUgdXBkYXRl ZC8KKyAgIGRlbGV0ZWQgcmVjb3JkLgorICAgVGhlIG9wdGlvbmFsIGZvdXJ0ZWVudGggbWV0 aG9kIDxmdW5jdGlvbj53aXRob3V0X3BvcnRpb248L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5Cisg ICA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gdG8gY29tcHV0ZSB0aGUgbGVm dG92ZXIgcmVjb3JkcyBvdXRzaWRlIHRoZQorICAgdGFyZ2V0ZWQgYm91bmRzLgogIDwvcGFy YT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBAIC0xMjM1LDYgKzEyNDEsMTU0IEBAIG15X3N0cmF0 bnVtKFBHX0ZVTkNUSU9OX0FSR1MpCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+ PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFz cywgaXQgcmV0dXJucyB0aGVpciBpbnRlcnNlY3Rpb24uCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBUaGlzIGlzIHVzZWQgZm9yIHRlbXBvcmFsIHVwZGF0ZSBjb21t YW5kcyB0byBjb21wdXRlIHRoZQorICAgICAgIG5ldyBib3VuZHMgb2YgdGhlIGNoYW5nZWQg cm93LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29r IGxpa2UKKyAgICAgICB0aGlzICh1c2luZyA8bGl0ZXJhbD5teV9pbnRlcnNlY3Q8L2xpdGVy YWw+IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBteV9yYW5nZV9pbnRlcnNlY3QoYW55cmFuZ2UsIGFueXJhbmdlKQor UkVUVVJOUyBhbnlyYW5nZQorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RS SUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJh PgorICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhl biBmb2xsb3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEYXR1bQorbXlf cmFuZ2VfaW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgUmFuZ2VUeXBlICAq cjEgPSBQR19HRVRBUkdfUkFOR0VfUCgwKTsKKyAgICBSYW5nZVR5cGUgICpyMiA9IFBHX0dF VEFSR19SQU5HRV9QKDEpOworICAgIFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworICAg IC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdFIG1h dGNoaW5nIHJ1bGVzICovCisgICAgaWYgKFJhbmdlVHlwZUdldE9pZChyMSkgIT0gUmFuZ2VU eXBlR2V0T2lkKHIyKSkKKyAgICAgICAgZWxvZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5v dCBtYXRjaCIpOworCisgICAgdHlwY2FjaGUgPSByYW5nZV9nZXRfdHlwY2FjaGUoZmNpbmZv LCBSYW5nZVR5cGVHZXRPaWQocjEpKTsKKworICAgIFBHX1JFVFVSTl9SQU5HRV9QKHJhbmdl X2ludGVyc2VjdF9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyKSk7Cit9Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlz dGVudHJ5PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj53aXRo b3V0X3BvcnRpb248L2Z1bmN0aW9uPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgR2l2ZW4gdHdvIHZhbHVlcyBvZiB0aGlzIG9wY2xhc3MsIGl0IHN1 YnRyYWN0cyB0aGUgc2Vjb25kIGZvciB0aGUgZmlyc3QKKyAgICAgICBhbmQgcmV0dXJucyBh biBhcnJheSBvZiB0aGUgcmVzdWx0cy4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoaXMgaXMgdXNlZCBmb3IgdGVtcG9yYWwgdXBkYXRlL2RlbGV0ZSBjb21tYW5k cyB0byBjb21wdXRlIHRoZQorICAgICAgIGJvdW5kcyBvZiB0aGUgdW50b3VjaGVkIGR1cmF0 aW9uLgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29r IGxpa2UKKyAgICAgICB0aGlzICh1c2luZyA8bGl0ZXJhbD5teV9yYW5nZV93aXRob3V0X3Bv cnRpb248L2xpdGVyYWw+IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBteV9yYW5nZV93aXRob3V0X3BvcnRpb24oYW55 cmFuZ2UsIGFueXJhbmdlKQorUkVUVVJOUyBhbnlhcnJheQorQVMgJ01PRFVMRV9QQVRITkFN RScKK0xBTkdVQUdFIEMgU1RSSUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUg QyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxp c3Rpbmc+CitEYXR1bQorbXlfcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisgICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBSYW5nZVR5cGUgICpyc1sy XTsKKyAgICAgICAgaW50ICAgICAgICAgbjsKKyAgICB9IHJhbmdlX3dpdGhvdXRfcG9ydGlv bl9mY3R4OworCisgICAgRnVuY0NhbGxDb250ZXh0ICpmdW5jY3R4OworICAgIHJhbmdlX3dp dGhvdXRfcG9ydGlvbl9mY3R4ICpmY3R4OworICAgIE1lbW9yeUNvbnRleHQgb2xkY29udGV4 dDsKKworICAgIC8qIHN0dWZmIGRvbmUgb25seSBvbiB0aGUgZmlyc3QgY2FsbCBvZiB0aGUg ZnVuY3Rpb24gKi8KKyAgICBpZiAoU1JGX0lTX0ZJUlNUQ0FMTCgpKQorICAgIHsKKyAgICAg ICAgUmFuZ2VUeXBlICAgICAgICpyMTsKKyAgICAgICAgUmFuZ2VUeXBlICAgICAgICpyMjsK KyAgICAgICAgT2lkICAgICAgICAgICAgICBybmd0eXBpZDsKKyAgICAgICAgVHlwZUNhY2hl RW50cnkgICp0eXBjYWNoZTsKKworICAgICAgICAvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250 ZXh0IGZvciBjcm9zcy1jYWxsIHBlcnNpc3RlbmNlICovCisgICAgICAgIGZ1bmNjdHggPSBT UkZfRklSU1RDQUxMX0lOSVQoKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBzd2l0Y2gg dG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9uIGNh bGxzCisgICAgICAgICAqLworICAgICAgICBvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3 aXRjaFRvKGZ1bmNjdHgtJmd0O211bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKyAgICAgICAg cjEgPSBQR19HRVRBUkdfUkFOR0VfUCgwKTsKKyAgICAgICAgcjIgPSBQR19HRVRBUkdfUkFO R0VfUCgxKTsKKworICAgICAgICAvKiBEaWZmZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZl bnRlZCBieSBBTllSQU5HRSBtYXRjaGluZyBydWxlcyAqLworICAgICAgICBpZiAoUmFuZ2VU eXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIpKQorICAgICAgICAgICAgZWxv ZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRjaCIpOworCisgICAgICAgIC8qIGFs bG9jYXRlIG1lbW9yeSBmb3IgdXNlciBjb250ZXh0ICovCisgICAgICAgIGZjdHggPSAocmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRob3V0 X3BvcnRpb25fZmN0eCkpOworCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRpYWxpemUg c3RhdGUuCisgICAgICAgICAqIFdlIGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBp biBmbl9leHRyYSBiZWNhdXNlIHRoZSBjYWxsZXIKKyAgICAgICAgICogdXNlcyB0aGF0IGZv ciB0aGUgU1JGIHN0YXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcm5ndHlwaWQgPSBSYW5n ZVR5cGVHZXRPaWQocjEpOworICAgICAgICB0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hl KHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisgICAgICAgIGlmICh0eXBjYWNo ZS0mZ3Q7cm5nZWxlbXR5cGUgPT0gTlVMTCkKKyAgICAgICAgICAgIGVsb2coRVJST1IsICJ0 eXBlICV1IGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisgICAgICAgIHJhbmdl X3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LSZndDty cywgJmFtcDtmY3R4LSZndDtuKTsKKworICAgICAgICBmdW5jY3R4LSZndDt1c2VyX2ZjdHgg PSBmY3R4OworICAgICAgICBNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7Cisg ICAgfQorCisgICAgLyogc3R1ZmYgZG9uZSBvbiBldmVyeSBjYWxsIG9mIHRoZSBmdW5jdGlv biAqLworICAgIGZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworICAgIGZjdHggPSBm dW5jY3R4LSZndDt1c2VyX2ZjdHg7CisKKyAgICBpZiAoZnVuY2N0eC0mZ3Q7Y2FsbF9jbnRy ICZsdDsgZmN0eC0mZ3Q7bikKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIG11 c3Qga2VlcCB0aGVzZSBvbiBzZXBhcmF0ZSBsaW5lcworICAgICAgICAgKiBiZWNhdXNlIFNS Rl9SRVRVUk5fTkVYVCBkb2VzIGNhbGxfY250cisrOgorICAgICAgICAgKi8KKyAgICAgICAg UmFuZ2VUeXBlICpyZXQgPSBmY3R4LSZndDtyc1tmdW5jY3R4LSZndDtjYWxsX2NudHJdOwor ICAgICAgICBTUkZfUkVUVVJOX05FWFQoZnVuY2N0eCwgUmFuZ2VUeXBlUEdldERhdHVtKHJl dCkpOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIC8qIGRvIHdoZW4gdGhlcmUgaXMgbm8g bW9yZSBsZWZ0ICovCisgICAgICAgIFNSRl9SRVRVUk5fRE9ORShmdW5jY3R4KTsKK30KKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC92YXJsaXN0ZW50cnk+CiAgIDwvdmFyaWFibGVsaXN0PgogCiAgIDxwYXJhPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5z Z21sCmluZGV4IDNhMTlkYWIxNWUwLi40ODdhNTdiZjAxNSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3hpbmRleC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC94aW5kZXguc2dtbApAQCAt NTA4LDcgKzUwOCw3IEBACiAgICA8L3RhYmxlPgogCiAgIDxwYXJhPgotICAgR2lTVCBpbmRl eGVzIGhhdmUgdHdlbHZlIHN1cHBvcnQgZnVuY3Rpb25zLCBzZXZlbiBvZiB3aGljaCBhcmUg b3B0aW9uYWwsCisgICBHaVNUIGluZGV4ZXMgaGF2ZSBmb3VydGVlbiBzdXBwb3J0IGZ1bmN0 aW9ucywgbmluZSBvZiB3aGljaCBhcmUgb3B0aW9uYWwsCiAgICBhcyBzaG93biBpbiA8eHJl ZiBsaW5rZW5kPSJ4aW5kZXgtZ2lzdC1zdXBwb3J0LXRhYmxlIi8+LgogICAgKEZvciBtb3Jl IGluZm9ybWF0aW9uIHNlZSA8eHJlZiBsaW5rZW5kPSJnaXN0Ii8+LikKICAgPC9wYXJhPgpA QCAtNTk2LDYgKzU5NiwxOCBAQAogICAgICAgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFz cyAob3B0aW9uYWwpPC9lbnRyeT4KICAgICAgICA8ZW50cnk+MTI8L2VudHJ5PgogICAgICAg PC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48ZnVuY3Rpb24+aW50ZXJzZWN0 PC9mdW5jdGlvbj48L2VudHJ5PgorICAgICAgIDxlbnRyeT5jb21wdXRlcyBpbnRlcnNlY3Rp b24gd2l0aCA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4KKyAgICAgICAgYm91 bmRzIChvcHRpb25hbCk8L2VudHJ5PgorICAgICAgIDxlbnRyeT4xMzwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj53aXRob3V0 X3BvcnRpb248L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PmNvbXB1dGVzIHJl bWFpbmluZyBkdXJhdGlvbihzKSBvdXRzaWRlCisgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJ T04gT0Y8L2xpdGVyYWw+IGJvdW5kcyAob3B0aW9uYWwpPC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+MTQ8L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAgPC90Z3Jv dXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4v YnJpbl92YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0 ZS5jCmluZGV4IDUzOWFjOWNiMDY0Li4wODJmOTZiODQ3ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwpAQCAtODcsMjEgKzg3LDIxIEBAIGJyaW52YWxp ZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQog CQl7CiAJCQljYXNlIEJSSU5fUFJPQ05VTV9PUENJTkZPOgotCQkJCW9rID0gY2hlY2tfYW1w cm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJO QUxPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJ CQkJYnJlYWs7CiAJCQljYXNlIEJSSU5fUFJPQ05VTV9BRERWQUxVRToKLQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwK KwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9P TE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTQsIDQsIElOVEVSTkFMT0lELCBJTlRF Uk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQli cmVhazsKIAkJCWNhc2UgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQ6Ci0JCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xP SUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkzLCA0LCBJTlRFUk5BTE9JRCwgSU5URVJO QUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lELCBJTlQ0T0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgQlJJTl9QUk9DTlVNX1VOSU9OOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwg dHJ1ZSwKIAkJCQkJCQkJCQkJMywgMywgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJ CQkJCQkJCQlJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2luL2dpbnZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lu L2dpbnZhbGlkYXRlLmMKaW5kZXggNzQ0MjBhMTI5YWEuLjc0OGI5NGE4OTNmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhbGlkYXRlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpbi9naW52YWxpZGF0ZS5jCkBAIC0xMDQsMzcgKzEwNCwzNyBAQCBn aW52YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9j bnVtKQogCQl7CiAJCQljYXNlIEdJTl9DT01QQVJFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLAorCQkJ CW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lE LCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTIsIDIsIG9wY2tleXR5cGUsIG9wY2tleXR5 cGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fRVhUUkFDVFZBTFVFX1BST0M6CiAJCQkJ LyogU29tZSBvcGNsYXNzZXMgb21pdCBudWxsRmxhZ3MgKi8KLQkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLAor CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRF Uk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkyLCAzLCBvcGNpbnR5cGUsIElO VEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJTl9FWFRSQUNUUVVFUllfUFJPQzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0 IG51bGxGbGFncyBhbmQgc2VhcmNoTW9kZSAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lE LCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTUsIDcsIG9wY2ludHlwZSwgSU5URVJOQUxP SUQsCiAJCQkJCQkJCQkJCUlOVDJPSUQsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJ CQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNh c2UgR0lOX0NPTlNJU1RFTlRfUFJPQzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0IHF1 ZXJ5S2V5cyBhbmQgbnVsbEZsYWdzICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgZmFs c2UsCiAJCQkJCQkJCQkJCTYsIDgsIElOVEVSTkFMT0lELCBJTlQyT0lELAogCQkJCQkJCQkJ CQlvcGNpbnR5cGUsIElOVDRPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lELCBJTlRFUk5B TE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgR0lOX0NPTVBBUkVfUEFSVElBTF9QUk9DOgotCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9J RCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk0LCA0LCBvcGNrZXl0eXBlLCBvcGNrZXl0 eXBlLAogCQkJCQkJCQkJCQlJTlQyT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEdJTl9UUklDT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIENIQVJPSUQsIGZhbHNlLAorCQkJCW9rID0g Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBDSEFST0lELCBmYWxz ZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTcsIDcsIElOVEVSTkFMT0lELCBJTlQyT0lELAogCQkJ CQkJCQkJCQlvcGNpbnR5cGUsIElOVDRPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lELCBJ TlRFUk5BTE9JRCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKaW5k ZXggMDkwMTU0M2E2MGEuLmUxYWQ2NWI5YTRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dmFsaWRhdGUuYwpAQCAtMTA2LDM2ICsxMDYsMzYgQEAgZ2lzdHZhbGlkYXRlKE9p ZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJ CWNhc2UgR0lTVF9DT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwg ZmFsc2UsCiAJCQkJCQkJCQkJCTUsIDUsIElOVEVSTkFMT0lELCBvcGNpbnR5cGUsCiAJCQkJ CQkJCQkJCUlOVDJPSUQsIE9JRE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSBHSVNUX1VOSU9OX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIG9wY2tleXR5cGUsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBvcGNrZXl0eXBlLCBmYWxzZSwg ZmFsc2UsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJ CQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfQ09NUFJFU1NfUFJPQzoKIAkJCWNhc2UgR0lTVF9E RUNPTVBSRVNTX1BST0M6CiAJCQljYXNlIEdJU1RfRkVUQ0hfUFJPQzoKLQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRy dWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2Ms IElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxP SUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNUX1BFTkFMVFlfUFJPQzoKLQkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQs IHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMywgMywgSU5URVJO QUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJl YWs7CiAJCQljYXNlIEdJU1RfUElDS1NQTElUX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJ CW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5B TE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRF Uk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfRVFVQUxfUFJPQzoKLQkJCQlv ayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxP SUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkzLCAzLCBv cGNrZXl0eXBlLCBvcGNrZXl0eXBlLAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCk7CiAJCQkJ YnJlYWs7CiAJCQljYXNlIEdJU1RfRElTVEFOQ0VfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgRkxPQVQ4T0lELCBmYWxzZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgRkxPQVQ4 T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTUsIDUsIElOVEVSTkFMT0lELCBvcGNp bnR5cGUsCiAJCQkJCQkJCQkJCUlOVDJPSUQsIE9JRE9JRCwgSU5URVJOQUxPSUQpOwogCQkJ CWJyZWFrOwpAQCAtMTQzLDEzICsxNDMsMjEgQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNz b2lkKQogCQkJCW9rID0gY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYyk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfU09SVFNVUFBPUlRfUFJPQzoKLQkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9J RCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFM T0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9TVFJBVE5VTV9QUk9DOgotCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQyT0lELCB0 cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBJTlQyT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5UMk9JRCk7CiAJ CQkJYnJlYWs7CisJCQljYXNlIEdJU1RfSU5URVJTRUNUX1BST0M6CisJCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEludmFsaWRPaWQsIGZhbHNl LCB0cnVlLAorCQkJCQkJCQkJCQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJCQkJ YnJlYWs7CisJCQljYXNlIEdJU1RfV0lUSE9VVF9QT1JUSU9OX1BST0M6CisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIG9wY2ludHlwZSwgdHJ1 ZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJMiwgMiwgb3BjaW50eXBlLCBvcGNpbnR5cGUpOworCQkJ CWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQllcmVwb3J0KElORk8sCiAJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLApAQCAtMjcxLDcgKzI3OSw4 IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJaWYgKGkgPT0gR0lTVF9ESVNU QU5DRV9QUk9DIHx8IGkgPT0gR0lTVF9GRVRDSF9QUk9DIHx8CiAJCQlpID09IEdJU1RfQ09N UFJFU1NfUFJPQyB8fCBpID09IEdJU1RfREVDT01QUkVTU19QUk9DIHx8CiAJCQlpID09IEdJ U1RfT1BUSU9OU19QUk9DIHx8IGkgPT0gR0lTVF9TT1JUU1VQUE9SVF9QUk9DIHx8Ci0JCQlp ID09IEdJU1RfU1RSQVROVU1fUFJPQykKKwkJCWkgPT0gR0lTVF9TVFJBVE5VTV9QUk9DIHx8 IGkgPT0gR0lTVF9JTlRFUlNFQ1RfUFJPQyB8fAorCQkJaSA9PSBHSVNUX1dJVEhPVVRfUE9S VElPTl9QUk9DKQogCQkJY29udGludWU7CQkJLyogb3B0aW9uYWwgbWV0aG9kcyAqLwogCQll cmVwb3J0KElORk8sCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJ TklUSU9OKSwKQEAgLTM0NCw2ICszNTMsOCBAQCBnaXN0YWRqdXN0bWVtYmVycyhPaWQgb3Bm YW1pbHlvaWQsCiAJCQljYXNlIEdJU1RfT1BUSU9OU19QUk9DOgogCQkJY2FzZSBHSVNUX1NP UlRTVVBQT1JUX1BST0M6CiAJCQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKKwkJCWNhc2Ug R0lTVF9JTlRFUlNFQ1RfUFJPQzoKKwkJCWNhc2UgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJP QzoKIAkJCQkvKiBPcHRpb25hbCwgc28gZm9yY2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBk ZXBlbmRlbmN5ICovCiAJCQkJb3AtPnJlZl9pc19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJl Zl9pc19mYW1pbHkgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2FtdmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRl LmMKaW5kZXggMzJiYjQ3N2YzMjguLmIxMDMwOGI5YjY2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9pbmRleC9hbXZhbGlkYXRlLmMKQEAgLTE0OSw3ICsxNDksNyBAQCBpZGVudGlmeV9vcGZh bWlseV9ncm91cHMoQ2F0Q0xpc3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCkKICAq IEluIGFueSBjYXNlIHRoZSBmdW5jdGlvbiByZXN1bHQgdHlwZSBtdXN0IG1hdGNoIHJlc3R5 cGUgZXhhY3RseS4KICAqLwogYm9vbAotY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVu Y2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKK2NoZWNrX2FtcHJvY19zaWduYXR1cmUo T2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgcmV0c2V0LCBib29sIGV4YWN0LAogCQkJ CQkgICBpbnQgbWluYXJncywgaW50IG1heGFyZ3MsLi4uKQogewogCWJvb2wJCXJlc3VsdCA9 IHRydWU7CkBAIC0xNjMsOCArMTYzLDkgQEAgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQg ZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKIAkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKIAlwcm9jZm9ybSA9 IChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0cCk7CiAKLQlpZiAocHJvY2Zvcm0tPnByb3Jl dHR5cGUgIT0gcmVzdHlwZSB8fCBwcm9jZm9ybS0+cHJvcmV0c2V0IHx8Ci0JCXByb2Nmb3Jt LT5wcm9uYXJncyA8IG1pbmFyZ3MgfHwgcHJvY2Zvcm0tPnByb25hcmdzID4gbWF4YXJncykK KwlpZiAoKHByb2Nmb3JtLT5wcm9yZXR0eXBlICE9IHJlc3R5cGUgJiYgT2lkSXNWYWxpZChy ZXN0eXBlKSkKKwkJfHwgcHJvY2Zvcm0tPnByb3JldHNldCAhPSByZXRzZXQgfHwgcHJvY2Zv cm0tPnByb25hcmdzIDwgbWluYXJncworCQl8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPiBtYXhh cmdzKQogCQlyZXN1bHQgPSBmYWxzZTsKIAogCXZhX3N0YXJ0KGFwLCBtYXhhcmdzKTsKQEAg LTE5MSw3ICsxOTIsNyBAQCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9p ZCByZXN0eXBlLCBib29sIGV4YWN0LAogYm9vbAogY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1 cmUoT2lkIGZ1bmNpZCkKIHsKLQlyZXR1cm4gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShmdW5j aWQsIFZPSURPSUQsIHRydWUsIDEsIDEsIElOVEVSTkFMT0lEKTsKKwlyZXR1cm4gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShmdW5jaWQsIFZPSURPSUQsIGZhbHNlLCB0cnVlLCAxLCAxLCBJ TlRFUk5BTE9JRCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZh bGlkYXRlLmMKaW5kZXggZTlkNGNkNjBkZTMuLjA0ZTQzZWYxZGNlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jCkBAIC05MSwxNiArOTEsMTYgQEAgYnR2 YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVt KQogCQl7CiAJCQljYXNlIEJUT1JERVJfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2Us IHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSwKIAkJ CQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY3JpZ2h0dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEJUU09SVFNVUFBPUlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUs CiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2Ug QlRJTlJBTkdFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJ CQkJCQk1LCA1LAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsCiAJCQkJ CQkJCQkJCXByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSwKQEAgLTEwOCw3ICsxMDgsNyBAQCBi dHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQkJCQkJCQkJCQlCT09MT0lELCBCT09MT0lE KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRFUVVBTElNQUdFX1BST0M6Ci0JCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUs CisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJP T0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBPSURPSUQpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBCVE9QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BndmFsaWRhdGUuYwppbmRleCA4NTBjM2I2NzVkNi4uZjdhMzk3Y2I4Y2YgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMKQEAgLTEwOSw3ICsxMDks NyBAQCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+ YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIFNQR0lTVF9DT05GSUdfUFJPQzoKLQkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1 ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg Vk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJ TlRFUk5BTE9JRCk7CiAJCQkJY29uZmlnSW4uYXR0VHlwZSA9IHByb2Nmb3JtLT5hbXByb2Ns ZWZ0dHlwZTsKIAkJCQltZW1zZXQoJmNvbmZpZ091dCwgMCwgc2l6ZW9mKGNvbmZpZ091dCkp OwpAQCAtMTY0LDExICsxNjQsMTEgQEAgc3BndmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJ CQljYXNlIFNQR0lTVF9DSE9PU0VfUFJPQzoKIAkJCWNhc2UgU1BHSVNUX1BJQ0tTUExJVF9Q Uk9DOgogCQkJY2FzZSBTUEdJU1RfSU5ORVJfQ09OU0lTVEVOVF9QUk9DOgotCQkJCW9rID0g Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVl LAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBW T0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElO VEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX0xFQUZfQ09OU0lTVEVO VF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwg MiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BH SVNUX0NPTVBSRVNTX1BST0M6CkBAIC0xNzcsNyArMTc3LDcgQEAgc3BndmFsaWRhdGUoT2lk IG9wY2xhc3NvaWQpCiAJCQkJCW9rID0gZmFsc2U7CiAJCQkJZWxzZQogCQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywKLQkJCQkJCQkJCQkJCWNv bmZpZ091dExlYWZUeXBlLCB0cnVlLAorCQkJCQkJCQkJCQkJY29uZmlnT3V0TGVhZlR5cGUs IGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkJMSwgMSwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0 eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX09QVElPTlNfUFJPQzoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYwppbmRleCA1NThjNmMxOGMzNC4u OGY3MjJiNjcyMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJh bmdldHlwZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVz LmMKQEAgLTEyMjUsNiArMTIyNSw3NyBAQCBtdWx0aXJhbmdlX21pbnVzX2ludGVybmFsKE9p ZCBtbHRybmd0eXBvaWQsIFR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5cCwKIAlyZXR1cm4gbWFr ZV9tdWx0aXJhbmdlKG1sdHJuZ3R5cG9pZCwgcmFuZ2V0eXAsIHJhbmdlX2NvdW50MywgcmFu Z2VzMyk7CiB9CiAKKy8qCisgKiBtdWx0aXJhbmdlIG1pbnVzIGJ1dCByZXR1cm5pbmcgdGhl IHJlc3VsdCBhcyBhIFNSRiwKKyAqIHdpdGggbm8gcm93cyBpZiB0aGUgcmVzdWx0IHdvdWxk IGJlIGVtcHR5LgorICovCitEYXR1bQorbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oUEdf RlVOQ1RJT05fQVJHUykKK3sKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisJTWVtb3J5 Q29udGV4dCBvbGRjb250ZXh0OworCisJaWYgKCFTUkZfSVNfRklSU1RDQUxMKCkpCisJewor CQkvKiBXZSBuZXZlciBoYXZlIG1vcmUgdGhhbiBvbmUgcmVzdWx0ICovCisJCWZ1bmNjdHgg PSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7CisJ fQorCWVsc2UKKwl7CisJCU11bHRpcmFuZ2VUeXBlICptcjE7CisJCU11bHRpcmFuZ2VUeXBl ICptcjI7CisJCU9pZAkJCW1sdHJuZ3R5cG9pZDsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNh Y2hlOworCQlUeXBlQ2FjaGVFbnRyeSAqcmFuZ2V0eXA7CisJCWludDMyCQlyYW5nZV9jb3Vu dDE7CisJCWludDMyCQlyYW5nZV9jb3VudDI7CisJCVJhbmdlVHlwZSAqKnJhbmdlczE7CisJ CVJhbmdlVHlwZSAqKnJhbmdlczI7CisJCU11bHRpcmFuZ2VUeXBlICptcjsKKworCQlmdW5j Y3R4ID0gU1JGX0ZJUlNUQ0FMTF9JTklUKCk7CisKKwkJLyoKKwkJICogc3dpdGNoIHRvIG1l bW9yeSBjb250ZXh0IGFwcHJvcHJpYXRlIGZvciBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscwor CQkgKi8KKwkJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhmdW5jY3R4LT5t dWx0aV9jYWxsX21lbW9yeV9jdHgpOworCisJCS8qIGdldCBhcmdzLCBkZXRvYXN0aW5nIGlu dG8gbXVsdGktY2FsbCBtZW1vcnkgY29udGV4dCAqLworCQltcjEgPSBQR19HRVRBUkdfTVVM VElSQU5HRV9QKDApOworCQltcjIgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDEpOworCisJ CW1sdHJuZ3R5cG9pZCA9IE11bHRpcmFuZ2VUeXBlR2V0T2lkKG1yMSk7CisJCXR5cGNhY2hl ID0gbG9va3VwX3R5cGVfY2FjaGUobWx0cm5ndHlwb2lkLCBUWVBFQ0FDSEVfTVVMVElSQU5H RV9JTkZPKTsKKwkJaWYgKHR5cGNhY2hlLT5ybmd0eXBlID09IE5VTEwpCisJCQllbG9nKEVS Uk9SLCAidHlwZSAldSBpcyBub3QgYSBtdWx0aXJhbmdlIHR5cGUiLCBtbHRybmd0eXBvaWQp OworCQlyYW5nZXR5cCA9IHR5cGNhY2hlLT5ybmd0eXBlOworCisJCWlmIChNdWx0aXJhbmdl SXNFbXB0eShtcjEpIHx8IE11bHRpcmFuZ2VJc0VtcHR5KG1yMikpCisJCQltciA9IG1yMTsK KwkJZWxzZQorCQl7CisJCQltdWx0aXJhbmdlX2Rlc2VyaWFsaXplKHJhbmdldHlwLCBtcjEs ICZyYW5nZV9jb3VudDEsICZyYW5nZXMxKTsKKwkJCW11bHRpcmFuZ2VfZGVzZXJpYWxpemUo cmFuZ2V0eXAsIG1yMiwgJnJhbmdlX2NvdW50MiwgJnJhbmdlczIpOworCisJCQltciA9IG11 bHRpcmFuZ2VfbWludXNfaW50ZXJuYWwobWx0cm5ndHlwb2lkLAorCQkJCQkJCQkJCSAgIHJh bmdldHlwLAorCQkJCQkJCQkJCSAgIHJhbmdlX2NvdW50MSwKKwkJCQkJCQkJCQkgICByYW5n ZXMxLAorCQkJCQkJCQkJCSAgIHJhbmdlX2NvdW50MiwKKwkJCQkJCQkJCQkgICByYW5nZXMy KTsKKwkJfQorCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCQlm dW5jY3R4ID0gU1JGX1BFUkNBTExfU0VUVVAoKTsKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5 KG1yKSkKKwkJCVNSRl9SRVRVUk5fRE9ORShmdW5jY3R4KTsKKwkJZWxzZQorCQkJU1JGX1JF VFVSTl9ORVhUKGZ1bmNjdHgsIE11bHRpcmFuZ2VUeXBlUEdldERhdHVtKG1yKSk7CisJfQor fQorCiAvKiBtdWx0aXJhbmdlIGludGVyc2VjdGlvbiAqLwogRGF0dW0KIG11bHRpcmFuZ2Vf aW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlw ZXMuYwppbmRleCAyZDk0YTZiODc3NC4uY2QwZmZlMjMxZTMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3JhbmdldHlwZXMuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKICNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5o IgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW5j bHVkZSAib3B0aW1pemVyL2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY29zdC5o IgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMv ZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMTIxMyw2ICsxMjE1 LDE2NyBAQCByYW5nZV9zcGxpdF9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUs IGNvbnN0IFJhbmdlVHlwZSAqcjEsIGNvbnN0IFJhbmdlVAogCXJldHVybiBmYWxzZTsKIH0K IAorLyogc3VidHJhY3Rpb24gYnV0IHJldHVybmluZyBhbiBhcnJheSB0byBhY2NvbW1vZGF0 ZSBzcGxpdHMgKi8KK0RhdHVtCityYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05f QVJHUykKK3sKKwl0eXBlZGVmIHN0cnVjdCB7CisJCVJhbmdlVHlwZSAgKnJzWzJdOworCQlp bnQJCQluOworCX0gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKwlGdW5jQ2FsbENv bnRleHQgKmZ1bmNjdHg7CisJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisJ TWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRo ZSBmaXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworCWlmIChTUkZfSVNfRklSU1RDQUxM KCkpCisJeworCQlSYW5nZVR5cGUJICAgKnIxOworCQlSYW5nZVR5cGUJICAgKnIyOworCQlP aWQJCQkJcm5ndHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworCQkvKiBj cmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1jYWxsIHBlcnNpc3RlbmNlICov CisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKworCQkvKgorCQkgKiBzd2l0 Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9u IGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1 bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJcjEgPSBQR19HRVRBUkdfUkFO R0VfUCgwKTsKKwkJcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworCQkvKiBEaWZmZXJl bnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5HRSBtYXRjaGluZyBydWxl cyAqLworCQlpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIp KQorCQkJZWxvZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRjaCIpOworCisJCS8q IGFsbG9jYXRlIG1lbW9yeSBmb3IgdXNlciBjb250ZXh0ICovCisJCWZjdHggPSAocmFuZ2Vf d2l0aG91dF9wb3J0aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRob3V0X3Bv cnRpb25fZmN0eCkpOworCisJCS8qCisJCSAqIEluaXRpYWxpemUgc3RhdGUuCisJCSAqIFdl IGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNhdXNlIHRo ZSBjYWxsZXIKKwkJICogdXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRlLgorCQkgKi8KKwkJ cm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEpOworCQl0eXBjYWNoZSA9IGxvb2t1cF90 eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisJCWlmICh0eXBj YWNoZS0+cm5nZWxlbXR5cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlz IG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisJCXJhbmdlX3dpdGhvdXRfcG9ydGlv bl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LT5ycywgJmZjdHgtPm4pOworCisJ CWZ1bmNjdHgtPnVzZXJfZmN0eCA9IGZjdHg7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRjb250ZXh0KTsKKwl9CisKKwkvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhl IGZ1bmN0aW9uICovCisJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJZmN0eCA9 IGZ1bmNjdHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxsX2NudHIgPCBmY3R4 LT5uKQorCXsKKwkJLyoKKwkJICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFyYXRlIGxp bmVzCisJCSAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6CisJ CSAqLworCQlSYW5nZVR5cGUgKnJldCA9IGZjdHgtPnJzW2Z1bmNjdHgtPmNhbGxfY250cl07 CisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0ocmV0KSk7 CisJfQorCWVsc2UKKwkJLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KKwkJ U1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQorCisvKgorICogcmFuZ2Vfd2l0aG91dF9w b3J0aW9uX2ludGVybmFsIC0gU2V0cyBvdXRwdXRzIGFuZCBvdXRwdXRuIHRvIHRoZSByYW5n ZXMKKyAqIHJlbWFpbmluZyBhbmQgdGhlaXIgY291bnQgKHJlc3BlY3RpdmVseSkgYWZ0ZXIg c3VidHJhY3RpbmcgcjIgZnJvbSByMS4KKyAqIFRoZSBhcnJheSBzaG91bGQgbmV2ZXIgY29u dGFpbiBlbXB0eSByYW5nZXMuCisgKiBUaGUgb3V0cHV0cyB3aWxsIGJlIG9yZGVyZWQuIFdl IGV4cGVjdCB0aGF0IG91dHB1dHMgaXMgYW4gYXJyYXkgb2YKKyAqIFJhbmdlVHlwZSBwb2lu dGVycywgYWxyZWFkeSBhbGxvY2F0ZWQgd2l0aCB0d28gZWxlbWVudHMuCisgKi8KK3ZvaWQK K3JhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2Fj aGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJICAgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBl ICoqb3V0cHV0cywgaW50ICpvdXRwdXRuKQoreworCWludAkJCWNtcF9sMWwyLAorCQkJCWNt cF9sMXUyLAorCQkJCWNtcF91MWwyLAorCQkJCWNtcF91MXUyOworCVJhbmdlQm91bmQJbG93 ZXIxLAorCQkJCWxvd2VyMjsKKwlSYW5nZUJvdW5kCXVwcGVyMSwKKwkJCQl1cHBlcjI7CisJ Ym9vbAkJZW1wdHkxLAorCQkJCWVtcHR5MjsKKworCXJhbmdlX2Rlc2VyaWFsaXplKHR5cGNh Y2hlLCByMSwgJmxvd2VyMSwgJnVwcGVyMSwgJmVtcHR5MSk7CisJcmFuZ2VfZGVzZXJpYWxp emUodHlwY2FjaGUsIHIyLCAmbG93ZXIyLCAmdXBwZXIyLCAmZW1wdHkyKTsKKworCWlmIChl bXB0eTEpCisJeworCQkvKiBpZiByMSBpcyBlbXB0eSB0aGVuIHIxIC0gcjIgaXMgZW1wdHks IHNvIHJldHVybiB6ZXJvIHJlc3VsdHMgKi8KKwkJKm91dHB1dG4gPSAwOworCQlyZXR1cm47 CisJfQorCWVsc2UgaWYgKGVtcHR5MikKKwl7CisJCS8qIHIyIGlzIGVtcHR5IHNvIHRoZSBy ZXN1bHQgaXMganVzdCByMSAod2hpY2ggd2Uga25vdyBpcyBub3QgZW1wdHkpICovCisJCW91 dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1dG4gPSAxOworCQlyZXR1cm47CisJfQorCisJLyoK KwkgKiBVc2UgdGhlIHNhbWUgbG9naWMgYXMgcmFuZ2VfbWludXNfaW50ZXJuYWwsCisJICog YnV0IHN1cHBvcnQgdGhlIHNwbGl0IGNhc2UKKwkgKi8KKwljbXBfbDFsMiA9IHJhbmdlX2Nt cF9ib3VuZHModHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIpOworCWNtcF9sMXUyID0gcmFu Z2VfY21wX2JvdW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJnVwcGVyMik7CisJY21wX3UxbDIg PSByYW5nZV9jbXBfYm91bmRzKHR5cGNhY2hlLCAmdXBwZXIxLCAmbG93ZXIyKTsKKwljbXBf dTF1MiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZ1cHBlcjEsICZ1cHBlcjIpOwor CisJaWYgKGNtcF9sMWwyIDwgMCAmJiBjbXBfdTF1MiA+IDApCisJeworCQlsb3dlcjIuaW5j bHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dlciA9IGZhbHNlOwkv KiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0cHV0c1swXSA9IG1h a2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNlLCBOVUxMKTsKKwor CQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVyMi5sb3dl ciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3VuZCAqLworCQlvdXRw dXRzWzFdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwgZmFsc2Us IE5VTEwpOworCisJCSpvdXRwdXRuID0gMjsKKwl9CisJZWxzZSBpZiAoY21wX2wxdTIgPiAw IHx8IGNtcF91MWwyIDwgMCkKKwl7CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1dG4g PSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91MXUyIDw9IDApCisJ eworCQkqb3V0cHV0biA9IDA7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyIDw9IDAgJiYgY21w X3UxbDIgPj0gMCAmJiBjbXBfdTF1MiA8PSAwKQorCXsKKwkJbG93ZXIyLmluY2x1c2l2ZSA9 ICFsb3dlcjIuaW5jbHVzaXZlOworCQlsb3dlcjIubG93ZXIgPSBmYWxzZTsJLyogaXQgd2ls bCBiZWNvbWUgdGhlIHVwcGVyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtlX3Jhbmdl KHR5cGNhY2hlLCAmbG93ZXIxLCAmbG93ZXIyLCBmYWxzZSwgTlVMTCk7CisJCSpvdXRwdXRu ID0gMTsKKwl9CisJZWxzZSBpZiAoY21wX2wxbDIgPj0gMCAmJiBjbXBfdTF1MiA+PSAwICYm IGNtcF9sMXUyIDw9IDApCisJeworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNs dXNpdmU7CisJCXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBs b3dlciBib3VuZCAqLworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVw cGVyMiwgJnVwcGVyMSwgZmFsc2UsIE5VTEwpOworCQkqb3V0cHV0biA9IDE7CisJfQorCWVs c2UKKwl7CisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGNhc2UgaW4gcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uIik7CisJfQorfQorCiAvKiByYW5nZSAtPiByYW5nZSBhZ2dyZWdhdGUgZnVu Y3Rpb25zICovCiAKIERhdHVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12 YWxpZGF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAppbmRleCA0MjRh YjYzZmE1YS4uNjEwMzk1NDJkYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9h bXZhbGlkYXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaApAQCAt MjgsOCArMjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVuY0dyb3VwCiAKIC8q IEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRlcm4gTGlz dCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlz dCAqcHJvY2xpc3QpOwotZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQg ZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJICAgaW50IG1pbmFy Z3MsIGludCBtYXhhcmdzLC4uLik7CitleHRlcm4gYm9vbCBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwKKwkJCQkJCQkJICAg Ym9vbCBleGFjdCwgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CiBleHRlcm4gYm9v bCBjaGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKTsKIGV4dGVybiBib29s IGNoZWNrX2Ftb3Bfc2lnbmF0dXJlKE9pZCBvcG5vLCBPaWQgcmVzdHlwZSwKIAkJCQkJCQkJ IE9pZCBsZWZ0dHlwZSwgT2lkIHJpZ2h0dHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRleCAyMmRk MDRjMTQxOC4uMTYzNWFiMDBhZDIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9n aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaApAQCAtNDAsNyArNDAsOSBA QAogI2RlZmluZSBHSVNUX09QVElPTlNfUFJPQwkJCQkxMAogI2RlZmluZSBHSVNUX1NPUlRT VVBQT1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJCQkJMTIKLSNk ZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9JTlRFUlNFQ1RfUFJPQwkJ CQkxMworI2RlZmluZSBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DCQkxNAorI2RlZmluZSBH SVNUTlByb2NzCQkJCQkxNAogCiAvKgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1Qg aW5kZXggcGFnZS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9j LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCAzNTI1NThj MWYwNi4uZjBhZDg0NTYxY2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAg LTUxMCw2ICs1MTAsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFt cHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHkn IH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2JveCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcx MycsCisgIGFtcHJvYyA9PiAnYm94X2ludGVyc2VjdChib3gsYm94KScgfSwKIHsgYW1wcm9j ZmFtaWx5ID0+ICdnaXN0L3BvbHlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BvbHlnb24n LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3BvbHlnb24nLCBhbXByb2NudW0gPT4gJzEnLAog ICBhbXByb2MgPT4gJ2dpc3RfcG9seV9jb25zaXN0ZW50JyB9LApAQCAtNjEwLDYgKzYxMywx MiBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2FueXJhbmdlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFt cHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHkn IH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnYW55cmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1w cm9jbnVtID0+ICcxMycsCisgIGFtcHJvYyA9PiAncmFuZ2VfaW50ZXJzZWN0KGFueXJhbmdl LGFueXJhbmdlKScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3JhbmdlX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55 cmFuZ2UnLCBhbXByb2NudW0gPT4gJzE0JywKKyAgYW1wcm9jID0+ICdyYW5nZV93aXRob3V0 X3BvcnRpb24oYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dp c3QvbmV0d29ya19vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnaW5l dF9naXN0X2NvbnNpc3RlbnQnIH0sCkBAIC02NTAsNiArNjU5LDEyIEBACiB7IGFtcHJvY2Zh bWlseSA9PiAnZ2lzdC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlt dWx0aXJhbmdlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1w cm9jbnVtID0+ICcxMicsCiAgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScg fSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11 bHRpcmFuZ2UnLCBhbXByb2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdtdWx0aXJhbmdl X2ludGVyc2VjdChhbnltdWx0aXJhbmdlLGFueW11bHRpcmFuZ2UpJyB9LAoreyBhbXByb2Nm YW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55 bXVsdGlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFt cHJvY251bSA9PiAnMTQnLAorICBhbXByb2MgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKGFueW11bHRpcmFuZ2UsYW55bXVsdGlyYW5nZSknIH0sCiAKICMgZ2luCiB7IGFtcHJv Y2ZhbWlseSA9PiAnZ2luL2FycmF5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlhcnJh eScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA1NWE5ZTJkOWNkYS4uN2IyMWFi YTJiZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA2NDMsNiArMTA2NDMs MTAgQEAKIHsgb2lkID0+ICczODY5JywKICAgcHJvbmFtZSA9PiAncmFuZ2VfbWludXMnLCBw cm9yZXR0eXBlID0+ICdhbnlyYW5nZScsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnlyYW5nZSBh bnlyYW5nZScsIHByb3NyYyA9PiAncmFuZ2VfbWludXMnIH0sCit7IG9pZCA9PiAnODQwOCcs IGRlc2NyID0+ICdyZW1vdmUgcG9ydGlvbiBmcm9tIHJhbmdlJywKKyAgcHJvbmFtZSA9PiAn cmFuZ2Vfd2l0aG91dF9wb3J0aW9uJywgcHJvcm93cyA9PiAnMicsCisgIHByb3JldHNldCA9 PiAndCcsIHByb3JldHR5cGUgPT4gJ2FueXJhbmdlJywKKyAgcHJvYXJndHlwZXMgPT4gJ2Fu eXJhbmdlIGFueXJhbmdlJywgcHJvc3JjID0+ICdyYW5nZV93aXRob3V0X3BvcnRpb24nIH0s CiB7IG9pZCA9PiAnMzg3MCcsIGRlc2NyID0+ICdsZXNzLWVxdWFsLWdyZWF0ZXInLAogICBw cm9uYW1lID0+ICdyYW5nZV9jbXAnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKICAgcHJvYXJn dHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywgcHJvc3JjID0+ICdyYW5nZV9jbXAnIH0s CkBAIC0xMDkzMCw2ICsxMDkzNCwxMCBAQAogeyBvaWQgPT4gJzQyNzEnLAogICBwcm9uYW1l ID0+ICdtdWx0aXJhbmdlX21pbnVzJywgcHJvcmV0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScs CiAgIHByb2FyZ3R5cGVzID0+ICdhbnltdWx0aXJhbmdlIGFueW11bHRpcmFuZ2UnLCBwcm9z cmMgPT4gJ211bHRpcmFuZ2VfbWludXMnIH0sCit7IG9pZCA9PiAnODQwNicsIGRlc2NyID0+ ICdyZW1vdmUgcG9ydGlvbiBmcm9tIG11bHRpcmFuZ2UnLAorICBwcm9uYW1lID0+ICdtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbicsIHByb3Jvd3MgPT4gJzEnLAorICBwcm9yZXRzZXQg PT4gJ3QnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAgcHJvYXJndHlwZXMg PT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24nIH0sCiB7IG9pZCA9PiAnNDI3MicsCiAgIHByb25hbWUgPT4g J211bHRpcmFuZ2VfaW50ZXJzZWN0JywgcHJvcmV0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScs CiAgIHByb2FyZ3R5cGVzID0+ICdhbnltdWx0aXJhbmdlIGFueW11bHRpcmFuZ2UnLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvcmFuZ2V0eXBlcy5oCmluZGV4IDJiNTc0ODczY2VmLi5lMWIyNTZiNjVmNCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL3JhbmdldHlwZXMuaApAQCAtMTY0LDUgKzE2NCw3IEBAIGV4dGVybiBSYW5n ZVR5cGUgKm1ha2VfZW1wdHlfcmFuZ2UoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlKTsKIGV4 dGVybiBib29sIHJhbmdlX3NwbGl0X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNo ZSwgY29uc3QgUmFuZ2VUeXBlICpyMSwKIAkJCQkJCQkJIGNvbnN0IFJhbmdlVHlwZSAqcjIs IFJhbmdlVHlwZSAqKm91dHB1dDEsCiAJCQkJCQkJCSBSYW5nZVR5cGUgKipvdXRwdXQyKTsK K2V4dGVybiB2b2lkIHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJCQlSYW5nZVR5cGUgKnIy LCBSYW5nZVR5cGUgKipvdXRwdXRzLCBpbnQgKm91dHB1dG4pOwogCiAjZW5kaWYJCQkJCQkJ LyogUkFOR0VUWVBFU19IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL211bHRpcmFuZ2V0eXBlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211 bHRpcmFuZ2V0eXBlcy5vdXQKaW5kZXggYzYzNjNlYmViMjQuLjExYWEyODJmZjM1IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0CkBA IC0yMjAwLDYgKzIyMDAsMTIyIEBAIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs MiksIG51bXJhbmdlKDQsNSkpIC0gbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwCiAge1sx LDIpLFs0LDUpfQogKDEgcm93KQogCistLSB3aXRob3V0X3BvcnRpb24KK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2Uo KSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZSgpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1t dWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKCkpOworIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtb MSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoMyw0KSksIG51bW11bHRpcmFu Z2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisge1sxLDIpLFszLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVt bXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDIpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDQpKSk7CisgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5n ZSgxLDIpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisge1syLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVs dGlyYW5nZShudW1yYW5nZSgyLDMpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFszLDQpfQorKDEgcm93 KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDgpKSk7CisgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiso MCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDIpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1syLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDgpKSwgbnVtbXVsdGlyYW5nZShudW1y YW5nZSgwLDIpLCBudW1yYW5nZSgzLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1syLDMpLFs0LDgpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDgpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDMpLCBudW1yYW5n ZSg1LG51bGwpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFszLDUpfQorKDEgcm93KQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIp LCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSkpOworIG11 bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSks IG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw0KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9w b3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0K KygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVt cmFuZ2UoMyw1KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVt cmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCw5KSkpOworIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAg cm93cykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoMSwzKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMiw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFu Z2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwy KSxbNCw1KX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9u KG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoLTIsMCksIG51bXJhbmdlKDgsOSkpKTsKKyBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiks WzQsNSl9CisoMSByb3cpCisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNUIG51bW11bHRpcmFu Z2UoKSAqIG51bW11bHRpcmFuZ2UoKTsKICA/Y29sdW1uPyAKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CmluZGV4IGE3Y2MyMjBiZjBkLi5hYjIzMDllOGMx ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CkBAIC00 ODEsNiArNDgxLDYwIEBAIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIs J1tdJyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CiAgZW1wdHkKICgxIHJvdykKIAor c2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbignZW1wdHknOjpudW1yYW5nZSwgbnVtcmFu Z2UoMi4wLCAzLjApKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihu dW1yYW5nZSgxLjEsIDIuMiksICdlbXB0eSc6Om51bXJhbmdlKTsKKyByYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4yKQorKDEgcm93 KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwg bnVtcmFuZ2UoMi4wLCAzLjApKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4wKQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjAp KTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsxLjEsMi4yKQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bXJhbmdlKDEuMSwgMi4yLCdbXScpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworIHJhbmdlX3dp dGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjApCiso MSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLCAz LjApLCBudW1yYW5nZSgxLjUsIDIuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMCwxLjUpCisgWzIuMCwzLjApCisoMiByb3dz KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwn W10nKSwgbnVtcmFuZ2UoMTEwLjAsMTIwLjIsJyhdJykpOworIHJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEwLjEsMTIuMl0KKygxIHJvdykK Kworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxMC4xLDEyLjIsJ1td JyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9u IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK3NlbGVjdCByYW5nZV93 aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIu MCwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMS4wLDEuNV0KKyAoMi4wLDMuMF0KKygyIHJvd3MpCisKIHNlbGVjdCBudW1y YW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYgbnVtcmFuZ2UoNS41LCA2LjUpOwogID9jb2x1bW4/ IAogLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGly YW5nZXR5cGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5z cWwKaW5kZXggNDFkNTUyNDI4NWEuLjBiZmE3MWNhY2EwIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKQEAgLTQxNCw2ICs0MTQsMjggQEAgU0VMRUNU IG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwzKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDIsOSkKIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs MiksIG51bXJhbmdlKDQsNSkpIC0gbnVtbXVsdGlyYW5nZShudW1yYW5nZSg4LDkpKTsKIFNF TEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpIC0gbnVt bXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5KSk7CiAKKy0tIHdpdGhv dXRfcG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkp OworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVt cmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UoKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSgzLDQp KSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMikpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJh bmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNCkpKTsKK1NFTEVDVCBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1t dWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDIsMykpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1t dWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOCkp KTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMikpKTsKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiksIG51bXJhbmdlKDMsNCkpKTsKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs OCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDAp KSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgy LDQpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5n ZSgzLDUpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1y YW5nZSgwLDkpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVs dGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShu dW1yYW5nZSgyLDkpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVt bXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5n ZShudW1yYW5nZSg4LDkpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24o bnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGly YW5nZShudW1yYW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5KSkpOworCiAtLSBpbnRlcnNlY3Rp b24KIFNFTEVDVCBudW1tdWx0aXJhbmdlKCkgKiBudW1tdWx0aXJhbmdlKCk7CiBTRUxFQ1Qg bnVtbXVsdGlyYW5nZSgpICogbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5zcWwKaW5kZXggYTVlY2RmNTM3MmYuLjdmYzgwNWQ5 ZmZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbApAQCAtMTA3LDYgKzEw NywxNiBAQCBzZWxlY3QgbnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJykgLSBudW1yYW5nZSgyLjAs IDMuMCk7CiBzZWxlY3QgcmFuZ2VfbWludXMobnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBu dW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7CiBzZWxlY3QgcmFuZ2VfbWludXMobnVtcmFu Z2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgwLjAsMTIwLjIsJyhdJykpOwogCitzZWxl Y3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKCdlbXB0eSc6Om51bXJhbmdlLCBudW1yYW5nZSgy LjAsIDMuMCkpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEs IDIuMiksICdlbXB0eSc6Om51bXJhbmdlKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRp b24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworc2VsZWN0IHJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksIG51bXJhbmdlKDIuMiwg My4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4y LCdbXScpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEuNSwgMi4wKSk7CitzZWxlY3Qg cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFu Z2UoMTEwLjAsMTIwLjIsJyhdJykpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihu dW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7Citz ZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMCwzLjAsJ1tdJyksIG51 bXJhbmdlKDEuNSwyLjAsJyhdJykpOworCiBzZWxlY3QgbnVtcmFuZ2UoNC41LCA1LjUsICdb XScpICYmIG51bXJhbmdlKDUuNSwgNi41KTsKIHNlbGVjdCBudW1yYW5nZSgxLjAsIDIuMCkg PDwgbnVtcmFuZ2UoMy4wLCA0LjApOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMy4wLCdbXScp IDw8IG51bXJhbmdlKDMuMCwgNC4wLCdbXScpOwotLSAKMi40Mi4wCgo= --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v39-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSA0OTBiMWM3NjEyMTg1YjY2ZTNlNzgwZmYwOGI5MTliNjdjOTIwYjkxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYzOSA2LzhdIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JU SU9OIE9GCgotIEFkZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRh eC4gVGhlIGJvdW5kcyBtdXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4g cmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2lj IFVOQk9VTkRFRCBrZXl3b3JkIGFzIHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0 byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBm dW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFkZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGlu c2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3ZlciIgcGFydCBvZgogIGEgcmVjb3JkIHRv dWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4KLSBBZGRlZCB0Z190ZW1wb3JhbCBk ZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvCiAg dHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhpcyB0byBsZWFybiB3aGF0 IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZS4KLSBE b2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVtcG9yYWwgc3Ry dWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCAgICB8ICAgNSArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbCAgICAgfCAgIDQgKwogY29udHJpYi9zZXBnc3FsL3Byb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250cmliL3VuYWNjZW50L3VuYWNjZW50 LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZG9jL3NyYy9zZ21sL3JlZi9kZWxl dGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDY5ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgODcgKysrCiBkb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgIDQ5ICsrCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgICAgICAgIHwgMzAwICsrKysrKyst CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMjQg Kwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jICAgICAgIHwgICA2 ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyAgICAgICAgIHwg ICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAg fCAyNDIgKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAg ICAgICAgIHwgIDU2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAg ICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyAg ICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAg ICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAg ICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMg ICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5k bGVyLmMgICAgICAgICAgfCAgNDAgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMgICAgICAgICAgIHwgIDc0ICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYyAgICAgICAgICAgfCAgNTcgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51 bS5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJp Z2dlci5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgNDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3Bh dGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w bGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDI2ICsKIHNyYy9pbmNsdWRlL29wdGlt aXplci9wYXRobm9kZS5oICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvcGFy c2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgIHwgNjg1ICsrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAg IHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgICAg ICB8ICAxOCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgfCAgMzIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgMTQwICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAg ICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yu c3FsICAgICAgIHwgNTMxICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9v cHJfc2FuaXR5LnNxbCAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHJpdmlsZWdlcy5zcWwgICAgICAgICAgIHwgIDE4ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3VwZGF0YWJsZV92aWV3cy5zcWwgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAgODggKysrCiA1MSBmaWxlcyBjaGFuZ2Vk LCAyNzI3IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3Fs CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5v dXQKaW5kZXggZjNlYjA1NWUyYzcuLjQ4MjE3YmY2ZTc4IDEwMDY0NAotLS0gYS9jb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTYzNzMsNiArNjM3 MywxMSBAQCBERUxFVEUgRlJPTSBmdDIKIAogREVMRVRFIEZST00gZnQyIFdIRVJFIGZ0Mi5j MSA+IDIwMDA7CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIGV4dGVuc2lv bnMgJ3Bvc3RncmVzX2ZkdycpOworLS0gVGVzdCBVUERBVEUvREVMRVRFIHdpdGggRk9SIFBP UlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAnYScgVE8gJ2In IFNFVCBjMSA9IDE7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9S IFBPUlRJT04gT0YKK0RFTEVURSBGUk9NIGZ0MiBGT1IgUE9SVElPTiBPRiBjMyBGUk9NICdh JyBUTyAnYic7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9SIFBP UlRJT04gT0YKIC0tIFRlc3QgdGhhdCB0cmlnZ2VyIG9uIHJlbW90ZSB0YWJsZSB3b3JrcyBh cyBleHBlY3RlZAogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gIlMgMSIuRl9CUlRSSUco KSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKIEJFR0lOCmRpZmYgLS1naXQgYS9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IDA3MzQ3MTZhZDkwLi5iYzMyNWExYzNjNiAx MDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwK KysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAgLTE1 NzksNiArMTU3OSwxMCBAQCBERUxFVEUgRlJPTSBmdDIKIERFTEVURSBGUk9NIGZ0MiBXSEVS RSBmdDIuYzEgPiAyMDAwOwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBl eHRlbnNpb25zICdwb3N0Z3Jlc19mZHcnKTsKIAorLS0gVGVzdCBVUERBVEUvREVMRVRFIHdp dGggRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAn YScgVE8gJ2InIFNFVCBjMSA9IDE7CitERUxFVEUgRlJPTSBmdDIgRk9SIFBPUlRJT04gT0Yg YzMgRlJPTSAnYScgVE8gJ2InOworCiAtLSBUZXN0IHRoYXQgdHJpZ2dlciBvbiByZW1vdGUg dGFibGUgd29ya3MgYXMgZXhwZWN0ZWQKIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJT IDEiLkZfQlJUUklHKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCiBCRUdJTgpkaWZmIC0tZ2l0 IGEvY29udHJpYi9zZXBnc3FsL3Byb2MuYyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKaW5k ZXggNDg5OWJjMmEzZTMuLjIwMTIwZmQ1MzFmIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdz cWwvcHJvYy5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKQEAgLTE2MSw3ICsxNjEs NyBAQCBzZXBnc3FsX3Byb2NfZHJvcChPaWQgZnVuY3Rpb25JZCkKIAkgKiBjaGVjayBkYl9z Y2hlbWE6e3JlbW92ZV9uYW1lfSBwZXJtaXNzaW9uCiAJICovCiAJb2JqZWN0LmNsYXNzSWQg PSBOYW1lc3BhY2VSZWxhdGlvbklkOwotCW9iamVjdC5vYmplY3RJZCA9IGdldF9mdW5jX25h bWVzcGFjZShmdW5jdGlvbklkKTsKKwlvYmplY3Qub2JqZWN0SWQgPSBnZXRfZnVuY19uYW1l c3BhY2UoZnVuY3Rpb25JZCwgdHJ1ZSk7CiAJb2JqZWN0Lm9iamVjdFN1YklkID0gMDsKIAlh dWRpdF9uYW1lID0gZ2V0T2JqZWN0SWRlbnRpdHkoJm9iamVjdCwgZmFsc2UpOwogCmRpZmYg LS1naXQgYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMgYi9jb250cmliL3VuYWNjZW50 L3VuYWNjZW50LmMKaW5kZXggNzA3OTYyMzA1ZjguLjNiNzY0NmVjNzJhIDEwMDY0NAotLS0g YS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91bmFjY2VudC91 bmFjY2VudC5jCkBAIC00NDksNyArNDQ5LDcgQEAgdW5hY2NlbnRfZGljdChQR19GVU5DVElP Tl9BUkdTKQogCQkgKiBVc2UgdGhlICJ1bmFjY2VudCIgZGljdGlvbmFyeSB0aGF0IGlzIGlu IHRoZSBzYW1lIHNjaGVtYSB0aGF0IHRoaXMKIAkJICogZnVuY3Rpb24gaXMgaW4uCiAJCSAq LwotCQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNpbmZvLT5mbGlu Zm8tPmZuX29pZCk7CisJCU9pZAkJCXByb2Nuc3BpZCA9IGdldF9mdW5jX25hbWVzcGFjZShm Y2luZm8tPmZsaW5mby0+Zm5fb2lkLCB0cnVlKTsKIAkJY29uc3QgY2hhciAqZGljdG5hbWUg PSAidW5hY2NlbnQiOwogCiAJCWRpY3RPaWQgPSBHZXRTeXNDYWNoZU9pZDIoVFNESUNUTkFN RU5TUCwgQW51bV9wZ190c19kaWN0X29pZCwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYTVmZjVj OGRhNTUuLjg0YTJmN2U0MTA2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtODMzLDcgKzgzMyw3 IEBACiAgICAgICAgPHN0cnVjdGZpZWxkPmFtb3BwdXJwb3NlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2hhcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE9w ZXJhdG9yIHB1cnBvc2UsIGVpdGhlciA8bGl0ZXJhbD5zPC9saXRlcmFsPiBmb3Igc2VhcmNo IG9yCisgICAgICAgT3BlcmF0b3IgcHVycG9zZSwgZWl0aGVyIDxsaXRlcmFsPnM8L2xpdGVy YWw+IGZvciBzZWFyY2gsIG9yCiAgICAgICAgPGxpdGVyYWw+bzwvbGl0ZXJhbD4gZm9yIG9y ZGVyaW5nCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CkBAIC04NjUsNyAr ODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIFRoZSBCLXRy ZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMgYWNjb3JkaW5nIHRvLCBpZiBh bgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlmIGEgc2VhcmNoIG9wZXJhdG9y IG9yIHBvcnRpb24gb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVyYXRvcjsgemVybyBp ZiBhIHNlYXJjaCBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAppbmRleCA3NzE3ODU1YmM5ZS4u ZWFkZTU5YjkzYWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbApAQCAtMjMsNiArMjMsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIDxzeW5vcHNpcz4KIFsgV0lUSCBbIFJFQ1VSU0lW RSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aXRoX3F1ZXJ5PC9yZXBsYWNl YWJsZT4gWywgLi4uXSBdCiBERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0K KyAgICBbIEZPUiBQT1JUSU9OIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5y YW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPiBUTyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBV U0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNl YWJsZT4gWywgLi4uXSBdCiAgICAgWyBXSEVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gfCBXSEVSRSBDVVJSRU5UIE9GIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jdXJzb3JfbmFtZTwvcmVwbGFjZWFibGU+IF0K ICAgICBbIFJFVFVSTklORyB7ICogfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b3V0cHV0X2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBbIFsgQVMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b3V0cHV0X25hbWU8L3JlcGxhY2VhYmxlPiBdIH0gWywgLi4u XSBdCkBAIC01NCw2ICs1NSwzOSBAQCBERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKgogICAg Y2lyY3Vtc3RhbmNlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYgdGhlIHRhYmxl IGhhcyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1heSBzdXBwbHkg YSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciBk ZWxldGUgd2lsbAorICAgb25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVu IGludGVydmFsLiBGdXJ0aGVybW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBleHRlbmRzIG91 dHNpZGUgdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRo ZW4geW91ciBkZWxldGUKKyAgIHdpbGwgb25seSBjaGFuZ2UgdGhlIHNwYW4gd2l0aGluIHRo b3NlIGJvdW5kcy4gSW4gZWZmZWN0IHlvdSBhcmUgZGVsZXRpbmcgYW55CisgICBtb21lbnQg dGFyZ2V0ZWQgYnkgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGFuZCBubyBt b21lbnRzIG91dHNpZGUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNwZWNpZmljYWxs eSwgYWZ0ZXIgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBkZWxldGVz IHRoZSBleGlzdGluZyByb3csCisgICBpdCB3aWxsIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJh bD4KKyAgIG5ldyByb3dzIHdob3NlIHJhbmdlIG9yIHN0YXJ0L2VuZCBjb2x1bW4ocykgcmVj ZWl2ZSB0aGUgcmVtYWluaW5nIHNwYW4gb3V0c2lkZQorICAgdGhlIHRhcmdldGVkIGJvdW5k cywgY29udGFpbmluZyB0aGUgb3JpZ2luYWwgdmFsdWVzIGluIG90aGVyIGNvbHVtbnMuCisg ICBUaGVyZSB3aWxsIGJlIHplcm8gdG8gdHdvIGluc2VydGVkIHJlY29yZHMsCisgICBkZXBl bmRpbmcgb24gd2hldGhlciB0aGUgb3JpZ2luYWwgc3BhbiBleHRlbmRlZCBiZWZvcmUgdGhl IHRhcmdldGVkCisgICA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiwgYWZ0ZXIgdGhlIHRhcmdl dGVkIDxsaXRlcmFsPlRPPC9saXRlcmFsPiwgYm90aCwgb3IgbmVpdGhlci4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZmlyZSA8bGl0ZXJh bD5JTlNFUlQ8L2xpdGVyYWw+IHRyaWdnZXJzLiBGaXJzdAorICAgPGxpdGVyYWw+QkVGT1JF IERFTEVURTwvbGl0ZXJhbD4gdHJpZ2dlcnMgZmlyc3QsIHRoZW4KKyAgIDxsaXRlcmFsPkJF Rk9SRSBJTlNFUlQ8L2xpdGVyYWw+LCB0aGVuIDxsaXRlcmFsPkFGVEVSIElOU0VSVDwvbGl0 ZXJhbD4sCisgICB0aGVuIDxsaXRlcmFsPkFGVEVSIERFTEVURTwvbGl0ZXJhbD4uCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXNlIHNlY29uZGFyeSBpbnNlcnRzIGRvIG5vdCBy ZXF1aXJlIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSB0YWJs ZS4KKyAgIFRoaXMgaXMgYmVjYXVzZSBjb25jZXB0dWFsbHkgbm8gbmV3IGluZm9ybWF0aW9u IGhhcyBiZWVuIGFkZGVkLiBUaGUgaW5zZXJ0ZWQgcm93cyBvbmx5IHByZXNlcnZlCisgICBl eGlzdGluZyBkYXRhIGFib3V0IHRoZSB1bnRhcmdldGVkIHRpbWUgcGVyaW9kLiBOb3RlIHRo aXMgbWF5IHJlc3VsdCBpbiB1c2VycyBmaXJpbmcgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFs PgorICAgdHJpZ2dlcnMgd2hvIGRvbid0IGhhdmUgaW5zZXJ0IHByaXZpbGVnZXMsIHNvIGJl IGNhcmVmdWwgYWJvdXQgPGxpdGVyYWw+U0VDVVJJVFkgREVGSU5FUjwvbGl0ZXJhbD4gdHJp Z2dlciBmdW5jdGlvbnMhCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBvcHRpb25h bCA8bGl0ZXJhbD5SRVRVUk5JTkc8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgPGNvbW1hbmQ+ REVMRVRFPC9jb21tYW5kPgogICAgdG8gY29tcHV0ZSBhbmQgcmV0dXJuIHZhbHVlKHMpIGJh c2VkIG9uIGVhY2ggcm93IGFjdHVhbGx5IGRlbGV0ZWQuCkBAIC0xMTYsNiArMTUwLDQxIEBA IERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgcmFuZ2Ug Y29sdW1uIG9yIHBlcmlvZCB0byB1c2Ugd2hlbiBwZXJmb3JtaW5nIGEgdGVtcG9yYWwgZGVs ZXRlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5zdGFydF90aW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNpdmUp IHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIGRlbGV0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBh IHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBm cm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVy aW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJh bD4gaGVyZSBpbmRpY2F0ZXMgYSBkZWxldGUgd2hvc2UgYmVnaW5uaW5nIGlzCisgICAgICB1 bmJvdW5kZWQgKGFzIHdpdGggcmFuZ2UgdHlwZXMpLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfdGltZTwvcmVwbGFj ZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUg bGF0ZXN0IHRpbWUgKGV4Y2x1c2l2ZSkgdG8gY2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRl LgorICAgICAgVGhpcyBtdXN0IGJlIGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBv ZiB0aGUgcmFuZ2Ugb3IgcGVyaW9kIGZyb20KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAg ICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBoZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9z ZSBlbmQgaXMgdW5ib3VuZGVkCisgICAgICAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2 YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmZyb21faXRlbTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3VwZGF0ZS5zZ21sCmluZGV4IDFjNDMzYmVjMmJiLi5jZmExNThlZDk1YiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L3VwZGF0ZS5zZ21sCkBAIC0yMyw2ICsyMyw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgogPHN5bm9wc2lzPgogWyBXSVRIIFsgUkVDVVJTSVZFIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPndpdGhfcXVlcnk8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0KIFVQREFU RSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwv cmVwbGFjZWFibGU+IFsgKiBdIFsgWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0KKyAgICBbIEZPUiBQT1JUSU9OIE9GIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFj ZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JfcG9ydGlvbl9vZl90 YXJnZXQ8L3JlcGxhY2VhYmxlPiBdCiAgICAgU0VUIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPSB7IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIH0g fAogICAgICAgICAgICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApID0gWyBST1cgXSAoIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQg fSBbLCAuLi5dICkgfAogICAgICAgICAgICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApID0gKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c3ViLVNFTEVDVDwvcmVwbGFjZWFibGU+ICkKQEAgLTUx LDYgKzUyLDQxIEBAIFVQREFURSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsKICAgIGNpcmN1bXN0YW5j ZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5n ZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIHlvdSBtYXkgc3VwcGx5IGEgPGxpdGVyYWw+ Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwgYW5kIHlvdXIgdXBkYXRlIHdpbGwK KyAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFwIHRoZSBnaXZlbiBpbnRlcnZhbC4g RnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgorICAgZXh0ZW5kcyBvdXRzaWRlIHRoZSA8 bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLCB0aGVuIHlvdXIgdXBk YXRlCisgICB3aWxsIG9ubHkgY2hhbmdlIHRoZSBzcGFuIHdpdGhpbiB0aG9zZSBib3VuZHMu IEluIGVmZmVjdCB5b3UgYXJlIHVwZGF0aW5nIGFueQorICAgbW9tZW50IHRhcmdldGVkIGJ5 IDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBhbmQgbm8gbW9tZW50cyBvdXRz aWRlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTcGVjaWZpY2FsbHksIHdoZW4gPHBy b2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiB1cGRhdGVzIHRoZSBleGlzdGlu ZyByb3csCisgICBpdCB3aWxsIGFsc28gY2hhbmdlIHRoZSByYW5nZSBvciBzdGFydC9lbmQg Y29sdW1uKHMpIHNvIHRoYXQgdGhlaXIgaW50ZXJ2YWwKKyAgIG5vIGxvbmdlciBleHRlbmRz IGJleW9uZCB0aGUgdGFyZ2V0ZWQgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+ IGJvdW5kcy4KKyAgIFRoZW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1l PiB3aWxsIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4KKyAgIG5ldyByb3dzIHdob3NlIHJh bmdlIG9yIHN0YXJ0L2VuZCBjb2x1bW4ocykgcmVjZWl2ZSB0aGUgcmVtYWluaW5nIHNwYW4g b3V0c2lkZQorICAgdGhlIHRhcmdldGVkIGJvdW5kcywgY29udGFpbmluZyB0aGUgdW4tdXBk YXRlZCB2YWx1ZXMgaW4gb3RoZXIgY29sdW1ucy4KKyAgIFRoZXJlIHdpbGwgYmUgemVybyB0 byB0d28gaW5zZXJ0ZWQgcmVjb3JkcywKKyAgIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBv cmlnaW5hbCBzcGFuIGV4dGVuZGVkIGJlZm9yZSB0aGUgdGFyZ2V0ZWQKKyAgIDxsaXRlcmFs PkZST008L2xpdGVyYWw+LCBhZnRlciB0aGUgdGFyZ2V0ZWQgPGxpdGVyYWw+VE88L2xpdGVy YWw+LCBib3RoLCBvciBuZWl0aGVyLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVz ZSBzZWNvbmRhcnkgaW5zZXJ0cyBmaXJlIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4gdHJp Z2dlcnMuIEZpcnN0CisgICA8bGl0ZXJhbD5CRUZPUkUgVVBEQVRFPC9saXRlcmFsPiB0cmln Z2VycyBmaXJzdCwgdGhlbgorICAgPGxpdGVyYWw+QkVGT1JFIElOU0VSVDwvbGl0ZXJhbD4s IHRoZW4gPGxpdGVyYWw+QUZURVIgSU5TRVJUPC9saXRlcmFsPiwKKyAgIHRoZW4gPGxpdGVy YWw+QUZURVIgVVBEQVRFPC9saXRlcmFsPi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZG8gbm90IHJlcXVpcmUgPGxpdGVyYWw+SU5TRVJU PC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIHRhYmxlLgorICAgVGhpcyBpcyBiZWNhdXNl IGNvbmNlcHR1YWxseSBubyBuZXcgaW5mb3JtYXRpb24gaGFzIGJlZW4gYWRkZWQuIFRoZSBp bnNlcnRlZCByb3dzIG9ubHkgcHJlc2VydmUKKyAgIGV4aXN0aW5nIGRhdGEgYWJvdXQgdGhl IHVudGFyZ2V0ZWQgdGltZSBwZXJpb2QuIE5vdGUgdGhpcyBtYXkgcmVzdWx0IGluIHVzZXJz IGZpcmluZyA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+CisgICB0cmlnZ2VycyB3aG8gZG9u J3QgaGF2ZSBpbnNlcnQgcHJpdmlsZWdlcywgc28gYmUgY2FyZWZ1bCBhYm91dCA8bGl0ZXJh bD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFsPiB0cmlnZ2VyIGZ1bmN0aW9ucyEKKyAgPC9w YXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFsIDxsaXRlcmFsPlJFVFVSTklORzwv bGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+CiAgICB0 byBjb21wdXRlIGFuZCByZXR1cm4gdmFsdWUocykgYmFzZWQgb24gZWFjaCByb3cgYWN0dWFs bHkgdXBkYXRlZC4KQEAgLTExNCw2ICsxNTAsNTcgQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0gWwogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFu Z2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIHJhbmdlIGNvbHVtbiBvciBwZXJpb2QgdG8gdXNl IHdoZW4gcGVyZm9ybWluZyBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Zm9yX3BvcnRpb25f b2ZfdGFyZ2V0PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFRoZSBpbnRlcnZhbCB0byB1cGRhdGUuIElmIHlvdSBhcmUgdGFyZ2V0 aW5nIGEgcmFuZ2UgY29sdW1uIG9yIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sCisgICAg ICB5b3UgbWF5IGdpdmUgdGhpcyBpbiB0aGUgZm9ybSA8bGl0ZXJhbD5GUk9NPC9saXRlcmFs PgorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3Jl cGxhY2VhYmxlPiA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4KKyAgICAgIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5lbmRfdGltZTwvcmVwbGFjZWFibGU+LgorICAgICAgT3RoZXJ3 aXNlIHlvdSBtdXN0IHVzZQorICAgICAgPGxpdGVyYWw+KDwvbGl0ZXJhbD48cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+PGxpdGVyYWw+ KTwvbGl0ZXJhbD4KKyAgICAgIHdoZXJlIHRoZSBleHByZXNzaW9uIHlpZWxkcyBhIHZhbHVl IGZvciB0aGUgc2FtZSB0eXBlIGFzCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRf dGltZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgZWFybGllc3QgdGltZSAoaW5jbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0 ZW1wb3JhbCB1cGRhdGUuCisgICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0 aGUgYmFzZSB0eXBlIG9mIHRoZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNl YWJsZT4uIEEKKyAgICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVz IGFuIHVwZGF0ZSB3aG9zZSBiZWdpbm5pbmcgaXMKKyAgICAgIHVuYm91bmRlZCAoYXMgd2l0 aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBsYXRlc3QgdGltZSAoZXhj bHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCB1cGRhdGUuCisgICAgICBUaGlzIG11 c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBlIG9mIHRoZSByYW5nZSBvciBw ZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdl X29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAgIDxsaXRlcmFsPk5VTEw8 L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVzIGFuIHVwZGF0ZSB3aG9zZSBlbmQgaXMgdW5ib3Vu ZGVkCisgICAgICAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKaW5kZXgg MzE2MjY1MzZhMmUuLmYzZTY2ZGEwMTRhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKQEAgLTU0NiwxNyAr NTQ2LDE4IEBAIENBTExFRF9BU19UUklHR0VSKGZjaW5mbykKIDxwcm9ncmFtbGlzdGluZz4K IHR5cGVkZWYgc3RydWN0IFRyaWdnZXJEYXRhCiB7Ci0gICAgTm9kZVRhZyAgICAgICAgICB0 eXBlOwotICAgIFRyaWdnZXJFdmVudCAgICAgdGdfZXZlbnQ7Ci0gICAgUmVsYXRpb24gICAg ICAgICB0Z19yZWxhdGlvbjsKLSAgICBIZWFwVHVwbGUgICAgICAgIHRnX3RyaWd0dXBsZTsK LSAgICBIZWFwVHVwbGUgICAgICAgIHRnX25ld3R1cGxlOwotICAgIFRyaWdnZXIgICAgICAg ICAqdGdfdHJpZ2dlcjsKLSAgICBUdXBsZVRhYmxlU2xvdCAgKnRnX3RyaWdzbG90OwotICAg IFR1cGxlVGFibGVTbG90ICAqdGdfbmV3c2xvdDsKLSAgICBUdXBsZXN0b3Jlc3RhdGUgKnRn X29sZHRhYmxlOwotICAgIFR1cGxlc3RvcmVzdGF0ZSAqdGdfbmV3dGFibGU7Ci0gICAgY29u c3QgQml0bWFwc2V0ICp0Z191cGRhdGVkY29sczsKKyAgICBOb2RlVGFnICAgICAgICAgICAg dHlwZTsKKyAgICBUcmlnZ2VyRXZlbnQgICAgICAgdGdfZXZlbnQ7CisgICAgUmVsYXRpb24g ICAgICAgICAgIHRnX3JlbGF0aW9uOworICAgIEhlYXBUdXBsZSAgICAgICAgICB0Z190cmln dHVwbGU7CisgICAgSGVhcFR1cGxlICAgICAgICAgIHRnX25ld3R1cGxlOworICAgIFRyaWdn ZXIgICAgICAgICAgICp0Z190cmlnZ2VyOworICAgIFR1cGxlVGFibGVTbG90ICAgICp0Z190 cmlnc2xvdDsKKyAgICBUdXBsZVRhYmxlU2xvdCAgICAqdGdfbmV3c2xvdDsKKyAgICBUdXBs ZXN0b3Jlc3RhdGUgICAqdGdfb2xkdGFibGU7CisgICAgVHVwbGVzdG9yZXN0YXRlICAgKnRn X25ld3RhYmxlOworICAgIGNvbnN0IEJpdG1hcHNldCAgICp0Z191cGRhdGVkY29sczsKKyAg ICBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWw7CiB9IFRyaWdnZXJEYXRhOwogPC9w cm9ncmFtbGlzdGluZz4KIApAQCAtODI0LDYgKzgyNSw0MyBAQCB0eXBlZGVmIHN0cnVjdCBU cmlnZ2VyCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxzdHJ1Y3Rm aWVsZD50Z190ZW1wb3JhbDwvc3RydWN0ZmllbGQ+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBTZXQgZm9yIDxsaXRlcmFsPlVQREFURTwvbGl0 ZXJhbD4gYW5kIDxsaXRlcmFsPkRFTEVURTwvbGl0ZXJhbD4gcXVlcmllcworICAgICAgICB0 aGF0IHVzZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4sIG90aGVyd2lzZSA8 c3ltYm9sPk5VTEw8L3N5bWJvbD4uCisgICAgICAgIENvbnRhaW5zIGEgcG9pbnRlciB0byBh IHN0cnVjdHVyZSBvZiB0eXBlCisgICAgICAgIDxzdHJ1Y3RuYW1lPkZvclBvcnRpb25PZlN0 YXRlPC9zdHJ1Y3RuYW1lPiwgZGVmaW5lZCBpbgorICAgICAgICA8ZmlsZW5hbWU+bm9kZXMv ZXhlY25vZGVzLmg8L2ZpbGVuYW1lPjoKKworPHByb2dyYW1saXN0aW5nPgordHlwZWRlZiBz dHJ1Y3QgRm9yUG9ydGlvbk9mU3RhdGUKK3sKKyAgICBOb2RlVGFnIHR5cGU7CisKKyAgICBj aGFyICAgKmZwX3JhbmdlTmFtZTsgICAgICAgLyogdGhlIGNvbHVtbi9QRVJJT0QgbmFtZWQg aW4gRk9SIFBPUlRJT04gT0YgKi8KKyAgICBPaWQgICAgIGZwX3JhbmdlVHlwZTsgICAgICAg LyogdGhlIHR5cGUgb2YgdGhlIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24gKi8KKyAgICBi b29sICAgIGZwX2hhc1BlcmlvZDsgICAgICAgLyogdHJ1ZSBpZmYgdGhpcyBpcyBhIFBFUklP RCBub3QgYSByYW5nZSAqLworICAgIGNoYXIgICAqZnBfcGVyaW9kU3RhcnROYW1lOyAvKiB0 aGUgUEVSSU9EJ3Mgc3RhcnQgY29sdW1uICovCisgICAgY2hhciAgICpmcF9wZXJpb2RFbmRO YW1lOyAgIC8qIHRoZSBQRVJJT0QncyBlbmQgY29sdW1uICovCisgICAgRGF0dW0gICBmcF90 YXJnZXRSYW5nZTsgICAgIC8qIHRoZSByYW5nZSBmcm9tIEZPUiBQT1JUSU9OIE9GICovCit9 IEZvclBvcnRpb25PZlN0YXRlOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgICAgIHdoZXJl IDxzdHJ1Y3RmaWVsZD5mcF9yYW5nZU5hbWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgcGVyaW9k IG9yIHJhbmdlCisgICAgICAgY29sdW1uIG5hbWVkIGluIHRoZSA8bGl0ZXJhbD5GT1IgUE9S VElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLAorICAgICAgIDxzdHJ1Y3RmaWVsZD5mcF9yYW5n ZVR5cGU8L3N0cnVjdGZpZWxkPiBpcyBpdHMgcmFuZ2UgdHlwZSwKKyAgICAgICA8c3RydWN0 ZmllbGQ+ZnBfaGFzUGVyaW9kPC9zdHJ1Y3RmaWVsZD4gaW5kaWNhdGVzIHdoZXRoZXIgYSBw ZXJpb2Qgd2FzIHVzZWQKKyAgICAgICBvciBhIHJhbmdlIGNvbHVtbiwgPHN0cnVjdGZpZWxk PmZwX3BlcmlvZFN0YXJ0TmFtZTwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1Y3Rm aWVsZD5mcF9wZXJpb2RFbmROYW1lPC9zdHJ1Y3RmaWVsZD4gYXJlIHRoZSBuYW1lcyBvZiB0 aGUgcGVyaW9kJ3MKKyAgICAgICBzdGFydCBhbmQgZW5kIGNvbHVtbnMgKG9yIDxzeW1ib2w+ TlVMTDwvc3ltYm9sPiBpZiBhIHJhbmdlIGNvbHVtbiB3YXMgdXNlZCksCisgICAgICAgYW5k IDxzdHJ1Y3RmaWVsZD5mcF90YXJnZXRSYW5nZTwvc3RydWN0ZmllbGQ+IGlzIGEgcmFuZ2V0 eXBlIHZhbHVlIGNyZWF0ZWQKKyAgICAgICBieSBldmFsdWF0aW5nIHRoZSA8bGl0ZXJhbD5G T1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLgorICAgICAgIDwvcGFyYT4KKyAgICAg IDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgogICAgIDwvdmFyaWFibGVsaXN0 PgogICAgPC9wYXJhPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0dmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5j CmluZGV4IGUxYWQ2NWI5YTRmLi5kMDg4NmQ5MWYwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2dpc3QvZ2lzdHZhbGlkYXRlLmMKQEAgLTIwMSw3ICsyMDEsNyBAQCBnaXN0dmFsaWRhdGUo T2lkIG9wY2xhc3NvaWQpCiAJCX0KIAogCQkvKiBHaVNUIHN1cHBvcnRzIE9SREVSIEJZIG9w ZXJhdG9ycyAqLwotCQlpZiAob3ByZm9ybS0+YW1vcHB1cnBvc2UgIT0gQU1PUF9TRUFSQ0gp CisJCWlmIChvcHJmb3JtLT5hbW9wcHVycG9zZSA9PSBBTU9QX09SREVSKQogCQl7CiAJCQkv KiAuLi4gYnV0IG11c3QgaGF2ZSBtYXRjaGluZyBkaXN0YW5jZSBwcm9jICovCiAJCQlpZiAo IU9pZElzVmFsaWQoZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHlvaWQsCkBAIC0yMjgsMjQg KzIyOCwzOCBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJcmVzdWx0ID0g ZmFsc2U7CiAJCQl9CiAJCX0KLQkJZWxzZQorCQllbHNlIGlmIChvcHJmb3JtLT5hbW9wcHVy cG9zZSA9PSBBTU9QX1NFQVJDSCkKIAkJewogCQkJLyogU2VhcmNoIG9wZXJhdG9ycyBtdXN0 IGFsd2F5cyByZXR1cm4gYm9vbCAqLwogCQkJb3BfcmV0dHlwZSA9IEJPT0xPSUQ7CiAJCX0K LQotCQkvKiBDaGVjayBvcGVyYXRvciBzaWduYXR1cmUgKi8KLQkJaWYgKCFjaGVja19hbW9w X3NpZ25hdHVyZShvcHJmb3JtLT5hbW9wb3ByLCBvcF9yZXR0eXBlLAotCQkJCQkJCQkgIG9w cmZvcm0tPmFtb3BsZWZ0dHlwZSwKLQkJCQkJCQkJICBvcHJmb3JtLT5hbW9wcmlnaHR0eXBl KSkKKwkJZWxzZQogCQl7CisJCQkvKiBOb3RoaW5nIGVsc2UgaXQgY291bGQgYmUgKi8KIAkJ CWVyZXBvcnQoSU5GTywKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKLQkJCQkJIGVycm1zZygib3BlcmF0b3IgZmFtaWx5IFwiJXNcIiBvZiBh Y2Nlc3MgbWV0aG9kICVzIGNvbnRhaW5zIG9wZXJhdG9yICVzIHdpdGggd3Jvbmcgc2lnbmF0 dXJlIiwKLQkJCQkJCQlvcGZhbWlseW5hbWUsICJnaXN0IiwKLQkJCQkJCQlmb3JtYXRfb3Bl cmF0b3Iob3ByZm9ybS0+YW1vcG9wcikpKSk7CisJCQkJCSBlcnJtc2coIm9wZXJhdG9yIGZh bWlseSBcIiVzXCIgb2YgYWNjZXNzIG1ldGhvZCAlcyBjb250YWlucyB1bmtub3duIHB1cnBv c2UgJWMgZm9yIG9wZXJhdG9yICVzIiwKKwkJCQkJCSBvcGZhbWlseW5hbWUsICJnaXN0Iiwg b3ByZm9ybS0+YW1vcHB1cnBvc2UsCisJCQkJCQkgZm9ybWF0X29wZXJhdG9yKG9wcmZvcm0t PmFtb3BvcHIpKSkpOworCQkJb3BfcmV0dHlwZSA9IEludmFsaWRPaWQ7CiAJCQlyZXN1bHQg PSBmYWxzZTsKIAkJfQorCisJCS8qIENoZWNrIG9wZXJhdG9yIHNpZ25hdHVyZSAqLworCQlp ZiAoT2lkSXNWYWxpZChvcF9yZXR0eXBlKSkKKwkJeworCQkJaWYgKCFjaGVja19hbW9wX3Np Z25hdHVyZShvcHJmb3JtLT5hbW9wb3ByLCBvcF9yZXR0eXBlLAorCQkJCQkJCQkJICBvcHJm b3JtLT5hbW9wbGVmdHR5cGUsCisJCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3ByaWdodHR5cGUp KQorCQkJeworCQkJCWVyZXBvcnQoSU5GTywKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkgZXJybXNnKCJvcGVyYXRvciBmYW1p bHkgXCIlc1wiIG9mIGFjY2VzcyBtZXRob2QgJXMgY29udGFpbnMgb3BlcmF0b3IgJXMgd2l0 aCB3cm9uZyBzaWduYXR1cmUiLAorCQkJCQkJCQlvcGZhbWlseW5hbWUsICJnaXN0IiwKKwkJ CQkJCQkJZm9ybWF0X29wZXJhdG9yKG9wcmZvcm0tPmFtb3BvcHIpKSkpOworCQkJCXJlc3Vs dCA9IGZhbHNlOworCQkJfQorCQl9CiAJfQogCiAJLyogTm93IGNoZWNrIGZvciBpbmNvbnNp c3RlbnQgZ3JvdXBzIG9mIG9wZXJhdG9ycy9mdW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYwppbmRleCA1NzcxYWFiZjQwYS4uMDQ4N2IwNzc0NmQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMKQEAgLTQxNjgsNyArNDE2OCw3IEBAIEV4cGxhaW5UYXJnZXRSZWwoUGxh biAqcGxhbiwgSW5kZXggcnRpLCBFeHBsYWluU3RhdGUgKmVzKQogCiAJCQkJCQlvYmplY3Ru YW1lID0gZ2V0X2Z1bmNfbmFtZShmdW5jaWQpOwogCQkJCQkJaWYgKGVzLT52ZXJib3NlKQot CQkJCQkJCW5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKGdldF9mdW5j X25hbWVzcGFjZShmdW5jaWQpKTsKKwkJCQkJCQluYW1lc3BhY2UgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcChnZXRfZnVuY19uYW1lc3BhY2UoZnVuY2lkLCB0cnVlKSk7CiAJCQkJ CX0KIAkJCQl9CiAJCQkJb2JqZWN0dGFnID0gIkZ1bmN0aW9uIE5hbWUiOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwppbmRleCBjNTJmMzEzNzI2MS4uNGQ0NzIyMTJlMTEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMjMzMSw2ICsxMjMzMSw3IEBAIHZhbGlk YXRlRm9yZWlnbktleUNvbnN0cmFpbnQoY2hhciAqY29ubmFtZSwKIAkJdHJpZ2RhdGEudGdf dHJpZ3R1cGxlID0gRXhlY0ZldGNoU2xvdEhlYXBUdXBsZShzbG90LCBmYWxzZSwgTlVMTCk7 CiAJCXRyaWdkYXRhLnRnX3RyaWdzbG90ID0gc2xvdDsKIAkJdHJpZ2RhdGEudGdfdHJpZ2dl ciA9ICZ0cmlnOworCQl0cmlnZGF0YS50Z190ZW1wb3JhbCA9IE5VTEw7CiAKIAkJZmNpbmZv LT5jb250ZXh0ID0gKE5vZGUgKikgJnRyaWdkYXRhOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2Vy LmMKaW5kZXggMjlkMzBiZmI2ZjcuLjM1NzhmYjBhNGQ0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJp Z2dlci5jCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAj aW5jbHVkZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNp bmNsdWRlICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAj aW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCiAjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIK QEAgLTI2MzIsNiArMjYzMyw3IEBAIEV4ZWNCU0RlbGV0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0 YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvKQogCUxvY1RyaWdnZXJEYXRhLnRnX2V2ZW50 ID0gVFJJR0dFUl9FVkVOVF9ERUxFVEUgfAogCQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlM b2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsK KwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25P ZjsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRyaWdnZXJzOyBpKyspCiAJewog CQlUcmlnZ2VyICAgICp0cmlnZ2VyID0gJnRyaWdkZXNjLT50cmlnZ2Vyc1tpXTsKQEAgLTI3 MzEsNiArMjczMyw3IEBAIEV4ZWNCUkRlbGV0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBF UFFTdGF0ZSAqZXBxc3RhdGUsCiAJCVRSSUdHRVJfRVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9F VkVOVF9CRUZPUkU7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5y aV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZv LT5yaV9mb3JQb3J0aW9uT2Y7CiAJZm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmln Z2VyczsgaSsrKQogCXsKIAkJSGVhcFR1cGxlCW5ld3R1cGxlOwpAQCAtMjgyMiw2ICsyODI1 LDcgQEAgRXhlY0lSRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbElu Zm8gKnJlbGluZm8sCiAJCVRSSUdHRVJfRVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9J TlNURUFEOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVs YXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlf Zm9yUG9ydGlvbk9mOwogCiAJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUodHJpZ3R1cGxlLCBz bG90LCBmYWxzZSk7CiAKQEAgLTI4ODUsNiArMjg4OSw3IEBAIEV4ZWNCU1VwZGF0ZVRyaWdn ZXJzKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvKQogCQlUUklHR0VS X0VWRU5UX0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8t PnJpX1JlbGF0aW9uRGVzYzsKIAlMb2NUcmlnZ2VyRGF0YS50Z191cGRhdGVkY29scyA9IHVw ZGF0ZWRDb2xzOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlf Zm9yUG9ydGlvbk9mOwogCWZvciAoaSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJpZ2dlcnM7 IGkrKykKIAl7CiAJCVRyaWdnZXIgICAgKnRyaWdnZXIgPSAmdHJpZ2Rlc2MtPnRyaWdnZXJz W2ldOwpAQCAtMzAyMCw2ICszMDI1LDcgQEAgRXhlY0JSVXBkYXRlVHJpZ2dlcnMoRVN0YXRl ICplc3RhdGUsIEVQUVN0YXRlICplcHFzdGF0ZSwKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAog CQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9 IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3Jh bCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsKIAl1cGRhdGVkQ29scyA9IEV4ZWNHZXRB bGxVcGRhdGVkQ29scyhyZWxpbmZvLCBlc3RhdGUpOwogCUxvY1RyaWdnZXJEYXRhLnRnX3Vw ZGF0ZWRjb2xzID0gdXBkYXRlZENvbHM7CiAJZm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5u dW10cmlnZ2VyczsgaSsrKQpAQCAtMzE2OSw2ICszMTc1LDcgQEAgRXhlY0lSVXBkYXRlVHJp Z2dlcnMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCVRSSUdH RVJfRVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9JTlNURUFEOwogCUxvY1RyaWdnZXJE YXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdn ZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCiAJRXhl Y0ZvcmNlU3RvcmVIZWFwVHVwbGUodHJpZ3R1cGxlLCBvbGRzbG90LCBmYWxzZSk7CiAKQEAg LTM2MzUsNiArMzY0Miw3IEBAIHR5cGVkZWYgc3RydWN0IEFmdGVyVHJpZ2dlclNoYXJlZERh dGEKIAlPaWQJCQlhdHNfdGdvaWQ7CQkvKiB0aGUgdHJpZ2dlcidzIElEICovCiAJT2lkCQkJ YXRzX3JlbGlkOwkJLyogdGhlIHJlbGF0aW9uIGl0J3Mgb24gKi8KIAlDb21tYW5kSWQJYXRz X2ZpcmluZ19pZDsJLyogSUQgZm9yIGZpcmluZyBjeWNsZSAqLworCUZvclBvcnRpb25PZlN0 YXRlICpmb3JfcG9ydGlvbl9vZjsJLyogdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwog CXN0cnVjdCBBZnRlclRyaWdnZXJzVGFibGVEYXRhICphdHNfdGFibGU7CS8qIHRyYW5zaXRp b24gdGFibGUgYWNjZXNzICovCiAJQml0bWFwc2V0ICAqYXRzX21vZGlmaWVkY29sczsJLyog bW9kaWZpZWQgY29sdW1ucyAqLwogfSBBZnRlclRyaWdnZXJTaGFyZWREYXRhOwpAQCAtMzkw OCw2ICszOTE2LDcgQEAgc3RhdGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50 U3RhdGVDcmVhdGUoaW50IG51bWFsbG9jKTsKIHN0YXRpYyBTZXRDb25zdHJhaW50U3RhdGUg U2V0Q29uc3RyYWludFN0YXRlQ29weShTZXRDb25zdHJhaW50U3RhdGUgb3JpZ3N0YXRlKTsK IHN0YXRpYyBTZXRDb25zdHJhaW50U3RhdGUgU2V0Q29uc3RyYWludFN0YXRlQWRkSXRlbShT ZXRDb25zdHJhaW50U3RhdGUgc3RhdGUsCiAJCQkJCQkJCQkJCQkJT2lkIHRnb2lkLCBib29s IHRnaXNkZWZlcnJlZCk7CitzdGF0aWMgRm9yUG9ydGlvbk9mU3RhdGUgKkNvcHlGb3JQb3J0 aW9uT2ZTdGF0ZShGb3JQb3J0aW9uT2ZTdGF0ZSAqc3JjKTsKIHN0YXRpYyB2b2lkIGNhbmNl bF9wcmlvcl9zdG10X3RyaWdnZXJzKE9pZCByZWxpZCwgQ21kVHlwZSBjbWRUeXBlLCBpbnQg dGdldmVudCk7CiAKIApAQCAtNDExNyw2ICs0MTI2LDcgQEAgYWZ0ZXJUcmlnZ2VyQWRkRXZl bnQoQWZ0ZXJUcmlnZ2VyRXZlbnRMaXN0ICpldmVudHMsCiAJCQluZXdzaGFyZWQtPmF0c19y ZWxpZCA9PSBldnRzaGFyZWQtPmF0c19yZWxpZCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfZXZl bnQgPT0gZXZ0c2hhcmVkLT5hdHNfZXZlbnQgJiYKIAkJCW5ld3NoYXJlZC0+YXRzX3RhYmxl ID09IGV2dHNoYXJlZC0+YXRzX3RhYmxlICYmCisJCQluZXdzaGFyZWQtPmZvcl9wb3J0aW9u X29mID09IGV2dHNoYXJlZC0+Zm9yX3BvcnRpb25fb2YgJiYKIAkJCW5ld3NoYXJlZC0+YXRz X2ZpcmluZ19pZCA9PSAwKQogCQkJYnJlYWs7CiAJfQpAQCAtNDQ4NSw2ICs0NDk1LDcgQEAg QWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwKIAlMb2NUcmlnZ2VyRGF0YS50 Z19yZWxhdGlvbiA9IHJlbDsKIAlpZiAoVFJJR0dFUl9GT1JfVVBEQVRFKExvY1RyaWdnZXJE YXRhLnRnX3RyaWdnZXItPnRndHlwZSkpCiAJCUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRj b2xzID0gZXZ0c2hhcmVkLT5hdHNfbW9kaWZpZWRjb2xzOworCUxvY1RyaWdnZXJEYXRhLnRn X3RlbXBvcmFsID0gZXZ0c2hhcmVkLT5mb3JfcG9ydGlvbl9vZjsKIAogCU1lbW9yeUNvbnRl eHRSZXNldChwZXJfdHVwbGVfY29udGV4dCk7CiAKQEAgLTYwMTksNiArNjAzMCw0MyBAQCBB ZnRlclRyaWdnZXJQZW5kaW5nT25SZWwoT2lkIHJlbGlkKQogCXJldHVybiBmYWxzZTsKIH0K IAorLyogLS0tLS0tLS0tLQorICogRm9yUG9ydGlvbk9mU3RhdGUoKQorICoKKyAqIENvcHlz IGEgRm9yUG9ydGlvbk9mU3RhdGUgaW50byB0aGUgY3VycmVudCBtZW1vcnkgY29udGV4dC4K KyAqLworc3RhdGljIEZvclBvcnRpb25PZlN0YXRlICoKK0NvcHlGb3JQb3J0aW9uT2ZTdGF0 ZShGb3JQb3J0aW9uT2ZTdGF0ZSAqc3JjKQoreworCUZvclBvcnRpb25PZlN0YXRlICpkc3Qg PSBOVUxMOworCWlmIChzcmMpIHsKKwkJTWVtb3J5Q29udGV4dCBvbGRjdHg7CisJCVJhbmdl VHlwZSAqcjsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisJCS8qCisJCSAqIE5l ZWQgdG8gbGlmdCB0aGUgRk9SIFBPUlRJT04gT0YgZGV0YWlscyBpbnRvIGEgaGlnaGVyIG1l bW9yeSBjb250ZXh0CisJCSAqIGJlY2F1c2UgY2FzY2FkaW5nIGZvcmVpZ24ga2V5IHVwZGF0 ZS9kZWxldGVzIGNhbiBjYXVzZSB0cmlnZ2VycyB0byBmaXJlCisJCSAqIHRyaWdnZXJzLCBh bmQgdGhlIEFmdGVyVHJpZ2dlckV2ZW50cyB3aWxsIG91dGxpdmUgdGhlIEZQTworCQkgKiBk ZXRhaWxzIG9mIHRoZSBvcmlnaW5hbCBxdWVyeS4KKwkJICovCisJCW9sZGN0eCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhUb3BUcmFuc2FjdGlvbkNvbnRleHQpOworCQlkc3QgPSBtYWtl Tm9kZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisJCWRzdC0+ZnBfcmFuZ2VOYW1lID0gcHN0cmR1 cChzcmMtPmZwX3JhbmdlTmFtZSk7CisJCWRzdC0+ZnBfcmFuZ2VUeXBlID0gc3JjLT5mcF9y YW5nZVR5cGU7CisJCWRzdC0+ZnBfaGFzUGVyaW9kID0gc3JjLT5mcF9oYXNQZXJpb2Q7CisJ CWRzdC0+ZnBfcmFuZ2VBdHRubyA9IHNyYy0+ZnBfcmFuZ2VBdHRubzsKKwkJZHN0LT5mcF9w ZXJpb2RTdGFydEF0dG5vID0gc3JjLT5mcF9wZXJpb2RTdGFydEF0dG5vOworCQlkc3QtPmZw X3BlcmlvZEVuZEF0dG5vID0gc3JjLT5mcF9wZXJpb2RFbmRBdHRubzsKKworCQlyID0gRGF0 dW1HZXRSYW5nZVR5cGVQKHNyYy0+ZnBfdGFyZ2V0UmFuZ2UpOworCQl0eXBjYWNoZSA9IGxv b2t1cF90eXBlX2NhY2hlKFJhbmdlVHlwZUdldE9pZChyKSwgVFlQRUNBQ0hFX1JBTkdFX0lO Rk8pOworCQlkc3QtPmZwX3RhcmdldFJhbmdlID0gZGF0dW1Db3B5KHNyYy0+ZnBfdGFyZ2V0 UmFuZ2UsIHR5cGNhY2hlLT50eXBieXZhbCwgdHlwY2FjaGUtPnR5cGxlbik7CisJCU1lbW9y eUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOworCX0KKwlyZXR1cm4gZHN0OworfQorCiAvKiAt LS0tLS0tLS0tCiAgKiBBZnRlclRyaWdnZXJTYXZlRXZlbnQoKQogICoKQEAgLTY0MzQsNiAr NjQ4Miw3IEBAIEFmdGVyVHJpZ2dlclNhdmVFdmVudChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0 UmVsSW5mbyAqcmVsaW5mbywKIAkJZWxzZQogCQkJbmV3X3NoYXJlZC5hdHNfdGFibGUgPSBO VUxMOwogCQluZXdfc2hhcmVkLmF0c19tb2RpZmllZGNvbHMgPSBhZnRlclRyaWdnZXJDb3B5 Qml0bWFwKG1vZGlmaWVkQ29scyk7CisJCW5ld19zaGFyZWQuZm9yX3BvcnRpb25fb2YgPSBD b3B5Rm9yUG9ydGlvbk9mU3RhdGUocmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mKTsKIAogCQlh ZnRlclRyaWdnZXJBZGRFdmVudCgmYWZ0ZXJUcmlnZ2Vycy5xdWVyeV9zdGFja1thZnRlclRy aWdnZXJzLnF1ZXJ5X2RlcHRoXS5ldmVudHMsCiAJCQkJCQkJICZuZXdfZXZlbnQsICZuZXdf c2hhcmVkKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDRkN2M5MmQ2M2MxLi5j ZjIzOTE1NmRhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0xMjQ4LDYgKzEy NDgsNyBAQCBJbml0UmVzdWx0UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZv LAogCXJlc3VsdFJlbEluZm8tPnJpX3Byb2plY3RSZXR1cm5pbmcgPSBOVUxMOwogCXJlc3Vs dFJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyA9IE5JTDsKIAlyZXN1bHRS ZWxJbmZvLT5yaV9vbkNvbmZsaWN0ID0gTlVMTDsKKwlyZXN1bHRSZWxJbmZvLT5yaV9mb3JQ b3J0aW9uT2YgPSBOVUxMOwogCXJlc3VsdFJlbEluZm8tPnJpX1JldHVybmluZ1Nsb3QgPSBO VUxMOwogCXJlc3VsdFJlbEluZm8tPnJpX1RyaWdPbGRTbG90ID0gTlVMTDsKIAlyZXN1bHRS ZWxJbmZvLT5yaV9UcmlnTmV3U2xvdCA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVNb2RpZnlUYWJsZS5jCmluZGV4IDQ5MTNlNDkzMTk5Li5hMGYyOTI4NWY0NSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTY1LDggKzY1LDEwIEBA CiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2luY2x1ZGUgInJld3JpdGUv cmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRl ICJ1dGlscy9hcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVk ZSAidXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAKQEAgLTE0 NCw2ICsxNDYsMTAgQEAgc3RhdGljIGJvb2wgRXhlY09uQ29uZmxpY3RVcGRhdGUoTW9kaWZ5 VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKmV4Y2x1 ZGVkU2xvdCwKIAkJCQkJCQkJIGJvb2wgY2FuU2V0VGFnLAogCQkJCQkJCQkgVHVwbGVUYWJs ZVNsb3QgKipyZXR1cm5pbmcpOworc3RhdGljIHZvaWQgRXhlY0ZvclBvcnRpb25PZkxlZnRv dmVycyhNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCisJCQkJCQkJCQkgIEVTdGF0ZSAq ZXN0YXRlLAorCQkJCQkJCQkJICBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAorCQkJ CQkJCQkJICBJdGVtUG9pbnRlciB0dXBsZWlkKTsKIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAq RXhlY1ByZXBhcmVUdXBsZVJvdXRpbmcoTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwKIAkJ CQkJCQkJCQkJICAgRVN0YXRlICplc3RhdGUsCiAJCQkJCQkJCQkJCSAgIFBhcnRpdGlvblR1 cGxlUm91dGluZyAqcHJvdXRlLApAQCAtMTY2LDYgKzE3Miw3IEBAIHN0YXRpYyBUdXBsZVRh YmxlU2xvdCAqRXhlY01lcmdlTWF0Y2hlZChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQs CiBzdGF0aWMgVHVwbGVUYWJsZVNsb3QgKkV4ZWNNZXJnZU5vdE1hdGNoZWQoTW9kaWZ5VGFi bGVDb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkJCSAgIFJlc3VsdFJlbEluZm8gKnJlc3Vs dFJlbEluZm8sCiAJCQkJCQkJCQkJICAgYm9vbCBjYW5TZXRUYWcpOworc3RhdGljIHZvaWQg RXhlY1NldHVwVHJhbnNpdGlvbkNhcHR1cmVTdGF0ZShNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSk7CiAKIAogLyoKQEAgLTEyMTEsNiArMTIxOCwxNjkgQEAg RXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCUV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMK KyAqCisgKgkJSW5zZXJ0IHR1cGxlcyBmb3IgdGhlIHVudG91Y2hlZCBwb3J0aW9uIG9mIGEg cm93IGluIGEgRk9SCisgKgkJUE9SVElPTiBPRiBVUERBVEUvREVMRVRFCisgKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KK3N0YXRpYyB2b2lkCitFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlm eVRhYmxlQ29udGV4dCAqY29udGV4dCwKKwkJCQkJCSAgRVN0YXRlICplc3RhdGUsCisJCQkJ CQkgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCisJCQkJCQkgIEl0ZW1Qb2ludGVy IHR1cGxlaWQpCit7CisJTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSA9IGNvbnRleHQtPm10 c3RhdGU7CisJTW9kaWZ5VGFibGUgKm5vZGUgPSAoTW9kaWZ5VGFibGUgKikgbXRzdGF0ZS0+ cHMucGxhbjsKKwlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YgPSAoRm9yUG9ydGlv bk9mRXhwciAqKSBub2RlLT5mb3JQb3J0aW9uT2Y7CisJQXR0ck51bWJlcglyYW5nZUF0dG5v OworCURhdHVtCW9sZFJhbmdlOworCWJvb2wgaXNOdWxsID0gZmFsc2U7CisJVHlwZUNhY2hl RW50cnkgKnR5cGNhY2hlOworCUZvclBvcnRpb25PZlN0YXRlICpmcG9TdGF0ZSA9IHJlc3Vs dFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZjsKKwlUdXBsZVRhYmxlU2xvdCAqb2xkdHVwbGVT bG90ID0gZnBvU3RhdGUtPmZwX0V4aXN0aW5nOworCVR1cGxlVGFibGVTbG90ICpsZWZ0b3Zl clNsb3QgPSBmcG9TdGF0ZS0+ZnBfTGVmdG92ZXI7CisJVHVwbGVDb252ZXJzaW9uTWFwICpt YXAgPSBOVUxMOworCUhlYXBUdXBsZSBvbGR0dXBsZSA9IE5VTEw7CisJQ21kVHlwZQlvbGRP cGVyYXRpb247CisJVHJhbnNpdGlvbkNhcHR1cmVTdGF0ZSAqb2xkVGNzOworCUZtZ3JJbmZv IGZsaW5mbzsKKwlSZXR1cm5TZXRJbmZvIHJzaTsKKwlib29sIGRpZEluaXQgPSBmYWxzZTsK Kwlib29sIHNob3VsZEZyZWUgPSBmYWxzZTsKKwlMT0NBTF9GQ0lORk8oZmNpbmZvLCAyKTsK KworCS8qCisJICogR2V0IHRoZSByYW5nZSBvZiB0aGUgb2xkIHByZS1VUERBVEUvREVMRVRF IHR1cGxlLAorCSAqIHNvIHdlIGNhbiBpbnRlcnNlY3QgaXQgd2l0aCB0aGUgRk9SIFBPUlRJ T04gT0YgdGFyZ2V0CisJICogYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55ICJsZWZ0b3ZlcnMi IHRvIGluc2VydC4KKwkgKgorCSAqIFdlIGhhdmUgYWxyZWFkeSBsb2NrZWQgdGhlIHR1cGxl IGluIEV4ZWNVcGRhdGUvRXhlY0RlbGV0ZQorCSAqIGFuZCBpdCBoYXMgcGFzc2VkIEV2YWxQ bGFuUXVhbC4KKwkgKiBNYWtlIHN1cmUgd2UncmUgbG9va2luZyBhdCB0aGUgbW9zdCByZWNl bnQgdmVyc2lvbi4KKwkgKiBPdGhlcndpc2UgY29uY3VycmVudCB1cGRhdGVzIG9mIHRoZSBz YW1lIHR1cGxlIGluIFJFQUQgQ09NTUlUVEVECisJICogY291bGQgaW5zZXJ0IGNvbmZsaWN0 aW5nICJsZWZ0b3ZlcnMiLgorCSAqLworCWlmICghdGFibGVfdHVwbGVfZmV0Y2hfcm93X3Zl cnNpb24ocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLCB0dXBsZWlkLCBTbmFwc2hv dEFueSwgb2xkdHVwbGVTbG90KSkKKwkJZWxvZyhFUlJPUiwgImZhaWxlZCB0byBmZXRjaCB0 dXBsZSBmb3IgRk9SIFBPUlRJT04gT0YiKTsKKworCS8qCisJICogR2V0IHRoZSBvbGQgcmFu Z2Ugb2YgdGhlIHJlY29yZCBiZWluZyB1cGRhdGVkLgorCSAqIE11c3QgcmVhZCB3aXRoIHRo ZSBhdHRubyBvZiB0aGUgbGVhZiBwYXJ0aXRpb24gYmVpbmcgdXBkYXRlZAorCSAqLworCisJ cmFuZ2VBdHRubyA9IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vOworCWlmIChy ZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKKwkJbWFwID0gRXhlY0dldENo aWxkVG9Sb290TWFwKHJlc3VsdFJlbEluZm8pOworCWlmIChtYXAgIT0gTlVMTCkKKwkJcmFu Z2VBdHRubyA9IG1hcC0+YXR0ck1hcC0+YXR0bnVtc1tyYW5nZUF0dG5vIC0gMV07CisJb2xk UmFuZ2UgPSBzbG90X2dldGF0dHIob2xkdHVwbGVTbG90LCByYW5nZUF0dG5vLCAmaXNOdWxs KTsKKworCWlmIChpc051bGwpCisJCWVsb2coRVJST1IsICJmb3VuZCBhIE5VTEwgcmFuZ2Ug aW4gYSB0ZW1wb3JhbCB0YWJsZSIpOworCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdlJ3MgdHlw ZSBjYWNoZSBlbnRyeS4gVGhpcyBpcyB3b3J0aCBjYWNoaW5nIGZvciB0aGUgd2hvbGUgVVBE QVRFCisJICogYXMgcmFuZ2UgZnVuY3Rpb25zIGRvLgorCSAqLworCisJdHlwY2FjaGUgPSBm cG9TdGF0ZS0+ZnBfbGVmdG92ZXJzdHlwY2FjaGU7CisJaWYgKHR5cGNhY2hlID09IE5VTEwp CisJeworCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKGZvclBvcnRpb25PZi0+cmFu Z2VUeXBlLCAwKTsKKwkJZnBvU3RhdGUtPmZwX2xlZnRvdmVyc3R5cGNhY2hlID0gdHlwY2Fj aGU7CisJfQorCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdlcyB0byB0aGUgbGVmdC9yaWdodCBv ZiB0aGUgdGFyZ2V0ZWQgcmFuZ2UuCisJICogV2UgY2FsbCBhIFNFVE9GIHN1cHBvcnQgZnVu Y3Rpb24gYW5kIGluc2VydCBhcyBtYW55IGxlZnRvdmVycworCSAqIGFzIGl0IGdpdmVzIHVz LiBBbHRob3VnaCByYW5nZXR5cGVzIGhhdmUgMC8xLzIgbGVmdG92ZXJzLAorCSAqIG11bHRp cmFuZ2VzIGhhdmUgMC8xLCBhbmQgb3RoZXIgdHlwZXMgbWF5IGhhdmUgbW9yZS4KKwkgKi8K KworCWZtZ3JfaW5mbyhmb3JQb3J0aW9uT2YtPndpdGhvdXRQb3J0aW9uUHJvYywgJmZsaW5m byk7CisJcnNpLnR5cGUgPSBUX1JldHVyblNldEluZm87CisJcnNpLmVjb250ZXh0ID0gbXRz dGF0ZS0+cHMucHNfRXhwckNvbnRleHQ7CisJcnNpLmV4cGVjdGVkRGVzYyA9IE5VTEw7CisJ cnNpLmFsbG93ZWRNb2RlcyA9IChpbnQpIChTRlJNX1ZhbHVlUGVyQ2FsbCk7CisJcnNpLnJl dHVybk1vZGUgPSBTRlJNX1ZhbHVlUGVyQ2FsbDsKKwlyc2kuc2V0UmVzdWx0ID0gTlVMTDsK Kwlyc2kuc2V0RGVzYyA9IE5VTEw7CisKKwlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZj aW5mbywgJmZsaW5mbywgMiwgSW52YWxpZE9pZCwgTlVMTCwgKE5vZGUgKikgJnJzaSk7CisJ ZmNpbmZvLT5hcmdzWzBdLnZhbHVlID0gb2xkUmFuZ2U7CisJZmNpbmZvLT5hcmdzWzBdLmlz bnVsbCA9IGZhbHNlOworCWZjaW5mby0+YXJnc1sxXS52YWx1ZSA9IGZwb1N0YXRlLT5mcF90 YXJnZXRSYW5nZTsKKwlmY2luZm8tPmFyZ3NbMV0uaXNudWxsID0gZmFsc2U7CisKKwl3aGls ZSAodHJ1ZSkKKwl7CisJCURhdHVtIGxlZnRvdmVyID0gRnVuY3Rpb25DYWxsSW52b2tlKGZj aW5mbyk7CisKKwkJLyogQXJlIHdlIGRvbmU/ICovCisJCWlmIChyc2kuaXNEb25lID09IEV4 cHJFbmRSZXN1bHQpCisJCQlicmVhazsKKworCQlpZiAoZmNpbmZvLT5pc251bGwpCisJCQll bG9nKEVSUk9SLCAiR290IGEgbnVsbCBmcm9tIHdpdGhvdXRfcG9ydGlvbiBmdW5jdGlvbiIp OworCisJCWlmICghZGlkSW5pdCkKKwkJeworCQkJLyoKKwkJCSAqIE1ha2UgYSBjb3B5IG9m IHRoZSBwcmUtVVBEQVRFIHJvdy4KKwkJCSAqIFRoZW4gd2UnbGwgb3ZlcndyaXRlIHRoZSBy YW5nZSBjb2x1bW4gYmVsb3cuCisJCQkgKiBDb252ZXJ0IG9sZHR1cGxlIHRvIHRoZSBiYXNl IHRhYmxlJ3MgZm9ybWF0IGlmIG5lY2Vzc2FyeS4KKwkJCSAqIFdlIG5lZWQgdG8gaW5zZXJ0 IGxlZnRvdmVycyB0aHJvdWdoIHRoZSByb290IHBhcnRpdGlvbgorCQkJICogc28gdGhleSBn ZXQgcm91dGVkIGNvcnJlY3RseS4KKwkJCSAqLworCQkJaWYgKG1hcCAhPSBOVUxMKQorCQkJ CWxlZnRvdmVyU2xvdCA9IGV4ZWN1dGVfYXR0cl9tYXBfc2xvdChtYXAtPmF0dHJNYXAsCisJ CQkJCQkJCQkJCQkJIG9sZHR1cGxlU2xvdCwKKwkJCQkJCQkJCQkJCQkgbGVmdG92ZXJTbG90 KTsKKwkJCWVsc2UKKwkJCXsKKwkJCQlvbGR0dXBsZSA9IEV4ZWNGZXRjaFNsb3RIZWFwVHVw bGUob2xkdHVwbGVTbG90LCBmYWxzZSwgJnNob3VsZEZyZWUpOworCQkJCUV4ZWNGb3JjZVN0 b3JlSGVhcFR1cGxlKG9sZHR1cGxlLCBsZWZ0b3ZlclNsb3QsIGZhbHNlKTsKKwkJCX0KKwor CQkJLyogU2F2ZSBzb21lIG10c3RhdGUgdGhpbmdzIHNvIHdlIGNhbiByZXN0b3JlIHRoZW0g YmVsb3cuICovCisJCQkvLyBUT0RPOiBEbyB3ZSBuZWVkIGEgbW9yZSBzeXN0ZW1hdGljIHdh eSBvZiBkb2luZyB0aGlzLAorCQkJLy8gZS5nLiBhIG5ldyBtdHN0YXRlIG9yIGV2ZW4gYSBz ZXBhcmF0ZSBGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMgbm9kZT8KKwkJCW9sZE9wZXJhdGlvbiA9 IG10c3RhdGUtPm9wZXJhdGlvbjsKKwkJCW10c3RhdGUtPm9wZXJhdGlvbiA9IENNRF9JTlNF UlQ7CisJCQlvbGRUY3MgPSBtdHN0YXRlLT5tdF90cmFuc2l0aW9uX2NhcHR1cmU7CisKKwkJ CWRpZEluaXQgPSB0cnVlOworCQl9CisKKwkJLyogc3RvcmUgdGhlIG5ldyByYW5nZSAqLwor CQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFy YXR0bm8gLSAxXSA9IGxlZnRvdmVyOworCQlsZWZ0b3ZlclNsb3QtPnR0c19pc251bGxbZm9y UG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGZhbHNlOworCQlFeGVjTWF0 ZXJpYWxpemVTbG90KGxlZnRvdmVyU2xvdCk7CisKKwkJLyoKKwkJICogSWYgdGhlcmUgYXJl IHBhcnRpdGlvbnMsIHdlIG11c3QgaW5zZXJ0IGludG8gdGhlIHJvb3QgdGFibGUsCisJCSAq IHNvIHdlIGdldCB0dXBsZSByb3V0aW5nLiBXZSBhbHJlYWR5IHNldCB1cCBsZWZ0b3ZlclNs b3QKKwkJICogd2l0aCB0aGUgcm9vdCB0dXBsZSBkZXNjcmlwdG9yLgorCQkgKi8KKwkJaWYg KHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQkJcmVzdWx0UmVsSW5m byA9IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCisJCUV4ZWNTZXR1 cFRyYW5zaXRpb25DYXB0dXJlU3RhdGUobXRzdGF0ZSwgZXN0YXRlKTsKKwkJRXhlY0luc2Vy dChjb250ZXh0LCByZXN1bHRSZWxJbmZvLCBsZWZ0b3ZlclNsb3QsIG5vZGUtPmNhblNldFRh ZywgTlVMTCwgTlVMTCk7CisJfQorCisJaWYgKGRpZEluaXQpCisJeworCQltdHN0YXRlLT5v cGVyYXRpb24gPSBvbGRPcGVyYXRpb247CisJCW10c3RhdGUtPm10X3RyYW5zaXRpb25fY2Fw dHVyZSA9IG9sZFRjczsKKworCQlpZiAoc2hvdWxkRnJlZSkKKwkJCWhlYXBfZnJlZXR1cGxl KG9sZHR1cGxlKTsKKwl9Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlFeGVjQmF0Y2hJbnNl cnQKICAqCkBAIC0xMzYzLDcgKzE1MzMsOCBAQCBFeGVjRGVsZXRlQWN0KE1vZGlmeVRhYmxl Q29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKICAqCiAg KiBDbG9zaW5nIHN0ZXBzIG9mIHR1cGxlIGRlbGV0aW9uOyB0aGlzIGludm9rZXMgQUZURVIg Rk9SIEVBQ0ggUk9XIHRyaWdnZXJzLAogICogaW5jbHVkaW5nIHRoZSBVUERBVEUgdHJpZ2dl cnMgaWYgdGhlIGRlbGV0aW9uIGlzIGJlaW5nIGRvbmUgYXMgcGFydCBvZiBhCi0gKiBjcm9z cy1wYXJ0aXRpb24gdHVwbGUgbW92ZS4KKyAqIGNyb3NzLXBhcnRpdGlvbiB0dXBsZSBtb3Zl LiBJdCBhbHNvIGluc2VydHMgbGVmdG92ZXJzIGZyb20gYSBGT1IgUE9SVElPTiBPRgorICog ZGVsZXRlLgogICovCiBzdGF0aWMgdm9pZAogRXhlY0RlbGV0ZUVwaWxvZ3VlKE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKQEAg LTEzOTYsNiArMTU2NywxMSBAQCBFeGVjRGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVDb250 ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQlhcl9kZWxl dGVfdHJpZ190Y3MgPSBOVUxMOwogCX0KIAorCS8qIENvbXB1dGUgbGVmdG92ZXJzIGluIEZP UiBQT1JUSU9OIE9GICovCisJLy8gVE9ETzogU2tpcCB0aGlzIGZvciBGRFcgZGVsZXRlcz8K KwlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+Zm9y UG9ydGlvbk9mKQorCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGVzdGF0 ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBST1cgREVMRVRFIFRy aWdnZXJzICovCiAJRXhlY0FSRGVsZXRlVHJpZ2dlcnMoZXN0YXRlLCByZXN1bHRSZWxJbmZv LCB0dXBsZWlkLCBvbGR0dXBsZSwKIAkJCQkJCSBhcl9kZWxldGVfdHJpZ190Y3MsIGNoYW5n aW5nUGFydCk7CkBAIC0xNzc2LDcgKzE5NTIsMTEgQEAgRXhlY0Nyb3NzUGFydGl0aW9uVXBk YXRlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlpZiAocmVzdWx0UmVsSW5mbyA9 PSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mbykKIAkJRXhlY1BhcnRpdGlvbkNoZWNrRW1p dEVycm9yKHJlc3VsdFJlbEluZm8sIHNsb3QsIGVzdGF0ZSk7CiAKLQkvKiBJbml0aWFsaXpl IHR1cGxlIHJvdXRpbmcgaW5mbyBpZiBub3QgYWxyZWFkeSBkb25lLiAqLworCS8qCisJICog SW5pdGlhbGl6ZSB0dXBsZSByb3V0aW5nIGluZm8gaWYgbm90IGFscmVhZHkgZG9uZS4KKwkg KiBOb3RlIHdoYXRldmVyIHdlIGRvIGhlcmUgbXVzdCBiZSBkb25lIGluIEV4ZWNJbml0TW9k aWZ5VGFibGUKKwkgKiBmb3IgRk9SIFBPUlRJT04gT0YgYXMgd2VsbC4KKwkgKi8KIAlpZiAo bXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPT0gTlVMTCkKIAl7CiAJCVJl bGF0aW9uCXJvb3RSZWwgPSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRp b25EZXNjOwpAQCAtMjE0Miw2ICsyMzIyLDExIEBAIEV4ZWNVcGRhdGVFcGlsb2d1ZShNb2Rp ZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFVwZGF0ZUNvbnRleHQgKnVwZGF0ZUN4dCwKIAkJ CQkJCQkJCQkJICAgTlVMTCwgTklMLAogCQkJCQkJCQkJCQkgICAodXBkYXRlQ3h0LT51cGRh dGVJbmRleGVzID09IFRVX1N1bW1hcml6aW5nKSk7CiAKKwkvKiBDb21wdXRlIGxlZnRvdmVy cyBpbiBGT1IgUE9SVElPTiBPRiAqLworCS8vIFRPRE86IFNraXAgdGhpcyBmb3IgRkRXIHVw ZGF0ZXM/CisJaWYgKCgoTW9kaWZ5VGFibGUgKikgY29udGV4dC0+bXRzdGF0ZS0+cHMucGxh biktPmZvclBvcnRpb25PZikKKwkJRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhjb250ZXh0 LCBjb250ZXh0LT5lc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1cGxlaWQpOworCiAJLyogQUZU RVIgUk9XIFVQREFURSBUcmlnZ2VycyAqLwogCUV4ZWNBUlVwZGF0ZVRyaWdnZXJzKGNvbnRl eHQtPmVzdGF0ZSwgcmVzdWx0UmVsSW5mbywKIAkJCQkJCSBOVUxMLCBOVUxMLApAQCAtNDU3 Myw2ICs0NzU4LDExNyBAQCBFeGVjSW5pdE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlICpub2Rl LCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJfQogCX0KIAorCS8qCisJICogSWYg bmVlZGVkLCBpbml0aWFsaXplIHRoZSB0YXJnZXQgcmFuZ2UgZm9yIEZPUiBQT1JUSU9OIE9G LgorCSAqLworCWlmIChub2RlLT5mb3JQb3J0aW9uT2YpCisJeworCQlUdXBsZURlc2MgdHVw RGVzYzsKKwkJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mOworCQlEYXR1bQl0YXJn ZXRSYW5nZTsKKwkJYm9vbAlpc051bGw7CisJCUV4cHJDb250ZXh0ICplY29udGV4dDsKKwkJ RXhwclN0YXRlICpleHByU3RhdGU7CisJCUZvclBvcnRpb25PZlN0YXRlICpmcG9TdGF0ZTsK KworCQlyZXN1bHRSZWxJbmZvID0gbXRzdGF0ZS0+cmVzdWx0UmVsSW5mbzsKKwkJaWYgKHJl c3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQkJcmVzdWx0UmVsSW5mbyA9 IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCisJCXR1cERlc2MgPSBy ZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MtPnJkX2F0dDsKKwkJZm9yUG9ydGlvbk9m ID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZS0+Zm9yUG9ydGlvbk9mOworCisJCS8qIEV2 YWwgdGhlIEZPUiBQT1JUSU9OIE9GIHRhcmdldCAqLworCQlpZiAobXRzdGF0ZS0+cHMucHNf RXhwckNvbnRleHQgPT0gTlVMTCkKKwkJCUV4ZWNBc3NpZ25FeHByQ29udGV4dChlc3RhdGUs ICZtdHN0YXRlLT5wcyk7CisJCWVjb250ZXh0ID0gbXRzdGF0ZS0+cHMucHNfRXhwckNvbnRl eHQ7CisKKwkJZXhwclN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGZvclBvcnRp b25PZi0+dGFyZ2V0UmFuZ2UsIGVzdGF0ZSk7CisJCXRhcmdldFJhbmdlID0gRXhlY0V2YWxF eHByKGV4cHJTdGF0ZSwgZWNvbnRleHQsICZpc051bGwpOworCQlpZiAoaXNOdWxsKQorCQkJ ZWxvZyhFUlJPUiwgIkdvdCBhIE5VTEwgRk9SIFBPUlRJT04gT0YgdGFyZ2V0IHJhbmdlIik7 CisKKwkJLyogQ3JlYXRlIHN0YXRlIGZvciBGT1IgUE9SVElPTiBPRiBvcGVyYXRpb24gKi8K KworCQlmcG9TdGF0ZSA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZnBvU3Rh dGUtPmZwX3JhbmdlTmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VfbmFtZTsKKwkJZnBvU3Rh dGUtPmZwX3JhbmdlVHlwZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VUeXBlOworCQlmcG9TdGF0 ZS0+ZnBfcmFuZ2VBdHRubyA9IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vOwor CQlmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2UgPSB0YXJnZXRSYW5nZTsKKworCQkvKiBJbml0 aWFsaXplIHNsb3QgZm9yIHRoZSBleGlzdGluZyB0dXBsZSAqLworCisJCWZwb1N0YXRlLT5m cF9FeGlzdGluZyA9CisJCQl0YWJsZV9zbG90X2NyZWF0ZShyZXN1bHRSZWxJbmZvLT5yaV9S ZWxhdGlvbkRlc2MsCisJCQkJCQkJICAmbXRzdGF0ZS0+cHMuc3RhdGUtPmVzX3R1cGxlVGFi bGUpOworCisJCS8qIENyZWF0ZSB0aGUgdHVwbGUgc2xvdCBmb3IgSU5TRVJUaW5nIHRoZSBs ZWZ0b3ZlcnMgKi8KKworCQlmcG9TdGF0ZS0+ZnBfTGVmdG92ZXIgPQorCQkJRXhlY0luaXRF eHRyYVR1cGxlU2xvdChtdHN0YXRlLT5wcy5zdGF0ZSwgdHVwRGVzYywgJlRUU09wc1ZpcnR1 YWwpOworCisJCS8qCisJCSAqIFdlIG11c3QgYXR0YWNoIHRoZSBGb3JQb3J0aW9uT2ZTdGF0 ZSB0byBhbGwgcmVzdWx0IHJlbHMsCisJCSAqIGluIGNhc2Ugb2YgYSBjcm9zcy1wYXJ0aXRp b24gdXBkYXRlIG9yIHRyaWdnZXJzIGZpcmluZworCQkgKiBvbiBwYXJ0aXRpb25zLgorCQkg Ki8KKwkJZm9yIChpID0gMDsgaSA8IG5yZWxzOyBpKyspCisJCXsKKwkJCUZvclBvcnRpb25P ZlN0YXRlCSpsZWFmU3RhdGU7CisJCQlyZXN1bHRSZWxJbmZvID0gJm10c3RhdGUtPnJlc3Vs dFJlbEluZm9baV07CisKKwkJCWxlYWZTdGF0ZSA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0 YXRlKTsKKwkJCWxlYWZTdGF0ZS0+ZnBfcmFuZ2VOYW1lID0gZnBvU3RhdGUtPmZwX3Jhbmdl TmFtZTsKKwkJCWxlYWZTdGF0ZS0+ZnBfcmFuZ2VUeXBlID0gZnBvU3RhdGUtPmZwX3Jhbmdl VHlwZTsKKwkJCWxlYWZTdGF0ZS0+ZnBfcmFuZ2VBdHRubyA9IGZwb1N0YXRlLT5mcF9yYW5n ZUF0dG5vOworCQkJbGVhZlN0YXRlLT5mcF90YXJnZXRSYW5nZSA9IGZwb1N0YXRlLT5mcF90 YXJnZXRSYW5nZTsKKwkJCWxlYWZTdGF0ZS0+ZnBfTGVmdG92ZXIgPSBmcG9TdGF0ZS0+ZnBf TGVmdG92ZXI7CisJCQkvKiBFYWNoIHBhcnRpdGlvbiBuZWVkcyBhIHNsb3QgbWF0Y2hpbmcg aXRzIHR1cGxlIGRlc2NyaXB0b3IgKi8KKwkJCWxlYWZTdGF0ZS0+ZnBfRXhpc3RpbmcgPQor CQkJCXRhYmxlX3Nsb3RfY3JlYXRlKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYywK KwkJCQkJCQkJICAmbXRzdGF0ZS0+cHMuc3RhdGUtPmVzX3R1cGxlVGFibGUpOworCisJCQly ZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2YgPSBsZWFmU3RhdGU7CisJCX0KKworCQkv KiBNYWtlIHN1cmUgdGhlIHJvb3QgcmVsYXRpb24gaGFzIHRoZSBGT1IgUE9SVElPTiBPRiBj bGF1c2UgdG9vLiAqLworCQlpZiAobm9kZS0+cm9vdFJlbGF0aW9uID4gMCkKKwkJCW10c3Rh dGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2YgPSBmcG9TdGF0ZTsKKwor CQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJM RSAmJgorCQkJCW10c3RhdGUtPm10X3BhcnRpdGlvbl90dXBsZV9yb3V0aW5nID09IE5VTEwp CisJCXsKKwkJCS8qCisJCQkgKiBXZSB3aWxsIG5lZWQgdHVwbGUgcm91dGluZyB0byBpbnNl cnQgbGVmdG92ZXJzLgorCQkJICogU2luY2Ugd2UgYXJlIGluaXRpYWxpemluZyB0aGluZ3Mg YmVmb3JlIEV4ZWNDcm9zc1BhcnRpdGlvblVwZGF0ZSBydW5zLAorCQkJICogd2UgbXVzdCBk byBldmVyeXRoaW5nIGl0IG5lZWRzIGFzIHdlbGwuCisJCQkgKi8KKwkJCWlmIChtdHN0YXRl LT5tdF9wYXJ0aXRpb25fdHVwbGVfcm91dGluZyA9PSBOVUxMKQorCQkJeworCQkJCVJlbGF0 aW9uCXJvb3RSZWwgPSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25E ZXNjOworCQkJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCQkJLyogVGhpbmdzIGJ1aWx0 IGhlcmUgaGF2ZSB0byBsYXN0IGZvciB0aGUgcXVlcnkgZHVyYXRpb24uICovCisJCQkJb2xk Y3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKKwor CQkJCW10c3RhdGUtPm10X3BhcnRpdGlvbl90dXBsZV9yb3V0aW5nID0KKwkJCQkJRXhlY1Nl dHVwUGFydGl0aW9uVHVwbGVSb3V0aW5nKGVzdGF0ZSwgcm9vdFJlbCk7CisKKwkJCQkvKgor CQkJCSAqIEJlZm9yZSBhIHBhcnRpdGlvbidzIHR1cGxlIGNhbiBiZSByZS1yb3V0ZWQsIGl0 IG11c3QgZmlyc3QgYmUKKwkJCQkgKiBjb252ZXJ0ZWQgdG8gdGhlIHJvb3QncyBmb3JtYXQs IHNvIHdlJ2xsIG5lZWQgYSBzbG90IGZvciBzdG9yaW5nCisJCQkJICogc3VjaCB0dXBsZXMu CisJCQkJICovCisJCQkJQXNzZXJ0KG10c3RhdGUtPm10X3Jvb3RfdHVwbGVfc2xvdCA9PSBO VUxMKTsKKwkJCQltdHN0YXRlLT5tdF9yb290X3R1cGxlX3Nsb3QgPSB0YWJsZV9zbG90X2Ny ZWF0ZShyb290UmVsLCBOVUxMKTsKKworCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj eHQpOworCQkJfQorCQl9CisKKwkJLyogRG9uJ3QgZnJlZSB0aGUgRXhwckNvbnRleHQgaGVy ZSBiZWNhdXNlIHRoZSByZXN1bHQgbXVzdCBsYXN0IGZvciB0aGUgd2hvbGUgcXVlcnkgKi8K Kwl9CisKIAkvKgogCSAqIElmIHdlIGhhdmUgYW55IHNlY29uZGFyeSByZWxhdGlvbnMgaW4g YW4gVVBEQVRFIG9yIERFTEVURSwgdGhleSBuZWVkIHRvCiAJICogYmUgdHJlYXRlZCBsaWtl IG5vbi1sb2NrZWQgcmVsYXRpb25zIGluIFNFTEVDVCBGT1IgVVBEQVRFLCBpLmUuLCB0aGUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZDJlMmFmNGY4MTEuLjhjNTZkYzY3YzMwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjU2MSw2ICsyNTYxLDE0IEBAIGV4cHJlc3Np b25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfRm9yUG9ydGlvbk9mRXhwcjoKKwkJCXsKKwkJCQlG b3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YgPSAoRm9yUG9ydGlvbk9mRXhwciAqKSBu b2RlOworCisJCQkJaWYgKFdBTEsoZm9yUG9ydGlvbk9mLT50YXJnZXRSYW5nZSkpCisJCQkJ CXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QYXJ0aXRpb25QcnVu ZVN0ZXBPcDoKIAkJCXsKIAkJCQlQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqb3BzdGVwID0gKFBh cnRpdGlvblBydW5lU3RlcE9wICopIG5vZGU7CkBAIC0yNzA3LDYgKzI3MTUsOCBAQCBxdWVy eV90cmVlX3dhbGtlcl9pbXBsKFF1ZXJ5ICpxdWVyeSwKIAkJcmV0dXJuIHRydWU7CiAJaWYg KFdBTEsocXVlcnktPm1lcmdlSm9pbkNvbmRpdGlvbikpCiAJCXJldHVybiB0cnVlOworCWlm IChXQUxLKHF1ZXJ5LT5mb3JQb3J0aW9uT2YpKQorCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FM SyhxdWVyeS0+cmV0dXJuaW5nTGlzdCkpCiAJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1 ZXJ5LT5qb2ludHJlZSkpCkBAIC0zNTg2LDYgKzM1OTYsMTkgQEAgZXhwcmVzc2lvbl90cmVl X211dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2Rl OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgorCQkJewor CQkJCUZvclBvcnRpb25PZkV4cHIgKmZwbyA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGU7 CisJCQkJRm9yUG9ydGlvbk9mRXhwciAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25v ZGUsIGZwbywgRm9yUG9ydGlvbk9mRXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnJhbmdl VmFyLCBmcG8tPnJhbmdlVmFyLCBWYXIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnRhcmdl dFJhbmdlLCBmcG8tPnRhcmdldFJhbmdlLCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2Rl LT5yYW5nZVRhcmdldExpc3QsIGZwby0+cmFuZ2VUYXJnZXRMaXN0LCBMaXN0ICopOworCisJ CQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBU X1BhcnRpdGlvblBydW5lU3RlcE9wOgogCQkJewogCQkJCVBhcnRpdGlvblBydW5lU3RlcE9w ICpvcHN0ZXAgPSAoUGFydGl0aW9uUHJ1bmVTdGVwT3AgKikgbm9kZTsKQEAgLTM3NjcsNiAr Mzc5MCw3IEBAIHF1ZXJ5X3RyZWVfbXV0YXRvcl9pbXBsKFF1ZXJ5ICpxdWVyeSwKIAlNVVRB VEUocXVlcnktPm9uQ29uZmxpY3QsIHF1ZXJ5LT5vbkNvbmZsaWN0LCBPbkNvbmZsaWN0RXhw ciAqKTsKIAlNVVRBVEUocXVlcnktPm1lcmdlQWN0aW9uTGlzdCwgcXVlcnktPm1lcmdlQWN0 aW9uTGlzdCwgTGlzdCAqKTsKIAlNVVRBVEUocXVlcnktPm1lcmdlSm9pbkNvbmRpdGlvbiwg cXVlcnktPm1lcmdlSm9pbkNvbmRpdGlvbiwgTm9kZSAqKTsKKwlNVVRBVEUocXVlcnktPmZv clBvcnRpb25PZiwgcXVlcnktPmZvclBvcnRpb25PZiwgRm9yUG9ydGlvbk9mRXhwciAqKTsK IAlNVVRBVEUocXVlcnktPnJldHVybmluZ0xpc3QsIHF1ZXJ5LT5yZXR1cm5pbmdMaXN0LCBM aXN0ICopOwogCU1VVEFURShxdWVyeS0+am9pbnRyZWUsIHF1ZXJ5LT5qb2ludHJlZSwgRnJv bUV4cHIgKik7CiAJTVVUQVRFKHF1ZXJ5LT5zZXRPcGVyYXRpb25zLCBxdWVyeS0+c2V0T3Bl cmF0aW9ucywgTm9kZSAqKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBs YW4uYwppbmRleCBjNmQxOGFlMDBmMy4uNGRkMGJmNzIwYjkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTMxNCw3ICszMTQsNyBAQCBzdGF0aWMg TW9kaWZ5VGFibGUgKm1ha2VfbW9kaWZ5dGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4g KnN1YnBsYW4sCiAJCQkJCQkJCQkgTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3Qg KnJldHVybmluZ0xpc3RzLAogCQkJCQkJCQkJIExpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0 RXhwciAqb25jb25mbGljdCwKIAkJCQkJCQkJCSBMaXN0ICptZXJnZUFjdGlvbkxpc3RzLCBM aXN0ICptZXJnZUpvaW5Db25kaXRpb25zLAotCQkJCQkJCQkJIGludCBlcHFQYXJhbSk7CisJ CQkJCQkJCQkgRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mLCBpbnQgZXBxUGFyYW0p Owogc3RhdGljIEdhdGhlck1lcmdlICpjcmVhdGVfZ2F0aGVyX21lcmdlX3BsYW4oUGxhbm5l ckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCSBHYXRoZXJNZXJnZVBhdGggKmJlc3RfcGF0aCk7 CiAKQEAgLTI4MzQsNiArMjgzNCw3IEBAIGNyZWF0ZV9tb2RpZnl0YWJsZV9wbGFuKFBsYW5u ZXJJbmZvICpyb290LCBNb2RpZnlUYWJsZVBhdGggKmJlc3RfcGF0aCkKIAkJCQkJCQliZXN0 X3BhdGgtPm9uY29uZmxpY3QsCiAJCQkJCQkJYmVzdF9wYXRoLT5tZXJnZUFjdGlvbkxpc3Rz LAogCQkJCQkJCWJlc3RfcGF0aC0+bWVyZ2VKb2luQ29uZGl0aW9ucywKKwkJCQkJCQliZXN0 X3BhdGgtPmZvclBvcnRpb25PZiwKIAkJCQkJCQliZXN0X3BhdGgtPmVwcVBhcmFtKTsKIAog CWNvcHlfZ2VuZXJpY19wYXRoX2luZm8oJnBsYW4tPnBsYW4sICZiZXN0X3BhdGgtPnBhdGgp OwpAQCAtNzAzMCw3ICs3MDMxLDcgQEAgbWFrZV9tb2RpZnl0YWJsZShQbGFubmVySW5mbyAq cm9vdCwgUGxhbiAqc3VicGxhbiwKIAkJCQkgTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMs IExpc3QgKnJldHVybmluZ0xpc3RzLAogCQkJCSBMaXN0ICpyb3dNYXJrcywgT25Db25mbGlj dEV4cHIgKm9uY29uZmxpY3QsCiAJCQkJIExpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIExpc3Qg Km1lcmdlSm9pbkNvbmRpdGlvbnMsCi0JCQkJIGludCBlcHFQYXJhbSkKKwkJCQkgRm9yUG9y dGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mLCBpbnQgZXBxUGFyYW0pCiB7CiAJTW9kaWZ5VGFi bGUgKm5vZGUgPSBtYWtlTm9kZShNb2RpZnlUYWJsZSk7CiAJTGlzdAkgICAqZmR3X3ByaXZh dGVfbGlzdDsKQEAgLTcwOTYsNiArNzA5Nyw3IEBAIG1ha2VfbW9kaWZ5dGFibGUoUGxhbm5l ckluZm8gKnJvb3QsIFBsYW4gKnN1YnBsYW4sCiAJCW5vZGUtPmV4Y2xSZWxUbGlzdCA9IG9u Y29uZmxpY3QtPmV4Y2xSZWxUbGlzdDsKIAl9CiAJbm9kZS0+dXBkYXRlQ29sbm9zTGlzdHMg PSB1cGRhdGVDb2xub3NMaXN0czsKKwlub2RlLT5mb3JQb3J0aW9uT2YgPSAoTm9kZSAqKSBm b3JQb3J0aW9uT2Y7CiAJbm9kZS0+d2l0aENoZWNrT3B0aW9uTGlzdHMgPSB3aXRoQ2hlY2tP cHRpb25MaXN0czsKIAlub2RlLT5yZXR1cm5pbmdMaXN0cyA9IHJldHVybmluZ0xpc3RzOwog CW5vZGUtPnJvd01hcmtzID0gcm93TWFya3M7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9w bGFubmVyLmMKaW5kZXggOTQ4YWZkOTA5NDguLjBhODVhODkzNTZiIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0xOTg4LDYgKzE5ODgsNyBAQCBncm91cGlu Z19wbGFubmVyKFBsYW5uZXJJbmZvICpyb290LCBkb3VibGUgdHVwbGVfZnJhY3Rpb24sCiAJ CQkJCQkJCQkJcGFyc2UtPm9uQ29uZmxpY3QsCiAJCQkJCQkJCQkJbWVyZ2VBY3Rpb25MaXN0 cywKIAkJCQkJCQkJCQltZXJnZUpvaW5Db25kaXRpb25zLAorCQkJCQkJCQkJCXBhcnNlLT5m b3JQb3J0aW9uT2YsCiAJCQkJCQkJCQkJYXNzaWduX3NwZWNpYWxfZXhlY19wYXJhbShyb290 KSk7CiAJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0 aG5vZGUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMKaW5kZXgg NTRlMDQyYThhNTkuLmY5YTEyNzE2NzY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvdXRpbC9wYXRobm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGls L3BhdGhub2RlLmMKQEAgLTM3MjUsNyArMzcyNSw3IEBAIGNyZWF0ZV9tb2RpZnl0YWJsZV9w YXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJCQkJCQlMaXN0ICp3 aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlzdCAqcmV0dXJuaW5nTGlzdHMsCiAJCQkJCQlMaXN0 ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3QsCiAJCQkJCQlMaXN0ICpt ZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJnZUpvaW5Db25kaXRpb25zLAotCQkJCQkJaW50 IGVwcVBhcmFtKQorCQkJCQkJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mLCBpbnQg ZXBxUGFyYW0pCiB7CiAJTW9kaWZ5VGFibGVQYXRoICpwYXRobm9kZSA9IG1ha2VOb2RlKE1v ZGlmeVRhYmxlUGF0aCk7CiAKQEAgLTM3OTEsNiArMzc5MSw3IEBAIGNyZWF0ZV9tb2RpZnl0 YWJsZV9wYXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJcGF0aG5v ZGUtPnJldHVybmluZ0xpc3RzID0gcmV0dXJuaW5nTGlzdHM7CiAJcGF0aG5vZGUtPnJvd01h cmtzID0gcm93TWFya3M7CiAJcGF0aG5vZGUtPm9uY29uZmxpY3QgPSBvbmNvbmZsaWN0Owor CXBhdGhub2RlLT5mb3JQb3J0aW9uT2YgPSBmb3JQb3J0aW9uT2Y7CiAJcGF0aG5vZGUtPmVw cVBhcmFtID0gZXBxUGFyYW07CiAJcGF0aG5vZGUtPm1lcmdlQWN0aW9uTGlzdHMgPSBtZXJn ZUFjdGlvbkxpc3RzOwogCXBhdGhub2RlLT5tZXJnZUpvaW5Db25kaXRpb25zID0gbWVyZ2VK b2luQ29uZGl0aW9uczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGU5MDEyMDM0MjRkLi4x ZjU3NzQzMjRiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0yNCw3ICsyNCwxMCBAQAog CiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9naXN0LmgiCisj aW5jbHVkZSAiYWNjZXNzL3N0cmF0bnVtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCkBAIC00NywxMCArNTAsMTIgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFyZ2V0LmgiCiAjaW5j bHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VyLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInV0aWxzL2JhY2tl bmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1 dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC01OSwxMCAr NjQsMTYgQEAKIHBvc3RfcGFyc2VfYW5hbHl6ZV9ob29rX3R5cGUgcG9zdF9wYXJzZV9hbmFs eXplX2hvb2sgPSBOVUxMOwogCiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybU9wdGlvbmFsU2Vs ZWN0SW50byhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSk7CitzdGF0aWMg Tm9kZSAqYWRkRm9yUG9ydGlvbk9mV2hlcmVDb25kaXRpb25zKFF1ZXJ5ICpxcnksIEZvclBv cnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mLAorCQkJCQkJCQkJCQlOb2RlICp3aGVyZUNs YXVzZSk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBEZWxldGVTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtSW5z ZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQgKnN0bXQpOwogc3RhdGlj IE9uQ29uZmxpY3RFeHByICp0cmFuc2Zvcm1PbkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCQkJCSBPbkNvbmZsaWN0Q2xhdXNlICpvbkNvbmZsaWN0Q2xh dXNlKTsKK3N0YXRpYyBGb3JQb3J0aW9uT2ZFeHByICp0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZD bGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQkJCSBpbnQgcnRpbmRleCwK KwkJCQkJCQkJCQkJCQkgRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2ZDbGF1c2Us CisJCQkJCQkJCQkJCQkJIGJvb2wgaXNVcGRhdGUpOwogc3RhdGljIGludAljb3VudF9yb3dl eHByX2NvbHVtbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKTsKIHN0YXRpYyBR dWVyeSAqdHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0 bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KTsKQEAgLTQ4Miw2ICs0OTMsMjAgQEAg c3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpwYXJzZVRyZWUpCiAJcmV0 dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIE5vZGUgKgorYWRkRm9yUG9ydGlvbk9mV2hlcmVD b25kaXRpb25zKFF1ZXJ5ICpxcnksIEZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9m LCBOb2RlICp3aGVyZUNsYXVzZSkKK3sKKwlpZiAoZm9yUG9ydGlvbk9mKQorCXsKKwkJaWYg KHdoZXJlQ2xhdXNlKQorCQkJcmV0dXJuIChOb2RlICopIG1ha2VCb29sRXhwcihBTkRfRVhQ UiwgbGlzdF9tYWtlMihxcnktPmZvclBvcnRpb25PZi0+b3ZlcmxhcHNFeHByLCB3aGVyZUNs YXVzZSksIC0xKTsKKwkJZWxzZQorCQkJcmV0dXJuIHFyeS0+Zm9yUG9ydGlvbk9mLT5vdmVy bGFwc0V4cHI7CisJfQorCWVsc2UKKwkJcmV0dXJuIHdoZXJlQ2xhdXNlOworfQorCiAvKgog ICogYW5hbHl6ZV9yZXF1aXJlc19zbmFwc2hvdAogICoJCVJldHVybnMgdHJ1ZSBpZiBhIHNu YXBzaG90IG11c3QgYmUgc2V0IGJlZm9yZSBkb2luZyBwYXJzZSBhbmFseXNpcwpAQCAtNTE1 LDYgKzU0MCw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBE ZWxldGVTdG10ICpzdG10KQogewogCVF1ZXJ5CSAgICpxcnkgPSBtYWtlTm9kZShRdWVyeSk7 CiAJUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07CisJTm9kZQkgICAqd2hlcmVDbGF1c2U7 CiAJTm9kZQkgICAqcXVhbDsKIAogCXFyeS0+Y29tbWFuZFR5cGUgPSBDTURfREVMRVRFOwpA QCAtNTUzLDcgKzU3OSwxMSBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAluc2l0ZW0tPnBfbGF0ZXJhbF9vbmx5ID0gZmFs c2U7CiAJbnNpdGVtLT5wX2xhdGVyYWxfb2sgPSB0cnVlOwogCi0JcXVhbCA9IHRyYW5zZm9y bVdoZXJlQ2xhdXNlKHBzdGF0ZSwgc3RtdC0+d2hlcmVDbGF1c2UsCisJaWYgKHN0bXQtPmZv clBvcnRpb25PZikKKwkJcXJ5LT5mb3JQb3J0aW9uT2YgPSB0cmFuc2Zvcm1Gb3JQb3J0aW9u T2ZDbGF1c2UocHN0YXRlLCBxcnktPnJlc3VsdFJlbGF0aW9uLCBzdG10LT5mb3JQb3J0aW9u T2YsIGZhbHNlKTsKKworCXdoZXJlQ2xhdXNlID0gYWRkRm9yUG9ydGlvbk9mV2hlcmVDb25k aXRpb25zKHFyeSwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBzdG10LT53aGVyZUNsYXVzZSk7CisJ cXVhbCA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwgd2hlcmVDbGF1c2UsCiAJCQkJ CQkJCUVYUFJfS0lORF9XSEVSRSwgIldIRVJFIik7CiAKIAlxcnktPnJldHVybmluZ0xpc3Qg PSB0cmFuc2Zvcm1SZXR1cm5pbmdMaXN0KHBzdGF0ZSwgc3RtdC0+cmV0dXJuaW5nTGlzdCwK QEAgLTExODksNyArMTIxOSw3IEBAIHRyYW5zZm9ybU9uQ29uZmxpY3RDbGF1c2UoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkgKiBOb3cgdHJhbnNmb3JtIHRoZSBVUERBVEUgc3ViZXhwcmVz c2lvbnMuCiAJCSAqLwogCQlvbkNvbmZsaWN0U2V0ID0KLQkJCXRyYW5zZm9ybVVwZGF0ZVRh cmdldExpc3QocHN0YXRlLCBvbkNvbmZsaWN0Q2xhdXNlLT50YXJnZXRMaXN0KTsKKwkJCXRy YW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBvbkNvbmZsaWN0Q2xhdXNlLT50YXJn ZXRMaXN0LCBOVUxMKTsKIAogCQlvbkNvbmZsaWN0V2hlcmUgPSB0cmFuc2Zvcm1XaGVyZUNs YXVzZShwc3RhdGUsCiAJCQkJCQkJCQkJCSAgIG9uQ29uZmxpY3RDbGF1c2UtPndoZXJlQ2xh dXNlLApAQCAtMTIxOSw2ICsxMjQ5LDE4NyBAQCB0cmFuc2Zvcm1PbkNvbmZsaWN0Q2xhdXNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogdHJh bnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlCisgKgorICoJICBUcmFuc2Zvcm1zIGEgRm9yUG9y dGlvbk9mQ2xhdXNlIGluIGFuIFVQREFURS9ERUxFVEUgc3RhdGVtZW50LgorICoKKyAqCSAg LSBMb29rIHVwIHRoZSByYW5nZS9wZXJpb2QgcmVxdWVzdGVkLgorICoJICAtIEJ1aWxkIGEg Y29tcGF0aWJsZSByYW5nZSB2YWx1ZSBmcm9tIHRoZSBGUk9NIGFuZCBUTyBleHByZXNzaW9u cy4KKyAqCSAgLSBCdWlsZCBhbiAib3ZlcmxhcHMiIGV4cHJlc3Npb24gZm9yIGZpbHRlcmlu Zy4KKyAqCSAgLSBGb3IgVVBEQVRFcywgYnVpbGQgYW4gImludGVyc2VjdHMiIGV4cHJlc3Np b24gdGhlIHJld3JpdGVyIGNhbiBhZGQKKyAqCQl0byB0aGUgdGFyZ2V0TGlzdCB0byBjaGFu Z2UgdGhlIHRlbXBvcmFsIGJvdW5kcy4KKyAqLworc3RhdGljIEZvclBvcnRpb25PZkV4cHIg KgordHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJ CQkJCQlpbnQgcnRpbmRleCwKKwkJCQkJCQlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRp b25PZiwKKwkJCQkJCQlib29sIGlzVXBkYXRlKQoreworCVJlbGF0aW9uIHRhcmdldHJlbCA9 IHBzdGF0ZS0+cF90YXJnZXRfcmVsYXRpb247CisJUlRFUGVybWlzc2lvbkluZm8gKnRhcmdl dF9wZXJtaW5mbyA9IHBzdGF0ZS0+cF90YXJnZXRfbnNpdGVtLT5wX3Blcm1pbmZvOworCWNo YXIgKnJhbmdlX25hbWUgPSBmb3JQb3J0aW9uT2YtPnJhbmdlX25hbWU7CisJY2hhciAqcmFu Z2VfdHlwZV9uYW1lc3BhY2UgPSBOVUxMOworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZSA9IE5V TEw7CisJaW50IHJhbmdlX2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJRm9ybV9wZ19h dHRyaWJ1dGUgYXR0cjsKKwlPaWQJb3BjbGFzczsKKwlPaWQgb3BmYW1pbHk7CisJT2lkIG9w Y2ludHlwZTsKKwlPaWQgZnVuY2lkID0gSW52YWxpZE9pZDsKKwlTdHJhdGVneU51bWJlciBz dHJhdDsKKwlPaWQJb3BpZDsKKwlGb3JQb3J0aW9uT2ZFeHByICpyZXN1bHQ7CisJVmFyICpy YW5nZVZhcjsKKwlOb2RlICp0YXJnZXRFeHByOworCisJLyogV2UgZG9uJ3Qgc3VwcG9ydCBG T1IgUE9SVElPTiBPRiBGRFcgcXVlcmllcy4gKi8KKwlpZiAodGFyZ2V0cmVsLT5yZF9yZWwt PnJlbGtpbmQgPT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJy bXNnKCJmb3JlaWduIHRhYmxlcyBkb24ndCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GIikpKTsK KworCXJlc3VsdCA9IG1ha2VOb2RlKEZvclBvcnRpb25PZkV4cHIpOworCisJLyogTG9vayB1 cCB0aGUgRk9SIFBPUlRJT04gT0YgbmFtZSByZXF1ZXN0ZWQuICovCisJcmFuZ2VfYXR0bm8g PSBhdHRuYW1lQXR0TnVtKHRhcmdldHJlbCwgcmFuZ2VfbmFtZSwgZmFsc2UpOworCWlmIChy YW5nZV9hdHRubyA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNv bHVtbiBvciBwZXJpb2QgXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlz dCIsCisJCQkJCQlyYW5nZV9uYW1lLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo dGFyZ2V0cmVsKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGZvclBvcnRp b25PZi0+bG9jYXRpb24pKSk7CisJYXR0ciA9IFR1cGxlRGVzY0F0dHIodGFyZ2V0cmVsLT5y ZF9hdHQsIHJhbmdlX2F0dG5vIC0gMSk7CisKKwlyYW5nZVZhciA9IG1ha2VWYXIoCisJCQly dGluZGV4LAorCQkJcmFuZ2VfYXR0bm8sCisJCQlhdHRyLT5hdHR0eXBpZCwKKwkJCWF0dHIt PmF0dHR5cG1vZCwKKwkJCWF0dHItPmF0dGNvbGxhdGlvbiwKKwkJCTApOworCXJhbmdlVmFy LT5sb2NhdGlvbiA9IGZvclBvcnRpb25PZi0+bG9jYXRpb247CisJcmVzdWx0LT5yYW5nZVZh ciA9IHJhbmdlVmFyOworCXJlc3VsdC0+cmFuZ2VUeXBlID0gYXR0ci0+YXR0dHlwaWQ7CisJ aWYgKCFnZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlKGF0dHItPmF0dHR5cGlkLCAmcmFuZ2Vf dHlwZV9uYW1lLCAmcmFuZ2VfdHlwZV9uYW1lc3BhY2UpKQorCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgdHlwZSAldSIsIGF0dHItPmF0dHR5cGlkKTsKKworCisJ aWYgKGZvclBvcnRpb25PZi0+dGFyZ2V0KQorCQkvKgorCQkgKiBXZSB3ZXJlIGFscmVhZHkg Z2l2ZW4gYW4gZXhwcmVzc2lvbiBmb3IgdGhlIHRhcmdldCwKKwkJICogc28gd2UgZG9uJ3Qg aGF2ZSB0byBidWlsZCBhbnl0aGluZy4KKwkJICovCisJCXRhcmdldEV4cHIgPSBmb3JQb3J0 aW9uT2YtPnRhcmdldDsKKwllbHNlCisJeworCQkvKiBNYWtlIHN1cmUgaXQncyBhIHJhbmdl IGNvbHVtbiAqLworCQlpZiAoIXR5cGVfaXNfcmFuZ2UoYXR0ci0+YXR0dHlwaWQpKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9S RUZFUkVOQ0UpLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwi JXNcIiBpcyBub3QgYSByYW5nZSB0eXBlIiwKKwkJCQkJCQlyYW5nZV9uYW1lLAorCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAorCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgZm9yUG9ydGlvbk9mLT5sb2NhdGlvbikpKTsKKworCQkvKgor CQkgKiBCdWlsZCBhIHJhbmdlIGZyb20gdGhlIEZST00gLi4uIFRPIC4uLi4gYm91bmRzLgor CQkgKiBUaGlzIHNob3VsZCBnaXZlIGEgY29uc3RhbnQgcmVzdWx0LCBzbyB3ZSBhY2NlcHQg ZnVuY3Rpb25zIGxpa2UgTk9XKCkKKwkJICogYnV0IG5vdCBjb2x1bW4gcmVmZXJlbmNlcywg c3VicXVlcmllcywgZXRjLgorCQkgKgorCQkgKiBJdCBhbHNvIHBlcm1pdHMgVU5CT1VOREVE IGluIGVpdGhlciBwbGFjZS4KKwkJICovCisJCXRhcmdldEV4cHIgPSAoTm9kZSAqKSBtYWtl RnVuY0NhbGwoCisJCQkJbGlzdF9tYWtlMihtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZXNw YWNlKSwgbWFrZVN0cmluZyhyYW5nZV90eXBlX25hbWUpKSwKKwkJCQlsaXN0X21ha2UyKGZv clBvcnRpb25PZi0+dGFyZ2V0X3N0YXJ0LCBmb3JQb3J0aW9uT2YtPnRhcmdldF9lbmQpLAor CQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAorCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24p OworCX0KKwlyZXN1bHQtPnRhcmdldFJhbmdlID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRh cmdldEV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CisKKwkvKgorCSAqIEJ1aWxk IG92ZXJsYXBzRXhwciB0byB1c2UgaW4gdGhlIHdoZXJlQ2xhdXNlLgorCSAqIFRoaXMgbWVh bnMgd2Ugb25seSBoaXQgcm93cyBtYXRjaGluZyB0aGUgRlJPTSAmIFRPIGJvdW5kcy4KKwkg KiBXZSBtdXN0IGxvb2sgdXAgdGhlIG92ZXJsYXBzIG9wZXJhdG9yICh1c3VhbGx5ICImJiIp LgorCSAqLworCW9wY2xhc3MgPSBHZXREZWZhdWx0T3BDbGFzcyhhdHRyLT5hdHR0eXBpZCwg R0lTVF9BTV9PSUQpOworCXN0cmF0ID0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI7CisJR2V0 T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3BjbGFzcywgSW52YWxpZE9pZCwgJm9w aWQsICZzdHJhdCk7CisJcmVzdWx0LT5vdmVybGFwc0V4cHIgPSAoTm9kZSAqKSBtYWtlU2lt cGxlQV9FeHByKEFFWFBSX09QLCBnZXRfb3BuYW1lKG9waWQpLAorCQkJKE5vZGUgKikgY29w eU9iamVjdChyYW5nZVZhciksIHRhcmdldEV4cHIsCisJCQlmb3JQb3J0aW9uT2YtPmxvY2F0 aW9uKTsKKworCS8qCisJICogTG9vayB1cCB0aGUgd2l0aG91dFBvcnRpb25PcGVyIHNvIHdl IGNhbiBjb21wdXRlIHRoZSBsZWZ0b3ZlcnMuCisJICogTGVmdG92ZXJzIHdpbGwgYmUgb2xk X3JhbmdlIEAtIHRhcmdldF9yYW5nZQorCSAqIChvbmUgcGVyIGVsZW1lbnQgb2YgdGhlIHJl c3VsdCkuCisJICovCisJZnVuY2lkID0gSW52YWxpZE9pZDsKKwlpZiAoZ2V0X29wY2xhc3Nf b3BmYW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywgJm9wZmFtaWx5LCAmb3BjaW50eXBl KSkKKwkJZnVuY2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwg b3BjaW50eXBlLCBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DKTsKKworCWlmICghT2lkSXNW YWxpZChmdW5jaWQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhIHdp dGhvdXRfb3ZlcmxhcHMgc3VwcG9ydCBmdW5jdGlvbiBmb3IgdHlwZSAlcyIsIGZvcm1hdF90 eXBlX2JlKG9wY2ludHlwZSkpLAorCQkJCWVycmhpbnQoIkRlZmluZSBhIHdpdGhvdXRfb3Zl cmxhcHMgc3VwcG9ydCBmdW5jdGlvbiBmb3Igb3BlcmF0b3IgY2xhc3MgXCIlZFwiIGZvciBh Y2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkgb3BjbGFzcywgImdpc3QiKSk7CisKKwly ZXN1bHQtPndpdGhvdXRQb3J0aW9uUHJvYyA9IGZ1bmNpZDsKKworCWlmIChpc1VwZGF0ZSkK Kwl7CisJCS8qCisJCSAqIE5vdyBtYWtlIHN1cmUgd2UgdXBkYXRlIHRoZSBzdGFydC9lbmQg dGltZSBvZiB0aGUgcmVjb3JkLgorCQkgKiBGb3IgYSByYW5nZSBjb2wgKHIpIHRoaXMgaXMg YHIgPSByICogdGFyZ2V0UmFuZ2VgLgorCQkgKi8KKwkJT2lkIGZ1bmNuYW1lc3BhY2U7CisJ CWNoYXIgKmZ1bmNuYW1lOworCQljaGFyICpmdW5jbmFtZXNwYWNlbmFtZTsKKwkJRXhwciAq cmFuZ2VUTEVFeHByOworCQlUYXJnZXRFbnRyeSAqdGxlOworCisJCWZ1bmNpZCA9IGdldF9v cGZhbWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lTVF9JTlRF UlNFQ1RfUFJPQyk7CisJCWlmICghT2lkSXNWYWxpZChmdW5jaWQpKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQll cnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5jdGlv biBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkpLAorCQkJCQllcnJo aW50KCJEZWZpbmUgYW4gaW50ZXJzZWN0IHN1cHBvcnQgZnVuY3Rpb24gZm9yIG9wZXJhdG9y IGNsYXNzIFwiJWRcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJCSBvcGNs YXNzLCAiZ2lzdCIpKTsKKworCQkvLyBUT0RPOiBkbyB3ZSByZWFsbHkgbmVlZCB0byBnbyB0 aHJvdWdoIHRoZSBuYW1lIGhlcmU/CisJCWZ1bmNuYW1lID0gZ2V0X2Z1bmNfbmFtZShmdW5j aWQpOworCQlpZiAoIWZ1bmNuYW1lKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKKwkJZnVuY25hbWVzcGFjZSA9IGdl dF9mdW5jX25hbWVzcGFjZShmdW5jaWQsIGZhbHNlKTsKKwkJZnVuY25hbWVzcGFjZW5hbWUg PSBnZXRfbmFtZXNwYWNlX25hbWUoZnVuY25hbWVzcGFjZSk7CisJCWlmICghZnVuY25hbWVz cGFjZW5hbWUpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgbmFt ZXNwYWNlICV1IiwgZnVuY25hbWVzcGFjZSk7CisKKwkJcmFuZ2VUTEVFeHByID0gKEV4cHIg KikgbWFrZUZ1bmNDYWxsKAorCQkJCWxpc3RfbWFrZTIobWFrZVN0cmluZyhmdW5jbmFtZXNw YWNlbmFtZSksIG1ha2VTdHJpbmcoZnVuY25hbWUpKSwKKwkJCQlsaXN0X21ha2UyKGNvcHlP YmplY3QocmFuZ2VWYXIpLCB0YXJnZXRFeHByKSwKKwkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FM TCwKKwkJCQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKwkJcmFuZ2VUTEVFeHByID0gKEV4 cHIgKikgdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICopIHJhbmdlVExFRXhwciwgRVhQ Ul9LSU5EX1VQREFURV9QT1JUSU9OKTsKKworCQkvKiBNYWtlIGEgVExFIHRvIHNldCB0aGUg cmFuZ2UgY29sdW1uICovCisJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gTklMOworCQl0 bGUgPSBtYWtlVGFyZ2V0RW50cnkocmFuZ2VUTEVFeHByLCByYW5nZV9hdHRubywgcmFuZ2Vf bmFtZSwgZmFsc2UpOworCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBlbmQocmVz dWx0LT5yYW5nZVRhcmdldExpc3QsIHRsZSk7CisKKwkJLyogTWFyayB0aGUgcmFuZ2UgY29s dW1uIGFzIHJlcXVpcmluZyB1cGRhdGUgcGVybWlzc2lvbnMgKi8KKwkJdGFyZ2V0X3Blcm1p bmZvLT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBk YXRlZENvbHMsCisJCQkJCQkJCQkJCQkJICByYW5nZV9hdHRubyAtIEZpcnN0TG93SW52YWxp ZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCX0KKwllbHNlCisJCXJlc3VsdC0+cmFuZ2VUYXJn ZXRMaXN0ID0gTklMOworCisJcmVzdWx0LT5yYW5nZV9uYW1lID0gcmFuZ2VfbmFtZTsKKwor CXJldHVybiByZXN1bHQ7Cit9CiAKIC8qCiAgKiBCdWlsZE9uQ29uZmxpY3RFeGNsdWRlZFRh cmdldGxpc3QKQEAgLTI0MjYsNiArMjYzNyw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogewogCVF1ZXJ5CSAgICpxcnkg PSBtYWtlTm9kZShRdWVyeSk7CiAJUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07CisJTm9k ZQkgICAqd2hlcmVDbGF1c2U7CiAJTm9kZQkgICAqcXVhbDsKIAogCXFyeS0+Y29tbWFuZFR5 cGUgPSBDTURfVVBEQVRFOwpAQCAtMjQ0Myw2ICsyNjU1LDEwIEBAIHRyYW5zZm9ybVVwZGF0 ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCQkJCQkJCQkJ CSBzdG10LT5yZWxhdGlvbi0+aW5oLAogCQkJCQkJCQkJCSB0cnVlLAogCQkJCQkJCQkJCSBB Q0xfVVBEQVRFKTsKKworCWlmIChzdG10LT5mb3JQb3J0aW9uT2YpCisJCXFyeS0+Zm9yUG9y dGlvbk9mID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKHBzdGF0ZSwgcXJ5LT5yZXN1 bHRSZWxhdGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCB0cnVlKTsKKwogCW5zaXRlbSA9IHBz dGF0ZS0+cF90YXJnZXRfbnNpdGVtOwogCiAJLyogc3VicXVlcmllcyBpbiBGUk9NIGNhbm5v dCBhY2Nlc3MgdGhlIHJlc3VsdCByZWxhdGlvbiAqLwpAQCAtMjQ1OSw3ICsyNjc1LDggQEAg dHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0 bXQpCiAJbnNpdGVtLT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwogCW5zaXRlbS0+cF9sYXRl cmFsX29rID0gdHJ1ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUs IHN0bXQtPndoZXJlQ2xhdXNlLAorCXdoZXJlQ2xhdXNlID0gYWRkRm9yUG9ydGlvbk9mV2hl cmVDb25kaXRpb25zKHFyeSwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBzdG10LT53aGVyZUNsYXVz ZSk7CisJcXVhbCA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwgd2hlcmVDbGF1c2Us CiAJCQkJCQkJCUVYUFJfS0lORF9XSEVSRSwgIldIRVJFIik7CiAKIAlxcnktPnJldHVybmlu Z0xpc3QgPSB0cmFuc2Zvcm1SZXR1cm5pbmdMaXN0KHBzdGF0ZSwgc3RtdC0+cmV0dXJuaW5n TGlzdCwKQEAgLTI0NjksNyArMjY4Niw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCSAqIE5vdyB3ZSBhcmUgZG9uZSB3 aXRoIFNFTEVDVC1saWtlIHByb2Nlc3NpbmcsIGFuZCBjYW4gZ2V0IG9uIHdpdGgKIAkgKiB0 cmFuc2Zvcm1pbmcgdGhlIHRhcmdldCBsaXN0IHRvIG1hdGNoIHRoZSBVUERBVEUgdGFyZ2V0 IGNvbHVtbnMuCiAJICovCi0JcXJ5LT50YXJnZXRMaXN0ID0gdHJhbnNmb3JtVXBkYXRlVGFy Z2V0TGlzdChwc3RhdGUsIHN0bXQtPnRhcmdldExpc3QpOworCXFyeS0+dGFyZ2V0TGlzdCA9 IHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBzdG10LT50YXJnZXRMaXN0LCBx cnktPmZvclBvcnRpb25PZik7CiAKIAlxcnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9ydGFibGU7 CiAJcXJ5LT5ydGVwZXJtaW5mb3MgPSBwc3RhdGUtPnBfcnRlcGVybWluZm9zOwpAQCAtMjQ4 OCw3ICsyNzA1LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IFVwZGF0ZVN0bXQgKnN0bXQpCiAgKgloYW5kbGUgU0VUIGNsYXVzZSBpbiBVUERBVEUvTUVS R0UvSU5TRVJUIC4uLiBPTiBDT05GTElDVCBVUERBVEUKICAqLwogTGlzdCAqCi10cmFuc2Zv cm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3JpZ1RsaXN0 KQordHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg Km9yaWdUbGlzdCwgRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mKQogewogCUxpc3QJ ICAgKnRsaXN0ID0gTklMOwogCVJURVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm87 CkBAIC0yNTQxLDYgKzI3NTgsMjEgQEAgdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKm9yaWdUbGlzdCkKIAkJCQkJIGVycmhpbnQoIlNFVCB0 YXJnZXQgY29sdW1ucyBjYW5ub3QgYmUgcXVhbGlmaWVkIHdpdGggdGhlIHJlbGF0aW9uIG5h bWUuIikgOiAwLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1Rhcmdl dC0+bG9jYXRpb24pKSk7CiAKKwkJLyoKKwkJICogSWYgdGhpcyBpcyBhIEZPUiBQT1JUSU9O IE9GIHVwZGF0ZSwKKwkJICogZm9yYmlkIGRpcmVjdGx5IHNldHRpbmcgdGhlIHJhbmdlIGNv bHVtbiwKKwkJICogc2luY2UgdGhhdCB3b3VsZCBjb25mbGljdCB3aXRoIHRoZSBpbXBsaWNp dCB1cGRhdGVzLgorCQkgKi8KKwkJaWYgKGZvclBvcnRpb25PZiAhPSBOVUxMKQorCQl7CisJ CQlpZiAoYXR0cm5vID09IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCQkgZXJybXNnKCJjYW4ndCBkaXJlY3RseSBhc3NpZ24gdG8gXCIlc1wiIGluIGEg Rk9SIFBPUlRJT04gT0YgdXBkYXRlIiwKKwkJCQkJCQkJb3JpZ1RhcmdldC0+bmFtZSksCisJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+bG9jYXRpb24p KSk7CisJCX0KKwogCQl1cGRhdGVUYXJnZXRMaXN0RW50cnkocHN0YXRlLCB0bGUsIG9yaWdU YXJnZXQtPm5hbWUsCiAJCQkJCQkJICBhdHRybm8sCiAJCQkJCQkJICBvcmlnVGFyZ2V0LT5p bmRpcmVjdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDRhZGRmNGQ1MzNlLi4zYmNkMGM1NDIx NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yNTcsNiArMjU3LDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKIAlSYW5nZVZhciAgICpyYW5nZTsKIAlJbnRvQ2xhdXNlICppbnRvOwog CVdpdGhDbGF1c2UgKndpdGg7CisJRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3Jwb3J0aW9ub2Y7 CiAJSW5mZXJDbGF1c2UJKmluZmVyOwogCU9uQ29uZmxpY3RDbGF1c2UgKm9uY29uZmxpY3Q7 CiAJQV9JbmRpY2VzICAqYWluZDsKQEAgLTU1NCw2ICs1NTUsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogJXR5cGUgPHJhbmdlPglyZWxhdGlvbl9leHByCiAldHlwZSA8cmFu Z2U+CWV4dGVuZGVkX3JlbGF0aW9uX2V4cHIKICV0eXBlIDxyYW5nZT4JcmVsYXRpb25fZXhw cl9vcHRfYWxpYXMKKyV0eXBlIDxmb3Jwb3J0aW9ub2Y+IGZvcl9wb3J0aW9uX29mX2NsYXVz ZQogJXR5cGUgPG5vZGU+CXRhYmxlc2FtcGxlX2NsYXVzZSBvcHRfcmVwZWF0YWJsZV9jbGF1 c2UKICV0eXBlIDx0YXJnZXQ+CXRhcmdldF9lbCBzZXRfdGFyZ2V0IGluc2VydF9jb2x1bW5f aXRlbQogCkBAIC03NjUsNyArNzY3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAlPVkVSIE9WRVJMQVBTIE9WRVJMQVkgT1ZFUlJJRElORyBPV05FRCBPV05FUgogCiAJUEFS QUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVJUSVRJT05TIFBB U1NJTkcgUEFTU1dPUkQgUEFUSAotCVBFUklPRCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZ CisJUEVSSU9EIFBMQUNJTkcgUExBTiBQTEFOUyBQT0xJQ1kgUE9SVElPTgogCVBPU0lUSU9O IFBSRUNFRElORyBQUkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZ CiAJUFJJT1IgUFJJVklMRUdFUyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBS T0dSQU0gUFVCTElDQVRJT04KIApAQCAtODg3LDYgKzg4OSwxNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogICogTGlrZSB0aGUgVU5CT1VOREVEIFBSRUNFRElORy9GT0xMT1dJ TkcgY2FzZSwgTkVTVEVEIGlzIGFzc2lnbmVkIGEgbG93ZXIKICAqIHByZWNlZGVuY2UgdGhh biBQQVRIIHRvIGZpeCBhbWJpZ3VpdHkgaW4gdGhlIGpzb25fdGFibGUgcHJvZHVjdGlvbi4K ICAqLworLyoKKyAqIFdlIG5lZWQgdG8gaGFuZGxlIHRoaXMgc2hpZnQvcmVkdWNlIGNvbmZs aWN0OgorICogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBJTlRFUlZBTCBZRUFSIFRP IE1PTlRIIFRPIGZvby4KKyAqIFRoaXMgaXMgYmFzaWNhbGx5IHRoZSBjbGFzc2ljICJkYW5n bGluZyBlbHNlIiBwcm9ibGVtLCBhbmQgd2Ugd2FudCBhCisgKiBzaW1pbGFyIHJlc29sdXRp b246IHRyZWF0IHRoZSBUTyBhcyBwYXJ0IG9mIHRoZSBJTlRFUlZBTCwgbm90IGFzIHBhcnQg b2YKKyAqIHRoZSBGUk9NIC4uLiBUTyAuLi4uIFVzZXJzIGNhbiBhZGQgcGFyZW50aGVzZXMg aWYgdGhhdCdzIGEgcHJvYmxlbS4KKyAqIFRPIGp1c3QgbmVlZHMgdG8gYmUgaGlnaGVyIHBy ZWNlZGVuY2UgdGhhbiBZRUFSX1AgZXRjLgorICogVE9ETzogSSBuZWVkIHRvIGZpZ3VyZSBv dXQgYSAlcHJlYyBzb2x1dGlvbiBiZWZvcmUgdGhpcyBnZXRzIGNvbW1pdHRlZCEKKyAqLwor JW5vbmFzc29jIFlFQVJfUCBNT05USF9QIERBWV9QIEhPVVJfUCBNSU5VVEVfUAorJW5vbmFz c29jIFRPCiAlbm9uYXNzb2MJVU5CT1VOREVEIE5FU1RFRCAvKiBpZGVhbGx5IHdvdWxkIGhh dmUgc2FtZSBwcmVjZWRlbmNlIGFzIElERU5UICovCiAlbm9uYXNzb2MJSURFTlQgUEFSVElU SU9OIFJBTkdFIFJPV1MgR1JPVVBTIFBSRUNFRElORyBGT0xMT1dJTkcgQ1VCRSBST0xMVVAK IAkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRI CkBAIC0xMjM1MywxNCArMTIzNjYsMTYgQEAgcmV0dXJuaW5nX2NsYXVzZToKICAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KIAogRGVsZXRlU3RtdDogb3B0X3dpdGhfY2xhdXNlIERFTEVU RV9QIEZST00gcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMKKwkJCWZvcl9wb3J0aW9uX29mX2Ns YXVzZQogCQkJdXNpbmdfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlIHJldHVybmlu Z19jbGF1c2UKIAkJCQl7CiAJCQkJCURlbGV0ZVN0bXQgKm4gPSBtYWtlTm9kZShEZWxldGVT dG10KTsKIAogCQkJCQluLT5yZWxhdGlvbiA9ICQ0OwotCQkJCQluLT51c2luZ0NsYXVzZSA9 ICQ1OwotCQkJCQluLT53aGVyZUNsYXVzZSA9ICQ2OwotCQkJCQluLT5yZXR1cm5pbmdMaXN0 ID0gJDc7CisJCQkJCW4tPmZvclBvcnRpb25PZiA9ICQ1OworCQkJCQluLT51c2luZ0NsYXVz ZSA9ICQ2OworCQkJCQluLT53aGVyZUNsYXVzZSA9ICQ3OworCQkJCQluLT5yZXR1cm5pbmdM aXN0ID0gJDg7CiAJCQkJCW4tPndpdGhDbGF1c2UgPSAkMTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KQEAgLTEyNDIzLDYgKzEyNDM4LDcgQEAgb3B0X25vd2FpdF9vcl9za2lw OgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBVcGRhdGVTdG10OiBvcHRfd2l0aF9j bGF1c2UgVVBEQVRFIHJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCisJCQlmb3JfcG9ydGlvbl9v Zl9jbGF1c2UKIAkJCVNFVCBzZXRfY2xhdXNlX2xpc3QKIAkJCWZyb21fY2xhdXNlCiAJCQl3 aGVyZV9vcl9jdXJyZW50X2NsYXVzZQpAQCAtMTI0MzEsMTAgKzEyNDQ3LDExIEBAIFVwZGF0 ZVN0bXQ6IG9wdF93aXRoX2NsYXVzZSBVUERBVEUgcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMK IAkJCQkJVXBkYXRlU3RtdCAqbiA9IG1ha2VOb2RlKFVwZGF0ZVN0bXQpOwogCiAJCQkJCW4t PnJlbGF0aW9uID0gJDM7Ci0JCQkJCW4tPnRhcmdldExpc3QgPSAkNTsKLQkJCQkJbi0+ZnJv bUNsYXVzZSA9ICQ2OwotCQkJCQluLT53aGVyZUNsYXVzZSA9ICQ3OwotCQkJCQluLT5yZXR1 cm5pbmdMaXN0ID0gJDg7CisJCQkJCW4tPmZvclBvcnRpb25PZiA9ICQ0OworCQkJCQluLT50 YXJnZXRMaXN0ID0gJDY7CisJCQkJCW4tPmZyb21DbGF1c2UgPSAkNzsKKwkJCQkJbi0+d2hl cmVDbGF1c2UgPSAkODsKKwkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ5OwogCQkJCQluLT53 aXRoQ2xhdXNlID0gJDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMzkw Myw2ICsxMzkyMCwyNyBAQCByZWxhdGlvbl9leHByX29wdF9hbGlhczogcmVsYXRpb25fZXhw cgkJCQkJJXByZWMgVU1JTlVTCiAJCQkJfQogCQk7CiAKK2Zvcl9wb3J0aW9uX29mX2NsYXVz ZToKKwkJCUZPUiBQT1JUSU9OIE9GIENvbElkICcoJyBhX2V4cHIgJyknCisJCQkJeworCQkJ CQlGb3JQb3J0aW9uT2ZDbGF1c2UgKm4gPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZDbGF1c2Up OworCQkJCQluLT5yYW5nZV9uYW1lID0gJDQ7CisJCQkJCW4tPmxvY2F0aW9uID0gQDQ7CisJ CQkJCW4tPnRhcmdldCA9ICQ2OworCQkJCQkkJCA9IG47CisJCQkJfQorCQkJfCBGT1IgUE9S VElPTiBPRiBDb2xJZCBGUk9NIGFfZXhwciBUTyBhX2V4cHIKKwkJCQl7CisJCQkJCUZvclBv cnRpb25PZkNsYXVzZSAqbiA9IG1ha2VOb2RlKEZvclBvcnRpb25PZkNsYXVzZSk7CisJCQkJ CW4tPnJhbmdlX25hbWUgPSAkNDsKKwkJCQkJbi0+bG9jYXRpb24gPSBANDsKKwkJCQkJbi0+ dGFyZ2V0X3N0YXJ0ID0gJDY7CisJCQkJCW4tPnRhcmdldF9lbmQgPSAkODsKKwkJCQkJJCQg PSBuOworCQkJCX0KKwkJCXwgLypFTVBUWSovCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisK IC8qCiAgKiBUQUJMRVNBTVBMRSBkZWNvcmF0aW9uIGluIGEgRlJPTSBpdGVtCiAgKi8KQEAg LTE3Nzk3LDYgKzE3ODM1LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBQTEFOCiAJ CQl8IFBMQU5TCiAJCQl8IFBPTElDWQorCQkJfCBQT1JUSU9OCiAJCQl8IFBSRUNFRElORwog CQkJfCBQUkVQQVJFCiAJCQl8IFBSRVBBUkVECkBAIC0xODQyNSw2ICsxODQ2NCw3IEBAIGJh cmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUExBTgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kK KwkJCXwgUE9SVElPTgogCQkJfCBQT1NJVElPTgogCQkJfCBQUkVDRURJTkcKIAkJCXwgUFJF UEFSRQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGJlZTdkODM0NmEzLi4wMGVkYWY4 M2JhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTc2LDYgKzU3NiwxMyBAQCBj aGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqZXhwcikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0 cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJ aWYgKGlzQWdnKQorCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBh bGxvd2VkIGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJCQkJ ZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBP UlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBU aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0 aGUKQEAgLTk2Nyw2ICs5NzQsOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0 YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNM RV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJ TkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7 CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNh c2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCmlu ZGV4IDQ0NTI5YmI0OWU2Li4xNGZmYjdiYTY0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y29sbGF0ZS5jCkBAIC00ODQsNiArNDg0LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2Vy KE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNh c2UgVF9Kb2luRXhwcjoKIAkJY2FzZSBUX0Zyb21FeHByOgogCQljYXNlIFRfT25Db25mbGlj dEV4cHI6CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgogCQljYXNlIFRfU29ydEdyb3Vw Q2xhdXNlOgogCQljYXNlIFRfTWVyZ2VBY3Rpb246CiAJCQkodm9pZCkgZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNTZlNDEz ZGE5ZjUuLmM2ZmQ0MzdkYTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTU4 Niw2ICs1ODYsOSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBD b2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKIAkJ CWVyciA9IF8oImNhbm5vdCB1c2UgY29sdW1uIHJlZmVyZW5jZSBpbiBwYXJ0aXRpb24gYm91 bmQgZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9Q T1JUSU9OOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGluIEZP UiBQT1JUSU9OIE9GIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICog VGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQg dGhlCkBAIC0xODYwLDYgKzE4NjMsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVE X0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdl bmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQ REFURV9QT1JUSU9OOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBGT1Ig UE9SVElPTiBPRiBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRo ZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpAQCAtMzE1Myw2ICszMTU5LDggQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2lu ZCBleHByS2luZCkKIAkJCXJldHVybiAiVVBEQVRFIjsKIAkJY2FzZSBFWFBSX0tJTkRfTUVS R0VfV0hFTjoKIAkJCXJldHVybiAiTUVSR0UgV0hFTiI7CisJCWNhc2UgRVhQUl9LSU5EX1VQ REFURV9QT1JUSU9OOgorCQkJcmV0dXJuICJGT1IgUE9SVElPTiBPRiI7CiAJCWNhc2UgRVhQ Ul9LSU5EX0dST1VQX0JZOgogCQkJcmV0dXJuICJHUk9VUCBCWSI7CiAJCWNhc2UgRVhQUl9L SU5EX09SREVSX0JZOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWIyMzM0NGEz YjEuLjk5OTIxZDcxM2JlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTgs NiArMjY1OCw5IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCWNhc2UgRVhQUl9LSU5EX0NZ Q0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJf S0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9ucyIpOwor CQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRl ZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdl LmMKaW5kZXggODdkZjc5MDI3ZDcuLjU2ZjY3NmExZjFmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfbWVyZ2UuYwpAQCAtMzg1LDcgKzM4NSw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAkJCQkJcHN0YXRlLT5wX2lzX2lu c2VydCA9IGZhbHNlOwogCQkJCQlhY3Rpb24tPnRhcmdldExpc3QgPQogCQkJCQkJdHJhbnNm b3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsCi0JCQkJCQkJCQkJCQkgIG1lcmdlV2hlbkNs YXVzZS0+dGFyZ2V0TGlzdCk7CisJCQkJCQkJCQkJCQkgIG1lcmdlV2hlbkNsYXVzZS0+dGFy Z2V0TGlzdCwgTlVMTCk7CiAJCQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSBDTURfREVMRVRF OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIv c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCmluZGV4IGMyMjNhMmM1MGFm Li45ZGU3YzQ3ZjljMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl SGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpA QCAtMzY4NCw2ICszNjg0LDMwIEBAIHJld3JpdGVUYXJnZXRWaWV3KFF1ZXJ5ICpwYXJzZXRy ZWUsIFJlbGF0aW9uIHZpZXcpCiAJCQkJCQkJCQkgICZwYXJzZXRyZWUtPmhhc1N1Ykxpbmtz KTsKIAl9CiAKKwlpZiAocGFyc2V0cmVlLT5mb3JQb3J0aW9uT2YgJiYgcGFyc2V0cmVlLT5j b21tYW5kVHlwZSA9PSBDTURfVVBEQVRFKQorCXsKKwkJLyoKKwkJICogTGlrZSB0aGUgSU5T RVJUL1VQREFURSBjb2RlIGFib3ZlLCB1cGRhdGUgdGhlIHJlc25vcyBpbiB0aGUKKwkJICog YXV4aWxpYXJ5IFVQREFURSB0YXJnZXRsaXN0IHRvIHJlZmVyIHRvIGNvbHVtbnMgb2YgdGhl IGJhc2UKKwkJICogcmVsYXRpb24uCisJCSAqLworCQlmb3JlYWNoKGxjLCBwYXJzZXRyZWUt PmZvclBvcnRpb25PZi0+cmFuZ2VUYXJnZXRMaXN0KQorCQl7CisJCQlUYXJnZXRFbnRyeSAq dGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisJCQlUYXJnZXRFbnRyeSAqdmll d190bGU7CisKKwkJCWlmICh0bGUtPnJlc2p1bmspCisJCQkJY29udGludWU7CisKKwkJCXZp ZXdfdGxlID0gZ2V0X3RsZV9ieV9yZXNubyh2aWV3X3RhcmdldGxpc3QsIHRsZS0+cmVzbm8p OworCQkJaWYgKHZpZXdfdGxlICE9IE5VTEwgJiYgIXZpZXdfdGxlLT5yZXNqdW5rICYmIElz QSh2aWV3X3RsZS0+ZXhwciwgVmFyKSkKKwkJCQl0bGUtPnJlc25vID0gKChWYXIgKikgdmll d190bGUtPmV4cHIpLT52YXJhdHRubzsKKwkJCWVsc2UKKwkJCQllbG9nKEVSUk9SLCAiYXR0 cmlidXRlIG51bWJlciAlZCBub3QgZm91bmQgaW4gdmlldyB0YXJnZXRsaXN0IiwKKwkJCQkJ IHRsZS0+cmVzbm8pOworCQl9CisJfQorCiAJLyoKIAkgKiBGb3IgVVBEQVRFL0RFTEVURS9N RVJHRSwgcHVsbCB1cCBhbnkgV0hFUkUgcXVhbHMgZnJvbSB0aGUgdmlldy4gIFdlCiAJICog a25vdyB0aGF0IGFueSBWYXJzIGluIHRoZSBxdWFscyBtdXN0IHJlZmVyZW5jZSB0aGUgb25l IGJhc2UgcmVsYXRpb24sCkBAIC00MDIzLDYgKzQwNDcsMjIgQEAgUmV3cml0ZVF1ZXJ5KFF1 ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKnJld3JpdGVfZXZlbnRzLCBpbnQgb3JpZ19ydF9sZW5n dGgpCiAJCWVsc2UgaWYgKGV2ZW50ID09IENNRF9VUERBVEUpCiAJCXsKIAkJCUFzc2VydChw YXJzZXRyZWUtPm92ZXJyaWRlID09IE9WRVJSSURJTkdfTk9UX1NFVCk7CisJCQkvKgorCQkJ ICogVXBkYXRlIEZPUiBQT1JUSU9OIE9GIGNvbHVtbihzKSBhdXRvbWF0aWNhbGx5LiBEb24n dAorCQkJICogZG8gdGhpcyB1bnRpbCB3ZSdyZSBkb25lIHJld3JpdGluZyBhIHZpZXcgdXBk YXRlLCBzbworCQkJICogdGhhdCB3ZSBkb24ndCBhZGQgdGhlIHNhbWUgdXBkYXRlIG9uIHRo ZSByZWN1cnNpb24uCisJCQkgKi8KKwkJCWlmIChwYXJzZXRyZWUtPmZvclBvcnRpb25PZiAm JgorCQkJCXJ0X2VudHJ5X3JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9W SUVXKQorCQkJeworCQkJCUxpc3RDZWxsICp0bDsKKwkJCQlmb3JlYWNoKHRsLCBwYXJzZXRy ZWUtPmZvclBvcnRpb25PZi0+cmFuZ2VUYXJnZXRMaXN0KQorCQkJCXsKKwkJCQkJVGFyZ2V0 RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QodGwpOworCQkJCQlwYXJzZXRy ZWUtPnRhcmdldExpc3QgPSBsYXBwZW5kKHBhcnNldHJlZS0+dGFyZ2V0TGlzdCwgdGxlKTsK KwkJCQl9CisJCQl9CisKIAkJCXBhcnNldHJlZS0+dGFyZ2V0TGlzdCA9CiAJCQkJcmV3cml0 ZVRhcmdldExpc3RJVShwYXJzZXRyZWUtPnRhcmdldExpc3QsCiAJCQkJCQkJCQlwYXJzZXRy ZWUtPmNvbW1hbmRUeXBlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jp X3RyaWdnZXJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRl eCBkYjMwYTZjYzFlNC4uY2JmYjUwZjEyODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jCkBAIC0yMjgsNiArMjI4LDcgQEAgc3RhdGljIGJvb2wgcmlfUGVyZm9ybUNo ZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJUklfUXVlcnlL ZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBsYW4sCiAJCQkJCQkJUmVsYXRpb24gZmtfcmVsLCBS ZWxhdGlvbiBwa19yZWwsCiAJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QsIFR1cGxl VGFibGVTbG90ICpuZXdzbG90LAorCQkJCQkJCWludCBmb3JQb3J0aW9uT2ZQYXJhbSwgRGF0 dW0gZm9yUG9ydGlvbk9mLAogCQkJCQkJCWJvb2wgZGV0ZWN0TmV3Um93cywgaW50IGV4cGVj dF9PSyk7CiBzdGF0aWMgdm9pZCByaV9FeHRyYWN0VmFsdWVzKFJlbGF0aW9uIHJlbCwgVHVw bGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm8sIGJvb2wgcmVsX2lzX3BrLApAQCAtMjM2LDYgKzIzNywxMSBAQCBzdGF0aWMgdm9p ZCByaV9SZXBvcnRWaW9sYXRpb24oY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywK IAkJCQkJCQkgICBSZWxhdGlvbiBwa19yZWwsIFJlbGF0aW9uIGZrX3JlbCwKIAkJCQkJCQkg ICBUdXBsZVRhYmxlU2xvdCAqdmlvbGF0b3JzbG90LCBUdXBsZURlc2MgdHVwZGVzYywKIAkJ CQkJCQkgICBpbnQgcXVlcnlubywgYm9vbCBwYXJ0Z29uZSkgcGdfYXR0cmlidXRlX25vcmV0 dXJuKCk7CitzdGF0aWMgYm9vbCBmcG9fdGFyZ2V0c19wa19yYW5nZShjb25zdCBGb3JQb3J0 aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsCisJCQkJCQkJCSBjb25zdCBSSV9Db25zdHJhaW50 SW5mbyAqcmlpbmZvKTsKK3N0YXRpYyBEYXR1bSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2Uo Y29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLAorCQkJCQkJCQkJICBjb25z dCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAorCQkJCQkJCQkJICBUdXBsZVRhYmxlU2xv dCAqb2xkc2xvdCk7CiAKIAogLyoKQEAgLTQ1MCw2ICs0NTYsNyBAQCBSSV9GS2V5X2NoZWNr KFRyaWdnZXJEYXRhICp0cmlnZGF0YSkKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtl eSwgcXBsYW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJCQlOVUxMLCBuZXdzbG90LAor CQkJCQktMSwgKERhdHVtKSAwLAogCQkJCQlwa19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBS RUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFLAogCQkJCQlTUElfT0tfU0VMRUNUKTsKIApAQCAt NjE1LDYgKzYyMiw3IEBAIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBrX3JlbCwgUmVs YXRpb24gZmtfcmVsLAogCXJlc3VsdCA9IHJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5 LCBxcGxhbiwKIAkJCQkJCQkgZmtfcmVsLCBwa19yZWwsCiAJCQkJCQkJIG9sZHNsb3QsIE5V TEwsCisJCQkJCQkJIC0xLCAoRGF0dW0pIDAsCiAJCQkJCQkJIHRydWUsCS8qIHRyZWF0IGxp a2UgdXBkYXRlICovCiAJCQkJCQkJIFNQSV9PS19TRUxFQ1QpOwogCkBAIC03MTQsNiArNzIy LDggQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2Fj dGlvbikKIAlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdDsKIAlSSV9RdWVyeUtleSBxa2V5Owog CVNQSVBsYW5QdHIJcXBsYW47CisJaW50CQkJdGFyZ2V0UmFuZ2VQYXJhbSA9IC0xOworCURh dHVtCQl0YXJnZXRSYW5nZSA9IChEYXR1bSkgMDsKIAogCXJpaW5mbyA9IHJpX0ZldGNoQ29u c3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCiAJCQkJCQkJCQl0cmlnZGF0YS0+ dGdfcmVsYXRpb24sIHRydWUpOwpAQCAtODA0LDkgKzgxNCwxNiBAQCByaV9yZXN0cmljdChU cmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCS8qCiAJICogV2Ug aGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8gY2hlY2sgZm9yIGV4aXN0aW5nIHJlZmVyZW5j ZXMuCiAJICovCisJaWYgKHRyaWdkYXRhLT50Z190ZW1wb3JhbCkKKwl7CisJCXRhcmdldFJh bmdlUGFyYW0gPSByaWluZm8tPm5rZXlzIC0gMTsKKwkJdGFyZ2V0UmFuZ2UgPSByZXN0cmlj dF9jYXNjYWRpbmdfcmFuZ2UodHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNs b3QpOworCX0KKwogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJ CQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCXRhcmdldFJh bmdlUGFyYW0sIHRhcmdldFJhbmdlLAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3 IHJvd3MgKi8KIAkJCQkJU1BJX09LX1NFTEVDVCk7CiAKQEAgLTkxMyw2ICs5MzAsNyBAQCBS SV9GS2V5X2Nhc2NhZGVfZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmlfUGVyZm9ybUNoZWNr KHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3JlbCwKIAkJCQkJb2xk c2xvdCwgTlVMTCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJdHJ1ZSwJCS8qIG11c3Qg ZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJCVNQSV9PS19ERUxFVEUpOwogCkBAIC0xMDM0LDYg KzEwNTIsNyBAQCBSSV9GS2V5X2Nhc2NhZGVfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmlf UGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3Jl bCwKIAkJCQkJb2xkc2xvdCwgbmV3c2xvdCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJ dHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJCVNQSV9PS19VUERBVEUp OwogCkBAIC0xMjY2LDYgKzEyODUsNyBAQCByaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRh LCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdraW5kKQogCXJpX1BlcmZvcm1DaGVjayhyaWlu Zm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3Qs IE5VTEwsCisJCQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVj dCBuZXcgcm93cyAqLwogCQkJCQlTUElfT0tfVVBEQVRFKTsKIApAQCAtMjQxMyw2ICsyNDMz LDcgQEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8s CiAJCQkJUklfUXVlcnlLZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBsYW4sCiAJCQkJUmVsYXRp b24gZmtfcmVsLCBSZWxhdGlvbiBwa19yZWwsCiAJCQkJVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAorCQkJCWludCBmb3JQb3J0aW9uT2ZQYXJh bSwgRGF0dW0gZm9yUG9ydGlvbk9mLAogCQkJCWJvb2wgZGV0ZWN0TmV3Um93cywgaW50IGV4 cGVjdF9PSykKIHsKIAlSZWxhdGlvbglxdWVyeV9yZWwsCkBAIC0yNDY4LDYgKzI0ODksMTIg QEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJ CXJpX0V4dHJhY3RWYWx1ZXMoc291cmNlX3JlbCwgb2xkc2xvdCwgcmlpbmZvLCBzb3VyY2Vf aXNfcGssCiAJCQkJCQkgdmFscywgbnVsbHMpOwogCX0KKwkvKiBBZGQgb25lIG1vcmUgcXVl cnkgcGFyYW0gaWYgd2UgYXJlIHVzaW5nIEZPUiBQT1JUSU9OIE9GICovCisJaWYgKGZvclBv cnRpb25PZikKKwl7CisJCXZhbHNbZm9yUG9ydGlvbk9mUGFyYW1dID0gZm9yUG9ydGlvbk9m OworCQludWxsc1tmb3JQb3J0aW9uT2ZQYXJhbV0gPSAnICc7CisJfQogCiAJLyoKIAkgKiBJ biBSRUFEIENPTU1JVFRFRCBtb2RlLCB3ZSBqdXN0IG5lZWQgdG8gdXNlIGFuIHVwLXRvLWRh dGUgcmVndWxhcgpAQCAtMzE0NCwzICszMTcxLDUwIEBAIFJJX0ZLZXlfdHJpZ2dlcl90eXBl KE9pZCB0Z2ZvaWQpCiAKIAlyZXR1cm4gUklfVFJJR0dFUl9OT05FOwogfQorCisvKgorICog ZnBvX3RhcmdldHNfcGtfcmFuZ2UKKyAqCisgKiBSZXR1cm5zIHRydWUgaWZmIHRoZSBwcmlt YXJ5IGtleSByZWZlcmVuY2VkIGJ5IHJpaW5mbyBpbmNsdWRlcyB0aGUgcmFuZ2UKKyAqIGNv bHVtbiB0YXJnZXRlZCBieSB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlIChhY2NvcmRpbmcg dG8gdGdfdGVtcG9yYWwpLgorICovCitzdGF0aWMgYm9vbAorZnBvX3RhcmdldHNfcGtfcmFu Z2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25z dHJhaW50SW5mbyAqcmlpbmZvKQoreworCWlmICh0Z190ZW1wb3JhbCA9PSBOVUxMKQorCQly ZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtl eXMgLSAxXSA9PSB0Z190ZW1wb3JhbC0+ZnBfcmFuZ2VBdHRubzsKK30KKworLyoKKyAqIHJl c3RyaWN0X2Nhc2NhZGluZ19yYW5nZSAtCisgKgorICogUmV0dXJucyBhIERhdHVtIG9mIFJh bmdlVHlwZVAgaG9sZGluZyB0aGUgYXBwcm9wcmlhdGUgdGltZXNwYW4KKyAqIHRvIHRhcmdl dCBjaGlsZCByZWNvcmRzIHdoZW4gd2UgQ0FTQ0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4K KyAqCisgKiBJbiBhIG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSBw YXJlbnQncyBvd24gdmFsaWQgdGltZSwKKyAqIGJ1dCBpZiB0aGVyZSB3YXMgYSBGT1IgUE9S VElPTiBPRiBjbGF1c2UsIHRoZW4gd2Ugc2hvdWxkIHVzZSB0aGF0IHRvCisgKiB0cmltIGRv d24gdGhlIHBhcmVudCdzIHNwYW4gZnVydGhlci4KKyAqLworc3RhdGljIERhdHVtCityZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBv cmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBUdXBsZVRhYmxlU2xvdCAq b2xkc2xvdCkKK3sKKwlEYXR1bQlwa1JlY29yZFJhbmdlOworCWJvb2wJaXNudWxsOworCisJ cGtSZWNvcmRSYW5nZSA9IHNsb3RfZ2V0YXR0cihvbGRzbG90LCByaWluZm8tPnBrX2F0dG51 bXNbcmlpbmZvLT5ua2V5cyAtIDFdLCAmaXNudWxsKTsKKwlpZiAoaXNudWxsKQorCQllbG9n KEVSUk9SLCAiYXBwbGljYXRpb24gdGltZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKworCWlm IChmcG9fdGFyZ2V0c19wa19yYW5nZSh0Z190ZW1wb3JhbCwgcmlpbmZvKSkKKwl7CisJCVJh bmdlVHlwZSAqcjEgPSBEYXR1bUdldFJhbmdlVHlwZVAocGtSZWNvcmRSYW5nZSk7CisJCVJh bmdlVHlwZSAqcjIgPSBEYXR1bUdldFJhbmdlVHlwZVAodGdfdGVtcG9yYWwtPmZwX3Rhcmdl dFJhbmdlKTsKKwkJT2lkIHJuZ3R5cGlkID0gUmFuZ2VUeXBlR2V0T2lkKHIxKTsKKwkJVHlw ZUNhY2hlRW50cnkgKnR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZ UEVDQUNIRV9SQU5HRV9JTkZPKTsKKwkJcmV0dXJuIFJhbmdlVHlwZVBHZXREYXR1bShyYW5n ZV9pbnRlcnNlY3RfaW50ZXJuYWwodHlwY2FjaGUsIHIxLCByMikpOworCX0KKwllbHNlCisJ CXJldHVybiBwa1JlY29yZFJhbmdlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYwppbmRleCA0OGEyODBkMDg5Yi4uYjY3YzBjMDNiOTcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0xNjI5LDcgKzE2MjksNyBAQCBnZXRfZnVuY19uYW1l KE9pZCBmdW5jaWQpCiAgKgkJUmV0dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lh dGVkIHdpdGggYSBnaXZlbiBmdW5jdGlvbi4KICAqLwogT2lkCi1nZXRfZnVuY19uYW1lc3Bh Y2UoT2lkIGZ1bmNpZCkKK2dldF9mdW5jX25hbWVzcGFjZShPaWQgZnVuY2lkLCBib29sIG1p c3Npbmdfb2spCiB7CiAJSGVhcFR1cGxlCXRwOwogCkBAIC0xNjQzLDYgKzE2NDMsOCBAQCBn ZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCkKIAkJUmVsZWFzZVN5c0NhY2hlKHRwKTsK IAkJcmV0dXJuIHJlc3VsdDsKIAl9CisJZWxzZSBpZiAoIW1pc3Npbmdfb2spCisJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmdW5jdGlvbiAldSIsIGZ1bmNpZCk7 CiAJZWxzZQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KQEAgLTIxODgsNiArMjE5MCw1OSBA QCBnZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCkKIAkJcmV0dXJuIGZhbHNlOwogfQogCisv KgorICogZ2V0X3R5cG5hbWUKKyAqCisgKgkgIFJldHVybnMgdGhlIG5hbWUgb2YgYSBnaXZl biB0eXBlCisgKgorICogUmV0dXJucyBhIHBhbGxvYydkIGNvcHkgb2YgdGhlIHN0cmluZywg b3IgTlVMTCBpZiBubyBzdWNoIHR5cGUuCisgKi8KK2NoYXIgKgorZ2V0X3R5cG5hbWUoT2lk IHR5cGlkKQoreworCUhlYXBUdXBsZSAgIHRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEo VFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpZCkpOworCWlmIChIZWFwVHVwbGVJc1Zh bGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAoRm9ybV9wZ190eXBlKSBH RVRTVFJVQ1QodHApOworCQljaGFyCSAgICpyZXN1bHQ7CisKKwkJcmVzdWx0ID0gcHN0cmR1 cChOYW1lU3RyKHR5cHR1cC0+dHlwbmFtZSkpOworCQlSZWxlYXNlU3lzQ2FjaGUodHApOwor CQlyZXR1cm4gcmVzdWx0OworCX0KKwllbHNlCisJCXJldHVybiBOVUxMOworfQorCisvKgor ICogZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZQorICoKKyAqCSAgUmV0dXJucyB0aGUgbmFt ZSBhbmQgbmFtZXNwYWNlIG9mIGEgZ2l2ZW4gdHlwZQorICoKKyAqIFJldHVybnMgdHJ1ZSBp ZiBvbmUgZm91bmQsIG9yIGZhbHNlIGlmIG5vdC4KKyAqLworYm9vbAorZ2V0X3R5cG5hbWVf YW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNoYXIgKip0eXBuYW1lLCBjaGFyICoqdHlwbmFt ZXNwYWNlKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFRZ UEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxp ZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZvcm1fcGdfdHlwZSkgR0VU U1RSVUNUKHRwKTsKKworCQkqdHlwbmFtZSA9IHBzdHJkdXAoTmFtZVN0cih0eXB0dXAtPnR5 cG5hbWUpKTsKKwkJKnR5cG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh0eXB0dXAt PnR5cG5hbWVzcGFjZSk7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCS8qICp0eXBuYW1l c3BhY2UgaXMgTlVMTCBpZiBpdCB3YXNuJ3QgZm91bmQ6ICovCisJCXJldHVybiAqdHlwbmFt ZXNwYWNlOworCX0KKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAqIGdldF90 eXBsZW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oCmluZGV4IDhhNDdkM2M5ZWM4Li5iODAx ZWYxZTNjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmgKQEAgLTc5LDcgKzc5LDcgQEAgdHlw ZWRlZiB1aW50MTYgU3RyYXRlZ3lOdW1iZXI7CiAjZGVmaW5lIFJUT2xkQmVsb3dTdHJhdGVn eU51bWJlcgkJMjkJLyogZm9yIG9sZCBzcGVsbGluZyBvZiA8PHwgKi8KICNkZWZpbmUgUlRP bGRBYm92ZVN0cmF0ZWd5TnVtYmVyCQkzMAkvKiBmb3Igb2xkIHNwZWxsaW5nIG9mIHw+PiAq LwogCi0jZGVmaW5lIFJUTWF4U3RyYXRlZ3lOdW1iZXIJCQkJMzAKKyNkZWZpbmUgUlRNYXhT dHJhdGVneU51bWJlcgkJCQkzMgogCiAKICNlbmRpZgkJCQkJCQkvKiBTVFJBVE5VTV9IICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmggYi9zcmMvaW5j bHVkZS9jb21tYW5kcy90cmlnZ2VyLmgKaW5kZXggOGE1YTlmZTY0MjIuLjNkMTU2NDgzMzI1 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmgKKysrIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCkBAIC00MSw2ICs0MSw3IEBAIHR5cGVkZWYg c3RydWN0IFRyaWdnZXJEYXRhCiAJVHVwbGVzdG9yZXN0YXRlICp0Z19vbGR0YWJsZTsKIAlU dXBsZXN0b3Jlc3RhdGUgKnRnX25ld3RhYmxlOwogCWNvbnN0IEJpdG1hcHNldCAqdGdfdXBk YXRlZGNvbHM7CisJRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsOwogfSBUcmlnZ2Vy RGF0YTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggOTlkOThlMmRlNTAuLjI0 NTBhNzcwMmI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNDIsMTIgKzQyLDE0IEBA CiAjaW5jbHVkZSAic3RvcmFnZS9jb25kaXRpb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJ1 dGlscy9oc2VhcmNoLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgor I2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNsdWRlICJ1dGlscy9yZWx0cmln Z2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvc2hhcmVkdHVwbGVzdG9yZS5oIgogI2luY2x1ZGUg InV0aWxzL3NuYXBzaG90LmgiCiAjaW5jbHVkZSAidXRpbHMvc29ydHN1cHBvcnQuaCIKICNp bmNsdWRlICJ1dGlscy90dXBsZXNvcnQuaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXN0b3Jl LmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKIAogc3RydWN0IFBsYW5TdGF0ZTsJ CQkJLyogZm9yd2FyZCByZWZlcmVuY2VzIGluIHRoaXMgZmlsZSAqLwogc3RydWN0IFBhcmFs bGVsSGFzaEpvaW5TdGF0ZTsKQEAgLTQyOSw2ICs0MzEsMjcgQEAgdHlwZWRlZiBzdHJ1Y3Qg TWVyZ2VBY3Rpb25TdGF0ZQogCUV4cHJTdGF0ZSAgKm1hc193aGVucXVhbDsJLyogV0hFTiBb Tk9UXSBNQVRDSEVEIEFORCBjb25kaXRpb25zICovCiB9IE1lcmdlQWN0aW9uU3RhdGU7CiAK Ky8qCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZQorICoKKyAqIEV4ZWN1dG9yIHN0YXRlIG9mIGEg Rk9SIFBPUlRJT04gT0Ygb3BlcmF0aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBGb3JQb3J0 aW9uT2ZTdGF0ZQoreworCU5vZGVUYWcJCXR5cGU7CisKKwljaGFyICAgKmZwX3JhbmdlTmFt ZTsJCS8qIHRoZSBjb2x1bW4vUEVSSU9EIG5hbWVkIGluIEZPUiBQT1JUSU9OIE9GICovCisJ T2lkCQlmcF9yYW5nZVR5cGU7CQkvKiB0aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0Yg ZXhwcmVzc2lvbiAqLworCWJvb2wJZnBfaGFzUGVyaW9kOwkJLyogdHJ1ZSBpZmYgdGhpcyBp cyBhIFBFUklPRCBub3QgYSByYW5nZSAqLworCWludAkJZnBfcmFuZ2VBdHRubzsJCS8qIHRo ZSBhdHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uIChvciAwIGZvciBhIFBFUklPRCkgKi8KKwlp bnQJCWZwX3BlcmlvZFN0YXJ0QXR0bm87CS8qIHRoZSBhdHRubyBvZiB0aGUgUEVSSU9EIHN0 YXJ0IGNvbHVtbiAob3IgMCBmb3IgYSByYW5nZSkgKi8KKwlpbnQJCWZwX3BlcmlvZEVuZEF0 dG5vOwkJLyogdGhlIGF0dG5vIG9mIHRoZSBQRVJJT0QgZW5kIGNvbHVtbiAob3IgMCBmb3Ig YSByYW5nZSkgKi8KKwlEYXR1bQlmcF90YXJnZXRSYW5nZTsJCS8qIHRoZSByYW5nZSBmcm9t IEZPUiBQT1JUSU9OIE9GICovCisJVHlwZUNhY2hlRW50cnkgKmZwX2xlZnRvdmVyc3R5cGNh Y2hlOwkvKiB0eXBlIGNhY2hlIGVudHJ5IG9mIHRoZSByYW5nZSAqLworCVR1cGxlVGFibGVT bG90ICpmcF9FeGlzdGluZzsJCS8qIHNsb3QgdG8gc3RvcmUgZXhpc3RpbmcgdGFyZ2V0IHR1 cGxlIGluICovCisJVHVwbGVUYWJsZVNsb3QgKmZwX0xlZnRvdmVyOwkJLyogc2xvdCB0byBz dG9yZSBsZWZ0b3ZlciAqLworfSBGb3JQb3J0aW9uT2ZTdGF0ZTsKKwogLyoKICAqIFJlc3Vs dFJlbEluZm8KICAqCkBAIC01NTEsNiArNTc0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVzdWx0 UmVsSW5mbwogCS8qIGZvciBNRVJHRSwgZXhwciBzdGF0ZSBmb3IgY2hlY2tpbmcgdGhlIGpv aW4gY29uZGl0aW9uICovCiAJRXhwclN0YXRlICAqcmlfTWVyZ2VKb2luQ29uZGl0aW9uOwog CisJLyogRk9SIFBPUlRJT04gT0YgZXZhbHVhdGlvbiBzdGF0ZSAqLworCUZvclBvcnRpb25P ZlN0YXRlICpyaV9mb3JQb3J0aW9uT2Y7CisKIAkvKiBwYXJ0aXRpb24gY2hlY2sgZXhwcmVz c2lvbiBzdGF0ZSAoTlVMTCBpZiBub3Qgc2V0IHVwIHlldCkgKi8KIAlFeHByU3RhdGUgICpy aV9QYXJ0aXRpb25DaGVja0V4cHI7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAx Y2I3YjAyYzVjMi4uY2M3YmZiMGYyOTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAg LTE0Miw2ICsxNDIsOSBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCSAqLwogCWludAkJCXJl c3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAorCS8q IEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RFTEVURSAqLworCUZvclBvcnRp b25PZkV4cHIgKmZvclBvcnRpb25PZjsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0 IG9yIGhhdmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpA QCAtMTU4NSw2ICsxNTg4LDIxIEBAIHR5cGVkZWYgc3RydWN0IFJvd01hcmtDbGF1c2UKIAli b29sCQlwdXNoZWREb3duOwkJLyogcHVzaGVkIGRvd24gZnJvbSBoaWdoZXIgcXVlcnkgbGV2 ZWw/ICovCiB9IFJvd01hcmtDbGF1c2U7CiAKKy8qCisgKiBGb3JQb3J0aW9uT2ZDbGF1c2UK KyAqCQlyZXByZXNlbnRhdGlvbiBvZiBGT1IgUE9SVElPTiBPRiA8cGVyaW9kLW5hbWU+IEZS T00gPHRzPiBUTyA8dGU+CisgKgkJb3IgRk9SIFBPUlRJT04gT0YgPHBlcmlvZC1uYW1lPiAo PHRhcmdldD4pCisgKi8KK3R5cGVkZWYgc3RydWN0IEZvclBvcnRpb25PZkNsYXVzZQorewor CU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqcmFuZ2VfbmFtZTsKKwlpbnQJCQlsb2NhdGlv bjsKKwlOb2RlCSAgICp0YXJnZXQ7CisJTm9kZQkgICAqdGFyZ2V0X3N0YXJ0OworCU5vZGUJ ICAgKnRhcmdldF9lbmQ7Cit9IEZvclBvcnRpb25PZkNsYXVzZTsKKwogLyoKICAqIFdpdGhD bGF1c2UgLQogICoJICAgcmVwcmVzZW50YXRpb24gb2YgV0lUSCBjbGF1c2UKQEAgLTIwNTcs MTIgKzIwNzUsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5zZXJ0U3RtdAogICovCiB0eXBlZGVm IHN0cnVjdCBEZWxldGVTdG10CiB7Ci0JTm9kZVRhZwkJdHlwZTsKLQlSYW5nZVZhciAgICpy ZWxhdGlvbjsJCS8qIHJlbGF0aW9uIHRvIGRlbGV0ZSBmcm9tICovCi0JTGlzdAkgICAqdXNp bmdDbGF1c2U7CS8qIG9wdGlvbmFsIHVzaW5nIGNsYXVzZSBmb3IgbW9yZSB0YWJsZXMgKi8K LQlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KLQlMaXN0CSAg ICpyZXR1cm5pbmdMaXN0OwkvKiBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIHJldHVybiAqLwot CVdpdGhDbGF1c2UgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLworCU5vZGVUYWcJ CQkJdHlwZTsKKwlSYW5nZVZhcgkJICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gZGVs ZXRlIGZyb20gKi8KKwlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZjsJLyogRk9S IFBPUlRJT04gT0YgY2xhdXNlICovCisJTGlzdAkJCSAgICp1c2luZ0NsYXVzZTsJLyogb3B0 aW9uYWwgdXNpbmcgY2xhdXNlIGZvciBtb3JlIHRhYmxlcyAqLworCU5vZGUJCQkgICAqd2hl cmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCisJTGlzdAkJCSAgICpyZXR1cm5pbmdM aXN0OwkvKiBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIHJldHVybiAqLworCVdpdGhDbGF1c2UJ CSAgICp3aXRoQ2xhdXNlOwkJLyogV0lUSCBjbGF1c2UgKi8KIH0gRGVsZXRlU3RtdDsKIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA3MSwxMyArMjA5MCwxNCBAQCB0eXBl ZGVmIHN0cnVjdCBEZWxldGVTdG10CiAgKi8KIHR5cGVkZWYgc3RydWN0IFVwZGF0ZVN0bXQK IHsKLQlOb2RlVGFnCQl0eXBlOwotCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRp b24gdG8gdXBkYXRlICovCi0JTGlzdAkgICAqdGFyZ2V0TGlzdDsJCS8qIHRoZSB0YXJnZXQg bGlzdCAob2YgUmVzVGFyZ2V0KSAqLwotCU5vZGUJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFs aWZpY2F0aW9ucyAqLwotCUxpc3QJICAgKmZyb21DbGF1c2U7CQkvKiBvcHRpb25hbCBmcm9t IGNsYXVzZSBmb3IgbW9yZSB0YWJsZXMgKi8KLQlMaXN0CSAgICpyZXR1cm5pbmdMaXN0Owkv KiBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIHJldHVybiAqLwotCVdpdGhDbGF1c2UgKndpdGhD bGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLworCU5vZGVUYWcJCQkJdHlwZTsKKwlSYW5nZVZh cgkJICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gdXBkYXRlICovCisJRm9yUG9ydGlv bk9mQ2xhdXNlICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwor CUxpc3QJCQkgICAqdGFyZ2V0TGlzdDsJCS8qIHRoZSB0YXJnZXQgbGlzdCAob2YgUmVzVGFy Z2V0KSAqLworCU5vZGUJCQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICov CisJTGlzdAkJCSAgICpmcm9tQ2xhdXNlOwkJLyogb3B0aW9uYWwgZnJvbSBjbGF1c2UgZm9y IG1vcmUgdGFibGVzICovCisJTGlzdAkJCSAgICpyZXR1cm5pbmdMaXN0OwkvKiBsaXN0IG9m IGV4cHJlc3Npb25zIHRvIHJldHVybiAqLworCVdpdGhDbGF1c2UJCSAgICp3aXRoQ2xhdXNl OwkJLyogV0lUSCBjbGF1c2UgKi8KIH0gVXBkYXRlU3RtdDsKIAogLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCAxNGNjZmMxYWMxYy4uMjZk MDZmY2FkMmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0yMzg1LDYgKzIzODUsNyBA QCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZVBhdGgKIAlMaXN0CSAgICpyZXR1cm5pbmdM aXN0czsgLyogcGVyLXRhcmdldC10YWJsZSBSRVRVUk5JTkcgdGxpc3RzICovCiAJTGlzdAkg ICAqcm93TWFya3M7CQkvKiBQbGFuUm93TWFya3MgKG5vbi1sb2NraW5nIG9ubHkpICovCiAJ T25Db25mbGljdEV4cHIgKm9uY29uZmxpY3Q7IC8qIE9OIENPTkZMSUNUIGNsYXVzZSwgb3Ig TlVMTCAqLworCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZjsJLyogRk9SIFBPUlRJ T04gT0YgY2xhdXNlIGZvciBVUERBVEUvREVMRVRFICovCiAJaW50CQkJZXBxUGFyYW07CQkv KiBJRCBvZiBQYXJhbSBmb3IgRXZhbFBsYW5RdWFsIHJlLWV2YWwgKi8KIAlMaXN0CSAgICpt ZXJnZUFjdGlvbkxpc3RzOwkvKiBwZXItdGFyZ2V0LXRhYmxlIGxpc3RzIG9mIGFjdGlvbnMg Zm9yCiAJCQkJCQkJCQkgKiBNRVJHRSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAx YWVlYWVjOTVlMS4uZDk3MjI5OGNkZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0y NDMsNiArMjQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTW9kaWZ5VGFibGUKIAlMaXN0CSAgICpy b3dNYXJrczsJCS8qIFBsYW5Sb3dNYXJrcyAobm9uLWxvY2tpbmcgb25seSkgKi8KIAlpbnQJ CQllcHFQYXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwgcmUtZXZhbCAq LwogCU9uQ29uZmxpY3RBY3Rpb24gb25Db25mbGljdEFjdGlvbjsJLyogT04gQ09ORkxJQ1Qg YWN0aW9uICovCisJTm9kZQkgICAqZm9yUG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBj bGF1c2UgZm9yIFVQREFURS9ERUxFVEUgKi8KIAlMaXN0CSAgICphcmJpdGVySW5kZXhlczsg LyogTGlzdCBvZiBPTiBDT05GTElDVCBhcmJpdGVyIGluZGV4IE9JRHMgICovCiAJTGlzdAkg ICAqb25Db25mbGljdFNldDsJLyogSU5TRVJUIE9OIENPTkZMSUNUIERPIFVQREFURSB0YXJn ZXRsaXN0ICovCiAJTGlzdAkgICAqb25Db25mbGljdENvbHM7IC8qIHRhcmdldCBjb2x1bW4g bnVtYmVycyBmb3Igb25Db25mbGljdFNldCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRl eCBlYTQ3NjUyYWRiOC4uMDFhMTAxZDM3NzYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBA IC0yMzMyLDQgKzIzMzIsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgT25Db25mbGljdEV4cHIKIAlM aXN0CSAgICpleGNsUmVsVGxpc3Q7CS8qIHRsaXN0IG9mIHRoZSBFWENMVURFRCBwc2V1ZG8g cmVsYXRpb24gKi8KIH0gT25Db25mbGljdEV4cHI7CiAKKy8qLS0tLS0tLS0tLQorICogRm9y UG9ydGlvbk9mRXhwciAtIHJlcHJlc2VudHMgYSBGT1IgUE9SVElPTiBPRiAuLi4gZXhwcmVz c2lvbgorICoKKyAqIFdlIHNldCB1cCBhbiBleHByZXNzaW9uIHRvIG1ha2UgYSByYW5nZSBm cm9tIHRoZSBGUk9NL1RPIGJvdW5kcywKKyAqIHNvIHRoYXQgd2UgY2FuIHVzZSByYW5nZSBv cGVyYXRvcnMgd2l0aCBpdC4KKyAqCisgKiBUaGVuIHdlIHNldCB1cCBhbiBvdmVybGFwcyBl eHByZXNzaW9uIGJldHdlZW4gdGhhdCBhbmQgdGhlIHJhbmdlIGNvbHVtbiwKKyAqIHNvIHRo YXQgd2UgY2FuIGZpbmQgdGhlIHJvd3Mgd2UgbmVlZCB0byB1cGRhdGUvZGVsZXRlLgorICoK KyAqIEluIHRoZSBleGVjdXRvciB3ZSdsbCBhbHNvIGJ1aWxkIGFuIGludGVyc2VjdCBleHBy ZXNzaW9uIGJldHdlZW4gdGhlCisgKiB0YXJnZXRlZCByYW5nZSBhbmQgdGhlIHJhbmdlIGNv bHVtbiwgc28gdGhhdCB3ZSBjYW4gdXBkYXRlIHRoZSBzdGFydC9lbmQKKyAqIGJvdW5kcyBv ZiB0aGUgVVBEQVRFJ2QgcmVjb3JkLgorICotLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3Ry dWN0IEZvclBvcnRpb25PZkV4cHIKK3sKKwlOb2RlVGFnCQl0eXBlOworCVZhcgkJICAgKnJh bmdlVmFyOwkJCS8qIFJhbmdlIGNvbHVtbiAqLworCWNoYXIJICAgKnJhbmdlX25hbWU7CQkJ LyogUmFuZ2UgbmFtZSAqLworCU5vZGUJICAgKnRhcmdldFJhbmdlOwkJLyogRk9SIFBPUlRJ T04gT0YgYm91bmRzIGFzIGEgcmFuZ2UgKi8KKwlPaWQJCQlyYW5nZVR5cGU7CQkJLyogdHlw ZSBvZiB0YXJnZXRSYW5nZSAqLworCU5vZGUJICAgKm92ZXJsYXBzRXhwcjsJCS8qIHJhbmdl ICYmIHRhcmdldFJhbmdlICovCisJTGlzdAkgICAqcmFuZ2VUYXJnZXRMaXN0OwkvKiBMaXN0 IG9mIFRhcmdldEVudHJ5cyB0byBzZXQgdGhlIHRpbWUgY29sdW1uKHMpICovCisJT2lkCQkJ d2l0aG91dFBvcnRpb25Qcm9jOwkvKiBwcm9jIGZvciBvbGRfcmFuZ2UgQC0gdGFyZ2V0X3Jh bmdlICovCit9IEZvclBvcnRpb25PZkV4cHI7CisKICNlbmRpZgkJCQkJCQkvKiBQUklNTk9E RVNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgg Yi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaAppbmRleCBmMDBiZDU1ZjM5My4u MDAwMmRjZjc4MmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9k ZS5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCkBAIC0yODUsNyAr Mjg1LDcgQEAgZXh0ZXJuIE1vZGlmeVRhYmxlUGF0aCAqY3JlYXRlX21vZGlmeXRhYmxlX3Bh dGgoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCQlMaXN0ICp3aXRoQ2hlY2tPcHRp b25MaXN0cywgTGlzdCAqcmV0dXJuaW5nTGlzdHMsCiAJCQkJCQkJCQkJCQlMaXN0ICpyb3dN YXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3QsCiAJCQkJCQkJCQkJCQlMaXN0ICpt ZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJnZUpvaW5Db25kaXRpb25zLAotCQkJCQkJCQkJ CQkJaW50IGVwcVBhcmFtKTsKKwkJCQkJCQkJCQkJCUZvclBvcnRpb25PZkV4cHIgKmZvclBv cnRpb25PZiwgaW50IGVwcVBhcmFtKTsKIGV4dGVybiBMaW1pdFBhdGggKmNyZWF0ZV9saW1p dF9wYXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJCQkJCQkJCQlQ YXRoICpzdWJwYXRoLAogCQkJCQkJCQkJTm9kZSAqbGltaXRPZmZzZXQsIE5vZGUgKmxpbWl0 Q291bnQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAppbmRleCAyOGI2NmZjY2I0My4uNmM3MGRhZTE0 NTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaApAQCAtNDMsNyArNDMsOCBAQCBleHRlcm4gTGlz dCAqdHJhbnNmb3JtSW5zZXJ0Um93KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZXhwcmxp c3QsCiAJCQkJCQkJCUxpc3QgKnN0bXRjb2xzLCBMaXN0ICppY29sdW1ucywgTGlzdCAqYXR0 cm5vcywKIAkJCQkJCQkJYm9vbCBzdHJpcF9pbmRpcmVjdGlvbik7CiBleHRlcm4gTGlzdCAq dHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkJ CQkgICBMaXN0ICpvcmlnVGxpc3QpOworCQkJCQkJCQkJICAgTGlzdCAqb3JpZ1RsaXN0LAor CQkJCQkJCQkJICAgRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mKTsKIGV4dGVybiBM aXN0ICp0cmFuc2Zvcm1SZXR1cm5pbmdMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAq cmV0dXJuaW5nTGlzdCwKIAkJCQkJCQkJCVBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogZXh0 ZXJuIFF1ZXJ5ICp0cmFuc2Zvcm1Ub3BMZXZlbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBS YXdTdG10ICpwYXJzZVRyZWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGY5YTRhZmQ0NzIz Li4zMzlmMDk0YTgwZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMzQ0LDYgKzM0NCw3IEBA IFBHX0tFWVdPUkQoInBsYWNpbmciLCBQTEFDSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicGxhbiIsIFBMQU4sIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW5zIiwgUExBTlMsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBvbGljeSIsIFBPTElDWSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicG9ydGlvbiIsIFBPUlRJ T04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBvc2l0 aW9uIiwgUE9TSVRJT04sIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJwcmVjZWRpbmciLCBQUkVDRURJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInByZWNpc2lvbiIsIFBSRUNJU0lPTiwgQ09MX05BTUVfS0VZ V09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA1Yjc4MWQ4 N2E5ZC4uOTI3ZjkxYjMxOTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtNTYs NiArNTYsNyBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9VUERB VEVfU09VUkNFLAkvKiBVUERBVEUgYXNzaWdubWVudCBzb3VyY2UgaXRlbSAqLwogCUVYUFJf S0lORF9VUERBVEVfVEFSR0VULAkvKiBVUERBVEUgYXNzaWdubWVudCB0YXJnZXQgaXRlbSAq LwogCUVYUFJfS0lORF9NRVJHRV9XSEVOLAkJLyogTUVSR0UgV0hFTiBbTk9UXSBNQVRDSEVE IGNvbmRpdGlvbiAqLworCUVYUFJfS0lORF9VUERBVEVfUE9SVElPTiwJLyogVVBEQVRFIEZP UiBQT1JUSU9OIE9GIGl0ZW0gKi8KIAlFWFBSX0tJTkRfR1JPVVBfQlksCQkJLyogR1JPVVAg QlkgKi8KIAlFWFBSX0tJTkRfT1JERVJfQlksCQkJLyogT1JERVIgQlkgKi8KIAlFWFBSX0tJ TkRfRElTVElOQ1RfT04sCQkvKiBESVNUSU5DVCBPTiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aAppbmRleCAyMDQ0NmY2ZjgzNi4uZTdhZDUxMzE0NmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oCkBAIC0xMjEsNyArMTIxLDcgQEAgZXh0ZXJuIE9pZAlnZXRfbmVnYXRvcihPaWQgb3Bu byk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9vcHJyZXN0KE9pZCBvcG5vKTsKIGV4dGVy biBSZWdQcm9jZWR1cmUgZ2V0X29wcmpvaW4oT2lkIG9wbm8pOwogZXh0ZXJuIGNoYXIgKmdl dF9mdW5jX25hbWUoT2lkIGZ1bmNpZCk7Ci1leHRlcm4gT2lkCWdldF9mdW5jX25hbWVzcGFj ZShPaWQgZnVuY2lkKTsKK2V4dGVybiBPaWQJZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5j aWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9mdW5jX3JldHR5cGUoT2lk IGZ1bmNpZCk7CiBleHRlcm4gaW50CWdldF9mdW5jX25hcmdzKE9pZCBmdW5jaWQpOwogZXh0 ZXJuIE9pZAlnZXRfZnVuY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkICoqYXJndHlwZXMs IGludCAqbmFyZ3MpOwpAQCAtMTQ1LDYgKzE0NSw4IEBAIGV4dGVybiBPaWQJZ2V0X3JlbF9y ZWxhbShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX2Zyb21zcWwoT2lk IHR5cGlkLCBPaWQgbGFuZ2lkLCBMaXN0ICp0cmZ0eXBlcyk7CiBleHRlcm4gT2lkCWdldF90 cmFuc2Zvcm1fdG9zcWwoT2lkIHR5cGlkLCBPaWQgbGFuZ2lkLCBMaXN0ICp0cmZ0eXBlcyk7 CiBleHRlcm4gYm9vbCBnZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCk7CitleHRlcm4gY2hh ciAqZ2V0X3R5cG5hbWUoT2lkIHR5cGlkKTsKK2V4dGVybiBib29sIGdldF90eXBuYW1lX2Fu ZF9uYW1lc3BhY2UoT2lkIHR5cGlkLCBjaGFyICoqdHlwbmFtZSwgY2hhciAqKnR5cG5hbWVz cGFjZSk7CiBleHRlcm4gaW50MTYgZ2V0X3R5cGxlbihPaWQgdHlwaWQpOwogZXh0ZXJuIGJv b2wgZ2V0X3R5cGJ5dmFsKE9pZCB0eXBpZCk7CiBleHRlcm4gdm9pZCBnZXRfdHlwbGVuYnl2 YWwoT2lkIHR5cGlkLCBpbnQxNiAqdHlwbGVuLCBib29sICp0eXBieXZhbCk7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMWFiNTlhZWI0MAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBA IC0wLDAgKzEsNjg1IEBACistLSBUZXN0cyBmb3IgVVBEQVRFL0RFTEVURSBGT1IgUE9SVElP TiBPRgorLS0gV29ya3Mgb24gbm9uLVBLIGNvbHVtbnMKK0NSRUFURSBUQUJMRSBmb3JfcG9y dGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAor ICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90 ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDIwLTAxLTAxKScsICdvbmUn KTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ2Zvbyc7 CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTE1JyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0K KyBbMSwyKSB8IFsiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiVHVlIEphbiAwMSAwMDow MDowMCAyMDE5IikgfCBmb28KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4 IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBvbmUKKyBbMSwyKSB8IFsiVHVlIEph biAwMSAwMDowMDowMCAyMDE5IiwiVHVlIEphbiAxNSAwMDowMDowMCAyMDE5IikgfCBvbmUK KygzIHJvd3MpCisKKy0tIFdvcmtzIG9uIG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFC TEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZDFfYXQgdHNyYW5nZSwKKyAgdmFsaWQy X2F0IHRzcmFuZ2UsCisgIG5hbWUgdGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZv cl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgt MDItMDMpJywgJ1syMDE1LTAxLTAxLDIwMjUtMDEtMDEpJywgJ29uZScpOworVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMV9hdCBGUk9NICcyMDE4 LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb28nOworU0VMRUNUICogRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxp ZDFfYXQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg dmFsaWQyX2F0ICAgICAgICAgICAgICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLQorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQg RmViIDAzIDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1Iiwi V2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikgfCBmb28KKyBbMSwyKSB8IFsiVHVlIEphbiAw MiAwMDowMDowMCAyMDE4IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBbIlRodSBK YW4gMDEgMDA6MDA6MDAgMjAxNSIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwgb25l CisoMiByb3dzKQorCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2Jh cic7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHZhbGlkMV9hdCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDJfYXQgICAgICAgICAgICAgICAgICAgICAg ICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIk1vbiBKYW4g MTUgMDA6MDA6MDAgMjAxOCIsIlNhdCBGZWIgMDMgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24g SmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGJh cgorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgRmViIDAzIDAw OjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAx NSAwMDowMDowMCAyMDE4IikgfCBmb28KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDow MCAyMDE4IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBbIk1vbiBKYW4gMTUgMDA6 MDA6MDAgMjAxOCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwgYmFyCisgWzEsMikg fCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAx OCIpIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJNb24gSmFuIDE1IDAwOjAwOjAw IDIwMTgiKSB8IG9uZQorKDQgcm93cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQxX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5V TEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHZhbGlkMV9hdCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDJfYXQgICAgICAgICAgICAgICAgICAgICAg ICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIlR1ZSBKYW4g MDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24g SmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGJh cgorIFsxLDIpIHwgWyJUdWUgSmFuIDAyIDAwOjAwOjAwIDIwMTgiLCJNb24gSmFuIDE1IDAw OjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAx NSAwMDowMDowMCAyMDE4IikgfCBvbmUKKyBbMSwyKSB8IFsiTW9uIEphbiAxNSAwMDowMDow MCAyMDE4IiwiU2F0IEphbiAyMCAwMDowMDowMCAyMDE4IikgfCBbIk1vbiBKYW4gMTUgMDA6 MDA6MDAgMjAxOCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwgYmFyCisgWzEsMikg fCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIlNhdCBKYW4gMjAgMDA6MDA6MDAgMjAx OCIpIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJNb24gSmFuIDE1IDAwOjAwOjAw IDIwMTgiKSB8IGZvbworKDQgcm93cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5V TEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHZhbGlkMV9hdCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDJfYXQgICAgICAgICAgICAgICAgICAgICAg ICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIlR1ZSBKYW4g MDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgWyJUaHUg SmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IG9u ZQorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAw OjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAx NSAwMDowMDowMCAyMDE4IikgfCBmb28KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDow MCAyMDE4IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBbIk1vbiBKYW4gMTUgMDA6 MDA6MDAgMjAxOCIsIlNhdCBKYW4gMjAgMDA6MDA6MDAgMjAxOCIpIHwgYmFyCisgWzEsMikg fCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIlNhdCBKYW4gMjAgMDA6MDA6MDAgMjAx OCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAwOjAwOjAw IDIwMTgiKSB8IGJhcgorKDQgcm93cykKKworLS0gVGVzdCB3aXRoIE5VTExzIGluIHRoZSBz Y2FsYXIvcmFuZ2Uga2V5IGNvbHVtbnMuCistLSBUaGlzIHdvbid0IGhhcHBlbiBpZiB0aGVy ZSBpcyBhIFBSSU1BUlkgS0VZIG9yIFVOSVFVRSBjb25zdHJhaW50CistLSBidXQgRk9SIFBP UlRJT04gT0Ygc2hvdWxkbid0IHJlcXVpcmUgdGhhdC4KK0RST1AgVEFCTEUgZm9yX3BvcnRp b25fb2ZfdGVzdDsKK0NSRUFURSBVTkxPR0dFRCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0 ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQK Kyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworICAoJ1sxLDIp JywgTlVMTCwgJzEgbnVsbCcpLAorICAoJ1sxLDIpJywgJygsKScsICcxIHVuYm91bmRlZCcp LAorICAoJ1sxLDIpJywgJ2VtcHR5JywgJzEgZW1wdHknKSwKKyAgKE5VTEwsIE5VTEwsIE5V TEwpLAorICAoTlVMTCwgdHNyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE5LTAxLTAxJyksICdu dWxsIGtleScpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKKyAgU0VUIG5hbWUgPSAnTlVMTCB0byBO VUxMJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKyAgaWQgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgbmFtZSAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDEgbnVsbAorIFsxLDIpIHwgZW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDEgZW1wdHkKKyAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBbMSwy KSB8ICgsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBOVUxMIHRvIE5VTEwKKyAgICAgICB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAy MDE4IiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDE5IikgfCBOVUxMIHRvIE5VTEwKKyg1IHJv d3MpCisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBm b3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxp ZF9hdCB0c3JhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNU UkFJTlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1ZB TFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygn WzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIpJywg J1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0w MS0wMSwyMDE4LTAxLTA1KScsICd0d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScs ICd0aHJlZScpLAorKCdbNCw1KScsICcoLDIwMTgtMDQtMDEpJywgJ2ZvdXInKSwKKygnWzUs NiknLCAnKCwpJywgJ2ZpdmUnKQorOworLS0KKy0tIFVQREFURSB0ZXN0cworLS0KKy0tIFNl dHRpbmcgd2l0aCBhIG1pc3NpbmcgY29sdW1uIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBU TyBOVUxMCitTRVQgbmFtZSA9ICdmb28nCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjog IGNvbHVtbiBvciBwZXJpb2QgImludmFsaWRfYXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlv bl9vZl90ZXN0IiBkb2VzIG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZh bGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAg ICAgXgorLS0gU2V0dGluZyB0aGUgcmFuZ2UgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBO VUxMCitTRVQgdmFsaWRfYXQgPSAnWzE5OTAtMDEtMDEsMTk5OS0wMS0wMSknCitXSEVSRSBp ZCA9ICdbNSw2KSc7CitFUlJPUjogIGNhbid0IGRpcmVjdGx5IGFzc2lnbiB0byAidmFsaWRf YXQiIGluIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRlCitMSU5FIDM6IFNFVCB2YWxpZF9hdCA9 ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAxKScKKyAgICAgICAgICAgIF4KKy0tIFRoZSB3cm9u ZyB0eXBlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAxIFRPIDQKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9 ICdbMyw0KSc7CitFUlJPUjogIGZ1bmN0aW9uIHBnX2NhdGFsb2cudHNyYW5nZShpbnRlZ2Vy LCBpbnRlZ2VyKSBkb2VzIG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIDEgVE8gNAorICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgTm8g ZnVuY3Rpb24gbWF0Y2hlcyB0aGUgZ2l2ZW4gbmFtZSBhbmQgYXJndW1lbnQgdHlwZXMuIFlv dSBtaWdodCBuZWVkIHRvIGFkZCBleHBsaWNpdCB0eXBlIGNhc3RzLgorLS0gU2V0dGluZyB3 aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAx OC0wMS0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitF UlJPUjogIHJhbmdlIGxvd2VyIGJvdW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRv IHJhbmdlIHVwcGVyIGJvdW5kCistLSBTZXR0aW5nIHdpdGggYSBzdWJxdWVyeSBmYWlscwor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRPICcyMDE4LTA2LTAxJworU0VUIG5hbWUgPSAn bm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVy eSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uCitMSU5FIDI6IEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRPICcyMDE4LS4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFNldHRpbmcgd2l0aCBh IGNvbHVtbiBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKK1NFVCBuYW1lID0g J25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1u IHJlZmVyZW5jZSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uCitMSU5FIDI6IEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBTZXR0aW5nIHdp dGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyAn MjAxOC0wNC0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjAnCitXSEVSRSBpZCA9ICdbMyw0KSc7 CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9vcGVu IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3RocmVlXjEn CitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBvcnRp b24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDMtMDEn CitTRVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUgaWQgPSAnWzMsNCknOworLS0gVXBkYXRp bmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGFuIG9wZW4vZmluaXRlIHRhcmdldAor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gTlVMTCBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1lID0gJ2ZvdXJeMScKK1dIRVJFIGlk ID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGFuIG9wZW4vZmluaXRlIHBvcnRpb24gd2l0aCBh IGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPIE5VTEwKK1NFVCBuYW1l ID0gJ2ZvdXJeMicKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGEgZmluaXRl L2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gZXhhY3QgZml0CitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8g JzIwMTgtMDItMDEnCitTRVQgbmFtZSA9ICdmb3VyXjMnCitXSEVSRSBpZCA9ICdbNCw1KSc7 CistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBzcGFuCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1NFVCBu YW1lID0gJ3R3b14yJworV0hFUkUgaWQgPSAnWzIsMyknOworLS0gVXBkYXRpbmcgYW4gb3Bl bi9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wMScgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjInCitXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBzcGFuIHdpdGggc2VwYXJhdGUg cHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPICcyMDIwLTAxLTAxJworU0VU IG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gVXBkYXRpbmcgbXVs dGlwbGUgZW5jbG9zZWQgc3BhbnMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAnb25l XjInCitXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBVcGRhdGluZyB3aXRoIGEgc2hpZnQvcmVk dWNlIGNvbmZsaWN0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQKKyAgRlJPTSAnMjAxOC0wMy0wMScgQVQgVElNRSBaT05FIElOVEVSVkFM ICcxJyBIT1VSIFRPIE1JTlVURQorICBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29u ZV4zJworV0hFUkUgaWQgPSAnWzEsMiknOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTgtMDMtMDEnIEFUIFRJTUUg Wk9ORSBJTlRFUlZBTCAnMicgSE9VUgorICBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0g J29uZV40JworV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQg b3IgbmVhciAiJzIwMTktMDEtMDEnIgorTElORSA0OiAgIFRPICcyMDE5LTAxLTAxJworICAg ICAgICAgICAgIF4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdAorICBGUk9NICgnMjAxOC0wMy0wMScgQVQgVElNRSBaT05FIElOVEVSVkFM ICcyJyBIT1VSKQorICBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV40JworV0hF UkUgaWQgPSAnWzEsMiknOworLS0gV2l0aCBhIGRpcmVjdCB0YXJnZXQKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAodHNyYW5nZSgnMjAx OC0wMy0xMCcsICcyMDE4LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeNScKK1dIRVJFIGlk ID0gJ1sxLDIpJzsKKy0tIFVwZGF0aW5nIHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6 CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQg PSAnWzEsMiknOworLS0gVVBEQVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAzMC0w MS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSBuYW1lIHx8ICcqJzsKK1NFTEVDVCAqIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgWzEsMikgfCBbIlR1ZSBK YW4gMDIgMDA6MDA6MDAgMjAxOCIsIlNhdCBGZWIgMDMgMDA6MDA6MDAgMjAxOCIpIHwgb25l XjIKKyBbMSwyKSB8IFsiU2F0IEZlYiAwMyAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAxNSAw MDowMDowMCAyMDE4IikgfCBvbmVeMgorIFsyLDMpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAw IDIwMTgiLCJGcmkgSmFuIDA1IDAwOjAwOjAwIDIwMTgiKSB8IHR3b14yCisgWzMsNCkgfCBb Ik1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIlRodSBNYXIgMDEgMDA6MDA6MDAgMjAxOCIp IHwgdGhyZWVeMgorIFszLDQpIHwgWyJUaHUgTWFyIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkg SnVuIDAxIDAwOjAwOjAwIDIwMTgiKSB8IHRocmVlCisgWzMsNCkgfCBbIkZyaSBKdW4gMDEg MDA6MDA6MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgdGhyZWVeMQor IFszLDQpIHwgWyJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMzAiLCkgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHRocmVlXjEqCisgWzQsNSkgfCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAw IDIwMTciKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZm91cl4xCisgWzQsNSkgfCBb IlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIsIlRodSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIp IHwgZm91cl4zCisgWzQsNSkgfCBbIlRodSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIsIlN1biBB cHIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4yCisgWzUsNikgfCAoLCJTdW4gSmFuIDAx IDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZml2ZQorIFs1 LDYpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJNb24gSmFuIDAxIDAwOjAwOjAw IDIwMTgiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgi LCJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMTkiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJUdWUg SmFuIDAxIDAwOjAwOjAwIDIwMTkiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiKSB8IGZp dmVeMworIFs1LDYpIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAx IDAwOjAwOjAwIDIwMzAiKSB8IGZpdmUKKyBbNSw2KSB8IFsiVHVlIEphbiAwMSAwMDowMDow MCAyMDMwIiwpICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmaXZlKgorIFs2LDcpIHwg WyJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAxIDA4OjAxOjAwIDIwMTgi KSB8IG9uZV4yCisgWzYsNykgfCBbIlRodSBNYXIgMDEgMDg6MDE6MDAgMjAxOCIsIlRodSBN YXIgMDEgMTA6MDA6MDAgMjAxOCIpIHwgb25lXjMKKyBbNiw3KSB8IFsiVGh1IE1hciAwMSAx MDowMDowMCAyMDE4IiwiU2F0IE1hciAwMyAwMDowMDowMCAyMDE4IikgfCBvbmVeNAorIFs2 LDcpIHwgWyJTYXQgTWFyIDAzIDAwOjAwOjAwIDIwMTgiLCJTYXQgTWFyIDEwIDAwOjAwOjAw IDIwMTgiKSB8IG9uZV40CisgWzYsNykgfCBbIlNhdCBNYXIgMTAgMDA6MDA6MDAgMjAxOCIs IlNhdCBNYXIgMTcgMDA6MDA6MDAgMjAxOCIpIHwgb25lXjUKKyBbNiw3KSB8IFsiU2F0IE1h ciAxNyAwMDowMDowMCAyMDE4IiwiV2VkIEFwciAwNCAwMDowMDowMCAyMDE4IikgfCBvbmVe NAorKDIyIHJvd3MpCisKKy0tCistLSBERUxFVEUgdGVzdHMKKy0tCistLSBEZWxldGluZyB3 aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8g TlVMTAorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICBjb2x1bW4gb3IgcGVyaW9kICJp bnZhbGlkX2F0IiBvZiByZWxhdGlvbiAiZm9yX3BvcnRpb25fb2ZfdGVzdCIgZG9lcyBub3Qg ZXhpc3QKK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2 LTAxJyBUTyBOVUxMCisgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERlbGV0aW5nIHdp dGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8g JzIwMTgtMDEtMDEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIHJhbmdlIGxvd2Vy IGJvdW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5k CistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitERUxF VEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsK Ky0tIERlbGV0aW5nIHdpdGggYSBjbG9zZWQvY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wNi0wMScgVE8gJzIwMjAtMDYtMDEnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBEZWxl dGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBU TyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4v Y2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTA4JworV0hFUkUgaWQg PSAnWzEsMiknOworLS0gRGVsZXRpbmcgd2l0aCBhbiBvcGVuL29wZW4gdGFyZ2V0CitERUxF VEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NIE5VTEwgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gREVMRVRFIHdpdGgg bm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAxJyBUTyBOVUxMOworU0VMRUNU ICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBb IlRodSBGZWIgMDggMDA6MDA6MDAgMjAxOCIsIlRodSBGZWIgMTUgMDA6MDA6MDAgMjAxOCIp IHwgb25lXjIKKyBbMiwzKSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiRnJpIEph biAwNSAwMDowMDowMCAyMDE4IikgfCB0d29eMgorIFszLDQpIHwgWyJNb24gSmFuIDAxIDAw OjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAxIDAwOjAwOjAwIDIwMTgiKSB8IHRocmVlXjIKKyBb Myw0KSB8IFsiVGh1IE1hciAwMSAwMDowMDowMCAyMDE4IiwiU3VuIEFwciAwMSAwMDowMDow MCAyMDE4IikgfCB0aHJlZQorIFs0LDUpIHwgKCwiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3 IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWyJTdW4g SmFuIDAxIDAwOjAwOjAwIDIwMTciLCJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZv dXJeMworIFs0LDUpIHwgWyJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiLCJTdW4gQXByIDAx IDAwOjAwOjAwIDIwMTgiKSB8IGZvdXJeMgorIFs1LDYpIHwgKCwiU3VuIEphbiAwMSAwMDow MDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZpdmUKKyBbNSw2KSB8 IFsiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3IiwiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4 IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiRnJp IEp1biAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEp1biAw MSAwMDowMDowMCAyMDIwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikgfCBmaXZlCiso MTEgcm93cykKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5JTkcgcmV0dXJucyBvbmx5IHRoZSB1 cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBzaWRlIHZhbHVlcykKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBuYW1lID0gJ3RocmVlXjMnCitXSEVSRSBp ZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBuYW1lICAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0KKyBbMyw0KSB8IFsiVGh1IEZlYiAwMSAwMDowMDowMCAyMDE4 IiwiVGh1IEZlYiAxNSAwMDowMDowMCAyMDE4IikgfCB0aHJlZV4zCisoMSByb3cpCisKKy0t IHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24gdGhlIFVQREFURS9ERUxFVEVkIHJvdyBh bmQgdGhlIElOU0VSVGVkIHJvd3MKK0NSRUFURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90 cmlnZ2VyKCkKK1JFVFVSTlMgdHJpZ2dlcgorQVMKKyQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJyUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19PUCwgTkVXLnZhbGlkX2F0LCBPTEQudmFs aWRfYXQ7CisgIElGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJFVFVSTiBPTEQ7Cisg IEVMU0UKKyAgICBSRVRVUk4gTkVXOworICBFTkQgSUY7CitFTkQ7CiskJAorTEFOR1VBR0Ug cGxwZ3NxbDsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmUKKyAg QkVGT1JFIElOU0VSVCBPUiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rl c3QKKyAgRk9SIEVBQ0ggUk9XCisgIEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2Zf dHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyCisg IEFGVEVSIElOU0VSVCBPUiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rl c3QKKyAgRk9SIEVBQ0ggUk9XCisgIEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2Zf dHJpZ2dlcigpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJworU0VUIG5hbWUg PSAnZml2ZV40JworV0hFUkUgaWQgPSAnWzUsNiknOworTk9USUNFOiAgQkVGT1JFIFVQREFU RSBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAyMSIsIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAy MiIpIG9mIFsiTW9uIEp1biAwMSAwMDowMDowMCAyMDIwIiwiV2VkIEphbiAwMSAwMDowMDow MCAyMDI1IikKK05PVElDRTogIEJFRk9SRSBJTlNFUlQgWyJNb24gSnVuIDAxIDAwOjAwOjAw IDIwMjAiLCJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMjEiKSBvZiA8TlVMTD4KK05PVElDRTog IEJFRk9SRSBJTlNFUlQgWyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJXZWQgSmFuIDAx IDAwOjAwOjAwIDIwMjUiKSBvZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBbIk1v biBKdW4gMDEgMDA6MDA6MDAgMjAyMCIsIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAyMSIpIG9m IDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFsiU2F0IEphbiAwMSAwMDowMDowMCAy MDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1Iikgb2YgPE5VTEw+CitOT1RJQ0U6ICBB RlRFUiBVUERBVEUgWyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMjEiLCJTYXQgSmFuIDAxIDAw OjAwOjAwIDIwMjIiKSBvZiBbIk1vbiBKdW4gMDEgMDA6MDA6MDAgMjAyMCIsIldlZCBKYW4g MDEgMDA6MDA6MDAgMjAyNSIpCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0w MScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBERUxFVEUgPE5VTEw+ IG9mIFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAy MDI1IikKK05PVElDRTogIEJFRk9SRSBJTlNFUlQgWyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIw MjIiLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMjMiKSBvZiA8TlVMTD4KK05PVElDRTogIEJF Rk9SRSBJTlNFUlQgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMjQiLCJXZWQgSmFuIDAxIDAw OjAwOjAwIDIwMjUiKSBvZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBbIlNhdCBK YW4gMDEgMDA6MDA6MDAgMjAyMiIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAyMyIpIG9mIDxO VUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDI0 IiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1Iikgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRF UiBERUxFVEUgPE5VTEw+IG9mIFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwiV2VkIEph biAwMSAwMDowMDowMCAyMDI1IikKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5hbWUgICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWyJUaHUgRmViIDA4IDAwOjAwOjAwIDIwMTgi LCJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiKSB8IG9uZV4yCisgWzIsMykgfCBbIk1vbiBK YW4gMDEgMDA6MDA6MDAgMjAxOCIsIkZyaSBKYW4gMDUgMDA6MDA6MDAgMjAxOCIpIHwgdHdv XjIKKyBbMyw0KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAwMSAw MDowMDowMCAyMDE4IikgfCB0aHJlZV4yCisgWzMsNCkgfCBbIlRodSBGZWIgMDEgMDA6MDA6 MDAgMjAxOCIsIlRodSBGZWIgMTUgMDA6MDA6MDAgMjAxOCIpIHwgdGhyZWVeMworIFszLDQp IHwgWyJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAxIDAwOjAwOjAwIDIw MTgiKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsiVGh1IE1hciAwMSAwMDowMDowMCAyMDE4Iiwi U3VuIEFwciAwMSAwMDowMDowMCAyMDE4IikgfCB0aHJlZQorIFs0LDUpIHwgKCwiU3VuIEph biAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZvdXJe MQorIFs0LDUpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJUaHUgRmViIDAxIDAw OjAwOjAwIDIwMTgiKSB8IGZvdXJeMworIFs0LDUpIHwgWyJUaHUgRmViIDAxIDAwOjAwOjAw IDIwMTgiLCJTdW4gQXByIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZvdXJeMgorIFs1LDYpIHwg KCwiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGZpdmUKKyBbNSw2KSB8IFsiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3IiwiTW9uIEph biAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEphbiAwMSAw MDowMDowMCAyMDE4IiwiRnJpIEp1biAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMKKyBb NSw2KSB8IFsiTW9uIEp1biAwMSAwMDowMDowMCAyMDIwIiwiRnJpIEphbiAwMSAwMDowMDow MCAyMDIxIikgfCBmaXZlCisgWzUsNikgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAyMSIs IlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIpIHwgZml2ZV40CisgWzUsNikgfCBbIlNhdCBK YW4gMDEgMDA6MDA6MDAgMjAyMiIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAyMyIpIHwgZml2 ZQorIFs1LDYpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMjQiLCJXZWQgSmFuIDAxIDAw OjAwOjAwIDIwMjUiKSB8IGZpdmUKKygxNiByb3dzKQorCitEUk9QIEZVTkNUSU9OIGZvcl9w b3J0aW9uX29mX3RyaWdnZXIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g MiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJn X2Zvcl9wb3J0aW9uX29mX2JlZm9yZSBvbiB0YWJsZSBmb3JfcG9ydGlvbl9vZl90ZXN0Citk cm9wIGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyIG9uIHRh YmxlIGZvcl9wb3J0aW9uX29mX3Rlc3QKKy0tIFRyaWdnZXJzIHdpdGggYSBjdXN0b20gdHJh bnNpdGlvbiB0YWJsZSBuYW1lOgorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0Owor Q1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9y X3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIwLTAx LTAxKScsICdvbmUnKTsKK0NSRUFURSBGVU5DVElPTiBkdW1wX3RyaWdnZXIoKQorUkVUVVJO UyBUUklHR0VSIExBTkdVQUdFIHBscGdzcWwgQVMKKyQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJ1RHX09QID0gJScsIFRHX09QOworICBJRiBUR19PUCA9ICdJTlNFUlQnIFRIRU4KKyAg ICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUsIE5FVyB0YWJsZSA9 ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5nX2FnZyhuZXdf dGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gbmV3X3RhYmxlKTsKKyAgRUxT SUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCisgICAgUkFJU0UgTk9USUNFICd0cmlnZ2VyID0g JSwgVEdfTEVWRUwgPSAlLCBPTEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAg IFRHX05BTUUsIFRHX0xFVkVMLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJs ZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpLAorICAgICAgKFNF TEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJP TSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdERUxFVEUnIFRIRU4KKyAgICBSQUlT RSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUsIE9MRCB0YWJsZSA9ICUnLAor ICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5nX2FnZyhvbGRfdGFibGU6 OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gb2xkX3RhYmxlKTsKKyAgRU5EIElGOwor ICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25f b2ZfdGVzdF9pbnNlcnRfdHJpZworQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rl c3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFJPVyBF WEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9w b3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdAorQUZURVIgSU5TRVJUIE9OIGZvcl9w b3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZP UiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NS RUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWcKK0FGVEVSIFVQ REFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMg b2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRF IFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9u X29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdAorQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9u X29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxF IEFTIG5ld190YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1 bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxl dGVfdHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5D SU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NF RFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rl c3RfZGVsZXRlX3RyaWdfc3RtdAorQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rl c3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFNUQVRF TUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0JFR0lOOworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0xNScgVE8gJzIwMTktMDEtMDEnCisgIFNFVCBuYW1lID0gJzIwMTgtMDEtMTVf dG9fMjAxOS0wMS0wMSc7CitOT1RJQ0U6ICBUR19PUCA9IElOU0VSVAorTk9USUNFOiAgdHJp Z2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcsIFRHX0xFVkVMID0gUk9X LCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgsMDEtMTUtMjAxOCkiLG9uZSks ICgiWzEsMikiLCJbMDEtMDEtMjAxOSwwMS0wMS0yMDIwKSIsb25lKQorTk9USUNFOiAgVEdf T1AgPSBJTlNFUlQKK05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X2lu c2VydF90cmlnLCBUR19MRVZFTCA9IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0w MS0yMDE4LDAxLTE1LTIwMTgpIixvbmUpLCAoIlsxLDIpIiwiWzAxLTAxLTIwMTksMDEtMDEt MjAyMCkiLG9uZSkKK05PVElDRTogIFRHX09QID0gVVBEQVRFCitOT1RJQ0U6ICB0cmlnZ2Vy ID0gZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZywgVEdfTEVWRUwgPSBST1csIE9M RCB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMS0yMDIwKSIsb25lKSwgTkVX IHRhYmxlID0gKCJbMSwyKSIsIlswMS0xNS0yMDE4LDAxLTAxLTIwMTkpIiwyMDE4LTAxLTE1 X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBUR19PUCA9IFVQREFURQorTk9USUNFOiAgdHJp Z2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdCwgVEdfTEVWRUwg PSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMS0y MDIwKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0xNS0yMDE4LDAxLTAxLTIw MTkpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitST0xMQkFDSzsKK0JFR0lOOworREVM RVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOworTk9USUNFOiAgVEdfT1AgPSBJTlNFUlQK K05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnLCBU R19MRVZFTCA9IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0yMS0yMDE4LDAxLTAx LTIwMjApIixvbmUpCitOT1RJQ0U6ICBUR19PUCA9IERFTEVURQorTk9USUNFOiAgdHJpZ2dl ciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWcsIFRHX0xFVkVMID0gUk9XLCBP TEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSkKK05P VElDRTogIFRHX09QID0gREVMRVRFCitOT1RJQ0U6ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25f b2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10LCBUR19MRVZFTCA9IFNUQVRFTUVOVCwgT0xEIHRh YmxlID0gKCJbMSwyKSIsIlswMS0wMS0yMDE4LDAxLTAxLTIwMjApIixvbmUpCitST0xMQkFD SzsKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTAyJworICBTRVQgbmFtZSA9ICdO VUxMX3RvXzIwMTgtMDEtMDEnOworTk9USUNFOiAgVEdfT1AgPSBJTlNFUlQKK05PVElDRTog IHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnLCBUR19MRVZFTCA9 IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0wMi0yMDE4LDAxLTAxLTIwMjApIixv bmUpCitOT1RJQ0U6ICBUR19PUCA9IFVQREFURQorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9w b3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWcsIFRHX0xFVkVMID0gUk9XLCBPTEQgdGFibGUg PSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSksIE5FVyB0YWJsZSA9 ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMi0yMDE4KSIsTlVMTF90b18yMDE4LTAxLTAx KQorTk9USUNFOiAgVEdfT1AgPSBVUERBVEUKK05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9y dGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQsIFRHX0xFVkVMID0gU1RBVEVNRU5ULCBP TEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSksIE5F VyB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMi0yMDE4KSIsTlVMTF90b18y MDE4LTAxLTAxKQorUk9MTEJBQ0s7CistLSBUZXN0IHdpdGggbXVsdGlyYW5nZXMKK0NSRUFU RSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRyYW5nZSBOT1QgTlVM TCwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UgTk9UIE5VTEwsCisgIG5hbWUgdGV4dCBO T1QgTlVMTCwKKyAgQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8g Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzKScpLCBkYXRlcmFuZ2UoJzIw MTgtMDItMDQnLCAnMjAxOC0wMy0wMycpKSwgJ29uZScpLAorKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0KScpKSwgJ29uZScp LAorKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTA1LTAxKScpKSwgJ3R3bycpLAorKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsIG51bGwpKSwgJ3RocmVlJyk7Cis7CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTAnLCAnMjAxOC0wMi0xMCcpLCBkYXRlcmFuZ2UoJzIw MTgtMDMtMDUnLCAnMjAxOC0wNS0wMScpKSkKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUg aWQgPSAnWzEsMiknOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MTUnLCAnMjAxOC0wMi0xNScpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wMy0x NScpKSkKK1dIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LQorIFsxLDIpIHwge1swMS0wMi0yMDE4LDAxLTEwLTIwMTgpLFswMi0xMC0yMDE4LDAzLTAz LTIwMTgpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IG9uZQorIFsxLDIpIHwge1swMS0x MC0yMDE4LDAyLTAzLTIwMTgpLFswMi0wNC0yMDE4LDAyLTEwLTIwMTgpfSAgICAgICAgICAg ICAgICAgICAgICAgICB8IG9uZV4xCisgWzEsMikgfCB7WzAzLTAzLTIwMTgsMDMtMDUtMjAx OCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg b25lCisgWzEsMikgfCB7WzAzLTA1LTIwMTgsMDQtMDQtMjAxOCl9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lXjEKKyBbMiwzKSB8IHtb MDEtMDEtMjAxOCwwMS0xNS0yMDE4KSxbMDItMTUtMjAxOCwwMy0wMS0yMDE4KSxbMDMtMTUt MjAxOCwwNS0wMS0yMDE4KX0gfCB0d28KKyBbMyw0KSB8IHtbMDEtMDEtMjAxOCwpfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0aHJlZQorKDYgcm93cykKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsK Ky0tIFRlc3Qgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCitDUkVBVEUgVFlQRSBteWRhdGVy YW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBteWRh dGVyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5U IGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0Mgor VkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAor KCdbMSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMikn LCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4 LTAxLTAxLDIwMTgtMDUtMDEpJywgJ3R3bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwp JywgJ3RocmVlJyk7Cis7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VU IG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0xNScgVE8gJzIwMTgtMDItMTUnCitXSEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBG Uk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzAxLTAyLTIwMTgsMDEtMTAt MjAxOCkgfCBvbmUKKyBbMSwyKSB8IFswMS0xMC0yMDE4LDAyLTAzLTIwMTgpIHwgb25lXjEK KyBbMSwyKSB8IFswMi0wMy0yMDE4LDAyLTEwLTIwMTgpIHwgb25lXjEKKyBbMSwyKSB8IFsw Mi0xMC0yMDE4LDAzLTAzLTIwMTgpIHwgb25lCisgWzEsMikgfCBbMDMtMDMtMjAxOCwwNC0w NC0yMDE4KSB8IG9uZQorIFsyLDMpIHwgWzAxLTAxLTIwMTgsMDEtMTUtMjAxOCkgfCB0d28K KyBbMiwzKSB8IFswMi0xNS0yMDE4LDA1LTAxLTIwMTgpIHwgdHdvCisgWzMsNCkgfCBbMDEt MDEtMjAxOCwpICAgICAgICAgICB8IHRocmVlCisoOCByb3dzKQorCitEUk9QIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3QyOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOworLS0gVGVzdCBG T1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEgcGFydGl0aW9uZWQgdGFibGUuCistLSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8xIGhhcyB0aGUgc2FtZSBhdHRudW1zIGFzIHRoZSByb290CistLSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgZnJvbSB0 aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBoYXMgdGhlIGRpZmZlcmVudCBh dHRudW1zIHRvbywgYnV0IHJldmVyc2VkCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFt ZSB0ZXh0LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlk KTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIFBBUlRJVElPTiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIFBBUlRJVElPTiBPRiB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IFBBUlRJVElPTiBPRiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxf cGFydGl0aW9uZWRfMzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgRFJP UCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0OworQUxURVIgVEFCTEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfMyBBREQgQ09MVU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTCwgQURE IENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEw7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVk XzMgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVk XzU7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IERST1AgQ09MVU1OIGlk LCBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzUgQUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xV TU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEZPUiBWQUxV RVMgSU4gKCdbNSw2KScsICdbNiw3KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWQgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdmaXZlJyk7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBu YW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEs MikgfCBbMDEtMDEtMjAwMCwwMS0wMS0yMDEwKSB8IG9uZQorIFszLDQpIHwgWzAxLTAxLTIw MDAsMDEtMDEtMjAxMCkgfCB0aHJlZQorIFs1LDYpIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAx MCkgfCBmaXZlCisoMyByb3dzKQorCistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGlu IHBhcnRpdGlvbiAxCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBu YW1lID0gJ29uZV4xJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBVcGRhdGUgd2l0aG91 dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAt MDQtMDEnCisgIFNFVCBuYW1lID0gJ3RocmVlXjEnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsK Ky0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDUKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAnZml2ZV4xJworICBXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBNb3ZlIGZyb20gcGFydGl0aW9uIDEgdG8gcGFydGl0aW9u IDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSAnb25l XjInLAorICAgICAgaWQgPSAnWzQsNSknCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIE1v dmUgZnJvbSBwYXJ0aXRpb24gMyB0byBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRP ICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4yJywKKyAgICAgIGlkID0gJ1sy LDMpJworICBXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBNb3ZlIGZyb20gcGFydGl0aW9uIDUg dG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VU IG5hbWUgPSAnZml2ZV4yJywKKyAgICAgIGlkID0gJ1szLDQpJworICBXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBVcGRhdGUgYWxsIHBhcnRpdGlvbnMgYXQgb25jZSAoZWFjaCB3aXRoIGxl ZnRvdmVycykKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFt ZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsx LDIpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBvbmUKKyBbMSwyKSB8IFswMy0wMS0y MDAwLDA0LTAxLTIwMDApIHwgb25lXjEKKyBbMSwyKSB8IFswNC0wMS0yMDAwLDA2LTAxLTIw MDApIHwgb25lCisgWzEsMikgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IG9uZQorIFsy LDMpIHwgWzA2LTAxLTIwMDAsMDctMDEtMjAwMCkgfCB0aHJlZV4yCisgWzMsNCkgfCBbMDEt MDEtMjAwMCwwMy0wMS0yMDAwKSB8IHRocmVlCisgWzMsNCkgfCBbMDMtMDEtMjAwMCwwNC0w MS0yMDAwKSB8IHRocmVlXjEKKyBbMyw0KSB8IFswNC0wMS0yMDAwLDA2LTAxLTIwMDApIHwg dGhyZWUKKyBbMyw0KSB8IFswNi0wMS0yMDAwLDA3LTAxLTIwMDApIHwgZml2ZV4yCisgWzMs NCkgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IHRocmVlCisgWzQsNSkgfCBbMDYtMDEt MjAwMCwwNy0wMS0yMDAwKSB8IG9uZV4yCisgWzUsNikgfCBbMDEtMDEtMjAwMCwwMy0wMS0y MDAwKSB8IGZpdmUKKyBbNSw2KSB8IFswMy0wMS0yMDAwLDA0LTAxLTIwMDApIHwgZml2ZV4x CisgWzUsNikgfCBbMDQtMDEtMjAwMCwwNi0wMS0yMDAwKSB8IGZpdmUKKyBbNSw2KSB8IFsw Ny0wMS0yMDAwLDAxLTAxLTIwMTApIHwgZml2ZQorKDE1IHJvd3MpCisKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMDEtMDEtMjAwMCww My0wMS0yMDAwKSB8IG9uZQorIFsxLDIpIHwgWzAzLTAxLTIwMDAsMDQtMDEtMjAwMCkgfCBv bmVeMQorIFsxLDIpIHwgWzA0LTAxLTIwMDAsMDYtMDEtMjAwMCkgfCBvbmUKKyBbMSwyKSB8 IFswNy0wMS0yMDAwLDAxLTAxLTIwMTApIHwgb25lCisgWzIsMykgfCBbMDYtMDEtMjAwMCww Ny0wMS0yMDAwKSB8IHRocmVlXjIKKyg1IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIG5hbWUgICB8ICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdGhyZWUgICB8IFszLDQpIHwgWzAxLTAxLTIwMDAs MDMtMDEtMjAwMCkKKyB0aHJlZV4xIHwgWzMsNCkgfCBbMDMtMDEtMjAwMCwwNC0wMS0yMDAw KQorIHRocmVlICAgfCBbMyw0KSB8IFswNC0wMS0yMDAwLDA2LTAxLTIwMDApCisgZml2ZV4y ICB8IFszLDQpIHwgWzA2LTAxLTIwMDAsMDctMDEtMjAwMCkKKyB0aHJlZSAgIHwgWzMsNCkg fCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKQorIG9uZV4yICAgfCBbNCw1KSB8IFswNi0wMS0y MDAwLDA3LTAxLTIwMDApCisoNiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzUgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBuYW1lICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgIGlkICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0KKyBmaXZlICAgfCBbMDEtMDEtMjAwMCwwMy0wMS0yMDAwKSB8IFs1 LDYpCisgZml2ZV4xIHwgWzAzLTAxLTIwMDAsMDQtMDEtMjAwMCkgfCBbNSw2KQorIGZpdmUg ICB8IFswNC0wMS0yMDAwLDA2LTAxLTIwMDApIHwgWzUsNikKKyBmaXZlICAgfCBbMDctMDEt MjAwMCwwMS0wMS0yMDEwKSB8IFs1LDYpCisoNCByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQKaW5kZXggOWQwNDdiMjFiODguLjliNjcyMmM0ZDU4IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTE5NDQsNiArMTk0NCw3IEBAIFdI RVJFIGExLmFtb3BmYW1pbHkgPSAwIE9SIGExLmFtb3BsZWZ0dHlwZSA9IDAgT1IgYTEuYW1v cHJpZ2h0dHlwZSA9IDAKIFNFTEVDVCBhMS5hbW9wZmFtaWx5LCBhMS5hbW9wc3RyYXRlZ3kK IEZST00gcGdfYW1vcCBhcyBhMQogV0hFUkUgTk9UICgoYTEuYW1vcHB1cnBvc2UgPSAncycg QU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKKyAgICAgICAgICAgKGExLmFtb3BwdXJw b3NlID0gJ3AnIEFORCBhMS5hbW9wc29ydGZhbWlseSA9IDApIE9SCiAgICAgICAgICAgIChh MS5hbW9wcHVycG9zZSA9ICdvJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPD4gMCkpOwogIGFt b3BmYW1pbHkgfCBhbW9wc3RyYXRlZ3kgCiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CmluZGV4IGZhYjBj YzgwMGZjLi4yNTVjNTgxZWQ3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wcml2aWxlZ2VzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3By aXZpbGVnZXMub3V0CkBAIC0xMDM4LDYgKzEwMzgsMjQgQEAgRVJST1I6ICBudWxsIHZhbHVl IGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImVycnRzdF9wYXJ0XzIiIHZpb2xhdGVzIG5v dC1udWxsIGMKIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChhLCBiLCBjKSA9IChh YWFhLCBudWxsLCBjY2MpLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3By aXZfdXNlcjE7CiBEUk9QIFRBQkxFIGVycnRzdDsKKy0tIHRlc3QgY29sdW1uLWxldmVsIHBy aXZpbGVnZXMgb24gdGhlIHJhbmdlL1BFUklPRCB1c2VkIGluIEZPUiBQT1JUSU9OIE9GCitT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKK0NSRUFURSBU QUJMRSB0MSAoCisgIGMxIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKwlDT05T VFJBSU5UIHQxcGsgUFJJTUFSWSBLRVkgKGMxLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKTsKK0dSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitHUkFO VCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworR1JBTlQgVVBEQVRFIChj MSkgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgVVBEQVRFIChjMSwgdmFs aWRfYXQpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK1NFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19wcml2X3VzZXIyOworVVBEQVRFIHQxIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAxJyBTRVQgYzEgPSAn WzIsMyknOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgdDEKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRFIHQxIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAx JyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOwogLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJp dmlsZWdlcyB3aGVuIGludm9sdmVkIHdpdGggREVMRVRFCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEFMVEVSIFRBQkxFIGF0ZXN0NiBBREQgQ09M VU1OIHRocmVlIGludGVnZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3VwZGF0YWJsZV92aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Vw ZGF0YWJsZV92aWV3cy5vdXQKaW5kZXggNDIwNzY5YTQwYzkuLmY5NzNlMTU1NGMyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CkBA IC0zNjY2LDYgKzM2NjYsMzggQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIAogZHJv cCB2aWV3IHV2X2lvY3VfdmlldzsKIGRyb3AgdGFibGUgdXZfaW9jdV90YWI7CistLSBDaGVj ayBVUERBVEUgRk9SIFBPUlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFibGUg dXZfZnBvX3RhYiAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0LAor ICAgIGNvbnN0cmFpbnQgcGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0 IHdpdGhvdXQgb3ZlcmxhcHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgn WzEsMV0nLCAnWzIwMjAtMDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1 dl9mcG9fdmlldyBhcworICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAn Mi4wJzo6dGV4dCBhcyB0d28gZnJvbSB1dl9mcG9fdGFiOworaW5zZXJ0IGludG8gdXZfZnBv X3ZpZXcgKGlkLCB2YWxpZF9hdCwgYikgdmFsdWVzICgnWzEsMV0nLCAnWzIwMTAtMDEtMDEs IDIwMjAtMDEtMDEpJywgMSk7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3OworIGIgfCBj IHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLQorIDAgfCAx IHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAxIDAwOjAwOjAwIDIw MzAiKSB8IFsxLDIpIHwgMi4wCisgMSB8IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAx MCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwgWzEsMikgfCAyLjAKKygyIHJvd3Mp CisKK3VwZGF0ZSB1dl9mcG9fdmlldyBmb3IgcG9ydGlvbiBvZiB2YWxpZF9hdCBmcm9tICcy MDE1LTAxLTAxJyB0byAnMjAyMC0wMS0wMScgc2V0IGIgPSAyIHdoZXJlIGlkID0gJ1sxLDFd JzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAgICAg ICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGlkICAgfCB0 d28gCistLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tCisgMCB8IDEgfCBbIldlZCBKYW4gMDEg MDA6MDA6MDAgMjAyMCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikgfCAy LjAKKyAyIHwgMyB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiV2VkIEphbiAwMSAw MDowMDowMCAyMDIwIikgfCBbMSwyKSB8IDIuMAorIDEgfCAyIHwgWyJGcmkgSmFuIDAxIDAw OjAwOjAwIDIwMTAiLCJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiKSB8IFsxLDIpIHwgMi4w CisoMyByb3dzKQorCitkZWxldGUgZnJvbSB1dl9mcG9fdmlldyBmb3IgcG9ydGlvbiBvZiB2 YWxpZF9hdCBmcm9tICcyMDE3LTAxLTAxJyB0byAnMjAyMi0wMS0wMScgd2hlcmUgaWQgPSAn WzEsMV0nOworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAgICAg ICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgaWQg ICB8IHR3byAKKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAxIHwgMiB8IFsiRnJpIEph biAwMSAwMDowMDowMCAyMDEwIiwiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IikgfCBbMSwy KSB8IDIuMAorIDAgfCAxIHwgWyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJUdWUgSmFu IDAxIDAwOjAwOjAwIDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMiB8IDMgfCBbIlRodSBKYW4g MDEgMDA6MDA6MDAgMjAxNSIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIpIHwgWzEsMikg fCAyLjAKKygzIHJvd3MpCisKIC0tIFRlc3Qgd2hvbGUtcm93IHJlZmVyZW5jZXMgdG8gdGhl IHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAoYSBpbnQgdW5pcXVlLCBiIHRleHQp OwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA4NjE3MWM5OTRjOS4uZWNj YWY1YzBmMDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0 X292ZXJsYXBzLm91dApAQCAtODg5LDYgKzg4OSwzNiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3Jh bDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s3LDgpJywgJ2ZvbycpLAogICAoJ1syLDMp JywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdi YXInKQogOworVVBEQVRFIHRlbXBvcmFsMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDAwLTA1LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSBuYW1lIHx8ICcx JzsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MC0wNC0wMScgVE8gJzIwMDAtMDYtMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMicKKyAg V0hFUkUgaWQgPSAnWzIsMyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgaWQy ICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTA1LTAxKSB8IFs3LDgpICB8 IGZvbworIFsxLDIpIHwgWzIwMDAtMDUtMDEsMjAwMC0wNy0wMSkgfCBbNyw4KSAgfCBmb28x CisgWzEsMikgfCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IFs3LDgpICB8IGZvbworIFsy LDMpIHwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkgfCBbOSwxMCkgfCBiYXIKKyBbMiwzKSB8 IFsyMDAwLTA0LTAxLDIwMDAtMDUtMDEpIHwgWzksMTApIHwgYmFyMgorIFsyLDMpIHwgWzIw MDAtMDUtMDEsMjAwMC0wNi0wMSkgfCBbOSwxMCkgfCBiYXIxMgorIFsyLDMpIHwgWzIwMDAt MDYtMDEsMjAwMC0wNy0wMSkgfCBbOSwxMCkgfCBiYXIxCisgWzIsMykgfCBbMjAwMC0wNy0w MSwyMDEwLTAxLTAxKSB8IFs5LDEwKSB8IGJhcgorKDggcm93cykKKworLS0gY29uZmxpY3Rp bmcgaWQgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIs IG5hbWUpCisgIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywg JzIwMDYtMDEtMDEnKSwgJ1s4LDkpJywgJ2ZvbzMnKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcg a2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbDNfcGsi CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAwNS0wMS0wMSwyMDA2 LTAxLTAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShb MSwyKSwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkpLgorLS0gY29uZmxpY3RpbmcgaWQyIG9u bHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQor ICBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDEwLTAx LTAxJyksICdbOSwxMCknLCAnYmFyMycpOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFs dWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsM191bmlxIgorREVU QUlMOiAgS2V5IChpZDIsIHZhbGlkX2F0KT0oWzksMTApLCBbMjAwNS0wMS0wMSwyMDEwLTAx LTAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZDIsIHZhbGlkX2F0KT0oWzks MTApLCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSkuCiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsK IC0tCiAtLSB0ZXN0IGNoYW5naW5nIHRoZSBQSydzIGRlcGVuZGVuY2llcwpAQCAtOTQxLDYg Kzk3MSwzNiBAQCBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAg WzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMSByb3cpCiAKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTIn CisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAt MDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBE QVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJwor ICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcy MDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkgfCBv bmUKKyBbMSwyKSB8IFsyMDAwLTAxLTE1LDIwMDAtMDItMDEpIHwgb25lMgorIFsxLDIpIHwg WzIwMDAtMDItMDEsMjAwMC0wMi0xNSkgfCBvbmUyCisgWzEsMikgfCBbMjAwMC0wMi0xNSwy MDAwLTAyLTIwKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDItMjUsMjAwMC0wMy0wMSkgfCBv bmUKKyBbMiwzKSB8IFsyMDAyLTAxLTAxLDIwMDMtMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8 IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAyLTE1 LDIwMDItMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEp IHwgdGhyZWUKKyBbNCw1KSB8IFsyMDAwLTAyLTIwLDIwMDAtMDItMjUpIHwgb25lCisoMTAg cm93cykKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIC0tIHRlbXBvcmFs IFVOSVFVRToKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCkBAIC05NzYs NiArMTAzNiwzNiBAQCBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CiAgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMSByb3cpCiAK K1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29u ZTInCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9u ZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIw MDAtMDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOwor VVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMp JworICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRP ICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkg fCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAxLTE1LDIwMDAtMDItMDEpIHwgb25lMgorIFsxLDIp IHwgWzIwMDAtMDItMDEsMjAwMC0wMi0xNSkgfCBvbmUyCisgWzEsMikgfCBbMjAwMC0wMi0x NSwyMDAwLTAyLTIwKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDItMjUsMjAwMC0wMy0wMSkg fCBvbmUKKyBbMiwzKSB8IFsyMDAyLTAxLTAxLDIwMDMtMDEtMDEpIHwgdGhyZWUKKyBbMyw0 KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAy LTE1LDIwMDItMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAzLTAxLTAxLDIwMTAtMDEt MDEpIHwgdGhyZWUKKyBbNCw1KSB8IFsyMDAwLTAyLTIwLDIwMDAtMDItMjUpIHwgb25lCiso MTAgcm93cykKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIC0tIEFMVEVS IFRBQkxFIFJFUExJQ0EgSURFTlRJVFkKIC0tIChzaG91bGQgZmFpbCkKQEAgLTE3MDcsNiAr MTc5NywxOCBAQCBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCist LSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBv cmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8g JzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7Cist LSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEw JworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2 LTAyLTAxJykKQEAgLTE3NjAsNiArMTg2MiwxOCBAQCBVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgt MDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQ REFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAn WzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9y bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCiAtLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRl IHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTE3OTYsOSArMTkxMCwyMiBAQCBC RUdJTjsKIENPTU1JVDsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVt cG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgor LS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w MicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBq dXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVS RSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf Zmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4K IC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQ SyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBSRVNUUklDVAogLS0KQEAgLTE4MjcsOSArMTk1NCwyMiBAQCBCRUdJTjsKIEVSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogUk9MTEJBQ0s7CistLSBkZWxldGlu ZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAx OC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBz dWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor LS0gY2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBh cmVudF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQg SU4gKCdbNSw2KScpOwogLS0KIC0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAt LQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggZGRjMTU1YzE5NWYuLjVl OTY5M2ExZDI0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQ4LDcg KzQ4LDcgQEAgdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRl X3ZpZXcgaW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGkKICMgLS0tLS0tLS0tLQogIyBB bm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGNy ZWF0ZV9hZ2dyZWdhdGUgY3JlYXRlX2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBjb25zdHJh aW50cyB0cmlnZ2VycyBzZWxlY3QgaW5oZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJvcF9p Zl9leGlzdHMgdXBkYXRhYmxlX3ZpZXdzIHJvbGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNo X2Z1bmMgZXJyb3JzIGluZmluaXRlX3JlY3Vyc2UKK3Rlc3Q6IGNyZWF0ZV9hZ2dyZWdhdGUg Y3JlYXRlX2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50cyB0cmlnZ2VycyBz ZWxlY3QgaW5oZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9leGlzdHMgdXBkYXRh YmxlX3ZpZXdzIHJvbGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1bmMgZXJyb3JzIGlu ZmluaXRlX3JlY3Vyc2UgZm9yX3BvcnRpb25fb2YKIAogIyAtLS0tLS0tLS0tCiAjIHNhbml0 eV9jaGVjayBkb2VzIGEgdmFjdXVtLCBhZmZlY3RpbmcgdGhlIHNvcnQgb3JkZXIgb2YgU0VM RUNUICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29m LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTZhZDg3YzljZjEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAg LTAsMCArMSw1MzEgQEAKKy0tIFRlc3RzIGZvciBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9O IE9GCisKKy0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1bW5zCitDUkVBVEUgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwK KyAgbmFtZSB0ZXh0IE5PVCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2Zf dGVzdCBWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSknLCAnb25l Jyk7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ2Zv byc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMTUnIFRPIE5VTEw7CisKK1NFTEVDVCAqIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdDsKKworLS0gV29ya3Mgb24gbW9yZSB0aGFuIG9uZSByYW5n ZQorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9w b3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkMV9hdCB0c3Jhbmdl LAorICB2YWxpZDJfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMCispOworSU5T RVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgt MDEtMDIsMjAxOC0wMi0wMyknLCAnWzIwMTUtMDEtMDEsMjAyNS0wMS0wMSknLCAnb25lJyk7 CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFf YXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NFTEVD VCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBO VUxMCitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90 ZXN0OworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdDsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7 CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisKKy0tIFRlc3Qgd2l0aCBO VUxMcyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0gVGhpcyB3b24ndCBo YXBwZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUgY29uc3RyYWludAor LS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRoYXQuCitEUk9QIFRB QkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwK KyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxV RVMKKyAgKCdbMSwyKScsIE5VTEwsICcxIG51bGwnKSwKKyAgKCdbMSwyKScsICcoLCknLCAn MSB1bmJvdW5kZWQnKSwKKyAgKCdbMSwyKScsICdlbXB0eScsICcxIGVtcHR5JyksCisgIChO VUxMLCBOVUxMLCBOVUxMKSwKKyAgKE5VTEwsIHRzcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OS0wMS0wMScpLCAnbnVsbCBrZXknKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0Cisg IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCisgIFNFVCBuYW1l ID0gJ05VTEwgdG8gTlVMTCc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7 CisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9h dCB0c3JhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJ TlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1ZBTFVF UworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEs MiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1sy MDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0w MSwyMDE4LTAxLTA1KScsICd0d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0 aHJlZScpLAorKCdbNCw1KScsICcoLDIwMTgtMDQtMDEpJywgJ2ZvdXInKSwKKygnWzUsNikn LCAnKCwpJywgJ2ZpdmUnKQorOworCistLQorLS0gVVBEQVRFIHRlc3RzCistLQorCistLSBT ZXR0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScg VE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJworV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBT ZXR0aW5nIHRoZSByYW5nZSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCB2 YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAxKScKK1dIRVJFIGlkID0gJ1s1LDYp JzsKKworLS0gVGhlIHdyb25nIHR5cGUgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIDEgVE8gNAorU0VUIG5hbWUgPSAn bm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0dGluZyB3aXRoIHRpbWVzdGFt cHMgcmV2ZXJzZWQgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAxOC0wMS0wMScKK1NF VCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRpbmcg d2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNUICcyMDE4LTAxLTAxJykgVE8gJzIw MTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQgPSAnWzMsNCknOworCist LSBTZXR0aW5nIHdpdGggYSBjb2x1bW4gZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIGxvd2VyKHZhbGlkX2F0KSBUTyBO VUxMCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBTZXR0 aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAx JyBUTyAnMjAxOC0wNC0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjAnCitXSEVSRSBpZCA9ICdb Myw0KSc7CisKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGEgZmlu aXRlL29wZW4gdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAn dGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRpbmcgYSBmaW5pdGUv b3BlbiBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcy MDE4LTAzLTAxJworU0VUIG5hbWUgPSAndGhyZWVeMicKK1dIRVJFIGlkID0gJ1szLDQpJzsK KworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGFuIG9wZW4vZmlu aXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1lID0gJ2ZvdXJe MScKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUg cG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8g TlVMTAorU0VUIG5hbWUgPSAnZm91cl4yJworV0hFUkUgaWQgPSAnWzQsNSknOworCistLSBV cGRhdGluZyBhIGZpbml0ZS9maW5pdGUgcG9ydGlvbiB3aXRoIGFuIGV4YWN0IGZpdAorVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTctMDEtMDEnIFRPICcyMDE4LTAyLTAxJworU0VUIG5hbWUgPSAnZm91cl4zJworV0hF UkUgaWQgPSAnWzQsNSknOworCistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBzcGFuCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBO VUxMIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3R3b14yJworV0hFUkUgaWQgPSAnWzIsMyknOwor CistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9ydGlvbiB3aXRoIGEgZmluaXRlL2Zpbml0 ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0g J2ZpdmVeMicKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVXBkYXRpbmcgYW4gZW5jbG9z ZWQgc3BhbiB3aXRoIHNlcGFyYXRlIHByb3RydWRpbmcgc3BhbnMKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMycKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKKworLS0gVXBkYXRpbmcgbXVsdGlwbGUgZW5jbG9zZWQgc3BhbnMKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwg VE8gTlVMTAorU0VUIG5hbWUgPSAnb25lXjInCitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0t IFVwZGF0aW5nIHdpdGggYSBzaGlmdC9yZWR1Y2UgY29uZmxpY3QKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBGUk9NICcyMDE4LTAz LTAxJyBBVCBUSU1FIFpPTkUgSU5URVJWQUwgJzEnIEhPVVIgVE8gTUlOVVRFCisgIFRPICcy MDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjMnCitXSEVSRSBpZCA9ICdbMSwyKSc7CisK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAor ICBGUk9NICcyMDE4LTAzLTAxJyBBVCBUSU1FIFpPTkUgSU5URVJWQUwgJzInIEhPVVIKKyAg VE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeNCcKK1dIRVJFIGlkID0gJ1sxLDIp JzsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0CisgIEZST00gKCcyMDE4LTAzLTAxJyBBVCBUSU1FIFpPTkUgSU5URVJWQUwgJzInIEhP VVIpCisgIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjQnCitXSEVSRSBpZCA9 ICdbMSwyKSc7CisKKy0tIFdpdGggYSBkaXJlY3QgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKHRzcmFuZ2UoJzIwMTgtMDMt MTAnLCAnMjAxOC0wMy0xNycpKQorU0VUIG5hbWUgPSAnb25lXjUnCitXSEVSRSBpZCA9ICdb MSwyKSc7CisKKy0tIFVwZGF0aW5nIHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQgPSAn WzEsMiknOworCistLSBVUERBVEUgd2l0aCBubyBXSEVSRSBjbGF1c2UKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDMwLTAx LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9IG5hbWUgfHwgJyonOworCitTRUxFQ1QgKiBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0g REVMRVRFIHRlc3RzCistLQorCistLSBEZWxldGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4g ZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IGludmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzUs NiknOworCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworV0hFUkUgaWQgPSAnWzMsNCkn OworCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitE RUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1dIRVJFIGlkID0gJ1szLDQp JzsKKworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9jbG9zZWQgdGFyZ2V0CitERUxFVEUg RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0wNi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKwor LS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9vcGVuIHRhcmdldAorREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w NC0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRo IGFuIG9wZW4vY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTA4Jwor V0hFUkUgaWQgPSAnWzEsMiknOworCistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vb3BlbiB0 YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNiw3KSc7CisKKy0t IERFTEVURSB3aXRoIG5vIFdIRVJFIGNsYXVzZQorREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyNS0wMS0wMScgVE8g TlVMTDsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5JTkcgcmV0dXJucyBvbmx5IHRo ZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBzaWRlIHZhbHVlcykKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBuYW1lID0gJ3RocmVlXjMnCitXSEVS RSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworCistLSB0ZXN0IHRoYXQgd2UgcnVuIHRy aWdnZXJzIG9uIHRoZSBVUERBVEUvREVMRVRFZCByb3cgYW5kIHRoZSBJTlNFUlRlZCByb3dz CisKK0NSRUFURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCkKK1JFVFVSTlMg dHJpZ2dlcgorQVMKKyQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUgJSAlIG9mICUnLCBU R19XSEVOLCBUR19PUCwgTkVXLnZhbGlkX2F0LCBPTEQudmFsaWRfYXQ7CisgIElGIFRHX09Q ID0gJ0RFTEVURScgVEhFTgorICAgIFJFVFVSTiBPTEQ7CisgIEVMU0UKKyAgICBSRVRVUk4g TkVXOworICBFTkQgSUY7CitFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRF IFRSSUdHRVIgdHJnX2Zvcl9wb3J0aW9uX29mX2JlZm9yZQorICBCRUZPUkUgSU5TRVJUIE9S IFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBS T1cKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitDUkVB VEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXIKKyAgQUZURVIgSU5TRVJUIE9S IFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBS T1cKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CisKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDIxLTAxLTAxJyBUTyAnMjAyMi0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeNCcKK1dI RVJFIGlkID0gJ1s1LDYpJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyMy0wMS0wMScgVE8gJzIwMjQtMDEt MDEnCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitEUk9QIEZVTkNUSU9OIGZvcl9wb3J0 aW9uX29mX3RyaWdnZXIgQ0FTQ0FERTsKKworLS0gVHJpZ2dlcnMgd2l0aCBhIGN1c3RvbSB0 cmFuc2l0aW9uIHRhYmxlIG5hbWU6CisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVz dDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dAorKTsKK0lOU0VSVCBJTlRP IGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTICgnWzEsMiknLCAnWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSknLCAnb25lJyk7CisKK0NSRUFURSBGVU5DVElPTiBkdW1wX3RyaWdnZXIoKQor UkVUVVJOUyBUUklHR0VSIExBTkdVQUdFIHBscGdzcWwgQVMKKyQkCitCRUdJTgorICBSQUlT RSBOT1RJQ0UgJ1RHX09QID0gJScsIFRHX09QOworICBJRiBUR19PUCA9ICdJTlNFUlQnIFRI RU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUsIE5FVyB0 YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5nX2Fn ZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gbmV3X3RhYmxlKTsK KyAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCisgICAgUkFJU0UgTk9USUNFICd0cmln Z2VyID0gJSwgVEdfTEVWRUwgPSAlLCBPTEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAlJywK KyAgICAgIFRHX05BTUUsIFRHX0xFVkVMLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG9s ZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpLAorICAg ICAgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBp ZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdERUxFVEUnIFRIRU4KKyAg ICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUsIE9MRCB0YWJsZSA9 ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5nX2FnZyhvbGRf dGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gb2xkX3RhYmxlKTsKKyAgRU5E IElGOworICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkOworCitDUkVBVEUgVFJJR0dFUiBmb3Jf cG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnCitBRlRFUiBJTlNFUlQgT04gZm9yX3BvcnRp b25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVB Q0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitDUkVBVEUgVFJJ R0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnX3N0bXQKK0FGVEVSIElOU0VS VCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBORVcgVEFCTEUgQVMgbmV3 X3RhYmxlCitGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmln Z2VyKCk7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3Ry aWcKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBP TEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNI IFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdH RVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10CitBRlRFUiBVUERBVEUg T04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90 YWJsZSBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VU RSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0 aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWcKK0FGVEVSIERFTEVURSBPTiBmb3JfcG9ydGlvbl9v Zl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlCitGT1IgRUFDSCBS T1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFURSBUUklHR0VS IGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWdfc3RtdAorQUZURVIgREVMRVRFIE9O IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFi bGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIo KTsKKworQkVHSU47CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKKyAgU0VU IG5hbWUgPSAnMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsKK1JPTExCQUNLOworCitCRUdJ TjsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTIxJzsKK1JPTExCQUNLOworCitCRUdJ TjsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMS0wMicKKyAgU0VUIG5hbWUgPSAnTlVMTF90b18y MDE4LTAxLTAxJzsKK1JPTExCQUNLOworCistLSBUZXN0IHdpdGggbXVsdGlyYW5nZXMKKwor Q1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5P VCBOVUxMLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0 ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQg SU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMpJyksIGRhdGVyYW5n ZSgnMjAxOC0wMi0wNCcsICcyMDE4LTAzLTAzJykpLCAnb25lJyksCisoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQpJykpLCAn b25lJyksCisoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDUtMDEpJykpLCAndHdvJyksCisoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgbnVsbCkpLCAndGhyZWUnKTsKKzsKKworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTEwJywgJzIwMTgtMDItMTAnKSwgZGF0ZXJh bmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDEnKSkpCitTRVQgbmFtZSA9ICdvbmVeMScK K1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAn MjAxOC0wMy0xNScpKSkKK1dIRVJFIGlkID0gJ1syLDMpJzsKKworU0VMRUNUICogRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK0RST1AgVEFC TEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CisKKy0tIFRlc3Qgd2l0aCBhIGN1c3RvbSByYW5n ZSB0eXBlCisKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0 ZSk7CisKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRy YW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UgTk9UIE5VTEwsCisgIG5h bWUgdGV4dCBOT1QgTlVMTCwKKyAgQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5T RVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsICdbMjAx OC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMs MjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQt MDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTA1LTAxKScsICd0 d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpOworOworCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0x NScKK1dIRVJFIGlkID0gJ1syLDMpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK0RST1AgVEFCTEUgZm9yX3BvcnRp b25fb2ZfdGVzdDI7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CisKKy0tIFRlc3QgRk9SIFBP UlRJT04gT0YgYWdhaW5zdCBhIHBhcnRpdGlvbmVkIHRhYmxlLgorLS0gdGVtcG9yYWxfcGFy dGl0aW9uZWRfMSBoYXMgdGhlIHNhbWUgYXR0bnVtcyBhcyB0aGUgcm9vdAorLS0gdGVtcG9y YWxfcGFydGl0aW9uZWRfMyBoYXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIGZyb20gdGhlIHJv b3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgaGFzIHRoZSBkaWZmZXJlbnQgYXR0bnVt cyB0b28sIGJ1dCByZXZlcnNlZAorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWQgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0 ZXh0LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIFBBUlRJVElPTiBPRiB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIFBBUlRJVElPTiBPRiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKKworQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9w YXJ0aXRpb25lZF8zOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBEUk9Q IENPTFVNTiBpZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8zIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBBREQg Q09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRf MyBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKKworQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF81OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBEUk9QIENPTFVNTiBp ZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF81IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLCBBREQgQ09M VU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBGT1IgVkFM VUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWQgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdmaXZlJyk7CisKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWQ7CisKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRo aW4gcGFydGl0aW9uIDEKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VU IG5hbWUgPSAnb25lXjEnCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gVXBkYXRlIHdp dGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcy MDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4xJworICBXSEVSRSBpZCA9ICdbMyw0 KSc7CisKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDUKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAnZml2ZV4xJwor ICBXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMSB0byBw YXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFt ZSA9ICdvbmVeMicsCisgICAgICBpZCA9ICdbNCw1KScKKyAgV0hFUkUgaWQgPSAnWzEsMikn OworCistLSBNb3ZlIGZyb20gcGFydGl0aW9uIDMgdG8gcGFydGl0aW9uIDEKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVeMicsCisgICAg ICBpZCA9ICdbMiwzKScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBNb3ZlIGZyb20g cGFydGl0aW9uIDUgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0w Ny0wMScKKyAgU0VUIG5hbWUgPSAnZml2ZV4yJywKKyAgICAgIGlkID0gJ1szLDQpJworICBX SEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIFVwZGF0ZSBhbGwgcGFydGl0aW9ucyBhdCBvbmNl IChlYWNoIHdpdGggbGVmdG92ZXJzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkXzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL29wcl9zYW5pdHkuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3By X3Nhbml0eS5zcWwKaW5kZXggMmZlN2I2ZGNjNDkuLjJkZmZlN2M1YjZhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbApAQCAtMTI0MSw2ICsxMjQxLDcgQEAgV0hFUkUg YTEuYW1vcGZhbWlseSA9IDAgT1IgYTEuYW1vcGxlZnR0eXBlID0gMCBPUiBhMS5hbW9wcmln aHR0eXBlID0gMAogU0VMRUNUIGExLmFtb3BmYW1pbHksIGExLmFtb3BzdHJhdGVneQogRlJP TSBwZ19hbW9wIGFzIGExCiBXSEVSRSBOT1QgKChhMS5hbW9wcHVycG9zZSA9ICdzJyBBTkQg YTEuYW1vcHNvcnRmYW1pbHkgPSAwKSBPUgorICAgICAgICAgICAoYTEuYW1vcHB1cnBvc2Ug PSAncCcgQU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKICAgICAgICAgICAgKGExLmFt b3BwdXJwb3NlID0gJ28nIEFORCBhMS5hbW9wc29ydGZhbWlseSA8PiAwKSk7CiAKIC0tIGFt b3BtZXRob2QgbXVzdCBtYXRjaCBvd25pbmcgb3BmYW1pbHkncyBvcGZtZXRob2QKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKaW5kZXggYWUzMzhlOGNjOGUuLjdhZDY4NzMx NmE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbApAQCAtNzIzLDYgKzcy MywyNCBAQCBVUERBVEUgZXJydHN0IFNFVCBhID0gJ2FhYWEnLCBiID0gTlVMTCBXSEVSRSBh ID0gJ2FhYSc7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2Vy MTsKIERST1AgVEFCTEUgZXJydHN0OwogCistLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxl Z2VzIG9uIHRoZSByYW5nZS9QRVJJT0QgdXNlZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitDUkVBVEUgVEFCTEUg dDEgKAorICBjMSBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IHRzcmFuZ2UsCisJQ09OU1RSQUlO VCB0MXBrIFBSSU1BUlkgS0VZIChjMSwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgU0VM RUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK0dSQU5UIFVQREFURSAoYzEpIE9O IHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2F0 KSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMp JzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBE QVRFIHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcy MDAxLTAxLTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOworCiAtLSB0ZXN0IGNvbHVt bi1sZXZlbCBwcml2aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIgVEFCTEUgYXRl c3Q2IEFERCBDT0xVTU4gdGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3VwZGF0YWJsZV92aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91 cGRhdGFibGVfdmlld3Muc3FsCmluZGV4IDkzYjY5M2FlODM3Li45YmYyMzdjNzFkNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCkBAIC0xODY1LDYg KzE4NjUsMjAgQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIGRyb3AgdmlldyB1dl9p b2N1X3ZpZXc7CiBkcm9wIHRhYmxlIHV2X2lvY3VfdGFiOwogCistLSBDaGVjayBVUERBVEUg Rk9SIFBPUlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFibGUgdXZfZnBvX3Rh YiAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0LAorICAgIGNvbnN0 cmFpbnQgcGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0IHdpdGhvdXQg b3ZlcmxhcHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgnWzEsMV0nLCAn WzIwMjAtMDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1dl9mcG9fdmll dyBhcworICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAnMi4wJzo6dGV4 dCBhcyB0d28gZnJvbSB1dl9mcG9fdGFiOworCitpbnNlcnQgaW50byB1dl9mcG9fdmlldyAo aWQsIHZhbGlkX2F0LCBiKSB2YWx1ZXMgKCdbMSwxXScsICdbMjAxMC0wMS0wMSwgMjAyMC0w MS0wMSknLCAxKTsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7Cit1cGRhdGUgdXZfZnBv X3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIw MjAtMDEtMDEnIHNldCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9t IHV2X2Zwb192aWV3OworZGVsZXRlIGZyb20gdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2Yg dmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjItMDEtMDEnIHdoZXJlIGlkID0g J1sxLDFdJzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisKIC0tIFRlc3Qgd2hvbGUt cm93IHJlZmVyZW5jZXMgdG8gdGhlIHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAo YSBpbnQgdW5pcXVlLCBiIHRleHQpOwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IDk0M2Vk ZjNkYTYzLi5iYWIzNDY1OTc5MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwKQEAgLTYzMiw2ICs2MzIsMjAgQEAgSU5TRVJUIElOVE8gdGVtcG9y YWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKICAgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAn YmFyJykKIDsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMC0wNS0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAn MSc7CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDAtMDQtMDEnIFRPICcyMDAwLTA2LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzInCisg IFdIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScsICdm b28zJyk7CistLSBjb25mbGljdGluZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFs MyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1szLDQpJywgZGF0 ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXIzJyk7 CiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIAogLS0KQEAgLTY3MCw2ICs2ODQsMjIgQEAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFM VUVTCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNF TEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9y YWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0w MS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlk ID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNF VCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3Jh bF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAx LTAxJyBUTyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1l ID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1Jwor ICBXSEVSRSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQ7CiAKIC0tIHRlbXBvcmFsIFVOSVFVRToKQEAgLTY4OCw2ICs3MTgsMjIgQEAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFM VUVTCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNF TEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9y YWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0w MS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlk ID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNF VCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3Jh bF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAx LTAxJyBUTyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1l ID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1Jwor ICBXSEVSRSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQ7CiAKIC0tIEFMVEVSIFRBQkxFIFJFUExJQ0EgSURFTlRJVFkKQEAgLTEyNjIsNiAr MTMwOCwxNiBAQCBDT01NSVQ7CiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6 CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFU RSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUs NiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxf cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAx OC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRo ZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRh dGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTMxMSw2ICsxMzY3LDE2IEBA IFJPTExCQUNLOwogLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0t IGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAn MjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAn CitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2Nl ZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0 KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx Ni0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTEzNDYsOSArMTQxMiwyMCBAQCBCRUdJTjsK IAogICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CiBDT01N SVQ7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0 aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcK K1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksg cmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0KIC0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0xMzc3LDkgKzE0NTQs MjAgQEAgQkVHSU47CiAgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CiAgIERF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKIFJPTExCQUNLOwor LS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w MicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBq dXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVS RSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29y ZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjbGVhbiB1cDoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAKIC0tCiAtLSB0ZXN0 IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucwotLSAKMi40Mi4wCgo= --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename*0="v39-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlYWM1OTc5ZjkzYzllOWFmZTBkY2ExODMxZmQzODk5MTBiZDFlOTYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggdjM5IDcvOF0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQgZm9yIHRlbXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICAyMCArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA4MyArLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAgICAgIHwgIDU4NCArKysrKy0K IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oICAgICAgICAgICB8ICAgIDcg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAg MjIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQgICAgIHwg ICAxOCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgICAg IHwgMTczMiArKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwgICAgIHwgIDk3NyArKysrKysrKystCiA5IGZpbGVzIGNoYW5nZWQs IDMzNDAgaW5zZXJ0aW9ucygrKSwgMTE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCmluZGV4IDlkNTUyMjQxYTE2Li4zOWU5Y2Y4ZTVhYSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0xMjY1LDcgKzEyNjUsOSBAQCBXSVRI ICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRl cmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8 cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlv biBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBr ZXksIHRoZSBkZWxldGUvdXBkYXRlIHdpbGwgdXNlCisgICAgICAgICAgPGxpdGVyYWw+Rk9S IFBPUlRJT04gT0Y8L2xpdGVyYWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlCisgICAg ICAgICAgZWZmZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcgZGVsZXRlZC91cGRhdGVkIGluIHRo ZSByZWZlcmVuY2VkIHJvdy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRl bT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTEyODAsNyArMTI4MiwxMCBAQCBXSVRI ICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRl cmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8 cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlv biBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBr ZXksIHRoZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVyYWw+Rk9SIFBPUlRJT04KKyAgICAgICAg ICBPRjwvbGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNvbnN0cmFpbiB0aGUgZWZmZWN0IHRvIHRo ZSBib3VuZHMgYmVpbmcKKyAgICAgICAgICBkZWxldGVkL3VwZGF0ZWQgaW4gdGhlIHJlZmVy ZW5jZWQgcm93LiBUaGUgY29sdW1uIG1ha2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJhbD5Q RVJJT0Q8L2xpdGVyYWw+IHdpbGwgbm90IGJlIHNldCB0byBudWxsLgogICAgICAgICAgPC9w YXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAt MTI5Nyw3ICsxMzAyLDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAg ICA8L3BhcmE+CiAKICAgICAgICAgIDxwYXJhPgotICAgICAgICAgIEluIGEgdGVtcG9yYWwg Zm9yZWlnbiBrZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAg SW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhlIGNoYW5nZSB3aWxsIHVzZSA8bGl0ZXJh bD5GT1IgUE9SVElPTgorICAgICAgICAgIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29u c3RyYWluIHRoZSBlZmZlY3QgdG8gdGhlIGJvdW5kcyBiZWluZworICAgICAgICAgIGRlbGV0 ZWQvdXBkYXRlZCBpbiB0aGUgcmVmZXJlbmNlZCByb3cuIFRoZSBjb2x1bW4gbWFya2VkIHdp dGgKKyAgICAgICAgICA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHdpdGggbm90IGJlIHNl dCB0byBhIGRlZmF1bHQgdmFsdWUuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29u c3RyYWludC5jCmluZGV4IDFlMmRmMDMxYTg0Li4xZDdiYWRiZjM0ZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTEzNTEsNyArMTM1MSw3IEBAIERlY29uc3Ry dWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiB9CiAK IC8qCi0gKiBGaW5kRmtQZXJpb2RPcGVycyAtCisgKiBGaW5kRmtQZXJpb2RPcGVyc0FuZFBy b2NzIC0KICAqCiAgKiBMb29rcyB1cCB0aGUgb3BlcmF0b3Igb2lkcyB1c2VkIGZvciB0aGUg UEVSSU9EIHBhcnQgb2YgYSB0ZW1wb3JhbCBmb3JlaWduIGtleS4KICAqIFRoZSBvcGNsYXNz IHNob3VsZCBiZSB0aGUgb3BjbGFzcyBvZiB0aGF0IFBFUklPRCBlbGVtZW50LgpAQCAtMTM2 MCwxMSArMTM2MCwxNCBAQCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUg dHVwbGUsIGludCAqbnVtZmtzLAogICogYWdnZWRjb250YWluZWRieW9wZXJvaWQgaXMgYWxz byBhIENvbnRhaW5lZEJ5IG9wZXJhdG9yLAogICogYnV0IG9uZSB3aG9zZSByaHMgaXMgYSBt dWx0aXJhbmdlLgogICogVGhhdCB3YXkgZm9yZWlnbiBrZXlzIGNhbiBjb21wYXJlIGZrYXR0 ciA8QCByYW5nZV9hZ2cocGthdHRyKS4KKyAqIGludGVyc2VjdHByb2NvaWQgaXMgdXNlZCB0 byBsaW1pdCB0aGUgZWZmZWN0IG9mIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQKKyAq IHdoZW4gdGhlIFBLIHJlY29yZCBpcyBjaGFuZ2VkIHdpdGggRk9SIFBPUlRJT04gT0YuCiAg Ki8KIHZvaWQKLUZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAotCQkJCSAgT2lkICpj b250YWluZWRieW9wZXJvaWQsCi0JCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lk KQorRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywKKwkJCQkJCSAgT2lk ICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9w ZXJvaWQsCisJCQkJCQkgIE9pZCAqaW50ZXJzZWN0cHJvY29pZCkKIHsKIAlPaWQJCQlvcGZh bWlseSA9IEludmFsaWRPaWQ7CiAJT2lkCQkJb3BjaW50eXBlID0gSW52YWxpZE9pZDsKQEAg LTE0MDUsNiArMTQwOCwxNSBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKIAkJ CQkJCQkJCSBBTllNVUxUSVJBTkdFT0lELAogCQkJCQkJCQkJIGFnZ2VkY29udGFpbmVkYnlv cGVyb2lkLAogCQkJCQkJCQkJICZzdHJhdCk7CisKKwkvKgorCSAqIElmIHRoZSBjb21tYW5k IHVzZXMgRk9SIFBPUlRJT04gT0YsCisJICogd2Ugd2lsbCBhbHNvIG5lZWQgYW4gaW50ZXJz ZWN0IHN1cHBvcnQgcHJvYy4KKwkgKiBJZiB0aGlzIGlzIG1pc3Npbmcgd2UgZG9uJ3QgbmVl ZCB0byBjb21wbGFpbiBoZXJlLAorCSAqIGJlY2F1c2UgRk9SIFBPUlRJT04gT0Ygd2lsbCBu b3QgYmUgYWxsb3dlZC4KKwkgKi8KKwlpZiAob3BmYW1pbHkgIT0gSW52YWxpZE9pZCAmJiBv cGNpbnR5cGUgIT0gSW52YWxpZE9pZCkKKwkJKmludGVyc2VjdHByb2NvaWQgPSBnZXRfb3Bm YW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5URVJT RUNUX1BST0MpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA0 ZDQ3MjIxMmUxMS4uZDJkZjQ4MTY2M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CkBAIC01MTUsNyArNTE1LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgYWRkRmtSZWN1cnNl UmVmZXJlbmNlZChMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmEKIAkJCQkJ CQkJCQkJYm9vbCBvbGRfY2hlY2tfb2ssCiAJCQkJCQkJCQkJCU9pZCBwYXJlbnREZWxUcmln Z2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlciwKIAkJCQkJCQkJCQkJYm9vbCB3aXRoX3Blcmlv ZCk7Ci1zdGF0aWMgdm9pZCB2YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1bW5zKGludCBudW1m a3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMsCitzdGF0aWMgdm9pZCB2YWxpZGF0ZUZrT25E ZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMsIGNv bnN0IGludDE2IGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCQkJCSBpbnQgbnVtZmtzZXRjb2xz LCBjb25zdCBpbnQxNiAqZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkJCQkgTGlzdCAqZmtz ZXRjb2xzKTsKIHN0YXRpYyB2b2lkIGFkZEZrUmVjdXJzZVJlZmVyZW5jaW5nKExpc3QgKip3 cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwKQEAgLTk2MDIsNiArOTYwMiw3IEBA IEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxl SW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJaW50MTYJCWZrZGVsc2V0Y29sc1tJTkRFWF9N QVhfS0VZU10gPSB7MH07CiAJYm9vbAkJd2l0aF9wZXJpb2Q7CiAJYm9vbAkJcGtfaGFzX3dp dGhvdXRfb3ZlcmxhcHM7CisJaW50MTYJCWZrcGVyaW9kYXR0bnVtID0gSW52YWxpZEF0dHJO dW1iZXI7CiAJaW50CQkJaTsKIAlpbnQJCQludW1ma3MsCiAJCQkJbnVtcGtzLApAQCAtOTY5 NywxNSArOTY5OCwxOSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCQkJIGZr Y29uc3RyYWludC0+ZmtfYXR0cnMsCiAJCQkJCQkJCQkgZmthdHRudW0sIGZrdHlwb2lkKTsK IAl3aXRoX3BlcmlvZCA9IGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QgfHwgZmtjb25z dHJhaW50LT5wa193aXRoX3BlcmlvZDsKLQlpZiAod2l0aF9wZXJpb2QgJiYgIWZrY29uc3Ry YWludC0+Zmtfd2l0aF9wZXJpb2QpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAotCQkJCWVycm1zZygiZm9yZWlnbiBrZXkg dXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJl bmNpbmcgdGFibGUiKSk7CisJaWYgKHdpdGhfcGVyaW9kKQorCXsKKwkJaWYgKCFma2NvbnN0 cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX0ZPUkVJR05fS0VZKSwKKwkJCQkJZXJybXNnKCJmb3JlaWdu IGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSBy ZWZlcmVuY2luZyB0YWJsZSIpKSk7CisJCWZrcGVyaW9kYXR0bnVtID0gZmthdHRudW1bbnVt ZmtzIC0gMV07CisJfQogCiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3JtQ29sdW1uTmFt ZUxpc3QoUmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29uc3RyYWlu dC0+ZmtfZGVsX3NldF9jb2xzLAogCQkJCQkJCQkJCQkgIGZrZGVsc2V0Y29scywgTlVMTCk7 Ci0JdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhudW1ma3MsIGZrYXR0bnVtLAorCXZh bGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMobnVtZmtzLCBma2F0dG51bSwgZmtwZXJpb2Rh dHRudW0sCiAJCQkJCQkJCSBudW1ma2RlbHNldGNvbHMsIGZrZGVsc2V0Y29scywKIAkJCQkJ CQkJIGZrY29uc3RyYWludC0+ZmtfZGVsX3NldF9jb2xzKTsKIApAQCAtOTc4NywyOCArOTc5 Miw2IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCX0KIAl9CiAKLQkvKgotCSAqIFNv bWUgYWN0aW9ucyBhcmUgY3VycmVudGx5IHVuc3VwcG9ydGVkIGZvciBmb3JlaWduIGtleXMg dXNpbmcgUEVSSU9ELgotCSAqLwotCWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9k KQotCXsKLQkJaWYgKGZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNUUl9B Q1RJT05fQ0FTQ0FERSB8fAotCQkJZmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uID09IEZL Q09OU1RSX0FDVElPTl9TRVROVUxMIHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rp b24gPT0gRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQpCi0JCQllcmVwb3J0KEVSUk9SLAot CQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJZXJy bXNnKCJ1bnN1cHBvcnRlZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg dXNpbmcgUEVSSU9EIiwKLQkJCQkJCSAgICJPTiBVUERBVEUiKSk7Ci0KLQkJaWYgKGZrY29u c3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAot CQkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRO VUxMIHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNU SU9OX1NFVERFRkFVTFQpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJZXJybXNnKCJ1bnN1cHBvcnRlZCAl cyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9EIiwKLQkJ CQkJCSAgICJPTiBERUxFVEUiKSk7Ci0JfQotCiAJLyoKIAkgKiBMb29rIHVwIHRoZSBlcXVh bGl0eSBvcGVyYXRvcnMgdG8gdXNlIGluIHRoZSBjb25zdHJhaW50LgogCSAqCkBAIC0xMDA2 Niw4ICsxMDA0OSwxMiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCXsKIAkJT2lkCQkJ cGVyaW9kb3Blcm9pZDsKIAkJT2lkCQkJYWdnZWRwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlp bnRlcnNlY3Rwcm9jb2lkOwogCi0JCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3Nlc1tudW1w a3MgLSAxXSwgJnBlcmlvZG9wZXJvaWQsICZhZ2dlZHBlcmlvZG9wZXJvaWQpOworCQlGaW5k RktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3Nlc1tudW1wa3MgLSAxXSwKKwkJCQkJCQkJ ICAmcGVyaW9kb3Blcm9pZCwKKwkJCQkJCQkJICAmYWdnZWRwZXJpb2RvcGVyb2lkLAorCQkJ CQkJCQkgICZpbnRlcnNlY3Rwcm9jb2lkKTsKIAl9CiAKIAkvKgpAQCAtMTAxMjEsNiArMTAx MDgsNyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogICovCiB2b2lkCiB2YWxpZGF0ZUZr T25EZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMs CisJCQkJCQkJIGNvbnN0IGludDE2IGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCSBpbnQgbnVt ZmtzZXRjb2xzLCBjb25zdCBpbnQxNiAqZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkgTGlz dCAqZmtzZXRjb2xzKQogewpAQCAtMTAxMzEsNiArMTAxMTksMTMgQEAgdmFsaWRhdGVGa09u RGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAog CiAJCWZvciAoaW50IGogPSAwOyBqIDwgbnVtZmtzOyBqKyspCiAJCXsKKwkJCWlmIChma3Bl cmlvZGF0dG51bSA9PSBzZXRjb2xfYXR0bnVtKQorCQkJeworCQkJCWNoYXIJICAgKmNvbCA9 IHN0clZhbChsaXN0X250aChma3NldGNvbHMsIGkpKTsKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJ CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQg YWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QiLCBjb2wpKSk7CisJCQl9CiAJCQlpZiAoZmthdHRu dW1zW2pdID09IHNldGNvbF9hdHRudW0pCiAJCQl7CiAJCQkJc2VlbiA9IHRydWU7CkBAIC0x MjQ1OSwxNyArMTI0NTQsMjYgQEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJl bGF0aW9uIHJlbCwgT2lkIHJlZlJlbE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAkJY2Fz ZSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERToKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUg PSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtf dHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRlX2Rl bCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJp Z2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2RfY2FzY2Fk ZV9kZWwiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1 bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfZGVsIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NP TlNUUl9BQ1RJT05fU0VUTlVMTDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxz ZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dl ci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX2RlbCIpOwor CQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwi KTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1l KCJSSV9GS2V5X3NldG51bGxfZGVsIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9B Q1RJT05fU0VUREVGQVVMVDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsK IAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRkZWZhdWx0X2RlbCIpOwor CQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9k ZWwiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNO YW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfZGVsIik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRksgYWN0aW9uIHR5cGU6ICVkIiwKQEAg LTEyNTIwLDE3ICsxMjUyNCwyNiBAQCBjcmVhdGVGb3JlaWduS2V5QWN0aW9uVHJpZ2dlcnMo UmVsYXRpb24gcmVsLCBPaWQgcmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0cgogCQlj YXNlIEZLQ09OU1RSX0FDVElPTl9DQVNDQURFOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJs ZSA9IGZhbHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlm a190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVf dXBkIik7CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190 cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9jYXNj YWRlX3VwZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV91cGQiKTsKIAkJCWJyZWFrOwogCQljYXNlIEZL Q09OU1RSX0FDVElPTl9TRVROVUxMOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZh bHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmln Z2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxfdXBkIik7 CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3Vw ZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05h bWUoIlJJX0ZLZXlfc2V0bnVsbF91cGQiKTsKIAkJCWJyZWFrOwogCQljYXNlIEZLQ09OU1RS X0FDVElPTl9TRVRERUZBVUxUOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZhbHNl OwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfdXBkIik7 CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0 X3VwZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF91cGQiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBGSyBhY3Rpb24gdHlwZTogJWQiLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCBjYmZiNTBmMTI4Ny4uZjA1 YTY1ZThlZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vy cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBAIC04MCw2 ICs4MCwxMiBAQAogI2RlZmluZSBSSV9QTEFOX1NFVE5VTExfT05VUERBVEUJCTcKICNkZWZp bmUgUklfUExBTl9TRVRERUZBVUxUX09OREVMRVRFCQk4CiAjZGVmaW5lIFJJX1BMQU5fU0VU REVGQVVMVF9PTlVQREFURQkJOQorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09O REVMRVRFCQkxMAorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09OVVBEQVRFCQkx MQorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OVVBEQVRFCQkxMgorI2RlZmlu ZSBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OREVMRVRFCQkxMworI2RlZmluZSBSSV9QTEFO X1BFUklPRF9TRVRERUZBVUxUX09OVVBEQVRFCTE0CisjZGVmaW5lIFJJX1BMQU5fUEVSSU9E X1NFVERFRkFVTFRfT05ERUxFVEUJMTUKIAogI2RlZmluZSBNQVhfUVVPVEVEX05BTUVfTEVO ICAoTkFNRURBVEFMRU4qMiszKQogI2RlZmluZSBNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTiAg KE1BWF9RVU9URURfTkFNRV9MRU4qMikKQEAgLTEyOCw3ICsxMzQsOCBAQCB0eXBlZGVmIHN0 cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCU9pZAkJCXBwX2VxX29wcnNbUklfTUFYX05VTUtF WVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKFBLID0gUEspICovCiAJT2lkCQkJZmZfZXFf b3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykg Ki8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCi0JT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAvKiBm a2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KKwlPaWQJCQlhZ2dlZF9wZXJpb2RfY29u dGFpbmVkX2J5X29wZXI7CS8qIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRyKSAqLworCU9p ZAkJCXBlcmlvZF9pbnRlcnNlY3RfcHJvYzsJLyogYW55cmFuZ2UgKiBhbnlyYW5nZSAob3Ig bXVsdGlyYW5nZSkgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxp c3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJhaW50SW5mbzsKIApAQCAtMTky LDYgKzE5OSw3IEBAIHN0YXRpYyBib29sIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBr X3JlbCwgUmVsYXRpb24gZmtfcmVsLAogCQkJCQkJCSAgY29uc3QgUklfQ29uc3RyYWludElu Zm8gKnJpaW5mbyk7CiBzdGF0aWMgRGF0dW0gcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRy aWdkYXRhLCBib29sIGlzX25vX2FjdGlvbik7CiBzdGF0aWMgRGF0dW0gcmlfc2V0KFRyaWdn ZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCk7CitzdGF0 aWMgRGF0dW0gdHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251 bGwsIGludCB0Z2tpbmQpOwogc3RhdGljIHZvaWQgcXVvdGVPbmVOYW1lKGNoYXIgKmJ1ZmZl ciwgY29uc3QgY2hhciAqbmFtZSk7CiBzdGF0aWMgdm9pZCBxdW90ZVJlbGF0aW9uTmFtZShj aGFyICpidWZmZXIsIFJlbGF0aW9uIHJlbCk7CiBzdGF0aWMgdm9pZCByaV9HZW5lcmF0ZVF1 YWwoU3RyaW5nSW5mbyBidWYsCkBAIC0yMzksNyArMjQ3LDcgQEAgc3RhdGljIHZvaWQgcmlf UmVwb3J0VmlvbGF0aW9uKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJ CQkJICAgaW50IHF1ZXJ5bm8sIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVy bigpOwogc3RhdGljIGJvb2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlv bk9mU3RhdGUgKnRnX3RlbXBvcmFsLAogCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludElu Zm8gKnJpaW5mbyk7Ci1zdGF0aWMgRGF0dW0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNv bnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKK3N0YXRpYyBEYXR1bSByZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQb3J0aW9uT2ZT dGF0ZSAqdGdfdGVtcG9yYWwsCiAJCQkJCQkJCQkgIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZv ICpyaWluZm8sCiAJCQkJCQkJCQkgIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KTsKIApAQCAt ODE3LDcgKzgyNSw3IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9v bCBpc19ub19hY3Rpb24pCiAJaWYgKHRyaWdkYXRhLT50Z190ZW1wb3JhbCkKIAl7CiAJCXRh cmdldFJhbmdlUGFyYW0gPSByaWluZm8tPm5rZXlzIC0gMTsKLQkJdGFyZ2V0UmFuZ2UgPSBy ZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UodHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8s IG9sZHNsb3QpOworCQl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShw a19yZWwsIHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90KTsKIAl9CiAK IAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCkBAIC0xMzE2LDYgKzEz MjQsNTM1IEBAIHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251 bGwsIGludCB0Z2tpbmQpCiB9CiAKIAorLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVf ZGVsIC0KKyAqCisgKiBDYXNjYWRlZCBkZWxldGUgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyBh dCBkZWxldGUgZXZlbnQgb24gdGVtcG9yYWwgUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9G S2V5X3BlcmlvZF9jYXNjYWRlX2RlbChQR19GVU5DVElPTl9BUkdTKQoreworCVRyaWdnZXJE YXRhICp0cmlnZGF0YSA9IChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQ7CisJY29u c3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJUmVs YXRpb24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5S2V5 IHFrZXk7CisJU1BJUGxhblB0ciAgcXBsYW47CisJRGF0dW0gdGFyZ2V0UmFuZ2U7CisKKwkv KiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxpZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0 IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNrVHJpZ2dlcihmY2luZm8sICJSSV9GS2V5 X3BlcmlvZF9jYXNjYWRlX2RlbCIsIFJJX1RSSUdUWVBFX0RFTEVURSk7CisKKwlyaWluZm8g PSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAorCQkJCQkJ CQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsKKworCS8qCisJICogR2V0IHRoZSBy ZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0aGUgRksgYW5kIFBLIHRhYmxlcyBhbmQgdGhlIG9s ZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVuZWQgaW4gUm93RXhjbHVzaXZlTG9j ayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAqIGV2ZW50dWFsIERFTEVURSB3aWxs IGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5mby0+ZmtfcmVs aWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRyaWdkYXRhLT50Z19yZWxhdGlv bjsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdzbG90OworCisJLyoKKwkgKiBEb24n dCBkZWxldGUgdGhhbiBtb3JlIHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24sCisJICogdHJpbW1l ZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBpZiBuZWNlc3NhcnkuCisJICovCisJ dGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UocGtfcmVsLCB0cmlnZGF0 YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5lY3Qo KSAhPSBTUElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxl ZCIpOworCisJLyogRmV0Y2ggb3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSBjYXNj YWRlZCBkZWxldGUgKi8KKwlyaV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIFJJX1BM QU5fUEVSSU9EX0NBU0NBREVfT05ERUxFVEUpOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNo UHJlcGFyZWRQbGFuKCZxa2V5KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1 ZXJ5YnVmOworCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5dOwor CQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFyCQlwYXJhbW5h bWVbMTZdOworCQljb25zdCBjaGFyICpxdWVyeXNlcDsKKwkJT2lkCQkJcXVlcnlvaWRzW1JJ X01BWF9OVU1LRVlTICsgMV07CisJCWNvbnN0IGNoYXIgKmZrX29ubHk7CisKKwkJLyogLS0t LS0tLS0tLQorCQkgKiBUaGUgcXVlcnkgc3RyaW5nIGJ1aWx0IGlzCisJCSAqICBERUxFVEUg RlJPTSBbT05MWV0gPGZrdGFibGU+CisJCSAqICBGT1IgUE9SVElPTiBPRiAkZmthdHQgKCR7 bisxfSkKKwkJICogIFdIRVJFICQxID0gZmthdHQxIFtBTkQgLi4uXQorCQkgKiBUaGUgdHlw ZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0aGUKKwkJICogY29y cmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLgorCQkgKiAtLS0tLS0tLS0tCisJCSAqLworCQlp bml0U3RyaW5nSW5mbygmcXVlcnlidWYpOworCQlma19vbmx5ID0gZmtfcmVsLT5yZF9yZWwt PnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkiIiA6ICJPTkxZ ICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsKKwkJcXVvdGVP bmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1ty aWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1Ziwg IkRFTEVURSBGUk9NICVzJXMgRk9SIFBPUlRJT04gT0YgJXMgKCQlZCkiLAorCQkJCQkJIGZr X29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwgcmlpbmZvLT5ua2V5cyArIDEpOworCQlxdWVy eXNlcCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsg aSsrKQorCQl7CisJCQlPaWQgcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+ cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQgcGtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKHBrX3Jl bCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZCBma190eXBlID0gUklBdHRUeXBl KGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKwkJCU9pZCBma19jb2xsID0gUklB dHRDb2xsYXRpb24oZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCisJCQlxdW90 ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZr X2F0dG51bXNbaV0pKTsKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgaSArIDEpOwor CQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1ZiwgcXVlcnlzZXAsCisJCQkJCQkJcGFyYW1u YW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+cGZfZXFfb3Byc1tpXSwKKwkJCQkJCQlh dHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xsICE9IGZrX2NvbGwgJiYgIWdldF9j b2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQorCQkJCXJpX0dlbmVyYXRlUXVh bENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVlcnlzZXAgPSAiQU5EIjsK KwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCX0KKworCQkvKiBTZXQgYSBwYXJhbSBm b3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9pZHNbcmlpbmZvLT5ua2V5 c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5 cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCisJCXFwbGFu ID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMgKyAxLCBxdWVy eW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJfQorCisJLyoKKwkg KiBXZSBoYXZlIGEgcGxhbiBub3cuIEJ1aWxkIHVwIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUg a2V5IHZhbHVlcyBpbiB0aGUKKwkgKiBkZWxldGVkIFBLIHR1cGxlIGFuZCBkZWxldGUgdGhl IHJlZmVyZW5jaW5nIHJvd3MKKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtl eSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBOVUxMLAor CQkJCQlyaWluZm8tPm5rZXlzLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJICAgLyogbXVz dCBkZXRlY3QgbmV3IHJvd3MgKi8KKwkJCQkJU1BJX09LX0RFTEVURSk7CisKKwlpZiAoU1BJ X2ZpbmlzaCgpICE9IFNQSV9PS19GSU5JU0gpCisJCWVsb2coRVJST1IsICJTUElfZmluaXNo IGZhaWxlZCIpOworCisJdGFibGVfY2xvc2UoZmtfcmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsK KworCXJldHVybiBQb2ludGVyR2V0RGF0dW0oTlVMTCk7Cit9CisKKy8qCisgKiBSSV9GS2V5 X3BlcmlvZF9jYXNjYWRlX3VwZCAtCisgKgorICogQ2FzY2FkZWQgdXBkYXRlIGZvcmVpZ24g a2V5IHJlZmVyZW5jZXMgYXQgdXBkYXRlIGV2ZW50IG9uIHRlbXBvcmFsIFBLIHRhYmxlLgor ICovCitEYXR1bQorUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEgPSAoVHJpZ2dlckRhdGEgKikgZmNpbmZv LT5jb250ZXh0OworCWNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87CisJUmVsYXRp b24JZmtfcmVsOworCVJlbGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAqb2xkc2xv dDsKKwlUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5OworCVNQ SVBsYW5QdHIgIHFwbGFuOworCURhdHVtIHRhcmdldFJhbmdlOworCisJLyogQ2hlY2sgdGhh dCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBl dmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2RfY2Fz Y2FkZV91cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJcmlpbmZvID0gcmlfRmV0Y2hD b25zdHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJCQkJCXRyaWdkYXRh LT50Z19yZWxhdGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUgcmVsYXRpb24gZGVz Y3JpcHRvcnMgb2YgdGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBuZXcgYW5kCisJICog b2xkIHR1cGxlLgorCSAqCisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVM b2NrIG1vZGUgc2luY2UgdGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgVVBEQVRFIHdp bGwgZ2V0IG9uIGl0LgorCSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19y ZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0 aW9uOworCW5ld3Nsb3QgPSB0cmlnZGF0YS0+dGdfbmV3c2xvdDsKKwlvbGRzbG90ID0gdHJp Z2RhdGEtPnRnX3RyaWdzbG90OworCisJLyoKKwkgKiBEb24ndCBkZWxldGUgdGhhbiBtb3Jl IHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24sCisJICogdHJpbW1lZCBieSBhbiBvcmlnaW5hbCBG T1IgUE9SVElPTiBPRiBpZiBuZWNlc3NhcnkuCisJICovCisJdGFyZ2V0UmFuZ2UgPSByZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UocGtfcmVsLCB0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJp aW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5lY3QoKSAhPSBTUElfT0tfQ09OTkVD VCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxlZCIpOworCisJLyogRmV0Y2gg b3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSBjYXNjYWRlZCB1cGRhdGUgKi8KKwly aV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIFJJX1BMQU5fUEVSSU9EX0NBU0NBREVf T05VUERBVEUpOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5 KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQlTdHJpbmdJ bmZvRGF0YSBxdWFsYnVmOworCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFN RV9MRU5dOworCQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFy CQlwYXJhbW5hbWVbMTZdOworCQljb25zdCBjaGFyICpxdWVyeXNlcDsKKwkJY29uc3QgY2hh ciAqcXVhbHNlcDsKKwkJT2lkCQkgcXVlcnlvaWRzWzIgKiBSSV9NQVhfTlVNS0VZUyArIDFd OworCQljb25zdCBjaGFyICpma19vbmx5OworCisJCS8qIC0tLS0tLS0tLS0KKwkJICogVGhl IHF1ZXJ5IHN0cmluZyBidWlsdCBpcworCQkgKiAgVVBEQVRFIFtPTkxZXSA8Zmt0YWJsZT4K KwkJICoJCSAgRk9SIFBPUlRJT04gT0YgJGZrYXR0ICgkezJuKzF9KQorCQkgKgkJICBTRVQg ZmthdHQxID0gJDEsIFssIC4uLl0KKwkJICoJCSAgV0hFUkUgJG4gPSBma2F0dDEgW0FORCAu Li5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3Nl IG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5nIFBLIGF0dHJpYnV0ZXMuICBOb3RlIHRoYXQg d2UgYXJlIGFzc3VtaW5nCisJCSAqIHRoZXJlIGlzIGFuIGFzc2lnbm1lbnQgY2FzdCBmcm9t IHRoZSBQSyB0byB0aGUgRksgdHlwZTsKKwkJICogZWxzZSB0aGUgcGFyc2VyIHdpbGwgZmFp bC4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJaW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVm KTsKKwkJaW5pdFN0cmluZ0luZm8oJnF1YWxidWYpOworCQlma19vbmx5ID0gZmtfcmVsLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkiIiA6 ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsKKwkJ cXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0 bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQT1JUSU9OIE9GICVzICgkJWQpIFNFVCIsCisJCQkJ CQkgZmtfb25seSwgZmtyZWxuYW1lLCBhdHRuYW1lLCAyICogcmlpbmZvLT5ua2V5cyArIDEp OworCisJCXF1ZXJ5c2VwID0gIiI7CisJCXF1YWxzZXAgPSAiV0hFUkUiOworCQlmb3IgKGlu dCBpID0gMCwgaiA9IHJpaW5mby0+bmtleXM7IGkgPCByaWluZm8tPm5rZXlzOyBpKyssIGor KykKKwkJeworCQkJT2lkIHBrX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBr X2F0dG51bXNbaV0pOworCQkJT2lkIHBrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihwa19yZWws IHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfdHlwZSA9IFJJQXR0VHlwZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfY29sbCA9IFJJQXR0 Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVvdGVP bmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19h dHRudW1zW2ldKSk7CisJCQkvKgorCQkJICogRG9uJ3Qgc2V0IHRoZSB0ZW1wb3JhbCBjb2x1 bW4ocykuCisJCQkgKiBGT1IgUE9SVElPTiBPRiB3aWxsIHRha2UgY2FyZSBvZiB0aGF0Lgor CQkJICovCisJCQlpZiAoaSA8IHJpaW5mby0+bmtleXMgLSAxKQorCQkJCWFwcGVuZFN0cmlu Z0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkJCQkgIiVzICVzID0gJCVkIiwKKwkJCQkJCQkJIHF1 ZXJ5c2VwLCBhdHRuYW1lLCBpICsgMSk7CisKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVk IiwgaiArIDEpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWFsYnVmLCBxdWFsc2VwLAorCQkJ CQkJCXBhcmFtbmFtZSwgcGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0s CisJCQkJCQkJYXR0bmFtZSwgZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xs ICYmICFnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9H ZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1ZXJ5c2Vw ID0gIiwiOworCQkJcXVhbHNlcCA9ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlw ZTsKKwkJCXF1ZXJ5b2lkc1tqXSA9IHBrX3R5cGU7CisJCX0KKwkJYXBwZW5kQmluYXJ5U3Ry aW5nSW5mbygmcXVlcnlidWYsIHF1YWxidWYuZGF0YSwgcXVhbGJ1Zi5sZW4pOworCisJCS8q IFNldCBhIHBhcmFtIGZvciBGT1IgUE9SVElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lk c1syICogcmlpbmZvLT5ua2V5c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0 dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRo ZSBwbGFuICovCisJCXFwbGFuID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIDIgKiBy aWluZm8tPm5rZXlzICsgMSwgcXVlcnlvaWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBw a19yZWwpOworCX0KKworCS8qCisJICogV2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8g dXBkYXRlIHRoZSBleGlzdGluZyByZWZlcmVuY2VzLgorCSAqLworCXJpX1BlcmZvcm1DaGVj ayhyaWluZm8sICZxa2V5LCBxcGxhbiwKKwkJCQkJZmtfcmVsLCBwa19yZWwsCisJCQkJCW9s ZHNsb3QsIG5ld3Nsb3QsCisJCQkJCXJpaW5mby0+bmtleXMgKiAyLCB0YXJnZXRSYW5nZSwK KwkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19V UERBVEUpOworCisJaWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9n KEVSUk9SLCAiU1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOwor fQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwgLQorICoKKyAqIFNldCBm b3JlaWduIGtleSByZWZlcmVuY2VzIHRvIE5VTEwgdmFsdWVzIGF0IGRlbGV0ZSBldmVudCBv biBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsKFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJp Z2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1Ry aWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwiLCBSSV9UUklHVFlQ RV9ERUxFVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIFVQREFURSBjYXNlICovCisJcmV0 dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dCwgdHJ1ZSwgUklf VFJJR1RZUEVfREVMRVRFKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3NldG51bGxf dXBkIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBOVUxMIGF0IHVw ZGF0ZSBldmVudCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3Nl dG51bGxfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlz IGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8K KwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQi LCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIERFTEVURSBj YXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4 dCwgdHJ1ZSwgUklfVFJJR1RZUEVfVVBEQVRFKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVy aW9kX3NldGRlZmF1bHRfZGVsIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNl cyB0byBkZWZhdWx0cyBhdCBkZWxldGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVt CitSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbChQR19GVU5DVElPTl9BUkdTKQorewor CS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmln aHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZL ZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCS8q IFNoYXJlIGNvZGUgd2l0aCBVUERBVEUgY2FzZSAqLworCXJldHVybiB0cmlfc2V0KChUcmln Z2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIGZhbHNlLCBSSV9UUklHVFlQRV9ERUxFVEUp OworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQgLQorICoKKyAq IFNldCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIGRlZmF1bHRzIGF0IHVwZGF0ZSBldmVu dCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRf dXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFs aWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9D aGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQiLCBS SV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIERFTEVURSBjYXNl ICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dCwg ZmFsc2UsIFJJX1RSSUdUWVBFX1VQREFURSk7Cit9CisKKy8qCisgKiB0cmlfc2V0IC0KKyAq CisgKiBDb21tb24gY29kZSBmb3IgdGVtcG9yYWwgT04gREVMRVRFIFNFVCBOVUxMLCBPTiBE RUxFVEUgU0VUIERFRkFVTFQsIE9OCisgKiBVUERBVEUgU0VUIE5VTEwsIGFuZCBPTiBVUERB VEUgU0VUIERFRkFVTFQuCisgKi8KK3N0YXRpYyBEYXR1bQordHJpX3NldChUcmlnZ2VyRGF0 YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCit7CisJY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJUmVsYXRp b24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5S2V5IHFr ZXk7CisJU1BJUGxhblB0cglxcGxhbjsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2U7CisJaW50MzIJ CXF1ZXJ5bm87CisKKwlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRh LT50Z190cmlnZ2VyLAorCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsK KworCS8qCisJICogR2V0IHRoZSByZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0aGUgRksgYW5k IFBLIHRhYmxlcyBhbmQgdGhlIG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVu ZWQgaW4gUm93RXhjbHVzaXZlTG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAq IGV2ZW50dWFsIFVQREFURSB3aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJs ZV9vcGVuKHJpaW5mby0+ZmtfcmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9 IHRyaWdkYXRhLT50Z19yZWxhdGlvbjsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdz bG90OworCisJLyoKKwkgKiBEb24ndCBTRVQgTlVMTC9ERUZBVUxUIHRoYW4gbW9yZSB0aGFu IHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1tZWQgYnkgYW4gb3JpZ2luYWwgRk9SIFBP UlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRhcmdldFJhbmdlID0gcmVzdHJpY3Rf Y2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8s IG9sZHNsb3QpOworCisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJX09LX0NPTk5FQ1QpCisJ CWVsb2coRVJST1IsICJTUElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8qCisJICogRmV0Y2gg b3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSB0cmlnZ2VyLgorCSAqLworCXN3aXRj aCAodGdraW5kKQorCXsKKwkJY2FzZSBSSV9UUklHVFlQRV9VUERBVEU6CisJCQlxdWVyeW5v ID0gaXNfc2V0X251bGwKKwkJCQk/IFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05VUERBVEUK KwkJCQk6IFJJX1BMQU5fUEVSSU9EX1NFVERFRkFVTFRfT05VUERBVEU7CisJCQlicmVhazsK KwkJY2FzZSBSSV9UUklHVFlQRV9ERUxFVEU6CisJCQlxdWVyeW5vID0gaXNfc2V0X251bGwK KwkJCQk/IFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05ERUxFVEUKKwkJCQk6IFJJX1BMQU5f UEVSSU9EX1NFVERFRkFVTFRfT05ERUxFVEU7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJ CWVsb2coRVJST1IsICJpbnZhbGlkIHRna2luZCBwYXNzZWQgdG8gcmlfc2V0Iik7CisJfQor CisJcmlfQnVpbGRRdWVyeUtleSgmcWtleSwgcmlpbmZvLCBxdWVyeW5vKTsKKworCWlmICgo cXBsYW4gPSByaV9GZXRjaFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwpCisJeworCQlT dHJpbmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJU3RyaW5nSW5mb0RhdGEgcXVhbGJ1ZjsKKwkJ Y2hhcgkJZmtyZWxuYW1lW01BWF9RVU9URURfUkVMX05BTUVfTEVOXTsKKwkJY2hhcgkJYXR0 bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOXTsKKwkJY2hhcgkJcGFyYW1uYW1lWzE2XTsKKwkJ Y29uc3QgY2hhciAqcXVlcnlzZXA7CisJCWNvbnN0IGNoYXIgKnF1YWxzZXA7CisJCU9pZAkJ CXF1ZXJ5b2lkc1tSSV9NQVhfTlVNS0VZUyArIDFdOyAvKiArMSBmb3IgRk9SIFBPUlRJT04g T0YgKi8KKwkJY29uc3QgY2hhciAqZmtfb25seTsKKwkJaW50CQkJbnVtX2NvbHNfdG9fc2V0 OworCQljb25zdCBpbnQxNiAqc2V0X2NvbHM7CisKKwkJc3dpdGNoICh0Z2tpbmQpCisJCXsK KwkJCWNhc2UgUklfVFJJR1RZUEVfVVBEQVRFOgorCQkJCS8qIC0xIHNvIHdlIGxldCBGT1Ig UE9SVElPTiBPRiBzZXQgdGhlIHJhbmdlLiAqLworCQkJCW51bV9jb2xzX3RvX3NldCA9IHJp aW5mby0+bmtleXMgLSAxOworCQkJCXNldF9jb2xzID0gcmlpbmZvLT5ma19hdHRudW1zOwor CQkJCWJyZWFrOworCQkJY2FzZSBSSV9UUklHVFlQRV9ERUxFVEU6CisJCQkJLyoKKwkJCQkg KiBJZiBjb25mZGVsc2V0Y29scyBhcmUgcHJlc2VudCwgdGhlbiB3ZSBvbmx5IHVwZGF0ZSB0 aGUKKwkJCQkgKiBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGF0IGFycmF5LCBvdGhlcndpc2Ug d2UgdXBkYXRlIGFsbAorCQkJCSAqIHRoZSByZWZlcmVuY2luZyBjb2x1bW5zLgorCQkJCSAq LworCQkJCWlmIChyaWluZm8tPm5kZWxzZXRjb2xzICE9IDApCisJCQkJeworCQkJCQludW1f Y29sc190b19zZXQgPSByaWluZm8tPm5kZWxzZXRjb2xzOworCQkJCQlzZXRfY29scyA9IHJp aW5mby0+Y29uZmRlbHNldGNvbHM7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8q IC0xIHNvIHdlIGxldCBGT1IgUE9SVElPTiBPRiBzZXQgdGhlIHJhbmdlLiAqLworCQkJCQlu dW1fY29sc190b19zZXQgPSByaWluZm8tPm5rZXlzIC0gMTsKKwkJCQkJc2V0X2NvbHMgPSBy aWluZm8tPmZrX2F0dG51bXM7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJ CQllbG9nKEVSUk9SLCAiaW52YWxpZCB0Z2tpbmQgcGFzc2VkIHRvIHJpX3NldCIpOworCQl9 CisKKwkJLyogLS0tLS0tLS0tLQorCQkgKiBUaGUgcXVlcnkgc3RyaW5nIGJ1aWx0IGlzCisJ CSAqCVVQREFURSBbT05MWV0gPGZrdGFibGU+CisJCSAqCQkJRk9SIFBPUlRJT04gT0YgJGZr YXR0ICgke24rMX0pCisJCSAqCQkJU0VUIGZrYXR0MSA9IHtOVUxMfERFRkFVTFR9IFssIC4u Ll0KKwkJICoJCQlXSEVSRSAkMSA9IGZrYXR0MSBbQU5EIC4uLl0KKwkJICogVGhlIHR5cGUg aWQncyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCisJCSAqIGNvcnJl c3BvbmRpbmcgUEsgYXR0cmlidXRlcy4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJaW5p dFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKKwkJaW5pdFN0cmluZ0luZm8oJnF1YWxidWYpOwor CQlma19vbmx5ID0gZmtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJ T05FRF9UQUJMRSA/CisJCQkiIiA6ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZr cmVsbmFtZSwgZmtfcmVsKTsKKwkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlh cHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQT1JUSU9OIE9G ICVzICgkJWQpIFNFVCIsCisJCQkJCQkgZmtfb25seSwgZmtyZWxuYW1lLCBhdHRuYW1lLCBy aWluZm8tPm5rZXlzICsgMSk7CisKKwkJLyoKKwkJICogQWRkIGFzc2lnbm1lbnQgY2xhdXNl cworCQkgKi8KKwkJcXVlcnlzZXAgPSAiIjsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1f Y29sc190b19zZXQ7IGkrKykKKwkJeworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0 TmFtZShma19yZWwsIHNldF9jb2xzW2ldKSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwKKwkJCQkJCQkgIiVzICVzID0gJXMiLAorCQkJCQkJCSBxdWVyeXNlcCwgYXR0bmFt ZSwKKwkJCQkJCQkgaXNfc2V0X251bGwgPyAiTlVMTCIgOiAiREVGQVVMVCIpOworCQkJcXVl cnlzZXAgPSAiLCI7CisJCX0KKworCQkvKgorCQkgKiBBZGQgV0hFUkUgY2xhdXNlCisJCSAq LworCQlxdWFsc2VwID0gIldIRVJFIjsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8t Pm5rZXlzOyBpKyspCisJCXsKKwkJCU9pZAlwa190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwg cmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZAlma190eXBlID0gUklBdHRUeXBlKGZr X3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKwkJCU9pZAlwa19jb2xsID0gUklBdHRD b2xsYXRpb24ocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkCWZrX2Nv bGwgPSBSSUF0dENvbGxhdGlvbihma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisK KwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLAorCQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJp aW5mby0+ZmtfYXR0bnVtc1tpXSkpOworCisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIs IGkgKyAxKTsKKwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsIHF1YWxzZXAsCisJCQkJ CQkJcGFyYW1uYW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+cGZfZXFfb3Byc1tpXSwK KwkJCQkJCQlhdHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xsICE9IGZrX2NvbGwg JiYgIWdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQorCQkJCXJpX0dl bmVyYXRlUXVhbENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVhbHNlcCA9 ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKKwkJfQorCisJCS8qIFNldCBh IHBhcmFtIGZvciBGT1IgUE9SVElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lkc1tyaWlu Zm8tPm5rZXlzXSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWlu Zm8tPm5rZXlzIC0gMV0pOworCisJCS8qIFByZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8K KwkJcXBsYW4gPSByaV9QbGFuQ2hlY2socXVlcnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cyAr IDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFrZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9CisK KwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIHVwZGF0ZSB0aGUgZXhp c3RpbmcgcmVmZXJlbmNlcy4KKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtl eSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBOVUxMLAor CQkJCQlyaWluZm8tPm5rZXlzLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJCS8qIG11c3Qg ZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19VUERBVEUpOworCisJaWYgKFNQSV9m aW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAiU1BJX2ZpbmlzaCBm YWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwlpZiAoaXNfc2V0X251bGwpCisJCXJldHVybiBQb2ludGVyR2V0RGF0dW0oTlVMTCk7CisJ ZWxzZQorCXsKKwkJLyoKKwkJICogSWYgd2UganVzdCBkZWxldGVkIG9yIHVwZGF0ZWQgdGhl IFBLIHJvdyB3aG9zZSBrZXkgd2FzIGVxdWFsIHRvIHRoZQorCQkgKiBGSyBjb2x1bW5zJyBk ZWZhdWx0IHZhbHVlcywgYW5kIGEgcmVmZXJlbmNpbmcgcm93IGV4aXN0cyBpbiB0aGUgRksK KwkJICogdGFibGUsIHdlIHdvdWxkIGhhdmUgdXBkYXRlZCB0aGF0IHJvdyB0byB0aGUgc2Ft ZSB2YWx1ZXMgaXQgYWxyZWFkeQorCQkgKiBoYWQgLS0tIGFuZCBSSV9GS2V5X2ZrX3VwZF9j aGVja19yZXF1aXJlZCB3b3VsZCBoZW5jZSBiZWxpZXZlIG5vCisJCSAqIGNoZWNrIGlzIG5l Y2Vzc2FyeS4gIFNvIHdlIG5lZWQgdG8gZG8gYW5vdGhlciBsb29rdXAgbm93IGFuZCBpbgor CQkgKiBjYXNlIGEgcmVmZXJlbmNlIHN0aWxsIGV4aXN0cywgYWJvcnQgdGhlIG9wZXJhdGlv bi4gIFRoYXQgaXMKKwkJICogYWxyZWFkeSBpbXBsZW1lbnRlZCBpbiB0aGUgTk8gQUNUSU9O IHRyaWdnZXIsIHNvIGp1c3QgcnVuIGl0LiAoVGhpcworCQkgKiByZWNoZWNrIGlzIG9ubHkg bmVlZGVkIGluIHRoZSBTRVQgREVGQVVMVCBjYXNlLCBzaW5jZSBDQVNDQURFIHdvdWxkCisJ CSAqIHJlbW92ZSBzdWNoIHJvd3MgaW4gY2FzZSBvZiBhIERFTEVURSBvcGVyYXRpb24gb3Ig d291bGQgY2hhbmdlIHRoZQorCQkgKiBGSyBrZXkgdmFsdWVzIGluIGNhc2Ugb2YgYW4gVVBE QVRFLCB3aGlsZSBTRVQgTlVMTCBpcyBjZXJ0YWluIHRvCisJCSAqIHJlc3VsdCBpbiByb3dz IHRoYXQgc2F0aXNmeSB0aGUgRksgY29uc3RyYWludC4pCisJCSAqLworCQlyZXR1cm4gcmlf cmVzdHJpY3QodHJpZ2RhdGEsIHRydWUpOworCX0KK30KKwogLyoKICAqIFJJX0ZLZXlfcGtf dXBkX2NoZWNrX3JlcXVpcmVkIC0KICAqCkBAIC0yMjg4LDkgKzI4MjUsMTAgQEAgcmlfTG9h ZENvbnN0cmFpbnRJbmZvKE9pZCBjb25zdHJhaW50T2lkKQogCXsKIAkJT2lkCQkJb3BjbGFz cyA9IGdldF9pbmRleF9jb2x1bW5fb3BjbGFzcyhjb25Gb3JtLT5jb25pbmRpZCwgcmlpbmZv LT5ua2V5cyk7CiAKLQkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzcywKLQkJCQkJCSAgJnJp aW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAotCQkJCQkJICAmcmlpbmZvLT5hZ2dl ZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIpOworCQlGaW5kRktQZXJpb2RPcGVyc0FuZFBy b2NzKG9wY2xhc3MsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9v cGVyLAorCQkJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3Bl ciwKKwkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X3Byb2MpOwogCX0KIAog CVJlbGVhc2VTeXNDYWNoZSh0dXApOwpAQCAtMjQ0NSw4ICsyOTgzLDggQEAgcmlfUGVyZm9y bUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJaW50CQkJc3BpX3Jl c3VsdDsKIAlPaWQJCQlzYXZlX3VzZXJpZDsKIAlpbnQJCQlzYXZlX3NlY19jb250ZXh0Owot CURhdHVtCQl2YWxzW1JJX01BWF9OVU1LRVlTICogMl07Ci0JY2hhcgkJbnVsbHNbUklfTUFY X05VTUtFWVMgKiAyXTsKKwlEYXR1bQkJdmFsc1tSSV9NQVhfTlVNS0VZUyAqIDIgKyAxXTsK KwljaGFyCQludWxsc1tSSV9NQVhfTlVNS0VZUyAqIDIgKyAxXTsKIAogCS8qCiAJICogVXNl IHRoZSBxdWVyeSB0eXBlIGNvZGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHF1ZXJ5IGlz IHJ1biBhZ2FpbnN0CkBAIC0yNDgxLDggKzMwMTksMTAgQEAgcmlfUGVyZm9ybUNoZWNrKGNv bnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCXJpX0V4dHJhY3RWYWx1ZXMoc291 cmNlX3JlbCwgbmV3c2xvdCwgcmlpbmZvLCBzb3VyY2VfaXNfcGssCiAJCQkJCQkgdmFscywg bnVsbHMpOwogCQlpZiAob2xkc2xvdCkKKwkJewogCQkJcmlfRXh0cmFjdFZhbHVlcyhzb3Vy Y2VfcmVsLCBvbGRzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJCQkJCQkgdmFscyAr IHJpaW5mby0+bmtleXMsIG51bGxzICsgcmlpbmZvLT5ua2V5cyk7CisJCX0KIAl9CiAJZWxz ZQogCXsKQEAgLTMxNjIsNiArMzcwMiwxMiBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShPaWQg dGdmb2lkKQogCQljYXNlIEZfUklfRktFWV9TRVRERUZBVUxUX1VQRDoKIAkJY2FzZSBGX1JJ X0ZLRVlfTk9BQ1RJT05fREVMOgogCQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9VUEQ6CisJ CWNhc2UgRl9SSV9GS0VZX1BFUklPRF9DQVNDQURFX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlf UEVSSU9EX0NBU0NBREVfVVBEOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUTlVMTF9E RUw6CisJCWNhc2UgRl9SSV9GS0VZX1BFUklPRF9TRVROVUxMX1VQRDoKKwkJY2FzZSBGX1JJ X0ZLRVlfUEVSSU9EX1NFVERFRkFVTFRfREVMOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0Rf U0VUREVGQVVMVF9VUEQ6CiAJCQlyZXR1cm4gUklfVFJJR0dFUl9QSzsKIAogCQljYXNlIEZf UklfRktFWV9DSEVDS19JTlM6CkBAIC0zMTkwLDMwICszNzM2LDMwIEBAIGZwb190YXJnZXRz X3BrX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3Qg UklfQ29uc3RyYWludEluCiAvKgogICogcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlIC0KICAq Ci0gKiBSZXR1cm5zIGEgRGF0dW0gb2YgUmFuZ2VUeXBlUCBob2xkaW5nIHRoZSBhcHByb3By aWF0ZSB0aW1lc3BhbgotICogdG8gdGFyZ2V0IGNoaWxkIHJlY29yZHMgd2hlbiB3ZSBDQVND QURFL1NFVCBOVUxML1NFVCBERUZBVUxULgorICogUmV0dXJucyBhIERhdHVtIGhvbGRpbmcg dGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCisgKiB0byB0YXJnZXQgcmVmZXJlbmNpbmcgcmVj b3JkcyB3aGVuIHdlIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQuCiAgKgotICogSW4g YSBub3JtYWwgVVBEQVRFL0RFTEVURSB0aGlzIHNob3VsZCBiZSB0aGUgcGFyZW50J3Mgb3du IHZhbGlkIHRpbWUsCisgKiBJbiBhIG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxk IGJlIHRoZSByZWZlcmVuY2VkIHJvdydzIG93biB2YWxpZCB0aW1lLAogICogYnV0IGlmIHRo ZXJlIHdhcyBhIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSwgdGhlbiB3ZSBzaG91bGQgdXNlIHRo YXQgdG8KLSAqIHRyaW0gZG93biB0aGUgcGFyZW50J3Mgc3BhbiBmdXJ0aGVyLgorICogdHJp bSBkb3duIHRoZSBzcGFuIGZ1cnRoZXIuCiAgKi8KIHN0YXRpYyBEYXR1bQotcmVzdHJpY3Rf Y2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwg Y29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3QpCityZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQ b3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm8sIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KQogewogCURhdHVtCXBrUmVjb3JkUmFu Z2U7CiAJYm9vbAlpc251bGw7CisJaW50CQlhdHRubyA9IHJpaW5mby0+cGtfYXR0bnVtc1ty aWluZm8tPm5rZXlzIC0gMV07CiAKLQlwa1JlY29yZFJhbmdlID0gc2xvdF9nZXRhdHRyKG9s ZHNsb3QsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0sICZpc251bGwp OworCXBrUmVjb3JkUmFuZ2UgPSBzbG90X2dldGF0dHIob2xkc2xvdCwgYXR0bm8sICZpc251 bGwpOwogCWlmIChpc251bGwpCiAJCWVsb2coRVJST1IsICJhcHBsaWNhdGlvbiB0aW1lIHNo b3VsZCBub3QgYmUgbnVsbCIpOwogCiAJaWYgKGZwb190YXJnZXRzX3BrX3JhbmdlKHRnX3Rl bXBvcmFsLCByaWluZm8pKQogCXsKLQkJUmFuZ2VUeXBlICpyMSA9IERhdHVtR2V0UmFuZ2VU eXBlUChwa1JlY29yZFJhbmdlKTsKLQkJUmFuZ2VUeXBlICpyMiA9IERhdHVtR2V0UmFuZ2VU eXBlUCh0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0UmFuZ2UpOwotCQlPaWQgcm5ndHlwaWQgPSBS YW5nZVR5cGVHZXRPaWQocjEpOwotCQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUgPSBsb29r dXBfdHlwZV9jYWNoZShybmd0eXBpZCwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwotCQlyZXR1 cm4gUmFuZ2VUeXBlUEdldERhdHVtKHJhbmdlX2ludGVyc2VjdF9pbnRlcm5hbCh0eXBjYWNo ZSwgcjEsIHIyKSk7CisJCWlmICghT2lkSXNWYWxpZChyaWluZm8tPnBlcmlvZF9pbnRlcnNl Y3RfcHJvYykpCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBpbnRlcnNlY3Qgc3VwcG9ydCBm dW5jdGlvbiIpOworCisJCXJldHVybiBPaWRGdW5jdGlvbkNhbGwyKHJpaW5mby0+cGVyaW9k X2ludGVyc2VjdF9wcm9jLCBwa1JlY29yZFJhbmdlLCB0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0 UmFuZ2UpOwogCX0KIAllbHNlCiAJCXJldHVybiBwa1JlY29yZFJhbmdlOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2NvbnN0cmFpbnQuaAppbmRleCAxMTUyMTdhNjE2Mi4uYTU2ZjY2NWUxNDkg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCkBAIC0yNzksOSArMjc5LDEw IEBAIGV4dGVybiB2b2lkIERlY29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0 dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJCQkJCQkgICBBdHRyTnVtYmVyICpjb25rZXksIEF0 dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJCQkJCQkgICBPaWQgKnBmX2VxX29wcnMsIE9pZCAq cHBfZXFfb3BycywgT2lkICpmZl9lcV9vcHJzLAogCQkJCQkJCQkJICAgaW50ICpudW1fZmtf ZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2NvbHMpOwotZXh0ZXJuIHZv aWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCi0JCQkJCQkJICBPaWQgKmNvbnRh aW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQp OworZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywK KwkJCQkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAq YWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqaW50ZXJzZWN0cHJv Y29pZCk7CiAKIGV4dGVybiBib29sIGNoZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJl bGlkLAogCQkJCQkJCQkJICBJbmRleCB2YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA3YjIxYWJhMmJmMS4uZGYzZWYwMzkwNzggMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMzk5Myw2ICszOTkzLDI4IEBACiAgIHBy b3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ ICdSSV9GS2V5X25vYWN0aW9uX3VwZCcgfSwKIAorIyBUZW1wb3JhbCByZWZlcmVudGlhbCBp bnRlZ3JpdHkgY29uc3RyYWludCB0cmlnZ2VycworeyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9 PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBDQVNDQURFJywK KyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwnLCBwcm92b2xhdGls ZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAn JywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbCcgfSwKK3sgb2lkID0+ ICc2MTI1JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBV UERBVEUgQ0FTQ0FERScsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVf dXBkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywKKyAg cHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2RfY2FzY2FkZV91 cGQnIH0sCit7IG9pZCA9PiAnNjEyOCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlh bCBpbnRlZ3JpdHkgT04gREVMRVRFIFNFVCBOVUxMJywKKyAgcHJvbmFtZSA9PiAnUklfRktl eV9wZXJpb2Rfc2V0bnVsbF9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUg PT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5 X3BlcmlvZF9zZXRudWxsX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI5JywgZGVzY3IgPT4gJ3Rl bXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgU0VUIE5VTEwnLAorICBw cm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCcsIHByb3ZvbGF0aWxlID0+ ICd2JywgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBw cm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkJyB9LAoreyBvaWQgPT4gJzYx MzAnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVU RSBTRVQgREVGQVVMVCcsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1 bHRfZGVsJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAorICBwcm9yZXR0eXBlID0+ICd0cmlnZ2Vy JywgcHJvYXJndHlwZXMgPT4gJycsCisgIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0 ZGVmYXVsdF9kZWwnIH0sCit7IG9pZCA9PiAnNjEzMScsIGRlc2NyID0+ICd0ZW1wb3JhbCBy ZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gVVBEQVRFIFNFVCBERUZBVUxUJywKKyAgcHJvbmFt ZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQnLCBwcm92b2xhdGlsZSA9PiAn dicsCisgIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKKyAg cHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCcgfSwKKwogeyBvaWQg PT4gJzE2NjYnLAogICBwcm9uYW1lID0+ICd2YXJiaXRlcScsIHByb2xlYWtwcm9vZiA9PiAn dCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBwcm9hcmd0eXBlcyA9PiAndmFyYml0IHZh cmJpdCcsIHByb3NyYyA9PiAnYml0ZXEnIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYnRyZWVfaW5kZXgub3V0CmluZGV4IDUxMDY0NmNiY2U3Li41Nzk2MzMzZjRmMCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKQEAgLTI1OCwx NCArMjU4LDE3IEBAIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1l IGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBieSAxOwogKDMgcm93cykKIAogc2VsZWN0 IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVk ZWwnIG9yZGVyIGJ5IDE7Ci0gICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgcHJvbmFtZSAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJJX0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9G S2V5X25vYWN0aW9uX2RlbAorIFJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsCisgUklfRktl eV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbAog IFJJX0ZLZXlfcmVzdHJpY3RfZGVsCiAgUklfRktleV9zZXRkZWZhdWx0X2RlbAogIFJJX0ZL ZXlfc2V0bnVsbF9kZWwKLSg1IHJvd3MpCisoOCByb3dzKQogCiBleHBsYWluIChjb3N0cyBv ZmYpCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAn MDAlZm9vJyBvcmRlciBieSAxOwpAQCAtMzA0LDE0ICszMDcsMTcgQEAgc2VsZWN0IHByb25h bWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9y ZGVyIGJ5IDE7CiAoNiByb3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hl cmUgcHJvbmFtZSBsaWtlIEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKLSAgICAgICAg cHJvbmFtZSAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICBwcm9uYW1lICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgUklfRktleV9jYXNjYWRlX2RlbAogIFJJX0ZLZXlfbm9hY3Rpb25fZGVsCisgUklfRktl eV9wZXJpb2RfY2FzY2FkZV9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAor IFJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsCiAgUklfRktleV9yZXN0cmljdF9kZWwKICBS SV9GS2V5X3NldGRlZmF1bHRfZGVsCiAgUklfRktleV9zZXRudWxsX2RlbAotKDUgcm93cykK Kyg4IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCBwcm9uYW1lIGZyb20g cGdfcHJvYyB3aGVyZSBwcm9uYW1lIGlsaWtlICcwMCVmb28nIG9yZGVyIGJ5IDE7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRl eCBlY2NhZjVjMGYwOS4uNzE2ODlmZGJiYzAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMiw3ICsyLDcgQEAKIC0tCiAt LSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBwZ19kdW1wIGV0YzoK IC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRlbXBvcmFsX2ZrX3JuZzJy bmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJfcm5nMnJuZy4KIFNF VCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAtLQogLS0gdGVzdCBpbnB1dCBwYXJzZXIKQEAg LTE4MDksNiArMTgwOSwyMSBAQCBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2 KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTYtMDItMDEs MjAxNi0wMy0wMSkKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikg fCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorIFs3LDgpIHwgWzIwMTgtMDEtMDIsMjAxOC0w MS0wMykKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1LDIw MTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAn MjAxNi0wMi0wMScpCkBAIC0xODc0LDYgKzE4ODksMjEgQEAgU0VUIGlkID0gJ1s3LDgpJwog V0hFUkUgaWQgPSAnWzUsNiknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywg J1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2 KSB8IFsyMDE2LTAyLTAxLDIwMTYtMDMtMDEpCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4 LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKyBbNyw4KSB8IFsy MDE4LTAxLTAyLDIwMTgtMDEtMDMpCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkg fCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUg c3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTkyMCwxMiArMTk1MCwyMiBAQCBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0x MCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIK IERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2 KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg WzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMs MjAxOC0wMi0wMSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAx LTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoK IERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwog REVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotLS0gY2xlYW4g dXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9 ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2 KScpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpA QCAtMTk2NCwzOSArMjAwNCwyMDYgQEAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7CiBFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0w MikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSBy b3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCi0tLSB0ZXN0IE9OIFVQREFURS9E RUxFVEUgb3B0aW9ucworLS0gcm5nMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9u cworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxM CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBz dWJzZXQpCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAg T04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7Ci1FUlJPUjogIHVuc3VwcG9y dGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcg UEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbNyw4KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBX SEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAx LTAxKSB8IFs5LDEwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBD QVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMiByb3dzKQor CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9h dCB8IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykK KworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygxIHJvdykKKworLS0KIC0tIHRlc3QgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CistLQorVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQg TlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWln biBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTAp JyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKSB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0w MSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcg V0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0w MS0wMSkgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkp CisoMiByb3dzKQorCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7 CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0x LC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50 X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmssCkBAIC0yMDA0LDcgKzIyMTEsNDMyIEBAIEFMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxFVEUg U0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwotRVJST1I6ICB1bnN1cHBvcnRl ZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBF UklPRAorLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCist LSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgp JyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCkn IFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19y bmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBD QVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxf cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzksMTApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3Ju ZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNykn KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIw MTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERF TEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRh dGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAg ICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAg ICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAg ICAgIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScp OworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIw MjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VU IE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2Zr Ml9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitF UlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBh Y3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVu dF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg ICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxf cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsy MDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQg KHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3Jh bF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGws IG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFst MSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEs LTFdJywgJ1s2LDcpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5 b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlk X2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQi IHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAor LS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAg IE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZB VUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0x LDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkg fCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBk YXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsy MDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKIC0tCiAtLSB0ZXN0IEZPUkVJR04gS0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMg bXVsdGlyYW5nZQogLS0KQEAgLTIzMzUsNiArMjk2NywyMiBAQCBVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0 cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKIERF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQor U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVz dCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wMiksWzIw MTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOwor VVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFJFU1RSSUNUCiAtLQpAQCAtMjM4NCw2ICszMDMyLDIyIEBAIFVQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRy bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0 IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAx OC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAi dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg Tk8gQUNUSU9OCiAtLQpAQCAtMjQxNiw2ICszMDgwLDE5IEBAIEJFR0lOOwogQ09NTUlUOwog RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitX SEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgt MDEtMDEsMjAxOC0wMS0wMiksWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0g dGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRl bGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBSRVNUUklDVAogLS0KQEAgLTI0NDQsNiArMzEyMSw2MzggQEAgQkVHSU47 CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9 KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmciLgogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFy dCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4 LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEp fSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0 aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CistLQorLS0gbWx0 cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg Q0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAor LS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVM TCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0 d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg REVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEt MDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpCisoMiByb3dzKQorCistLSBu b24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgp JyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAg ICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbNyw4KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAg ICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KQorKDIgcm93cykKKworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFs5LDEwKQorIFsyMDAsMjAx KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93cykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScs ICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxp ZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorKDEgcm93KQorCistLSBub24tRlBPIGRlbGV0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBhcmVu dF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyAgICBPTiBERUxFVEUgU0VU IE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VU IGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIw LTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAg ICAgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5 LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtb MjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAg ICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAg ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0w MS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgCisgWzEwMCwxMDEpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgCisgWzIwMCwyMDEp IHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIFNFVCBERUZB VUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0g J1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApCisg WzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCiso MiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisg ICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAg ICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAx LDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpICAgICAgfCBb Niw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkgICAgICB8IFs2LDcp CisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScp OworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxp ZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzksMTApICAgICB8 IFs4LDkpCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkp ICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAn WzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKygx IHJvdykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg CisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg e1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3 byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcp Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4 LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KX0gfCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEt MDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxM IHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7Cist LSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUg U0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04g REVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJu ZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAg IHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAg ICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IFs2LDcpCisoMiBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4 LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8 IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScs CisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9O IFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQx ID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFstMSww KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwge1sy MDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSww KSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4 LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5 LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEt MDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAg IHwgWy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEt MDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8 IFstMSwwKQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDAp CisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShu dWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0t IGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNF VCBERUZBVUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9O IERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIK KyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQg REVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEs MCkgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFs2LDcpCiso MiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAgICB8IFs4LDkp CisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0gRksgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCitD UkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15 ZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9mazNfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlkYXRl cmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmszX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmczIChpZCwgUEVSSU9EIHZhbGlkX2F0KSBPTiBERUxFVEUgQ0FTQ0FERQorKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmszX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbNSw2KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmczIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdb OCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrM19ybmcycm5nIFdIRVJFIGlkID0g J1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lk IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUs NikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBv cmFsX2ZrM19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBF IG15ZGF0ZXJhbmdlOwogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiBy YW5nZXMKIC0tCkBAIC0yNDUzLDggKzM3NjIsOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nICgKICAgbmFtZSB0ZXh0LAogICBDT05TVFJBSU5UIHRlbXBvcmFs X3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0cDEg cGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgn WzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMikn KTsKLUNSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSkn LCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1sz LDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCkn LCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQp Jyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcp JywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNykn LCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZB TFVFUwogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEn KSwgJ29uZScpLAogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAt MDMtMDEnKSwgJ29uZScpLApAQCAtMjQ2Nyw4ICszNzc2LDggQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAogICBDT05TVFJBSU5UIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JF QVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4 KScsICdbOSwxMCknLCAnWzExLDEyKScpOwotQ1JFQVRFIFRBQkxFIHRma3AyIHBhcnRpdGlv biBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdb MiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMykn KTsKK0NSRUFURSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNikn LCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywg J1sxNywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBU QUJMRSB0ZmtwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBGT1IgVkFMVUVTIElOICgnWzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAn WzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdb MTgsMTkpJywgJ1syMCwyMSknLCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CiAtLQogLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwogLS0KQEAgLTI1MTAsNyArMzgxOSw3 IEBAIFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtCiAtLSBzaG91bGQgZmFpbDoKIFVQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQogICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLUVSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9p ZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyIKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5MSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRh YmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KIC0tCiAtLSBwYXJ0aXRp b25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0yNTIyLDcgKzM4MzEs NyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZhaWw6CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19w YXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0yNTQ0LDcg KzM4NTMsNyBAQCBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZhaWw6 CiBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19w YXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0yNTU2LDM3 ICszODY1LDE2MiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxk IGZhaWw6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFi bGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIu CiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKICAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVND QURFOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWdu IGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzQsNSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNCw1 KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbNCw1KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzYsNykKKygzIHJvd3MpCisKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzQsNSknOwor ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNCw1KSB8IFsyMDE5 LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzcs OCkKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwx MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScp OworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScg V0hFUkUgaWQgPSAnWzE1LDE2KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAsMTEpJzsKKyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMCwxMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFsxNiwxNykK KyBbMTAsMTEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTUsMTYpCisoMiByb3dz KQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUK IC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzUsNiknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzgsOSkKKyBbNSw2KSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzUsNiknOworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJF IGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzExLDEyKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTEsMTIpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTcsMTgpCisoMSBy b3cpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQ REFURSBTRVQgTlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdb OSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzYsNykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs2LDcpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOSwxMCkKKyBbNiw3KSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzksMTApCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzYsNykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs2LDcpIHwgWzIwMTgtMDEt MDEsMjAxOS0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg CisoMyByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTIsMTMp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxOCwxOSknKTsK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdI RVJFIGlkID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTIsMTMpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTIsMTMp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTgsMTkpCisoMiByb3dzKQorCiAtLQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQorVFJV TkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNyw4KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTEsMTIpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxMSwxMikn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s3LDgpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzcsOCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs3LDgpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbMTEsMTIpCisgWzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFsxMSwxMikKKygzIHJvd3MpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CisgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs3LDgpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg CisgWzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syMCwyMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEzLDE0KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKyAgIGlkICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMywxNCkgfCBbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKSB8IAorIFsxMywxNCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsy MCwyMSkKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVw ZGF0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBk YXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTIsMTMp Jyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIEFM VEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAogICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKQEAgLTI1OTQs MTAgKzQwMjgsNzMgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZwogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Ci1FUlJPUjogIHVuc3VwcG9ydGVk IE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVS SU9ECitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEz LDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgInRma3AyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRf aWQsIHZhbGlkX2F0KT0oWy0xLDApLCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSkgaXMgbm90 IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzgs OSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOCw5KSB8 IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzEyLDEzKQorKDEgcm93KQorCitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9 ICdbMTIsMTMpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShb LTEsMCksIFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs4LDkpIHwgWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSkgfCBbMTIsMTMpCisoMSByb3cpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzIyLDIzKScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQg aWQgPSAnWzIzLDI0KScgV0hFUkUgaWQgPSAnWzIyLDIzKScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAi dGZrcDIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRf YXQpPShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKKyAg IGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNCwxNSkgfCBb MjAxOC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsyMiwyMykKKygxIHJvdykKKwogLS0KIC0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxNCwxNSknOworRVJST1I6ICBpbnNl cnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDog IEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFstMSwwKSwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1s5LDEwKSc7CisgICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzksMTApIHwgWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTQsMTUpCiso MSByb3cpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBp ZCA9ICdbMTQsMTUpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZr cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQp PShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0 YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IFsyMDE4LTAx LTAxLDIwMjEtMDEtMDEpIHwgWzE0LDE1KQorKDEgcm93KQorCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwy NSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1syNCwyNSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBXSEVSRSBpZCA9ICdbMjQsMjUpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFst MSwwKSwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxl ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOworICAgaWQgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE1LDE2KSB8IFsyMDE4LTAx LTAxLDIwMjEtMDEtMDEpIHwgWzI0LDI1KQorKDEgcm93KQorCiBEUk9QIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZzsKIC0tCkBAIC0yNzE3LDMyICs0MjE0LDE1MCBAQCBERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBz dGlsbCByZWZlcmVuYwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScp OwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwog ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu Z19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwotRVJST1I6ICB1bnN1cHBvcnRl ZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBF UklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFs0LDUpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAg ICAgICB8IFs3LDgpCisgWzQsNSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKygyIHJvd3MpCisKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzQsNSknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzQsNSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgWzcsOCkKKyBbNCw1KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNyw4KQorKDIgcm93cykKKworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdb MTUsMTYpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMCwxMSknOworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMCwxMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzE2LDE3KQor IFsxMCwxMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzE1LDE2KQorKDIgcm93 cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURF CiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8 ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs1LDYpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMSByb3cpCisK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdb OCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQg CistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CisgICBpZCAg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzExLDEyKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMTcsMTgpCisoMSByb3cpCisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOSwxMCknKTsKIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcKICAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmssCiAgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmsKICAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcKICAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04g VVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9u IGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBp ZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsK KyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs2LDcpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIFs2LDcp IHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs5LDEwKQorKDIgcm93cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJu ZyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb Niw3KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg ICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8 IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAK KyBbNiw3KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCAKKygyIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxOCwxOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzE4LDE5KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQg aWQgPSAnWzE5LDIwKScgV0hFUkUgaWQgPSAnWzE4LDE5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKKyAgIGlkICAgIHwgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTIsMTMpIHwge1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpfSB8IAorIFsxMiwxMykgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzE4LDE5KQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTEsMTIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3 LDgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbMTEsMTIpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbNyw4KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlk X2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbNyw4KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAg ICAgICAgICAgfCAKKyBbNyw4KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbMTEsMTIpCisoMiByb3dzKQorCitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzcsOCknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzcsOCkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisgWzcsOCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgCisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sx MywxNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1syMCwyMSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyBXSEVSRSBpZCA9ICdbMjAsMjEpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMywxNCknOworICAgaWQgICAgfCAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMywxNCkgfCB7WzIwMTgtMDEtMDEsMjAy MC0wMS0wMSl9IHwgCisgWzEzLDE0KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb MjAsMjEpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxU ICdbMCwxKScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nX2ZrLApAQCAtMjc1MCwxMCArNDM2NSw2NyBAQCBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCiAgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQg PSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOwor ICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBb OCw5KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbMTIsMTMpCisoMiByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbOCw5KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb OCw5KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAg ICAgfCBbMCwxKQorIFs4LDkpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFswLDEpCisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIz KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxNCwxNSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7 CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE0 LDE1KSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbMCwxKQorIFsxNCwxNSkgfCB7 WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzIyLDIzKQorKDIgcm93cykKKwogLS0KIC0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzksMTApJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTQsMTUpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAg aWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBb OSwxMCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzE0LDE1KQorKDIgcm93cykKKworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7 CisgICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbMCwx KQorIFs5LDEwKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCBbMCwxKQorKDIgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKyAgIGlkICAgIHwgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTUsMTYpIHwge1syMDE4LTAxLTAxLDIw MjAtMDEtMDEpfSB8IFswLDEpCisgWzE1LDE2KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbMjQsMjUpCisoMiByb3dzKQorCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZzsKIFJFU0VUIGRhdGVzdHlsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwKaW5kZXggYmFiMzQ2NTk3OTMuLmE4ZjQxMDIwZTBhIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMiw3ICsy LDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBw Z19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRlbXBv cmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJf cm5nMnJuZy4KIAogU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKIApAQCAtMTMxOCw2ICsx MzE4LDggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBTRVQgaWQgPSAnWzcsOCknCiBX SEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykKQEAgLTEzNzcsNiArMTM3OSw4IEBAIFVQREFURSB0ZW1wb3JhbF9ybmcKIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogU0VU IGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBp biAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoK IERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwog VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEt MDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xNDIwLDEyICsxNDI0LDExIEBAIFdIRVJFIGlkID0g J1s1LDYpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdb NSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYp JywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7Ci0tLSBjbGVhbiB1cDoKLURFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKLURFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBSRVNUUklDVApAQCAtMTQ2Miw0MSArMTQ2NSwxMzEgQEAgV0hFUkUg aWQgPSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKIFdIRVJFIGlk ID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgn WzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0KLS0tIHRlc3QgT04g VVBEQVRFL0RFTEVURSBvcHRpb25zCistLSBybmcycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVU RSBvcHRpb25zCiAtLQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUK Ky0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCist LSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0g cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBE RUZBVUxUIHN1YnNldCkKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENB U0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAog ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nCiAgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9 ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzksMTApJyk7CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFs X2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcK ICAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcs OCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcg U0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KIAorVFJVTkNBVEUg dGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb LTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19maywKQEAgLTE1MDQsNiArMTU5NywyNTIgQEAgQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZwogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogICAgIE9OIERFTEVU RSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQg PSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBu dWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQ REFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdb OSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIs IHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZwor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxM OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9y bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAn WzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIs IHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhl IFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBE QVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJy bmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFV TFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdb Nyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAn WzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEw KScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0x XScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4 LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs ICdbNiw3KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNh bid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFd JywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkg T04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0x LC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50 X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiAt LQogLS0gdGVzdCBGT1JFSUdOIEtFWSwgbXVsdGlyYW5nZSByZWZlcmVuY2VzIG11bHRpcmFu Z2UKQEAgLTE4MDcsNiArMjE0NiwyMCBAQCBDT01NSVQ7CiAtLSBjaGFuZ2luZyB0aGUgc2Nh bGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4 KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFu IHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1w b3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4 KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rpbmcg RksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJF U1RSSUNUCkBAIC0xODUzLDYgKzIyMDYsMjAgQEAgUk9MTEJBQ0s7CiAtLSBjaGFuZ2luZyB0 aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9 ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5n aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmpl Y3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIE5PIEFDVElPTgpAQCAtMTg4NCw2ICsyMjUxLDE3IEBAIEJFR0lOOwogCiAgIERFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CiBDT01NSVQ7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMn KSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWls czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEw JykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGlu ZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBA IC0xOTEzLDYgKzIyOTEsNDE3IEBAIEJFR0lOOwogCiAgIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBST0xMQkFDSzsK Ky0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dIRVJFIGlk ID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworCistLQor LS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0t IFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVG QVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2Vk IHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwg KHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERF TEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCkn IFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0 cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVM RVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTAp JyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9t bHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1st MSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRf aWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAx JykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEw KScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJu ZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcy LCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp JywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBT RVQgTlVMTCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVU RSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEt MDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdb OCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVM RVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScs IGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5 KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknLCBpZDIg PSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIg Y29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywg J1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g dXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAw LDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBT RVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0 aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxU ICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk MSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgor ICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBE RUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t IEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQorCitDUkVBVEUgVFlQRSBteWRhdGVyYW5n ZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5n MyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgcGFyZW50X2lk IGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrM19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpIE9OIERFTEVURSBDQVNDQURFCispOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworCitEUk9QIFRB QkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwor RFJPUCBUWVBFIG15ZGF0ZXJhbmdlOwogCiAtLQogLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25l ZCB0YWJsZXM6IHJhbmdlcwpAQCAtMTkyNCw4ICsyNzEzLDggQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4dCwKICAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFC TEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVF UyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdb MTEsMTIpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJU SVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwy KScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdb MTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAn WzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScs ICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdb MTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsK IElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBu YW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAw LTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScs ICcyMDAwLTAzLTAxJyksICdvbmUnKSwKQEAgLTE5MzksOCArMjcyOCw4IEBAIENSRUFURSBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKICAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFSVElUSU9OIEJZIExJU1QgKGlk KTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNikn LCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJMRSB0ZmtwMiBw YXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVT IElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdb MTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywg J1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1 LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitD UkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2 LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwx NyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogCiAt LQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwpAQCAtMjAzMywzNiAr MjgyMiw5MCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZQogLS0gcGFydGl0aW9uZWQg RksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAg ICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbNCw1KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1LDE2KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAsMTEpJzsKIAog LS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQog CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdI RVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMSwxMiknOworCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTAp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVM RVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCkn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlk ID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzYsNyknOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBpZCA9ICdbMTgsMTkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMiwxMyknOwogCiAt LQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQog CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMSwxMiknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzEx LDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzcsOCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIw LDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyBy ZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0x XScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X2ZrLApAQCAtMjA3MCwxMSArMjkxMywzNCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAg ICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVS RSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbOCw5KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJF IGlkID0gJ1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzE0LDE1KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRh dGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5 LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlk ID0gJ1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzI0LDI1KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisKIERST1AgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nOwogCkBAIC0yMTk3LDM2ICszMDYzLDkwIEBAIERFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11CiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERQogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19m aywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK ICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9OIERF TEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzE1LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAs MTEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdbMTUsMTYpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMCwxMSknOwogCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKIC0tCiAKK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJF IGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sx NywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzExLDEyKSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIE5VTEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwx MCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s5LDEw KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAg IE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlk ID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOwor VVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEwLDExKScg V0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4 LDE5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxOCwxOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJFIGlkID0gJ1sxOCwxOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEyLDEz KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5V TEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTEsMTIpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcy MDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAn WzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzcsOCknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzIwLDIxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTMsMTQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKwogLS0KIC0tIHBhcnRpdGlvbmVk IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0KIAorVFJVTkNBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBBTFRFUiBDT0xVTU4gcGFy ZW50X2lkIFNFVCBERUZBVUxUICdbMCwxKScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLApAQCAtMjIzNCwxMSArMzE1NCwz NCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n CiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzEz LDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOwog CiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU CiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE0LDE1 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEn LCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzks MTApJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBp ZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKwogRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7CiAKLS0gCjIuNDIuMAoK --------------ILCnfobTFgrrlXVrLT5hmthX Content-Type: text/x-patch; charset=UTF-8; name="v39-0008-Add-PERIODs.patch" Content-Disposition: attachment; filename="v39-0008-Add-PERIODs.patch" Content-Transfer-Encoding: base64 RnJvbSAxYTM4Mjc5ZjMxZDhjMTQ5OGI3ZTBiMWU0YTFmOTE5N2I5NDc0Yjc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjM5IDgvOF0gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2lu ZyBmb3IgU1FMOjIwMTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBF UklPRCBvbiBhCiAgdGFibGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJM RSkuIE1ha2Ugc3VyZSB3ZSBjcmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJl IGtub3duIChzaW5jZSBQRVJJT0RzIGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAg Y29uc3RyYWludHMgYXJlIGhhbmRsZWQgKHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0 aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBEUk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0g Q3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFibGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlv bl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBnX2R1bXAgc3VwcG9ydC4KLSBBZGRl ZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0aWNhbGx5IGRlZmluZSBhIGNv bnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUgc3RhcnQgY29sdW1uCiAg dG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3JlYXRpbmcgYSBQRVJJ T0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1c2UgdG8KICBp bXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9vc2Ugb25l IGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBsZSBy YW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsKIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTggKwog ZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sICAgICAgICAgIHwgICA2MyAr CiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAgfCAgIDI1 ICsKIGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAgICAgICAgICB8ICAg IDIgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwg ICA2MSArLQogZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbCAgICAgICAgICAgICAgICAg IHwgICAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCAgICAgICAgICAgICAg ICAgIHwgICAgMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAg ICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAg ICAgICAgICAgICB8ICAgMTQgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAg ICAgICAgICAgICAgIHwgICA3NSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9u X3NjaGVtYS5zcWwgICAgfCAgIDIzICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jICAgICAgICAgICB8ICAgNzIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w ZXJpb2QuYyAgICAgICAgICAgICAgIHwgIDEzMiArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9z cWxfZmVhdHVyZXMudHh0ICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29tbWVudC5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgODY2ICsrKysrKy0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8ICAgNDIg Ky0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAg IDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwg ICA5OSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAg IHwgICA0NSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAg ICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAg ICAgICAgfCAgMTc5ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUgICAgICAg ICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJpb2QuYyAgICAg ICAgICAgICAgICB8ICAgNTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMgICAgICAgICAgIHwgICA4NyArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMgICAgICAgICAgfCAgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAg ICAgICAgICAgICAgICAgICB8ICAxNzUgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg ICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUu YyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv TWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9oZWFwLmggICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfaW5kZXguaCAgICAgICAgICAgICAgICB8ICAgIDEgLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wZXJpb2QuaCAgICAgICAgICAgICAgIHwgICA1OCArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3JhbmdlLmggICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oICAgICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgNDAgKy0KIHNy Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgIDIgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAgMiAr LQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaCAgICAgICAgICAgIHwgICAg MSArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAg ICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oICAgICAgICAgICAgICAgICAgICB8 ICAgMjEgKwogLi4uL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jICAgICAg IHwgICAgNiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91 dCAgfCAgIDM4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dCAg ICAgICB8ICAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQg ICAgICAgICB8ICAyNjcgKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJs YXBzLm91dCAgICAgfCAyMDMxICsrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAgICAgfCAgIDMyICsKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BlcmlvZHMuc3FsICAgICAgICAgICAgICB8ICAxNzggKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAgICB8IDE0NDkgKysrKysrKysr KystCiA1OSBmaWxlcyBjaGFuZ2VkLCA2MjkzIGluc2VydGlvbnMoKyksIDE0MyBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Blcmlv ZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2RzLm91dAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BlcmlvZHMuc3FsCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA4NGEyZjdlNDEwNi4uNTUzMDFjMDJjMWUgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC0yMzAsNiArMjMwLDExIEBACiAgICAgICA8ZW50cnk+aW5mb3JtYXRpb24g YWJvdXQgcGFydGl0aW9uIGtleSBvZiB0YWJsZXM8L2VudHJ5PgogICAgICA8L3Jvdz4KIAor ICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcGVy aW9kIj48c3RydWN0bmFtZT5wZ19wZXJpb2Q8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+ CisgICAgICA8ZW50cnk+cGVyaW9kczwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxy b3c+CiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wb2xpY3kiPjxz dHJ1Y3RuYW1lPnBnX3BvbGljeTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAg IDxlbnRyeT5yb3ctc2VjdXJpdHkgcG9saWNpZXM8L2VudHJ5PgpAQCAtNTc0OCw2ICs1NzUz LDExMyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50 Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIGFyZSBzaW1wbGUg cmVmZXJlbmNlcy4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAg IDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisKKyA8 c2VjdDEgaWQ9ImNhdGFsb2ctcGctcGVyaW9kIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBn X3BlcmlvZDwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0 YWxvZy1wZy1wZXJpb2QiPgorICAgPHByaW1hcnk+cGdfcGVyaW9kPC9wcmltYXJ5PgorICA8 L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBn X3BlcmlvZDwvc3RydWN0bmFtZT4gc3RvcmVzCisgICBpbmZvcm1hdGlvbiBhYm91dCBzeXN0 ZW0gYW5kIGFwcGxpY2F0aW9uIHRpbWUgcGVyaW9kcy4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgUGVyaW9kcyBhcmUgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9ImRkbC1wZXJp b2RzIi8+LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX3BlcmlvZDwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisKKyAgIDx0Z3JvdXAg Y29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAg ICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZp ZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVybmFtZTwvc3RydWN0 ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBQZXJpb2QgbmFtZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5wZXJyZWxpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVm ZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNsYXNzIj48c3RydWN0bmFtZT5w Z19jbGFzczwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSB0YWJsZSB0 aGlzIHBlcmlvZCBiZWxvbmdzIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnBlcnN0YXJ0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MjwvdHlwZT4KKyAgICAgICAo cmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF0dHJpYnV0ZSI+PHN0cnVj dG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPmF0 dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIG51bWJlciBvZiB0aGUgc3RhcnQgY29sdW1uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnBlcmVuZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDI8L3R5cGU+ CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1 dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRoZSBudW1iZXIgb2YgdGhlIGVuZCBjb2x1bW4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVycmFuZ2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQyPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9s aW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbnVtYmVyIG9mIHRoZSA8bGl0ZXJhbD5HRU5F UkFURUQ8L2xpdGVyYWw+IGNvbHVtbiB0aGF0IGltcGxlbWVudHMgdGhlIDxsaXRlcmFsPlBF UklPRDwvbGl0ZXJhbD4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBl cmNvbnN0cmFpbnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJl ZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij48c3RydWN0 bmFtZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg VGhlIE9JRCBvZiB0aGUgcGVyaW9kJ3MgPGxpdGVyYWw+Q0hFQ0s8L2xpdGVyYWw+IGNvbnN0 cmFpbnQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwvdGJv ZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA2MjZkMzU1MTRjYy4u ZDZlYzZmNWRmNWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTEzNTYsNiArMTM1Niw2NCBAQCBDUkVBVEUgVEFC TEUgY2lyY2xlcyAoCiAgIDwvc2VjdDI+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iZGRs LXBlcmlvZHMiPgorICA8dGl0bGU+UGVyaW9kczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBQ ZXJpb2RzIGFyZSBkZWZpbml0aW9ucyBvbiBhIHRhYmxlIHRoYXQgYXNzb2NpYXRlIGEgcGVy aW9kIG5hbWUgd2l0aCBhIHN0YXJ0CisgICBjb2x1bW4gYW5kIGFuIGVuZCBjb2x1bW4uICBC b3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBleGFjdGx5IHRoZSBzYW1lIHR5cGUKKyAgIChpbmNs dWRpbmcgY29sbGF0aW9uKSwgaGF2ZSBhIGJ0cmVlIG9wZXJhdG9yIGNsYXNzLCBhbmQgdGhl IHN0YXJ0IGNvbHVtbgorICAgdmFsdWUgbXVzdCBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhl IGVuZCBjb2x1bW4gdmFsdWUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGFy ZSB0d28gdHlwZXMgb2YgcGVyaW9kczogYXBwbGljYXRpb24gYW5kIHN5c3RlbS4gIFN5c3Rl bSBwZXJpb2RzIGFyZQorICAgZGlzdGluZ3Vpc2hlZCBieSB0aGVpciBuYW1lIHdoaWNoIG11 c3QgYmUgPGxpdGVyYWw+U1lTVEVNX1RJTUU8L2xpdGVyYWw+LiAgQW55CisgICBvdGhlciBu YW1lIGlzIGFuIGFwcGxpY2F0aW9uIHBlcmlvZC4KKyAgPC9wYXJhPgorCisgIDxzZWN0MiBp ZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRpb24tcGVyaW9kcyI+CisgIDx0aXRsZT5BcHBsaWNh dGlvbiBQZXJpb2RzPC90aXRsZT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5w ZXJpb2Q8L3ByaW1hcnk+CisgICAgPHNlY29uZGFyeT5hcHBsaWNhdGlvbjwvc2Vjb25kYXJ5 PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIEFwcGxpY2F0aW9uIHBlcmlv ZHMgYXJlIGRlZmluZWQgb24gYSB0YWJsZSB1c2luZyB0aGUgZm9sbG93aW5nIHN5bnRheDoK KyAgIDwvcGFyYT4KKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGJpbGxpbmdf YWRkcmVzc2VzICgKKyAgY3VzdG9tZXJfaWQgaW50ZWdlciwKKyAgYWRkcmVzc19pZCBpbnRl Z2VyLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RvIGRhdGUsCisgIDxlbXBoYXNp cz5QRVJJT0QgRk9SIHZhbGlkaXR5ICh2YWxpZF9mcm9tLCB2YWxpZF90byk8L2VtcGhhc2lz PgorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgIDxwYXJhPgorICAgIEFwcGxpY2F0aW9u IHBlcmlvZHMgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRlbXBvcmFsIHByaW1hcnkgYW5kIGZv cmVpZ24ga2V5cy4KKyAgICBBbnkgdGFibGUgd2l0aCBhIHRlbXBvcmFsIHByaW1hcnkga2V5 IGlzIGEgdGVtcG9yYWwgdGFibGUgYW5kIHN1cHBvcnRzIHRlbXBvcmFsIHVwZGF0ZSBhbmQg ZGVsZXRlIGNvbW1hbmRzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0MiBp ZD0iZGRsLXBlcmlvZHMtc3lzdGVtLXBlcmlvZHMiPgorICAgPHRpdGxlPlN5c3RlbSBQZXJp b2RzPC90aXRsZT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5wZXJpb2Q8L3By aW1hcnk+CisgICAgPHNlY29uZGFyeT5zeXN0ZW08L3NlY29uZGFyeT4KKyAgIDwvaW5kZXh0 ZXJtPgorCisgICA8cGFyYT4KKyAgICBQZXJpb2RzIGZvciA8bGl0ZXJhbD5TWVNURU1fVElN RTwvbGl0ZXJhbD4gYXJlIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQuCisgICA8L3BhcmE+ CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLXN5c3RlbS1jb2x1 bW5zIj4KICAgPHRpdGxlPlN5c3RlbSBDb2x1bW5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL2lu Zm9ybWF0aW9uX3NjaGVtYS5zZ21sCmluZGV4IDk0NDJiMDcxOGMwLi5iMWY4YTE0MTNjMCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbApAQCAtNDE3MSw2ICs0MTcx LDY5IEBAIE9SREVSIEJZIGMub3JkaW5hbF9wb3NpdGlvbjsKICAgPC90YWJsZT4KICA8L3Nl Y3QxPgogCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBlcmlvZHMiPgorICA8dGl0bGU+PGxp dGVyYWw+cGVyaW9kczwvbGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZp ZXcgPGxpdGVyYWw+cGFyYW1ldGVyczwvbGl0ZXJhbD4gY29udGFpbnMgaW5mb3JtYXRpb24g YWJvdXQgdGhlCisgICBwZXJpb2RzIG9mIGFsbCB0YWJsZXMgaW4gdGhlIGN1cnJlbnQgZGF0 YWJhc2UuICBUaGUgc3RhcnQgYW5kIGVuZCBjb2x1bW4KKyAgIG5hbWVzIGFyZSBvbmx5IHNo b3duIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIGFjY2VzcyB0byB0aGVtIChieSB3YXkgb2Yg YmVpbmcKKyAgIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3Bh cmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxsaXRlcmFsPnBlcmlvZHM8L2xpdGVyYWw+ IENvbHVtbnM8L3RpdGxlPgorCisgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgIDx0aGVhZD4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5E YXRhIFR5cGU8L2VudHJ5PgorICAgICAgPGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD50YWJsZV9jYXRhbG9nPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT5OYW1lIG9mIHRoZSBkYXRhYmFzZSBjb250YWluaW5nIHRoZSBwZXJpb2QgKGFs d2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSk8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnRhYmxlX3NjaGVtYTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50 cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgc2NoZW1hIGNvbnRhaW5pbmcgdGhlIHBl cmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+ PGxpdGVyYWw+dGFibGVfbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0 eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBv ZiB0aGUgdGFibGUgY29udGFpbmluZyB0aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5wZXJpb2RfbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgcGVyaW9kPC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5zdGFydF9j b2x1bW5fbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9p ZGVudGlmaWVyPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgc3Rh cnQgY29sdW1uIGZvciB0aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5lbmRfY29sdW1uX25hbWU8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2Vu dHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIGVuZCBjb2x1bW4gZm9yIHRoZSBwZXJp b2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+Cisg IDwvdGFibGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1yZWZlcmVu dGlhbC1jb25zdHJhaW50cyI+CiAgIDx0aXRsZT48bGl0ZXJhbD5yZWZlcmVudGlhbF9jb25z dHJhaW50czwvbGl0ZXJhbD48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNn bWwKaW5kZXggNmEyODIyYWRhZDcuLjMzMmIwNGYxODZmIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl90YWJsZS5zZ21sCkBAIC02OCw2ICs2OCw4IEBAIEFMVEVSIFRBQkxFIFsgSUYgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgog ICAgIEFMVEVSIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bnN0cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+IFsgREVGRVJSQUJMRSB8IE5PVCBERUZFUlJB QkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFMTFkgSU1NRURJQVRFIF0KICAg ICBWQUxJREFURSBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPgogICAgIERST1AgQ09OU1RSQUlOVCBbIElG IEVYSVNUUyBdICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9u YW1lPC9yZXBsYWNlYWJsZT4gWyBSRVNUUklDVCB8IENBU0NBREUgXQorICAgIEFERCBQRVJJ T0QgRk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVw bGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X2NvbHVt bjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX2Nv bHVtbjwvcmVwbGFjZWFibGU+ICkgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQorICAgIERS T1AgUEVSSU9EIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25h bWU8L3JlcGxhY2VhYmxlPiBbIFJFU1RSSUNUIHwgQ0FTQ0FERSBdCiAgICAgRElTQUJMRSBU UklHR0VSIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwv cmVwbGFjZWFibGU+IHwgQUxMIHwgVVNFUiBdCiAgICAgRU5BQkxFIFRSSUdHRVIgWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4g fCBBTEwgfCBVU0VSIF0KICAgICBFTkFCTEUgUkVQTElDQSBUUklHR0VSIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPgpAQCAtNTkx LDYgKzU5MywyOSBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFs dGVydGFibGUtZGVzYy1hZGQtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5BREQgUEVS SU9EIEZPUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgZm9ybSBhZGRzIGEgbmV3IHBlcmlvZCB0byBhIHRhYmxlIHVzaW5nIHRo ZSBzYW1lIHN5bnRheCBhcworICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxl Ii8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0ZXJ0YWJsZS1kZXNjLWRyb3AtcGVy aW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5EUk9QIFBFUklPRCBGT1I8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gZHJv cHMgdGhlIHNwZWNpZmllZCBwZXJpb2Qgb24gYSB0YWJsZS4gIFRoZSBzdGFydCBhbmQgZW5k CisgICAgICBjb2x1bW5zIHdpbGwgbm90IGJlIGRyb3BwZWQgYnkgdGhpcyBjb21tYW5kIGJ1 dCB0aGUKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25zdHJhaW50IHdpbGwg YmUuICBZb3Ugd2lsbCBuZWVkIHRvIHNheQorICAgICAgPGxpdGVyYWw+Q0FTQ0FERTwvbGl0 ZXJhbD4gaWYgYW55dGhpbmcgb3V0c2lkZSB0aGUgdGFibGUgZGVwZW5kcyBvbiB0aGUKKyAg ICAgIGNvbHVtbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVydGFibGUtZGVzYy1k aXNhYmxlLWVuYWJsZS10cmlnZ2VyIj4KICAgICA8dGVybT48bGl0ZXJhbD5ESVNBQkxFPC9s aXRlcmFsPi88bGl0ZXJhbD5FTkFCTEUgWyBSRVBMSUNBIHwgQUxXQVlTIF0gVFJJR0dFUjwv bGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApp bmRleCA1YjQzYzU2YjEzMy4uNDljMmRmOTk0NDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21s CkBAIC00NCw2ICs0NCw3IEBAIENPTU1FTlQgT04KICAgT1BFUkFUT1IgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yX25hbWU8L3JlcGxhY2VhYmxlPiAoPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxlZnRfdHlwZTwvcmVwbGFjZWFibGU+LCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmlnaHRfdHlwZTwvcmVwbGFjZWFibGU+KSB8 CiAgIE9QRVJBVE9SIENMQVNTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmpl Y3RfbmFtZTwvcmVwbGFjZWFibGU+IFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5pbmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiB8CiAgIE9QRVJBVE9SIEZBTUlMWSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxl PiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfbWV0aG9kPC9y ZXBsYWNlYWJsZT4gfAorICBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJlbGF0aW9uX25hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFBPTElDWSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cG9saWN5X25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwK ICAgWyBQUk9DRURVUkFMIF0gTEFOR1VBR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBQUk9DRURVUkUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVyZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAo IFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbW9kZTwvcmVwbGFjZWFi bGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbmFtZTwvcmVwbGFj ZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3R5cGU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKQEAgLTM0MSw2ICszNDIsNyBAQCBDT01NRU5UIE9O IE9QRVJBVE9SIF4gKHRleHQsIHRleHQpIElTICdQZXJmb3JtcyBpbnRlcnNlY3Rpb24gb2Yg dHdvIHRleHRzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgLSAoTk9ORSwgaW50ZWdlcikgSVMg J1VuYXJ5IG1pbnVzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgQ0xBU1MgaW50NG9wcyBVU0lO RyBidHJlZSBJUyAnNCBieXRlIGludGVnZXIgb3BlcmF0b3JzIGZvciBidHJlZXMnOwogQ09N TUVOVCBPTiBPUEVSQVRPUiBGQU1JTFkgaW50ZWdlcl9vcHMgVVNJTkcgYnRyZWUgSVMgJ2Fs bCBpbnRlZ2VyIG9wZXJhdG9ycyBmb3IgYnRyZWVzJzsKK0NPTU1FTlQgT04gUEVSSU9EIG15 X3RhYmxlLm15X2NvbHVtbiBJUyAnU2FsZXMgcHJvbW90aW9uIHZhbGlkaXR5JzsKIENPTU1F TlQgT04gUE9MSUNZIG15X3BvbGljeSBPTiBteXRhYmxlIElTICdGaWx0ZXIgcm93cyBieSB1 c2Vycyc7CiBDT01NRU5UIE9OIFBST0NFRFVSRSBteV9wcm9jIChpbnRlZ2VyLCBpbnRlZ2Vy KSBJUyAnUnVucyBhIHJlcG9ydCc7CiBDT01NRU5UIE9OIFBVQkxJQ0FUSU9OIGFsbHRhYmxl cyBJUyAnUHVibGlzaGVzIGFsbCBvcGVyYXRpb25zIG9uIGFsbCB0YWJsZXMnOwpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggMzllOWNmOGU1YWEuLjlhYmY4OWZkMzA4 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAg UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiA8c3lub3BzaXM+CiBDUkVBVEUgWyBbIEdMT0JB TCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9u YW1lPC9yZXBsYWNlYWJsZT4gKCBbCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgU1RPUkFHRSB7IFBMQUlOIHwgRVhU RVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxUIH0gXSBbIENPTVBSRVNTSU9OIDxy ZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFU RSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsg Li4uIF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNl YWJsZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJs ZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+ IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gLi4uIF0gfQogICAg IFssIC4uLiBdCkBAIC0zNyw2ICszOCw3IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwg XSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJ CiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBV TkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBPRiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoCiAgIHsg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQorICAgIHwgPHJlcGxh Y2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4KICAgICB8IDxyZXBsYWNl YWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gfQogICAgIFssIC4uLiBdCiAp IF0KQEAgLTQ5LDYgKzUxLDcgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVN UE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkKIENSRUFU RSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VE IF0gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPgogICAgIFBBUlRJVElPTiBPRiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFyZW50X3RhYmxlPC9yZXBsYWNlYWJsZT4gWyAo CiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQorICAgIHwg PHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4KICAgICB8IDxy ZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gfQogICAgIFssIC4u LiBdCiApIF0geyBGT1IgVkFMVUVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9CkBAIC03Myw2 ICs3NiwxMSBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBU RU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogICAgIFsgT04gREVMRVRF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3Jl cGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIH0KIFsgREVGRVJSQUJMRSB8 IE5PVCBERUZFUlJBQkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFMTFkgSU1N RURJQVRFIF0KIAorPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKK1BFUklP RCBGT1IgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3Jl cGxhY2VhYmxlPiB8IFNZU1RFTV9USU1FIH0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gKQorWyBXSVRIICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPiA9 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IFss IC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCiBbIENP TlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFt ZTwvcmVwbGFjZWFibGU+IF0KQEAgLTgwLDcgKzg4LDcgQEAgQ1JFQVRFIFsgWyBHTE9CQUwg fCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElG IE5PVCBFWEkKICAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5DVCBdICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CiAgIFBSSU1BUlkg S0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8 CiAgIEVYQ0xVREUgWyBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5k ZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leGNsdWRlX2VsZW1lbnQ8L3JlcGxhY2VhYmxlPiBXSVRIIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2Vh YmxlPiBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByZWRpY2F0 ZTwvcmVwbGFjZWFibGU+ICkgXSB8Ci0gIEZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywg UEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0g KSBdCisgIEZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9 IF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJs ZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVm Y29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0g KSBdCiAgICAgWyBNQVRDSCBGVUxMIHwgTUFUQ0ggUEFSVElBTCB8IE1BVENIIFNJTVBMRSBd IFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZQogY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRp YWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSB9CiBb IERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVSUkVEIHwg SU5JVElBTExZIElNTUVESUFURSBdCkBAIC0xMzksNiArMTQ3LDE0IEBAIFdJVEggKCBNT0RV TFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3Jl cGxhY2VhYmxlPiwgUkVNCiAgICBuYW1lIGFzIGFueSBleGlzdGluZyBkYXRhIHR5cGUgaW4g dGhlIHNhbWUgc2NoZW1hLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBQZXJpb2RzIG15 IGJlIGRlZmluZWQgb24gdGFibGVzLCBzcGVjaWZ5aW5nIHRoYXQgdHdvIGV4aXN0aW5nIGNv bHVtbnMKKyAgIHJlcHJlc2VudCBzdGFydCBhbmQgZW5kIHZhbHVlcyBmb3IgdGhlIHBlcmlv ZC4gIFBlcmlvZHMgbWF5IGhhdmUgYW55IG5hbWUKKyAgIHRoYXQgZG9lc24ndCBjb25mbGlj dCB3aXRoIGEgY29sdW1uIG5hbWUsIGJ1dCB0aGUgbmFtZQorICAgPGxpdGVyYWw+U1lTVEVN X1RJTUU8L2xpdGVyYWw+IGlzIHNwZWNpYWwsIHVzZWQgZm9yIHZlcnNpb25pbmcgdGFibGVz LgorICAgU3lzdGVtIHBlcmlvZHMgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuICBTZWUgPHhy ZWYgbGlua2VuZD0iZGRsLXBlcmlvZHMiLz4gZm9yIG1vcmUgZGV0YWlscy4KKyAgPC9wYXJh PgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFsIGNvbnN0cmFpbnQgY2xhdXNlcyBzcGVj aWZ5IGNvbnN0cmFpbnRzICh0ZXN0cykgdGhhdAogICAgbmV3IG9yIHVwZGF0ZWQgcm93cyBt dXN0IHNhdGlzZnkgZm9yIGFuIGluc2VydCBvciB1cGRhdGUgb3BlcmF0aW9uCkBAIC03OTks NiArODE1LDM3IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3Jl YXRldGFibGUtcGFybXMtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5QRVJJT0QgRk9S IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFi bGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+ICkgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgcGVyaW9kIGRlZmlu aXRpb24gZ2l2ZXMgc2VtYW50aWMgbWVhbmluZyB0byB0d28gZXhpc3RpbmcgY29sdW1ucyBv ZgorICAgICAgdGhlIHRhYmxlLiAgSXQgZGVmaW5lcyBhICJzdGFydCBjb2x1bW4iIGFuZCBh biAiZW5kIGNvbHVtbiIgd2hlcmUgdGhlCisgICAgICBzdGFydCB2YWx1ZSBpcyBzdHJpY3Rs eSBsZXNzIHRoYW4gdGhlIGVuZCB2YWx1ZS4gIEEKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9s aXRlcmFsPiBjb25zdHJhaW50IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB0byBlbmZvcmNl CisgICAgICB0aGlzLiBZb3UgY2FuIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhhdCBjb25zdHJh aW50IHdpdGggdGhlCisgICAgICA8bGl0ZXJhbD5jaGVja19jb25zdHJhaW50X25hbWU8L2xp dGVyYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9y ZXBsYWNlYWJsZT4uCisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEJvdGgg Y29sdW1ucyBtdXN0IGhhdmUgZXhhY3RseSB0aGUgc2FtZSB0eXBlIGFuZCBtdXN0IGhhdmUg YSByYW5nZSB0eXBlCisgICAgICBkZWZpbmVkIGZyb20gdGhlaXIgYmFzZSB0eXBlLiAgSWYg dGhlcmUgYXJlIHNldmVyYWwgcmFuZ2UgdHlwZXMgZm9yIHRoYXQKKyAgICAgIGJhc2UgdHlw ZSwgeW91IG11c3Qgc3BlY2lmeSB3aGljaCBvbmUgeW91IHdhbnQgYnkgdXNpbmcgdGhlCisg ICAgICA8bGl0ZXJhbD5yYW5nZXR5cGU8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4uCisgICAgICBBbnkgYmFz ZSB0eXBlIGlzIGFsbG93ZWQsIGFzIGxvbmcgYXMgaXQgaGFzIGEgcmFuZ2UgdHlwZSwgYWx0 aG91Z2ggaXQgaXMKKyAgICAgIGV4cGVjdGVkIHRoYXQgbW9zdCBwZXJpb2RzIHdpbGwgdXNl IHRlbXBvcmFsIHR5cGVzIGxpa2UgPGxpdGVyYWw+dGltZXN0YW1wdHo8L2xpdGVyYWw+Cisg ICAgICBvciA8bGl0ZXJhbD5kYXRlPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorCisgICAg IDxwYXJhPgorICAgICAgQSBoaWRkZW4gPGxpdGVyYWw+R0VORVJBVEVEPC9saXRlcmFsPiBj b2x1bW4gaXMgdXNlZCB0byBpbXBsZW1lbnQgdGhlIHBlcmlvZCwKKyAgICAgIHdpdGggdGhl IHNhbWUgbmFtZSBhcyB0aGUgcGVyaW9kLiAgSWYgc3VjaCBhIGNvbHVtbiBhbHJlYWR5IGV4 aXN0cywgeW91CisgICAgICBjYW4gdXNlIHRoZSA8bGl0ZXJhbD5jb2xleGlzdHM8L2xpdGVy YWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBs YWNlYWJsZT4KKyAgICAgIHdpdGggdmFsdWUgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gdG8g YXZvaWQgY3JlYXRpbmcgaXQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJs ZS1wYXJtcy1jb25zdHJhaW50Ij4KICAgICA8dGVybT48bGl0ZXJhbD5DT05TVFJBSU5UIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2Vh YmxlPjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMTE0Nyw4ICsxMTk0 LDggQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51 bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1yZWZlcmVuY2VzIj4KICAgICA8dGVybT48bGl0ZXJh bD5SRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwv cmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29s dW1uPC9yZXBsYWNlYWJsZT4gKSBdIFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm1hdGNodHlwZTwvcmVwbGFjZWFibGU+IF0gWyBPTiBERUxFVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+ IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50 aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF08L2xpdGVyYWw+IChjb2x1bW4gY29uc3RyYWlu dCk8L3Rlcm0+CiAKLSAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04gS0VZICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFt ZTwvcmVwbGFjZWFibGU+IF0gKQotICAgIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQ RVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gXSApIF0KKyAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04gS0VZICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKQorICAgIFJFRkVSRU5DRVMgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBb LCAuLi4gXSBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29s dW1uX25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gXSApIF0KICAgICBbIE1BVENIIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2VhYmxlPiBdCiAg ICAgWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50 aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE9OIFVQREFURSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4g XTwvbGl0ZXJhbD4KQEAgLTExNjgsNyArMTIxNSw3IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxl PiwgUkVNCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KLSAgICAgIElmIHRoZSBsYXN0 IGNvbHVtbiBpcyBtYXJrZWQgd2l0aCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+LCBpdCBp cworICAgICAgSWYgdGhlIGxhc3Qga2V5IHBhcnQgaXMgbWFya2VkIHdpdGggPGxpdGVyYWw+ UEVSSU9EPC9saXRlcmFsPiwgaXQgaXMKICAgICAgIHRyZWF0ZWQgaW4gYSBzcGVjaWFsIHdh eS4gIFdoaWxlIHRoZSBub24tPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPgogICAgICAgY29s dW1ucyBhcmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5IChhbmQgdGhlcmUgbXVzdCBiZSBhdCBs ZWFzdCBvbmUgb2YKICAgICAgIHRoZW0pLCB0aGUgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFs PiBjb2x1bW4gaXMgbm90LiAgSW5zdGVhZCwgdGhlCkBAIC0xMTc2LDggKzEyMjMsMTAgQEAg V0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNf bGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgIHJlY29yZHMgKGJhc2VkIG9uIHRo ZSBub24tPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiBwYXJ0cyBvZiB0aGUga2V5KQogICAg ICAgd2hvc2UgY29tYmluZWQgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiB2YWx1ZXMgY29t cGxldGVseSBjb3ZlciB0aGUKICAgICAgIHJlZmVyZW5jaW5nIHJlY29yZCdzLiAgSW4gb3Ro ZXIgd29yZHMsIHRoZSByZWZlcmVuY2UgbXVzdCBoYXZlIGEKLSAgICAgIHJlZmVyZW50IGZv ciBpdHMgZW50aXJlIGR1cmF0aW9uLiAgVGhpcyBjb2x1bW4gbXVzdCBiZSBhIHJhbmdlIG9y Ci0gICAgICBtdWx0aXJhbmdlIHR5cGUuICBJbiBhZGRpdGlvbiwgdGhlIHJlZmVyZW5jZWQg dGFibGUgbXVzdCBoYXZlIGEgcHJpbWFyeQorICAgICAgcmVmZXJlbnQgZm9yIGl0cyBlbnRp cmUgZHVyYXRpb24uICBUaGlzIHBhcnQgbXVzdCBiZSBlaXRoZXIgYSAKKyAgICAgIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1wZXJpb2QiPjxsaXRlcmFsPlBFUklP RDwvbGl0ZXJhbD48L2xpbms+CisgICAgICBvciBhIGNvbHVtbiB3aXRoIGEgcmFuZ2Ugb3Ig bXVsdGlyYW5nZSB0eXBlLgorICAgICAgSW4gYWRkaXRpb24sIHRoZSByZWZlcmVuY2VkIHRh YmxlIG11c3QgaGF2ZSBhIHByaW1hcnkKICAgICAgIGtleSBvciB1bmlxdWUgY29uc3RyYWlu dCBkZWNsYXJlZCB3aXRoIDxsaXRlcmFsPldJVEhPVVQKICAgICAgIE9WRVJMQVBTPC9saXRl cmFsPi4gRmluYWxseSwgaWYgdGhlIGZvcmVpZ24ga2V5IGhhcyBhIFBFUklPRAogICAgICAg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gc3BlY2lmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKaW5kZXggZWFkZTU5YjkzYWIu LjY5OGVlNzZhMzMzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKQEAgLTU2LDcgKzU2LDggQEAg REVMRVRFIEZST00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICoKICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAg SWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgSWYg dGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLCBvciBhCisgICA8 bGluayBsaW5rZW5kPSJkZGwtcGVyaW9kcy1hcHBsaWNhdGlvbi1wZXJpb2RzIj48bGl0ZXJh bD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPiwKICAgIHlvdSBtYXkgc3VwcGx5IGEgPGxpdGVy YWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwgYW5kIHlvdXIgZGVsZXRlIHdp bGwKICAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFwIHRoZSBnaXZlbiBpbnRlcnZh bC4gRnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgogICAgZXh0ZW5kcyBvdXRzaWRlIHRo ZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLCB0aGVuIHlvdXIg ZGVsZXRlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbAppbmRleCBjZmExNThlZDk1Yi4uMTYzZmUxYzU2 MDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbApAQCAtNTMsNyArNTMsOCBAQCBVUERBVEUgWyBP TkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxh Y2VhYmxlPiBbICogXSBbCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIElmIHRoZSB0YWJs ZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIElmIHRoZSB0YWJsZSBo YXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwgb3IgYQorICAgPGxpbmsgbGlua2Vu ZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRpb24tcGVyaW9kcyI+PGxpdGVyYWw+UEVSSU9EPC9s aXRlcmFsPjwvbGluaz4sCiAgICB5b3UgbWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIHVwZGF0ZSB3aWxsCiAgICBvbmx5 IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJt b3JlLCBpZiBhIHJvdydzIHNwYW4KICAgIGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVyYWw+ Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5b3VyIHVwZGF0ZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNTMuLjNiN2FmOTY1MDMyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvTWFrZWZpbGUKQEAgLTM5LDYgKzM5LDcgQEAgT0JKUyA9IFwKIAlwZ19uYW1lc3Bh Y2UubyBcCiAJcGdfb3BlcmF0b3IubyBcCiAJcGdfcGFyYW1ldGVyX2FjbC5vIFwKKwlwZ19w ZXJpb2QubyBcCiAJcGdfcHJvYy5vIFwKIAlwZ19wdWJsaWNhdGlvbi5vIFwKIAlwZ19yYW5n ZS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGE0NGNjZWUzYjY4Li5kNTdjNGZhZDUy YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0yODIyLDYgKzI4MjIsNyBAQCBhY2xjaGVj a19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNh c2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2Fz ZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKKwkJCQkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQkJ CQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCQkJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OX1JFTDoKIAkJCQkJY2FzZSBPQkpFQ1RfUk9MRToKQEAgLTI5NjMsNiAr Mjk2NCw3IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUg b2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQkJCQljYXNlIE9CSkVDVF9E T01DT05TVFJBSU5UOgogCQkJCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQkJCQlj YXNlIE9CSkVDVF9QRVJJT0Q6CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVT UEFDRToKIAkJCQkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgogCQkJCQljYXNlIE9C SkVDVF9ST0xFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCAwNDg5Y2JhYmNi OC4uYzdmMjZiYzcxODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC00OCw2 ICs0OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcmFtZXRl cl9hY2wuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtNjIyLDYgKzYyMywxNSBAQCBm aW5kRGVwZW5kZW50T2JqZWN0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJ CQlyZXR1cm47CiAJCQkJCX0KIAorCQkJCQkvKgorCQkJCQkgKiBJZiBhIHRhYmxlIGF0dHJp YnV0ZSBpcyBhbiBpbnRlcm5hbCBwYXJ0IG9mIHNvbWV0aGluZyBlbHNlCisJCQkJCSAqIChl LmcuIHRoZSBHRU5FUkFURUQgY29sdW1uIHVzZWQgYnkgYSBQRVJJT0QpLAorCQkJCQkgKiBh bmQgd2UgYXJlIGRlbGV0aW5nIHRoZSB3aG9sZSB0YWJsZSwKKwkJCQkJICogdGhlbiBpdCdz IG9rYXkuCisJCQkJCSAqLworCQkJCQlpZiAoZm91bmREZXAtPm9ianN1YmlkICYmICFvYmpl Y3QtPm9iamVjdFN1YklkKQorCQkJCQkJYnJlYWs7CisKIAkJCQkJLyoKIAkJCQkJICogV2Ug cG9zdHBvbmUgYWN0dWFsbHkgaXNzdWluZyB0aGUgZXJyb3IgbWVzc2FnZSB1bnRpbAogCQkJ CQkgKiBhZnRlciB0aGlzIGxvb3AsIHNvIHRoYXQgd2UgY2FuIG1ha2UgdGhlIGJlaGF2aW9y CkBAIC0xNDAwLDYgKzE0MTAsMTAgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNz ICpvYmplY3QsIGludCBmbGFncykKIAkJCVJlbW92ZUF0dHJEZWZhdWx0QnlJZChvYmplY3Qt Pm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgUGVyaW9kUmVsYXRpb25JZDoKKwkJ CVJlbW92ZVBlcmlvZEJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQlj YXNlIExhcmdlT2JqZWN0UmVsYXRpb25JZDoKIAkJCUxhcmdlT2JqZWN0RHJvcChvYmplY3Qt Pm9iamVjdElkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA3OGU1OTM4NGQx Yy4uZDNhNjY3MDM5ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC00OSw2ICs0OSw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X29wY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcnRpdGlvbmVkX3RhYmxlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3N0YXRpc3RpYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgpAQCAtMjA2Miw2ICsyMDYz LDgwIEBAIFNldEF0dHJNaXNzaW5nKE9pZCByZWxpZCwgY2hhciAqYXR0bmFtZSwgY2hhciAq dmFsdWUpCiAJdGFibGVfY2xvc2UodGFibGVyZWwsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOwog fQogCisvKgorICogU3RvcmUgYSBwZXJpb2Qgb2YgcmVsYXRpb24gcmVsLgorICoKKyAqIFJl dHVybnMgdGhlIE9JRCBvZiB0aGUgbmV3IHBnX3BlcmlvZCB0dXBsZS4KKyAqLworT2lkCitT dG9yZVBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZG5hbWUsIEF0dHJO dW1iZXIgc3RhcnRudW0sCisJCQlBdHRyTnVtYmVyIGVuZG51bSwgQXR0ck51bWJlciByYW5n ZW51bSwgT2lkIGNvbm9pZCkKK3sKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3BlcmlvZF07 CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcGVyaW9kXTsKKwlSZWxhdGlvbglwZ19wZXJpb2Q7 CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCW9pZDsKKwlOYW1lRGF0YQlwZXJuYW1lOwor CU9iamVjdEFkZHJlc3MJbXlzZWxmLCByZWZlcmVuY2VkOworCisJQXNzZXJ0KHJhbmdlbnVt ICE9IEludmFsaWRBdHRyTnVtYmVyKTsKKworCW5hbWVzdHJjcHkoJnBlcm5hbWUsIHBlcmlv ZG5hbWUpOworCisJTWVtU2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCU1lbVNl dChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCisJcGdfcGVyaW9kID0gdGFibGVf b3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCW9pZCA9IEdl dE5ld09pZFdpdGhJbmRleChwZ19wZXJpb2QsIEF0dHJEZWZhdWx0T2lkSW5kZXhJZCwgQW51 bV9wZ19wZXJpb2Rfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2Rfb2lkIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKG9pZCk7CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3Blcm5hbWUg LSAxXSA9IE5hbWVHZXREYXR1bSgmcGVybmFtZSk7CisJdmFsdWVzW0FudW1fcGdfcGVyaW9k X3BlcnJlbGlkIC0gMV0gPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CisJdmFsdWVzW0FudW1f cGdfcGVyaW9kX3BlcnN0YXJ0IC0gMV0gPSBzdGFydG51bTsKKwl2YWx1ZXNbQW51bV9wZ19w ZXJpb2RfcGVyZW5kIC0gMV0gPSBlbmRudW07CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3Bl cnJhbmdlIC0gMV0gPSByYW5nZW51bTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVyY29u c3RyYWludCAtIDFdID0gY29ub2lkOworCisJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUoUmVs YXRpb25HZXREZXNjcihwZ19wZXJpb2QpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVw bGVJbnNlcnQocGdfcGVyaW9kLCB0dXBsZSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2Vs ZiwgUGVyaW9kUmVsYXRpb25JZCwgb2lkKTsKKworCS8qIERyb3AgdGhlIHBlcmlvZCB3aGVu IHRoZSB0YWJsZSBpcyBkcm9wcGVkLiAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNl ZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9BVVRPKTsK KworCS8qIEZvcmJpZCBkcm9wcGluZyB0aGUgY29sdW1ucyBvZiB0aGUgcGVyaW9kLiAqLwor CU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBS ZWxhdGlvbkdldFJlbGlkKHJlbCksIHN0YXJ0bnVtKTsKKwlyZWNvcmREZXBlbmRlbmN5T24o Jm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlPYmplY3RBZGRy ZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwgUmVsYXRpb25HZXRS ZWxpZChyZWwpLCBlbmRudW0pOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVm ZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJLyoKKwkgKiBUaGUgcmFuZ2UgY29s dW1uIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwKKwkgKiBidXQgd2UgY2FuJ3QgdXNl IERFUEVOREVOQ1lfSU5URVJOQUwKKwkgKiBiZWNhdXNlIGRyb3BwaW5nIHRoZSB0YWJsZSB3 aWxsIGNoZWNrIGZvciBkZXBlbmRlbmNpZXMgb24gYWxsIHN1Ym9iamVjdHMgdG9vCisJICog KGluIGZpbmREZXBlbmRlbnRPYmplY3RzKS4KKwkgKiBCdXQgaWYgd2UgbWFrZSBhbiBBVVRP IGRlcGVuZGVuY3kgb25lIHdheSB3ZSB3aWxsIGF1dG8tZHJvcCB0aGUgY29sdW1uCisJICog d2hlbiB3ZSBkcm9wIHRoZSBQRVJJT0QsCisJICogYW5kIGEgTk9STUFMIGRlcGVuZGVuY3kg dGhlIG90aGVyIHdheSB3ZSB3aWxsIGZvcmJpZCBkcm9wcGluZyB0aGUgY29sdW1uIGRpcmVj dGx5LgorCSAqLworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25S ZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIHJhbmdlbnVtKTsKKwlyZWNvcmRE ZXBlbmRlbmN5T24oJnJlZmVyZW5jZWQsICZteXNlbGYsIERFUEVOREVOQ1lfSU5URVJOQUwp OworCisJLyoKKwkgKiBUaGUgY29uc3RyYWludCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRh aWwsIHNvIHdlIG1hcmsgaXQgYXMgc3VjaC4KKwkgKiAoTm90ZSB0aGF0IG15c2VsZiBhbmQg cmVmZXJlbmNlZCBhcmUgcmV2ZXJzZWQgZm9yIHRoaXMgb25lLikKKwkgKi8KKwlPYmplY3RB ZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbnN0cmFpbnRSZWxhdGlvbklkLCBjb25vaWQpOwor CXJlY29yZERlcGVuZGVuY3lPbigmcmVmZXJlbmNlZCwgJm15c2VsZiwgREVQRU5ERU5DWV9J TlRFUk5BTCk7CisKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxvY2sp OworCisJcmV0dXJuIG9pZDsKK30KKwogLyoKICAqIFN0b3JlIGEgY2hlY2stY29uc3RyYWlu dCBleHByZXNzaW9uIGZvciB0aGUgZ2l2ZW4gcmVsYXRpb24uCiAgKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IGM0MTQ1MTMxY2U0Li40 MWYxZmIzNjczZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlv bl9zY2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2No ZW1hLnNxbApAQCAtMTIxMSw3ICsxMjExLDI4IEBAIEdSQU5UIFNFTEVDVCBPTiBwYXJhbWV0 ZXJzIFRPIFBVQkxJQzsKICAqIFBFUklPRFMgdmlldwogICovCiAKLS0tIGZlYXR1cmUgbm90 IHN1cHBvcnRlZAorQ1JFQVRFIFZJRVcgcGVyaW9kcyBBUworICAgIFNFTEVDVCBjdXJyZW50 X2RhdGFiYXNlKCk6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyB0YWJs ZV9jYXRhbG9nLAorICAgICAgICAgICBuYy5uc3BuYW1lOjppbmZvcm1hdGlvbl9zY2hlbWEu c3FsX2lkZW50aWZpZXIgQVMgdGFibGVfc2NoZW1hLAorICAgICAgICAgICBjLnJlbG5hbWU6 OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyB0YWJsZV9uYW1lLAorICAg ICAgICAgICBwLnBlcm5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBB UyBwZXJpb2RfbmFtZSwKKyAgICAgICAgICAgQ0FTRSBXSEVOIHBnX2hhc19yb2xlKGMucmVs b3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAgICBPUiBoYXNfY29sdW1uX3ByaXZp bGVnZShzYS5hdHRyZWxpZCwgc2EuYXR0bnVtLCAnU0VMRUNULCBJTlNFUlQsIFVQREFURSwg UkVGRVJFTkNFUycpCisgICAgICAgICAgICAgICAgVEhFTiBzYS5hdHRuYW1lOjppbmZvcm1h dGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIKKyAgICAgICAgICAgRU5EIEFTIHN0YXJ0X2Nv bHVtbl9uYW1lLAorICAgICAgICAgICBDQVNFIFdIRU4gcGdfaGFzX3JvbGUoYy5yZWxvd25l ciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgICAgIE9SIGhhc19jb2x1bW5fcHJpdmlsZWdl KGVhLmF0dHJlbGlkLCBlYS5hdHRudW0sICdTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBSRUZF UkVOQ0VTJykKKyAgICAgICAgICAgICAgICBUSEVOIGVhLmF0dG5hbWU6OmluZm9ybWF0aW9u X3NjaGVtYS5zcWxfaWRlbnRpZmllcgorICAgICAgICAgICBFTkQgQVMgZW5kX2NvbHVtbl9u YW1lCisgICAgRlJPTSBwZ19wZXJpb2QgQVMgcAorICAgIEpPSU4gcGdfY2xhc3MgQVMgYyBP TiBjLm9pZCA9IHAucGVycmVsaWQKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBBUyBuYyBPTiBu Yy5vaWQgPSBjLnJlbG5hbWVzcGFjZQorICAgIEpPSU4gcGdfYXR0cmlidXRlIEFTIHNhIE9O IChzYS5hdHRyZWxpZCwgc2EuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnN0YXJ0KQor ICAgIEpPSU4gcGdfYXR0cmlidXRlIEFTIGVhIE9OIChlYS5hdHRyZWxpZCwgZWEuYXR0bnVt KSA9IChwLnBlcnJlbGlkLCBwLnBlcmVuZCkKKyAgICBXSEVSRSBOT1QgcGdfaXNfb3RoZXJf dGVtcF9zY2hlbWEobmMub2lkKQorICAgICAgQU5EIGMucmVsa2luZCBJTiAoJ3InLCAndicp OworCitHUkFOVCBTRUxFQ1QgT04gcGVyaW9kcyBUTyBQVUJMSUM7CiAKIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9j YXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDJmM2RlZDhhMGU3Li5hMzcyZmIwYWFlOCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0yNiw2ICsyNiw3IEBAIGJhY2tlbmRfc291 cmNlcyArPSBmaWxlcygKICAgJ3BnX25hbWVzcGFjZS5jJywKICAgJ3BnX29wZXJhdG9yLmMn LAogICAncGdfcGFyYW1ldGVyX2FjbC5jJywKKyAgJ3BnX3BlcmlvZC5jJywKICAgJ3BnX3By b2MuYycsCiAgICdwZ19wdWJsaWNhdGlvbi5jJywKICAgJ3BnX3JhbmdlLmMnLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA4NWE3YjdlNjQxYS4uNDViNjI4ZGM1 NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC00NSw2ICs0NSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcmFtZXRlcl9hY2wu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtNzI3LDYgKzcyOCw5IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiZG9tYWluIGNvbnN0cmFpbnQi LCBPQkpFQ1RfRE9NQ09OU1RSQUlOVAogCX0sCisJeworCQkicGVyaW9kIiwgT0JKRUNUX1BF UklPRAorCX0sCiAJewogCQkiY29udmVyc2lvbiIsIE9CSkVDVF9DT05WRVJTSU9OCiAJfSwK QEAgLTk3MCw2ICs5NzQsNyBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0 eXBlLCBOb2RlICpvYmplY3QsCiAJCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQkJY2FzZSBP QkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJCWNhc2UgT0JKRUNUX1BPTElDWToKKwkJCWNhc2Ug T0JKRUNUX1BFUklPRDoKIAkJCQlhZGRyZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzX3JlbG9i amVjdChvYmp0eXBlLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpLAogCQkJCQkJCQkJCQkJCSAg ICZyZWxhdGlvbiwgbWlzc2luZ19vayk7CiAJCQkJYnJlYWs7CkBAIC0xNDY4LDYgKzE0NzMs MTMgQEAgZ2V0X29iamVjdF9hZGRyZXNzX3JlbG9iamVjdChPYmplY3RUeXBlIG9ianR5cGUs IExpc3QgKm9iamVjdCwKIAkJCQlJbnZhbGlkT2lkOwogCQkJYWRkcmVzcy5vYmplY3RTdWJJ ZCA9IDA7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgorCQkJYWRkcmVzcy5j bGFzc0lkID0gUGVyaW9kUmVsYXRpb25JZDsKKwkJCWFkZHJlc3Mub2JqZWN0SWQgPSByZWxh dGlvbiA/CisJCQkJZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQocmVsb2lkLCBkZXBuYW1lLCBt aXNzaW5nX29rKSA6CisJCQkJSW52YWxpZE9pZDsKKwkJCWFkZHJlc3Mub2JqZWN0U3ViSWQg PSAwOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCX0KQEAgLTIyODUsNiAr MjI5Nyw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQlj YXNlIE9CSkVDVF9SVUxFOgogCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQljYXNlIE9CSkVD VF9UQUJDT05TVFJBSU5UOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNU X09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQkJb2Jqbm9kZSA9IChOb2Rl ICopIG5hbWU7CkBAIC0yMzk1LDYgKzI0MDgsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlw KE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNz LAogCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNh c2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CisJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJCWlm ICghb2JqZWN0X293bmVyY2hlY2soUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJl bGlkKHJlbGF0aW9uKSwgcm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19O T1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsYXRpb24pKTsKQEAgLTMwNDMsNiArMzA1NywzOCBAQCBnZXRPYmplY3REZXNjcmlwdGlv bihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQli cmVhazsKIAkJCX0KIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQl7CisJCQkJSGVh cFR1cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3BlcmlvZCBwZXI7CisKKwkJCQlwZXJUdXAg PSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJCQkJCQkJCSBPYmplY3RJZEdldERh dHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocGVy VHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlv ZCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJcGVyID0gKEZvcm1fcGdf cGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwKTsKKworCQkJCWlmIChPaWRJc1ZhbGlkKHBlci0+ cGVycmVsaWQpKQorCQkJCXsKKwkJCQkJU3RyaW5nSW5mb0RhdGEgcmVsOworCisJCQkJCWlu aXRTdHJpbmdJbmZvKCZyZWwpOworCQkJCQlnZXRSZWxhdGlvbkRlc2NyaXB0aW9uKCZyZWws IHBlci0+cGVycmVsaWQsIGZhbHNlKTsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LCBfKCJwZXJpb2QgJXMgb24gJXMiKSwKKwkJCQkJCQkJCSBOYW1lU3RyKHBlci0+cGVybmFt ZSksIHJlbC5kYXRhKTsKKwkJCQkJcGZyZWUocmVsLmRhdGEpOworCQkJCX0KKwkJCQllbHNl CisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInBlcmlvZCAlcyIp LAorCQkJCQkJCQkJIE5hbWVTdHIocGVyLT5wZXJuYW1lKSk7CisJCQkJfQorCisJCQkJUmVs ZWFzZVN5c0NhY2hlKHBlclR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBDb252 ZXJzaW9uUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJY29uVHVwOwpAQCAtNDQ3 NCw2ICs0NTIwLDEwIEBAIGdldE9iamVjdFR5cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgbWlzc2luZ19v ayk7CiAJCQlicmVhazsKIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJwZXJpb2QiKTsKKwkJCWJyZWFrOworCiAJCWNh c2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZi dWZmZXIsICJjb252ZXJzaW9uIik7CiAJCQlicmVhazsKQEAgLTQ5NzksNiArNTAyOSwyOCBA QCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwK IAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQl7CisJ CQkJSGVhcFR1cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3BlcmlvZCBwZXI7CisKKwkJCQlw ZXJUdXAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJCQkJCQkJCSBPYmplY3RJ ZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFs aWQocGVyVHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHBlcmlvZCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJcGVyID0gKEZv cm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwKTsKKworCQkJCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZmZlciwgIiVzIG9uICIsCisJCQkJCQkJCSBxdW90ZV9pZGVudGlmaWVyKE5hbWVT dHIocGVyLT5wZXJuYW1lKSkpOworCQkJCWdldFJlbGF0aW9uSWRlbnRpdHkoJmJ1ZmZlciwg cGVyLT5wZXJyZWxpZCwgb2JqbmFtZSwgZmFsc2UpOworCQkJCWlmIChvYmpuYW1lKQorCQkJ CQkqb2JqbmFtZSA9IGxhcHBlbmQoKm9iam5hbWUsIHBzdHJkdXAoTmFtZVN0cihwZXItPnBl cm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVwKTsKKwkJCQlicmVhazsK KwkJCX0KKwogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgogCQkJewogCQkJCUhlYXBU dXBsZQljb25UdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Blcmlv ZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2QuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDY1YjViNjc1ZTMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3BlcmlvZC5jCkBAIC0wLDAgKzEsMTMyIEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wZXJpb2QuYworICoJICByb3V0aW5l cyB0byBzdXBwb3J0IG1hbmlwdWxhdGlvbiBvZiB0aGUgcGdfcGVyaW9kIHJlbGF0aW9uCisg KgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjEsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkg IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3Mv Z2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgi CisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgi CisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisvKgorICogRGVsZXRlIGEgc2lu Z2xlIHBlcmlvZCByZWNvcmQuCisgKi8KK3ZvaWQKK1JlbW92ZVBlcmlvZEJ5SWQoT2lkIHBl cmlvZElkKQoreworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwOworCisJ cGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVM b2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJT0RPSUQsIE9iamVjdElkR2V0 RGF0dW0ocGVyaW9kSWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkgLyogc2hv dWxkIG5vdCBoYXBwZW4gKi8KKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIHBlcmlvZCAldSIsIHBlcmlvZElkKTsKKworCS8qIEZyeSB0aGUgcGVyaW9kIGl0c2Vs ZiAqLworCUNhdGFsb2dUdXBsZURlbGV0ZShwZ19wZXJpb2QsICZ0dXAtPnRfc2VsZik7CisK KwkvKiBDbGVhbiB1cCAqLworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCXRhYmxlX2Nsb3Nl KHBnX3BlcmlvZCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisKKy8qCisgKiBnZXRfcmVsYXRp b25fcGVyaW9kX29pZAorICoJCUZpbmQgYSBwZXJpb2Qgb24gdGhlIHNwZWNpZmllZCByZWxh dGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KKyAqCQlSZXR1cm5zIHBlcmlvZCdzIE9J RC4KKyAqLworT2lkCitnZXRfcmVsYXRpb25fcGVyaW9kX29pZChPaWQgcmVsaWQsIGNvbnN0 IGNoYXIgKnBlcm5hbWUsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlSZWxhdGlvbglwZ19wZXJp b2Q7CisJSGVhcFR1cGxlCXR1cGxlOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURh dGEgc2tleVsyXTsKKwlPaWQJCQlwZXJPaWQgPSBJbnZhbGlkT2lkOworCisJLyogRmV0Y2gg dGhlIHBlcmlvZCB0dXBsZSBmcm9tIHBnX3BlcmlvZC4gKi8KKwlwZ19wZXJpb2QgPSB0YWJs ZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlTY2FuS2V5 SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVx dWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxp ZCkpOworCVNjYW5LZXlJbml0KCZza2V5WzFdLAorCQkJCUFudW1fcGdfcGVyaW9kX3Blcm5h bWUsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX05BTUVFUSwKKwkJCQlDU3RyaW5n R2V0RGF0dW0ocGVybmFtZSkpOworCisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ19w ZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJCQkJICBOVUxMLCAy LCBza2V5KTsKKworCS8qIFRoZXJlIGNhbiBiZSBhdCBtb3N0IG9uZSBtYXRjaGluZyByb3cg Ki8KKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Nh bikpKQorCQlwZXJPaWQgPSAoKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QodHVwbGUpKS0+ b2lkOworCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKworCS8qIElmIG5vIHN1Y2ggcGVy aW9kIGV4aXN0cywgY29tcGxhaW4gKi8KKwlpZiAoIU9pZElzVmFsaWQocGVyT2lkKSAmJiAh bWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInBlcmlvZCBcIiVzXCIgZm9yIHRhYmxl IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlwZXJuYW1lLCBnZXRfcmVsX25hbWUo cmVsaWQpKSkpOworCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBBY2Nlc3NTaGFyZUxvY2sp OworCisJcmV0dXJuIHBlck9pZDsKK30KKworLyoKKyAqIGdldF9wZXJpb2RfYXR0bm9zCisg KgkJR2V0IHRoZSBhdHRubyBvZiB0aGUgR0VORVJBVEVEIHJhbmdldHlwZSBjb2x1bW4KKyAq CQlmb3IgYWxsIFBFUklPRHMgaW4gdGhpcyB0YWJsZS4KKyAqLworZXh0ZXJuIEJpdG1hcHNl dAorKmdldF9wZXJpb2RfYXR0bm9zKE9pZCByZWxpZCkKK3sKKwlCaXRtYXBzZXQgKmF0dG5v cyA9IE5VTEw7CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUhlYXBUdXBsZQl0dXBsZTsKKwlT eXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIHNrZXlbMV07CisKKwlwZ19wZXJpb2Qg PSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlT Y2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJ CQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1 bShyZWxpZCkpOworCisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ19wZXJpb2QsIFBl cmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJCQkJICBOVUxMLCAxLCBza2V5KTsK KworCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChz Y2FuKSkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2QgPSAoRm9ybV9wZ19wZXJpb2Qp IEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJYXR0bm9zID0gYm1zX2FkZF9tZW1iZXIoYXR0bm9z LCBwZXJpb2QtPnBlcnJhbmdlKTsKKwl9CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOwor CXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiBh dHRub3M7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJl cy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggYzAw MmYzNzIwMmYuLjlhNzRiMGZhMjQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3NxbF9mZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVy ZXMudHh0CkBAIC00NDgsNyArNDQ4LDcgQEAgVDE3NglTZXF1ZW5jZSBnZW5lcmF0b3Igc3Vw cG9ydAkJCU5PCXN1cHBvcnRlZCBleGNlcHQgZm9yIE5FWFQgVkFMVUUgRk9SCiBUMTc3CVNl cXVlbmNlIGdlbmVyYXRvciBzdXBwb3J0OiBzaW1wbGUgcmVzdGFydCBvcHRpb24JCQlZRVMJ CiBUMTc4CUlkZW50aXR5IGNvbHVtbnM6IHNpbXBsZSByZXN0YXJ0IG9wdGlvbgkJCVlFUwkK IFQxODAJU3lzdGVtLXZlcnNpb25lZCB0YWJsZXMJCQlOTwkKLVQxODEJQXBwbGljYXRpb24t dGltZSBwZXJpb2QgdGFibGVzCQkJTk8JCitUMTgxCUFwcGxpY2F0aW9uLXRpbWUgcGVyaW9k IHRhYmxlcwkJCVlFUwkKIFQxOTEJUmVmZXJlbnRpYWwgYWN0aW9uIFJFU1RSSUNUCQkJWUVT CQogVDIwMAlUcmlnZ2VyIERETAkJCU5PCXNpbWlsYXIgYnV0IG5vdCBmdWxseSBjb21wYXRp YmxlCiBUMjAxCUNvbXBhcmFibGUgZGF0YSB0eXBlcyBmb3IgcmVmZXJlbnRpYWwgY29uc3Ry YWludHMJCQlZRVMJCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50 LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50LmMKaW5kZXggZTlkNTBmYzdkODcu LjA1ZmVmYjViNWNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50 LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVudC5jCkBAIC0xMDIsNiArMTAy LDE2IEBAIENvbW1lbnRPYmplY3QoQ29tbWVudFN0bXQgKnN0bXQpCiAJCQkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9uKSksCiAJCQkJCQkgZXJyZGV0YWlsX3JlbGtp bmRfbm90X3N1cHBvcnRlZChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kKSkpOwogCQkJYnJl YWs7CisKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgorCQkJLyogUGVyaW9kcyBjYW4gb25seSBn byBvbiB0YWJsZXMgKi8KKwkJCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJF TEtJTkRfUkVMQVRJT04pCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5v dCBhIHRhYmxlIiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24p KSkpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jCmluZGV4IDg1ZWVjN2UzOTQ3Li4zZDc4NzlmOTNjMSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC01MDQsNiArNTA0LDcgQEAgZG9lc19ub3RfZXhp c3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJCWNhc2Ug T0JKRUNUX0RPTUNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX0xBUkdFT0JKRUNUOgogCQlj YXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNh c2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfUFVCTElD QVRJT05fUkVMOgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IDdhNWVkNmI5ODUwLi5kNGQzNmNmZDViYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE3Niw2ICsyMTc2 LDcgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQlj YXNlIE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEVSQVRPUjoKIAkJY2FzZSBP QkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJY2FzZSBPQkpFQ1Rf UE9MSUNZOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJY2FzZSBPQkpFQ1RfUFVC TElDQVRJT05fTkFNRVNQQUNFOgpAQCAtMjI2MCw2ICsyMjYxLDcgQEAgc3RyaW5naWZ5X2Fk ZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BF UkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVDVF9QQVJBTUVU RVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNUX1BPTElDWToK IAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O X05BTUVTUEFDRToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVs LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IDU2MDcyNzNiZjlm Li5hZjcxNzcxNzljZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFi ZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCkBAIC03OSw2ICs3 OSw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVjdFR5cGUgb2JqdHlwZSkK IAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQlj YXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNh c2UgT0JKRUNUX1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNF OgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IGQyZGY0ODE2NjNlLi5lMzJlZmRmNjU1YiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2xhcmdlb2JqZWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Bl cmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwu aCIKQEAgLTE1NCw2ICsxNTUsMTEgQEAgdHlwZWRlZiBlbnVtIEFsdGVyVGFibGVQYXNzCiAJ QVRfUEFTU19PTERfSU5ERVgsCQkJLyogcmUtYWRkIGV4aXN0aW5nIGluZGV4ZXMgKi8KIAlB VF9QQVNTX09MRF9DT05TVFIsCQkJLyogcmUtYWRkIGV4aXN0aW5nIGNvbnN0cmFpbnRzICov CiAJLyogV2UgY291bGQgc3VwcG9ydCBhIFJFTkFNRSBDT0xVTU4gcGFzcyBoZXJlLCBidXQg bm90IGN1cnJlbnRseSB1c2VkICovCisJLyoKKwkgKiBXZSBtdXN0IGFkZCBQRVJJT0RzIGFm dGVyIGNvbHVtbnMsIGluIGNhc2UgdGhleSByZWZlcmVuY2UgYSBuZXdseS1hZGRlZCBjb2x1 bW4sCisJICogYW5kIGJlZm9yZSBjb25zdHJhaW50cywgaW4gY2FzZSBhIG5ld2x5LWFkZGVk IFBLL0ZLIHJlZmVyZW5jZXMgdGhlbS4KKwkgKi8KKwlBVF9QQVNTX0FERF9QRVJJT0QsCQkJ LyogQUREIFBFUklPRCAqLwogCUFUX1BBU1NfQUREX0NPTlNUUiwJCQkvKiBBREQgY29uc3Ry YWludHMgKGluaXRpYWwgZXhhbWluYXRpb24pICovCiAJQVRfUEFTU19DT0xfQVRUUlMsCQkJ Lyogc2V0IGNvbHVtbiBhdHRyaWJ1dGVzLCBlZyBOT1QgTlVMTCAqLwogCUFUX1BBU1NfQURE X0lOREVYQ09OU1RSLAkvKiBBREQgaW5kZXgtYmFzZWQgY29uc3RyYWludHMgKi8KQEAgLTM2 Miw2ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBSYW5nZVZhckNhbGxiYWNrRm9yVHJ1bmNhdGUo Y29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCU9pZCByZWxJZCwgT2lkIG9s ZFJlbElkLCB2b2lkICphcmcpOwogc3RhdGljIExpc3QgKk1lcmdlQXR0cmlidXRlcyhMaXN0 ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJ CQkJCQkJIGJvb2wgaXNfcGFydGl0aW9uLCBMaXN0ICoqc3VwY29uc3RyKTsKK3N0YXRpYyBM aXN0ICpNZXJnZVBlcmlvZHMoY2hhciAqcmVsbmFtZSwgTGlzdCAqcGVyaW9kcywgTGlzdCAq dGFibGVFbHRzLCBMaXN0ICpzdXBlcnMpOwogc3RhdGljIExpc3QgKk1lcmdlQ2hlY2tDb25z dHJhaW50KExpc3QgKmNvbnN0cmFpbnRzLCBjb25zdCBjaGFyICpuYW1lLCBOb2RlICpleHBy KTsKIHN0YXRpYyB2b2lkIE1lcmdlQ2hpbGRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMs IGludCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9hdHRubywgY29uc3QgQ29sdW1uRGVmICpu ZXdkZWYpOwogc3RhdGljIENvbHVtbkRlZiAqTWVyZ2VJbmhlcml0ZWRBdHRyaWJ1dGUoTGlz dCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgY29uc3QgQ29sdW1uRGVmICpuZXdk ZWYpOwpAQCAtNDQ0LDYgKzQ1MSw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Fk ZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCQkJCQkJ CQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKIHN0YXRpYyBib29sIGNo ZWNrX2Zvcl9jb2x1bW5fbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFy ICpjb2xuYW1lLAogCQkJCQkJCQkJCQlib29sIGlmX25vdF9leGlzdHMpOworc3RhdGljIGJv b2wgY2hlY2tfZm9yX3BlcmlvZF9uYW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0 IGNoYXIgKnBlcm5hbWUsCisJCQkJCQkJCQkJCWJvb2wgY29sZXhpc3RzLCBib29sIGlmX25v dF9leGlzdHMpOwogc3RhdGljIHZvaWQgYWRkX2NvbHVtbl9kYXRhdHlwZV9kZXBlbmRlbmN5 KE9pZCByZWxpZCwgaW50MzIgYXR0bnVtLCBPaWQgdHlwaWQpOwogc3RhdGljIHZvaWQgYWRk X2NvbHVtbl9jb2xsYXRpb25fZGVwZW5kZW5jeShPaWQgcmVsaWQsIGludDMyIGF0dG51bSwg T2lkIGNvbGxpZCk7CiBzdGF0aWMgdm9pZCBBVFByZXBEcm9wTm90TnVsbChSZWxhdGlvbiBy ZWwsIGJvb2wgcmVjdXJzZSwgYm9vbCByZWN1cnNpbmcpOwpAQCAtNDYzLDYgKzQ3MiwxMiBA QCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNDb2x1bW5EZWZhdWx0KFJlbGF0aW9uIHJl bCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkJCQkJCQkJCQkgTm9kZSAqbmV3RGVmYXVsdCwg TE9DS01PREUgbG9ja21vZGUpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjQ29va2Vk Q29sdW1uRGVmYXVsdChSZWxhdGlvbiByZWwsIEF0dHJOdW1iZXIgYXR0bnVtLAogCQkJCQkJ CQkJCQkgICBOb2RlICpuZXdEZWZhdWx0KTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhl Y0FkZFBlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERlZiAqcGVyaW9kLAorCQkJCQkJCQkJ IEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CitzdGF0aWMgdm9pZCBBVEV4 ZWNEcm9wUGVyaW9kKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqcGVyaW9kTmFtZSwKKwkJ CQkJCQkgRHJvcEJlaGF2aW9yIGJlaGF2aW9yLAorCQkJCQkJCSBib29sIHJlY3Vyc2UsIGJv b2wgcmVjdXJzaW5nLAorCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVj dEFkZHJlc3MgQVRFeGVjQWRkSWRlbnRpdHkoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpj b2xOYW1lLAogCQkJCQkJCQkJICAgTm9kZSAqZGVmLCBMT0NLTU9ERSBsb2NrbW9kZSwgYm9v bCByZWN1cnNlLCBib29sIHJlY3Vyc2luZyk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4 ZWNTZXRJZGVudGl0eShSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCkBAIC02 NjIsNiArNjc3LDEwIEBAIHN0YXRpYyBMaXN0ICpHZXRQYXJlbnRlZEZvcmVpZ25LZXlSZWZz KFJlbGF0aW9uIHBhcnRpdGlvbik7CiBzdGF0aWMgdm9pZCBBVERldGFjaENoZWNrTm9Gb3Jl aWduS2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmli dXRlQ29tcHJlc3Npb24oT2lkIGF0dHR5cGlkLCBjb25zdCBjaGFyICpjb21wcmVzc2lvbik7 CiBzdGF0aWMgY2hhciBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3Qg Y2hhciAqc3RvcmFnZW1vZGUpOworc3RhdGljIHZvaWQgQWRkUmVsYXRpb25OZXdQZXJpb2Qo UmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgdm9pZCBWYWxpZGF0 ZVBlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERlZiAqcGVyaW9kKTsKK3N0YXRpYyBDb25z dHJhaW50ICptYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlv ZERlZiAqcGVyaW9kKTsKK3N0YXRpYyBDb2x1bW5EZWYgKm1ha2VfcmFuZ2VfY29sdW1uX2Zv cl9wZXJpb2QoUGVyaW9kRGVmICpwZXJpb2QpOwogCiBzdGF0aWMgdm9pZCBBVEV4ZWNTcGxp dFBhcnRpdGlvbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCQkJ CQkJCSBSZWxhdGlvbiByZWwsIFBhcnRpdGlvbkNtZCAqY21kLApAQCAtODg4LDYgKzkwNyw3 OSBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9p ZCBvd25lcklkLAogCQkJCQkJc3RtdC0+cGFydGJvdW5kICE9IE5VTEwsCiAJCQkJCQkmb2xk X2NvbnN0cmFpbnRzKTsKIAorCS8qCisJICogVXNpbmcgdGhlIGNvbHVtbiBsaXN0IChpbmNs dWRpbmcgaW5oZXJpdGVkIGNvbHVtbnMpLAorCSAqIGZpbmQgdGhlIHN0YXJ0L2VuZCBjb2x1 bW5zIGZvciBlYWNoIHBlcmlvZC4KKwkgKiBQRVJJT0RzIHNob3VsZCBiZSBpbmhlcml0ZWQg dG9vIChidXQgYXJlbid0IHlldCkuCisJICovCisJc3RtdC0+cGVyaW9kcyA9IE1lcmdlUGVy aW9kcyhyZWxuYW1lLCBzdG10LT5wZXJpb2RzLCBzdG10LT50YWJsZUVsdHMsIGluaGVyaXRP aWRzKTsKKworCS8qCisJICogRm9yIGVhY2ggUEVSSU9EIHdlIG5lZWQgYSBHRU5FUkFURUQg Y29sdW1uLgorCSAqIFVzdWFsbHkgd2UgbXVzdCBjcmVhdGUgdGhpcywgc28gd2UgYWRkIGl0 IHRvIHRhYmxlRWx0cy4KKwkgKiBJZiB0aGUgdXNlciBzYXlzIHRoZSBjb2x1bW4gYWxyZWFk eSBleGlzdHMsCisJICogbWFrZSBzdXJlIGl0IGlzIHNlbnNpYmxlLgorCSAqIFRoZXNlIGNv bHVtbnMgYXJlIG5vdCBpbmhlcml0ZWQsCisJICogc28gd2UgZG9uJ3Qgd29ycnkgYWJvdXQg Y29uZmxpY3RzIGluIHRhYmxlRWx0cy4KKwkgKgorCSAqIFdlIGFsbG93IHRoaXMgY29sZXhp c3RzIG9wdGlvbiB0byBzdXBwb3J0IHBnX3VwZ3JhZGUsCisJICogc28gd2UgaGF2ZSBtb3Jl IGNvbnRyb2wgb3ZlciB0aGUgR0VORVJBVEVEIGNvbHVtbgorCSAqICh3aG9zZSBhdHRudW0g bXVzdCBtYXRjaCB0aGUgb2xkIHZhbHVlKS4KKwkgKi8KKwlmb3JlYWNoKGxpc3RwdHIsIHN0 bXQtPnBlcmlvZHMpCisJeworCQlQZXJpb2REZWYgKnBlcmlvZCA9IChQZXJpb2REZWYgKikg bGZpcnN0KGxpc3RwdHIpOworCisJCWlmIChwZXJpb2QtPmNvbGV4aXN0cykKKwkJeworCQkJ TGlzdENlbGwgKmNlbGw7CisJCQlib29sIGZvdW5kID0gZmFsc2U7CisKKwkJCWZvcmVhY2go Y2VsbCwgc3RtdC0+dGFibGVFbHRzKQorCQkJeworCQkJCUNvbHVtbkRlZiAgKmNvbERlZiA9 IGxmaXJzdChjZWxsKTsKKworCQkJCWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCBj b2xEZWYtPmNvbG5hbWUpID09IDApCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBMb3RzIHRv IGNoZWNrIGhlcmU6CisJCQkJCSAqIEl0IG11c3QgYmUgR0VORVJBVEVEIEFMV0FZUywKKwkJ CQkJICogaXQgbXVzdCBoYXZlIHRoZSByaWdodCBleHByZXNzaW9uLAorCQkJCQkgKiBpdCBt dXN0IGJlIHRoZSByaWdodCB0eXBlLAorCQkJCQkgKiBpdCBtdXN0IGJlIE5PVCBOVUxMLAor CQkJCQkgKiBpdCBtdXN0IG5vdCBiZSBpbmhlcml0ZWQuCisJCQkJCSAqLworCQkJCQlpZiAo Y29sRGVmLT5nZW5lcmF0ZWQgPT0gJ1wwJykKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJt c2coIlBlcmlvZCAlcyB1c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4iLCBwZXJpb2QtPnBl cmlvZG5hbWUpKSk7CisKKwkJCQkJaWYgKGNvbERlZi0+Z2VuZXJhdGVkICE9IEFUVFJJQlVU RV9HRU5FUkFURURfU1RPUkVEKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVy aW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgbm90IFNUT1JFRCIsIHBl cmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJCQkvLyBUT0RPOiBjaGVjayB0aGUgR0VORVJB VEVEIGV4cHJlc3Npb24gYWxzby4KKworCQkJCQlpZiAoIWNvbERlZi0+aXNfbm90X251bGwg JiYgIUlzQmluYXJ5VXBncmFkZSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBl cmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGFsbG93cyBudWxscyIsIHBl cmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJCQlpZiAocGVyaW9kLT5ybmd0eXBpZCAhPSB0 eXBlbmFtZVR5cGVJZChOVUxMLCBjb2xEZWYtPnR5cGVOYW1lKSkKKwkJCQkJCWVyZXBvcnQo RVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRo IHRoZSB3cm9uZyB0eXBlIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCWlmICgh Y29sRGVmLT5pc19sb2NhbCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlv ZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGluaGVyaXRlZCIsIHBlcmlv ZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJfQorCQkJfQor CisJCQlpZiAoIWZvdW5kKQorCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIk5vIGNvbHVt biBmb3VuZCB3aXRoIG5hbWUgJXMiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQlDb2x1bW5EZWYgKmNvbCA9IG1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9w ZXJpb2QocGVyaW9kKTsKKwkJCXN0bXQtPnRhYmxlRWx0cyA9IGxhcHBlbmQoc3RtdC0+dGFi bGVFbHRzLCBjb2wpOworCQl9CisJfQorCiAJLyoKIAkgKiBDcmVhdGUgYSB0dXBsZSBkZXNj cmlwdG9yIGZyb20gdGhlIHJlbGF0aW9uIHNjaGVtYS4gIE5vdGUgdGhhdCB0aGlzCiAJICog ZGVhbHMgd2l0aCBjb2x1bW4gbmFtZXMsIHR5cGVzLCBhbmQgbm90LW51bGwgY29uc3RyYWlu dHMsIGJ1dCBub3QKQEAgLTEyNjMsNiArMTM1NSwyMSBAQCBEZWZpbmVSZWxhdGlvbihDcmVh dGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQlBZGRSZWxhdGlv bk5ld0NvbnN0cmFpbnRzKHJlbCwgTklMLCBzdG10LT5jb25zdHJhaW50cywKIAkJCQkJCQkJ ICB0cnVlLCB0cnVlLCBmYWxzZSwgcXVlcnlTdHJpbmcpOwogCisJLyoKKwkgKiBDcmVhdGUg cGVyaW9kcyBmb3IgdGhlIHRhYmxlLiBUaGlzIG11c3QgY29tZSBhZnRlciB3ZSBjcmVhdGUg Y29sdW1ucworCSAqIGFuZCBiZWZvcmUgd2UgY3JlYXRlIGluZGV4IGNvbnN0cmFpbnRzLiBJ dCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlCisJICogYSBDSEVDSyBjb25zdHJhaW50IGZv ciB0aGUgcGVyaW9kLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwgc3RtdC0+cGVyaW9kcykK Kwl7CisJCVBlcmlvZERlZiAqcGVyaW9kID0gKFBlcmlvZERlZiAqKSBsZmlyc3QobGlzdHB0 cik7CisKKwkJLyogRG9uJ3QgdXBkYXRlIHRoZSBjb3VudCBvZiBjaGVjayBjb25zdHJhaW50 cyB0d2ljZSAqLworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJCUFkZFJlbGF0 aW9uTmV3UGVyaW9kKHJlbCwgcGVyaW9kKTsKKwl9CisKIAlPYmplY3RBZGRyZXNzU2V0KGFk ZHJlc3MsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsYXRpb25JZCk7CiAKIAkvKgpAQCAtMTM2 MCw2ICsxNDY3LDMxMiBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBMaXN0ICpjb2x1 bW5zKQogCXJldHVybiBkZXNjOwogfQogCisvKgorICogbWFrZV9jb25zdHJhaW50X2Zvcl9w ZXJpb2QKKyAqCisgKiBCdWlsZHMgYSBDSEVDSyBDb25zdHJhaW50IHRvIGVuc3VyZSBzdGFy dCA8IGVuZC4KKyAqIFJldHVybnMgdGhlIENIRUNLIENvbnN0cmFpbnQuCisgKiBBbHNvIGZp bGxzIGluIHBlcmlvZC0+Y29uc3RyYWludG5hbWUgaWYgbmVlZGVkLgorICoKKyAqIElmIGVp dGhlciBib3VuZCBpcyBOVUxMLCB0aGUgY29uc3RyYWludCBwYXNzZXMKKyAqIChzaW5jZSB0 aGF0IGluZGljYXRlcyBhbiB1bmJvdW5kZWQgcmFuZ2UpLgorICovCitzdGF0aWMgQ29uc3Ry YWludCAqCittYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlv ZERlZiAqcGVyaW9kKQoreworCUNvbHVtblJlZiAgKnNjb2wsICplY29sOworCUNvbnN0cmFp bnQgKmNvbnN0cjsKKwlUeXBlQ2FjaGVFbnRyeSAqdHlwZTsKKworCWlmIChwZXJpb2QtPmNv bnN0cmFpbnRuYW1lID09IE5VTEwpCisJCXBlcmlvZC0+Y29uc3RyYWludG5hbWUgPSBDaG9v c2VDb25zdHJhaW50TmFtZShSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLAorCQkJCQkJ CQkJCQkJCSAgcGVyaW9kLT5wZXJpb2RuYW1lLAorCQkJCQkJCQkJCQkJCSAgImNoZWNrIiwK KwkJCQkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCksCisJCQkJCQkJCQkJ CQkJICBOSUwpOworCXNjb2wgPSBtYWtlTm9kZShDb2x1bW5SZWYpOworCXNjb2wtPmZpZWxk cyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVwKHBlcmlvZC0+c3RhcnRjb2xuYW1l KSkpOworCXNjb2wtPmxvY2F0aW9uID0gMDsKKworCWVjb2wgPSBtYWtlTm9kZShDb2x1bW5S ZWYpOworCWVjb2wtPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVwKHBl cmlvZC0+ZW5kY29sbmFtZSkpKTsKKwllY29sLT5sb2NhdGlvbiA9IDA7CisKKwl0eXBlID0g bG9va3VwX3R5cGVfY2FjaGUocGVyaW9kLT5jb2x0eXBpZCwgVFlQRUNBQ0hFX0xUX09QUik7 CisJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGNhbm5vdCBiZSB1c2VkIGluIGEgUEVSSU9EIGJlY2F1c2Ug aXRzIHR5cGUgJXMgaGFzIG5vIGxlc3MgdGhhbiBvcGVyYXRvciIsCisJCQkJCQlwZXJpb2Qt PnN0YXJ0Y29sbmFtZSwgZm9ybWF0X3R5cGVfYmUocGVyaW9kLT5jb2x0eXBpZCkpKSk7CisK Kwljb25zdHIgPSBtYWtlTm9kZShDb25zdHJhaW50KTsKKwljb25zdHItPmNvbnR5cGUgPSBD T05TVFJfQ0hFQ0s7CisJY29uc3RyLT5jb25uYW1lID0gcGVyaW9kLT5jb25zdHJhaW50bmFt ZTsKKwljb25zdHItPmRlZmVycmFibGUgPSBmYWxzZTsKKwljb25zdHItPmluaXRkZWZlcnJl ZCA9IGZhbHNlOworCWNvbnN0ci0+bG9jYXRpb24gPSAtMTsKKwljb25zdHItPmlzX25vX2lu aGVyaXQgPSBmYWxzZTsKKwljb25zdHItPnJhd19leHByID0gKE5vZGUgKikgbWFrZVNpbXBs ZUFfRXhwcihBRVhQUl9PUCwKKwkJCQkJCQkJCQkJCSBnZXRfb3BuYW1lKHR5cGUtPmx0X29w ciksCisJCQkJCQkJCQkJCQkgKE5vZGUgKikgc2NvbCwKKwkJCQkJCQkJCQkJCSAoTm9kZSAq KSBlY29sLAorCQkJCQkJCQkJCQkJIDApOworCWNvbnN0ci0+Y29va2VkX2V4cHIgPSBOVUxM OworCWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uID0gZmFsc2U7CisJY29uc3RyLT5pbml0aWFs bHlfdmFsaWQgPSB0cnVlOworCisJcmV0dXJuIGNvbnN0cjsKK30KKworLyoKKyAqIG1ha2Vf cmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QKKyAqCisgKiBCdWlsZHMgYSBHRU5FUkFURUQgQUxX QVlTIHJhbmdlIGNvbHVtbiBiYXNlZCBvbiB0aGUgUEVSSU9ECisgKiBzdGFydC9lbmQgY29s dW1ucy4gUmV0dXJucyB0aGUgQ29sdW1uRGVmLgorICovCitDb2x1bW5EZWYgKgorbWFrZV9y YW5nZV9jb2x1bW5fZm9yX3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwljaGFyICpy YW5nZV90eXBlX25hbWVzcGFjZTsKKwljaGFyICpyYW5nZV90eXBlX25hbWU7CisJQ29sdW1u RGVmICpjb2wgPSBtYWtlTm9kZShDb2x1bW5EZWYpOworCUNvbHVtblJlZiAqc3RhcnR2YXIs ICplbmR2YXI7CisJRXhwciAqcmFuZ2VDb25zdHJ1Y3RvcjsKKworCWlmICghZ2V0X3R5cG5h bWVfYW5kX25hbWVzcGFjZShwZXJpb2QtPnJuZ3R5cGlkLCAmcmFuZ2VfdHlwZV9uYW1lLCAm cmFuZ2VfdHlwZV9uYW1lc3BhY2UpKQorCQllbG9nKEVSUk9SLCAibWlzc2luZyByYW5nZSB0 eXBlICVkIiwgcGVyaW9kLT5ybmd0eXBpZCk7CisKKwlzdGFydHZhciA9IG1ha2VOb2RlKENv bHVtblJlZik7CisJc3RhcnR2YXItPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhw c3RyZHVwKHBlcmlvZC0+c3RhcnRjb2xuYW1lKSkpOworCWVuZHZhciA9IG1ha2VOb2RlKENv bHVtblJlZik7CisJZW5kdmFyLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmcocHN0 cmR1cChwZXJpb2QtPmVuZGNvbG5hbWUpKSk7CisJcmFuZ2VDb25zdHJ1Y3RvciA9IChFeHBy ICopIG1ha2VGdW5jQ2FsbCgKKwkJCWxpc3RfbWFrZTIobWFrZVN0cmluZyhyYW5nZV90eXBl X25hbWVzcGFjZSksIG1ha2VTdHJpbmcocmFuZ2VfdHlwZV9uYW1lKSksCisJCQlsaXN0X21h a2UyKHN0YXJ0dmFyLCBlbmR2YXIpLAorCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQlw ZXJpb2QtPmxvY2F0aW9uKTsKKworCWNvbC0+Y29sbmFtZSA9IHBzdHJkdXAocGVyaW9kLT5w ZXJpb2RuYW1lKTsKKwljb2wtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lKHJhbmdlX3R5cGVf bmFtZSk7CisJY29sLT5jb21wcmVzc2lvbiA9IE5VTEw7CisJY29sLT5pbmhjb3VudCA9IDA7 CisJY29sLT5pc19sb2NhbCA9IHRydWU7CisJY29sLT5pc19ub3RfbnVsbCA9IHRydWU7CisJ Y29sLT5pc19mcm9tX3R5cGUgPSBmYWxzZTsKKwljb2wtPnN0b3JhZ2UgPSAwOworCWNvbC0+ c3RvcmFnZV9uYW1lID0gTlVMTDsKKwljb2wtPnJhd19kZWZhdWx0ID0gKE5vZGUgKikgcmFu Z2VDb25zdHJ1Y3RvcjsKKwljb2wtPmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKKwljb2wtPmlk ZW50aXR5ID0gMDsKKwljb2wtPmdlbmVyYXRlZCA9IEFUVFJJQlVURV9HRU5FUkFURURfU1RP UkVEOworCWNvbC0+Y29sbENsYXVzZSA9IE5VTEw7CisJY29sLT5jb2xsT2lkID0gSW52YWxp ZE9pZDsKKwljb2wtPmZkd29wdGlvbnMgPSBOSUw7CisJY29sLT5sb2NhdGlvbiA9IHBlcmlv ZC0+bG9jYXRpb247CisKKwlyZXR1cm4gY29sOworfQorCisvKgorICogVmFsaWRhdGVQZXJp b2QKKyAqCisgKiBMb29rIHVwIHRoZSBhdHRyaWJ1dGVzIHVzZWQgYnkgdGhlIFBFUklPRCwK KyAqIG1ha2Ugc3VyZSB0aGV5IGV4aXN0LCBhcmUgbm90IHN5c3RlbSBjb2x1bW5zLAorICog YW5kIGhhdmUgdGhlIHNhbWUgdHlwZSBhbmQgY29sbGF0aW9uLgorICoKKyAqIFlvdSBtdXN0 IGhhdmUgYSBSb3dFeGNsdXNpdmVMb2NrIG9uIHBnX2F0dHJpYnV0ZQorICogYmVmb3JlIGNh bGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBBZGQgb3VyIGZpbmRpbmdzIHRvIHRoZXNl IFBlcmlvZERlZiBmaWVsZHM6CisgKgorICogY29sdHlwaWQgLSB0aGUgdHlwZSBvZiBQRVJJ T0QgY29sdW1ucy4KKyAqIHN0YXJ0YXR0bnVtIC0gdGhlIGF0dG51bSBvZiB0aGUgc3RhcnQg Y29sdW1uLgorICogZW5kYXR0bnVtIC0gdGhlIGF0dG51bSBvZiB0aGUgZW5kIGNvbHVtbi4K KyAqIHJuZ3R5cGlkIC0gdGhlIHJhbmdlIHR5cGUgdG8gdXNlLgorICogcm5nYXR0bnVtIC0g dGhlIGF0dG51bSBvZiBhIHByZS1leGlzdGluZyByYW5nZSBjb2x1bW4sIG9yIEludmFsaWQu CisgKi8KK3N0YXRpYyB2b2lkCitWYWxpZGF0ZVBlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlv ZERlZiAqcGVyaW9kKQoreworCUhlYXBUdXBsZSBzdGFydHR1cGxlOworCUhlYXBUdXBsZSBl bmR0dXBsZTsKKwlGb3JtX3BnX2F0dHJpYnV0ZQlhdHR0dXBsZTsKKwlPaWQJYXR0Y29sbGF0 aW9uOworCisJLyogRmluZCB0aGUgc3RhcnQgY29sdW1uICovCisJc3RhcnR0dXBsZSA9IFNl YXJjaFN5c0NhY2hlQ29weUF0dE5hbWUoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2Qt PnN0YXJ0Y29sbmFtZSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHN0YXJ0dHVwbGUpKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVN TiksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9l cyBub3QgZXhpc3QiLAorCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUsIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJYXR0dHVwbGUgPSAoRm9ybV9wZ19hdHRyaWJ1dGUp IEdFVFNUUlVDVChzdGFydHR1cGxlKTsKKwlwZXJpb2QtPmNvbHR5cGlkID0gYXR0dHVwbGUt PmF0dHR5cGlkOworCWF0dGNvbGxhdGlvbiA9IGF0dHR1cGxlLT5hdHRjb2xsYXRpb247CisJ cGVyaW9kLT5zdGFydGF0dG51bSA9IGF0dHR1cGxlLT5hdHRudW07CisKKwkvKiBNYWtlIHN1 cmUgaXQncyBub3QgYSBzeXN0ZW0gY29sdW1uICovCisJaWYgKHBlcmlvZC0+c3RhcnRhdHRu dW0gPD0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coImNhbm5vdCB1c2Ugc3lzdGVt IGNvbHVtbiBcIiVzXCIgaW4gcGVyaW9kIiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1l KSkpOworCisJLyogRmluZCB0aGUgZW5kIGNvbHVtbiAqLworCWVuZHR1cGxlID0gU2VhcmNo U3lzQ2FjaGVDb3B5QXR0TmFtZShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+ZW5k Y29sbmFtZSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKGVuZHR1cGxlKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJ CSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwKKwkJCQkJCXBlcmlvZC0+ZW5kY29sbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsKSkpKTsKKwlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNU KGVuZHR1cGxlKTsKKwlwZXJpb2QtPmVuZGF0dG51bSA9IGF0dHR1cGxlLT5hdHRudW07CisK KwkvKiBNYWtlIHN1cmUgaXQncyBub3QgYSBzeXN0ZW0gY29sdW1uICovCisJaWYgKHBlcmlv ZC0+ZW5kYXR0bnVtIDw9IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJjYW5ub3Qg dXNlIHN5c3RlbSBjb2x1bW4gXCIlc1wiIGluIHBlcmlvZCIsCisJCQkJCQlwZXJpb2QtPmVu ZGNvbG5hbWUpKSk7CisKKwkvKiBCb3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBzYW1lIHR5cGUg Ki8KKwlpZiAocGVyaW9kLT5jb2x0eXBpZCAhPSBhdHR0dXBsZS0+YXR0dHlwaWQpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks CisJCQkJIGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGJl IG9mIHNhbWUgdHlwZSIpKSk7CisKKwkvKiBCb3RoIGNvbHVtbnMgbXVzdCBoYXZlIHRoZSBz YW1lIGNvbGxhdGlvbiAqLworCWlmIChhdHRjb2xsYXRpb24gIT0gYXR0dHVwbGUtPmF0dGNv bGxhdGlvbikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0NPTExB VElPTl9NSVNNQVRDSCksCisJCQkJIGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9m IHBlcmlvZCBtdXN0IGhhdmUgc2FtZSBjb2xsYXRpb24iKSkpOworCisJLyogR2V0IHRoZSBy YW5nZSB0eXBlIGJhc2VkIG9uIHRoZSBzdGFydC9lbmQgY29scyBvciB0aGUgdXNlcidzIGNo b2ljZSAqLworCXBlcmlvZC0+cm5ndHlwaWQgPSBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9wZXJp b2QocGVyaW9kKTsKKworCS8qIElmIHRoZSBHRU5FUkFURUQgY29sdW1ucyBzaG91bGQgYWxy ZWFkeSBleGlzdCwgbWFrZSBzdXJlIGl0IGlzIHNlbnNpYmxlLiAqLworCWlmIChwZXJpb2Qt PmNvbGV4aXN0cykKKwl7CisJCUhlYXBUdXBsZSBybmd0dXBsZSA9IFNlYXJjaFN5c0NhY2hl Q29weUF0dE5hbWUoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2QtPnBlcmlvZG5hbWUp OworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocm5ndHVwbGUpKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkJIGVy cm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJCXBlcmlvZC0+cGVyaW9kbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsKSkpKTsKKwkJYXR0dHVwbGUgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVChy bmd0dXBsZSk7CisKKwkJLyoKKwkJICogTG90cyB0byBjaGVjayBoZXJlOgorCQkgKiBJdCBt dXN0IGJlIEdFTkVSQVRFRCBBTFdBWVMsCisJCSAqIGl0IG11c3QgaGF2ZSB0aGUgcmlnaHQg ZXhwcmVzc2lvbiwKKwkJICogaXQgbXVzdCBiZSB0aGUgcmlnaHQgdHlwZSwKKwkJICogaXQg bXVzdCBiZSBOT1QgTlVMTCwKKwkJICogaXQgbXVzdCBub3QgYmUgaW5oZXJpdGVkLgorCQkg Ki8KKwkJaWYgKGF0dHR1cGxlLT5hdHRnZW5lcmF0ZWQgPT0gJ1wwJykKKwkJCWVyZXBvcnQo RVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4i LCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJaWYgKGF0dHR1cGxlLT5hdHRnZW5lcmF0 ZWQgIT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJCQllcmVwb3J0KEVSUk9SLCAo ZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBub3Qg U1RPUkVEIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCS8vIFRPRE86IGNoZWNrIHRo ZSBHRU5FUkFURUQgZXhwcmVzc2lvbiBhbHNvLgorCisJCWlmICghYXR0dHVwbGUtPmF0dG5v dG51bGwgJiYgIUlzQmluYXJ5VXBncmFkZSkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2co IlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGFsbG93cyBudWxscyIs IHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlpZiAocGVyaW9kLT5ybmd0eXBpZCAhPSBh dHR0dXBsZS0+YXR0dHlwaWQpCisJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2Qg JXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0aCB0aGUgd3JvbmcgdHlwZSIsIHBlcmlv ZC0+cGVyaW9kbmFtZSkpKTsKKworCQlpZiAoIWF0dHR1cGxlLT5hdHRpc2xvY2FsKQorCQkJ ZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29s dW1uIHRoYXQgaXMgaW5oZXJpdGVkIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCXBl cmlvZC0+cm5nYXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKworCQloZWFwX2ZyZWV0dXBs ZShybmd0dXBsZSk7CisJfQorCisJaGVhcF9mcmVldHVwbGUoc3RhcnR0dXBsZSk7CisJaGVh cF9mcmVldHVwbGUoZW5kdHVwbGUpOworfQorCisvKgorICogY2hvb3NlX3JhbmdldHlwZV9m b3JfcGVyaW9kCisgKgorICogRmluZCBhIHN1aXRhYmxlIHJhbmdlIHR5cGUgZm9yIG9wZXJh dGlvbnMgaW52b2x2aW5nIHRoaXMgcGVyaW9kLgorICogVXNlIHRoZSByYW5nZXR5cGUgb3B0 aW9uIGlmIHByb3ZpZGVkLCBvdGhlcndpc2UgdHJ5IHRvIGZpbmQgYQorICogbm9uLWFtYmln dW91cyBleGlzdGluZyB0eXBlLgorICovCitPaWQKK2Nob29zZV9yYW5nZXR5cGVfZm9yX3Bl cmlvZChQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlPaWQJcm5ndHlwaWQ7CisKKwlpZiAocGVy aW9kLT5yYW5nZXR5cGVuYW1lICE9IE5VTEwpCisJeworCQkvKiBNYWtlIHN1cmUgaXQgZXhp c3RzICovCisJCXJuZ3R5cGlkID0gVHlwZW5hbWVHZXRUeXBpZEV4dGVuZGVkKHBlcmlvZC0+ cmFuZ2V0eXBlbmFtZSwgZmFsc2UpOworCQlpZiAocm5ndHlwaWQgPT0gSW52YWxpZE9pZCkK KwkJCWVyZXBvcnQoRVJST1IsIChlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCks CisJCQkJCSBlcnJtc2coIlJhbmdlIHR5cGUgJXMgbm90IGZvdW5kIiwgcGVyaW9kLT5yYW5n ZXR5cGVuYW1lKSkpOworCisJCS8qIE1ha2Ugc3VyZSBpdCBpcyBhIHJhbmdlIHR5cGUgKi8K KwkJaWYgKCF0eXBlX2lzX3JhbmdlKHJuZ3R5cGlkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNn KCJUeXBlICVzIGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBwZXJpb2QtPnJhbmdldHlwZW5hbWUp KSk7CisKKwkJLyogTWFrZSBzdXJlIGl0IG1hdGNoZXMgdGhlIGNvbHVtbiB0eXBlICovCisJ CWlmIChnZXRfcmFuZ2Vfc3VidHlwZShybmd0eXBpZCkgIT0gcGVyaW9kLT5jb2x0eXBpZCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkgZXJybXNnKCJSYW5nZSB0eXBlICVzIGRvZXMgbm90IG1hdGNoIGNv bHVtbiB0eXBlICVzIiwKKwkJCQkJCSBwZXJpb2QtPnJhbmdldHlwZW5hbWUsCisJCQkJCQkg Zm9ybWF0X3R5cGVfYmUocGVyaW9kLT5jb2x0eXBpZCkpKSk7CisJfQorCWVsc2UKKwl7CisJ CXJuZ3R5cGlkID0gZ2V0X3N1YnR5cGVfcmFuZ2UocGVyaW9kLT5jb2x0eXBpZCk7CisJCWlm IChybmd0eXBpZCA9PSBJbnZhbGlkT2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygibm8gcmFu Z2UgdHlwZSBmb3IgJXMgZm91bmQgZm9yIHBlcmlvZCAlcyIsCisJCQkJCQkJZm9ybWF0X3R5 cGVfYmUocGVyaW9kLT5jb2x0eXBpZCksCisJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lKSwK KwkJCQkJIGVycmhpbnQoIllvdSBjYW4gZGVmaW5lIGEgY3VzdG9tIHJhbmdlIHR5cGUgd2l0 aCBDUkVBVEUgVFlQRSIpKSk7CisKKwl9CisKKwlyZXR1cm4gcm5ndHlwaWQ7Cit9CisKK3N0 YXRpYyB2b2lkCitBZGRSZWxhdGlvbk5ld1BlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERl ZiAqcGVyaW9kKQoreworCVJlbGF0aW9uCWF0dHJlbGF0aW9uOworCU9pZAkJCWNvbm9pZDsK KwlDb25zdHJhaW50ICpjb25zdHI7CisJTGlzdAkgICAqbmV3Y29uc3RyczsKKworCWF0dHJl bGF0aW9uID0gdGFibGVfb3BlbihBdHRyaWJ1dGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVM b2NrKTsKKworCS8qIEZpbmQgdGhlIEdFTkVSQVRFRCByYW5nZSBjb2x1bW4gKi8KKworCXBl cmlvZC0+cm5nYXR0bnVtID0gZ2V0X2F0dG51bShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBl cmlvZC0+cGVyaW9kbmFtZSk7CisJaWYgKHBlcmlvZC0+cm5nYXR0bnVtID09IEludmFsaWRB dHRyTnVtYmVyKQorCQllbG9nKEVSUk9SLCAibWlzc2luZyBhdHRyaWJ1dGUgJXMiLCBwZXJp b2QtPnBlcmlvZG5hbWUpOworCisJLyogVGhlIHBhcnNlciBoYXMgYWxyZWFkeSBmb3VuZCBw ZXJpb2QtPmNvbHR5cGlkICovCisKKwljb25zdHIgPSBtYWtlX2NvbnN0cmFpbnRfZm9yX3Bl cmlvZChyZWwsIHBlcmlvZCk7CisJbmV3Y29uc3RycyA9IEFkZFJlbGF0aW9uTmV3Q29uc3Ry YWludHMocmVsLCBOSUwsIGxpc3RfbWFrZTEoY29uc3RyKSwgZmFsc2UsIHRydWUsIHRydWUs IE5VTEwpOworCWNvbm9pZCA9ICgoQ29va2VkQ29uc3RyYWludCAqKSBsaW5pdGlhbChuZXdj b25zdHJzKSktPmNvbm9pZDsKKworCS8qIFNhdmUgaXQgKi8KKwlTdG9yZVBlcmlvZChyZWws IHBlcmlvZC0+cGVyaW9kbmFtZSwgcGVyaW9kLT5zdGFydGF0dG51bSwgcGVyaW9kLT5lbmRh dHRudW0sIHBlcmlvZC0+cm5nYXR0bnVtLCBjb25vaWQpOworCisJdGFibGVfY2xvc2UoYXR0 cmVsYXRpb24sIFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCiAvKgogICogRW1pdCB0aGUgcmln aHQgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlIGZvciBhICJEUk9QIiBjb21tYW5kIGlzc3Vl ZCBvbiBhCiAgKiBub24tZXhpc3RlbnQgcmVsYXRpb24KQEAgLTMwMDgsNiArMzQyMSwxNjgg QEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMsIGNvbnN0IExpc3QgKnN1cGVycywg Y2hhciByZWxwZXJzaXN0ZW5jZSwKIH0KIAogCisvKi0tLS0tLS0tLS0KKyAqIE1lcmdlUGVy aW9kcworICoJCVJldHVybnMgbmV3IHBlcmlvZCBsaXN0IGdpdmVuIGluaXRpYWwgcGVyaW9k cyBhbmQgc3VwZXJjbGFzc2VzLgorICoKKyAqIEZvciBub3cgd2UgZG9uJ3Qgc3VwcG9ydCBp bmhlcml0ZW5jZSB3aXRoIFBFUklPRHMsCisgKiBidXQgd2UgbWlnaHQgbWFrZSBpdCB3b3Jr IGV2ZW50dWFsbHkuCisgKgorICogV2UgY2FuIG9taXQgbG90cyBvZiBjaGVja3MgaGVyZSBh bmQgYXNzdW1lIE1lcmdlQXR0cmlidXRlcyBhbHJlYWR5IGRpZCB0aGVtLAorICogZm9yIGV4 YW1wbGUgdGhhdCBjaGlsZCAmIHBhcmVudHMgYXJlIG5vdCBhIG1peCBvZiBwZXJtYW5lbnQg YW5kIHRlbXAuCisgKi8KK3N0YXRpYyBMaXN0ICoKK01lcmdlUGVyaW9kcyhjaGFyICpyZWxu YW1lLCBMaXN0ICpwZXJpb2RzLCBMaXN0ICp0YWJsZUVsdHMsIExpc3QgKnN1cGVycykKK3sK KwlMaXN0Q2VsbCAgICplbnRyeTsKKworCS8qIElmIHdlIGhhdmUgYSBQRVJJT0QgdGhlbiBz dXBlcnMgbXVzdCBiZSBlbXB0eS4gKi8KKworCWlmIChsaXN0X2xlbmd0aChwZXJpb2RzKSA+ IDAgJiYgbGlzdF9sZW5ndGgoc3VwZXJzKSA+IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2co IkluaGVyaXRpbmcgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGEgdGFibGUgaGFzIGEgUEVSSU9E IikpKTsKKworCS8qIElmIGFueSBwYXJlbnQgdGFibGUgaGFzIGEgUEVSSU9ELCB0aGVuIGZh aWwuICovCisKKwlmb3JlYWNoKGVudHJ5LCBzdXBlcnMpCisJeworCQlPaWQJCQlwYXJlbnQg PSBsZmlyc3Rfb2lkKGVudHJ5KTsKKwkJUmVsYXRpb24JcmVsYXRpb247CisJCVJlbGF0aW9u CXBnX3BlcmlvZDsKKwkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJU2NhbktleURhdGEgc2tleVsx XTsKKwkJSGVhcFR1cGxlCXR1cGxlOworCisJCS8qIGNhbGxlciBhbHJlYWR5IGdvdCBsb2Nr ICovCisJCXJlbGF0aW9uID0gdGFibGVfb3BlbihwYXJlbnQsIE5vTG9jayk7CisJCXBnX3Bl cmlvZCA9IHRhYmxlX29wZW4oUGVyaW9kUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsK KworCQlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQkJQW51bV9wZ19wZXJpb2RfcGVycmVs aWQsCisJCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQkJT2JqZWN0 SWRHZXREYXR1bShwYXJlbnQpKTsKKworCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBn X3BlcmlvZCwgUGVyaW9kUmVsaWROYW1lSW5kZXhJZCwgdHJ1ZSwKKwkJCQkJCQkJICBOVUxM LCAxLCBza2V5KTsKKworCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxl X2dldG5leHQoc2NhbikpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJJbmhlcml0aW5n IGZyb20gYSB0YWJsZSB3aXRoIGEgUEVSSU9EIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCisJ CXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgQWNj ZXNzU2hhcmVMb2NrKTsKKwkJdGFibGVfY2xvc2UocmVsYXRpb24sIE5vTG9jayk7CisJfQor CisJLyoKKwkgKiBGaW5kIHRoZSBzdGFydCAmIGVuZCBjb2x1bW5zIGFuZCBnZXQgdGhlaXIg YXR0bm8gYW5kIHR5cGUuCisJICogSW4gdGhlIHNhbWUgcGFzcywgbWFrZSBzdXJlIHRoZSBw ZXJpb2QgZG9lc24ndCBjb25mbGljdCB3aXRoIGFueSBjb2x1bW4gbmFtZXMuCisJICogQWxz byBtYWtlIHN1cmUgdGhlIHNhbWUgcGVyaW9kIG5hbWUgaXNuJ3QgdXNlZCBtb3JlIHRoYW4g b25jZS4KKwkgKi8KKwlmb3JlYWNoIChlbnRyeSwgcGVyaW9kcykKKwl7CisJCVBlcmlvZERl ZiAqcGVyaW9kID0gbGZpcnN0KGVudHJ5KTsKKwkJTGlzdENlbGwgKmVudHJ5MjsKKwkJaW50 IGkgPSAxOworCQlPaWQgc3RhcnRjb2x0eXBpZCA9IEludmFsaWRPaWQ7CisJCU9pZCBlbmRj b2x0eXBpZCA9IEludmFsaWRPaWQ7CisJCU9pZAlzdGFydGNvbGNvbGxhdGlvbiA9IEludmFs aWRPaWQ7CisJCU9pZAllbmRjb2xjb2xsYXRpb24gPSBJbnZhbGlkT2lkOworCisJCXBlcmlv ZC0+c3RhcnRhdHRudW0gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwkJcGVyaW9kLT5lbmRhdHRu dW0gPSBJbnZhbGlkQXR0ck51bWJlcjsKKworCQlpZiAoU3lzdGVtQXR0cmlidXRlQnlOYW1l KHBlcmlvZC0+cGVyaW9kbmFtZSkgIT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJCSBlcnJtc2coInBl cmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0aCBhIHN5c3RlbSBjb2x1bW4gbmFtZSIs CisJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWZvcmVhY2ggKGVudHJ5Miwg cGVyaW9kcykKKwkJeworCQkJUGVyaW9kRGVmICpwZXJpb2QyID0gbGZpcnN0KGVudHJ5Mik7 CisKKwkJCWlmIChwZXJpb2QgIT0gcGVyaW9kMiAmJiBzdHJjbXAocGVyaW9kLT5wZXJpb2Ru YW1lLCBwZXJpb2QyLT5wZXJpb2RuYW1lKSA9PSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkJIGVycm1z ZygicGVyaW9kIG5hbWUgXCIlc1wiIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZSIsCisJCQkJ CQkJCXBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKwkJfQorCisJCWZvcmVhY2ggKGVudHJ5Miwg dGFibGVFbHRzKQorCQl7CisJCQlDb2x1bW5EZWYgKmNvbCA9IGxmaXJzdChlbnRyeTIpOwor CQkJaW50MzIJYXR0dHlwbW9kOworCQkJQWNsUmVzdWx0IGFjbHJlc3VsdDsKKworCQkJaWYg KCFwZXJpb2QtPmNvbGV4aXN0cyAmJiBzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCBjb2wt PmNvbG5hbWUpID09IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFtZSBc IiVzXCIgY29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZSIsCisJCQkJCQkJCXBlcmlvZC0+ cGVyaW9kbmFtZSkpKTsKKworCQkJaWYgKHN0cmNtcChwZXJpb2QtPnN0YXJ0Y29sbmFtZSwg Y29sLT5jb2xuYW1lKSA9PSAwKQorCQkJeworCQkJCXBlcmlvZC0+c3RhcnRhdHRudW0gPSBp OworCisJCQkJdHlwZW5hbWVUeXBlSWRBbmRNb2QoTlVMTCwgY29sLT50eXBlTmFtZSwgJnN0 YXJ0Y29sdHlwaWQsICZhdHR0eXBtb2QpOworCisJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2Fj bGNoZWNrKFR5cGVSZWxhdGlvbklkLCBzdGFydGNvbHR5cGlkLCBHZXRVc2VySWQoKSwgQUNM X1VTQUdFKTsKKwkJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCQlhY2xj aGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwgc3RhcnRjb2x0eXBpZCk7CisKKwkJCQlzdGFy dGNvbGNvbGxhdGlvbiA9IEdldENvbHVtbkRlZkNvbGxhdGlvbihOVUxMLCBjb2wsIHN0YXJ0 Y29sdHlwaWQpOworCQkJfQorCisJCQlpZiAoc3RyY21wKHBlcmlvZC0+ZW5kY29sbmFtZSwg Y29sLT5jb2xuYW1lKSA9PSAwKQorCQkJeworCQkJCXBlcmlvZC0+ZW5kYXR0bnVtID0gaTsK KworCQkJCXR5cGVuYW1lVHlwZUlkQW5kTW9kKE5VTEwsIGNvbC0+dHlwZU5hbWUsICZlbmRj b2x0eXBpZCwgJmF0dHR5cG1vZCk7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soVHlwZVJlbGF0aW9uSWQsIGVuZGNvbHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdF KTsKKwkJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCQlhY2xjaGVja19l cnJvcl90eXBlKGFjbHJlc3VsdCwgZW5kY29sdHlwaWQpOworCisJCQkJZW5kY29sY29sbGF0 aW9uID0gR2V0Q29sdW1uRGVmQ29sbGF0aW9uKE5VTEwsIGNvbCwgZW5kY29sdHlwaWQpOwor CQkJfQorCisJCQlpKys7CisJCX0KKworCQkvKiBEaWQgd2UgZmluZCB0aGUgY29sdW1ucz8g Ki8KKwkJaWYgKHBlcmlvZC0+c3RhcnRhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xV TU4pLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBk b2VzIG5vdCBleGlzdCIsCisJCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUsIHJlbG5hbWUp KSk7CisJCWlmIChwZXJpb2QtPmVuZGF0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVN TiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlwZXJpb2QtPmVuZGNvbG5hbWUsIHJlbG5hbWUpKSk7 CisKKwkJLyogQm90aCBjb2x1bW5zIG11c3QgYmUgb2Ygc2FtZSB0eXBlICovCisJCWlmIChz dGFydGNvbHR5cGlkICE9IGVuZGNvbHR5cGlkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInN0 YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBiZSBvZiBzYW1lIHR5cGUiKSkp OworCisJCS8qIEJvdGggY29sdW1ucyBtdXN0IGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uICov CisJCWlmIChzdGFydGNvbGNvbGxhdGlvbiAhPSBlbmRjb2xjb2xsYXRpb24pCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NPTExBVElPTl9NSVNNQVRDSCks CisJCQkJCSBlcnJtc2coInN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBo YXZlIHNhbWUgY29sbGF0aW9uIikpKTsKKworCQlwZXJpb2QtPmNvbHR5cGlkID0gc3RhcnRj b2x0eXBpZDsKKwkJcGVyaW9kLT5ybmd0eXBpZCA9IGNob29zZV9yYW5nZXR5cGVfZm9yX3Bl cmlvZChwZXJpb2QpOworCX0KKworCXJldHVybiBwZXJpb2RzOworfQorCiAvKgogICogTWVy Z2VDaGVja0NvbnN0cmFpbnQKICAqCQlUcnkgdG8gbWVyZ2UgYW4gaW5oZXJpdGVkIENIRUNL IGNvbnN0cmFpbnQgd2l0aCBwcmV2aW91cyBvbmVzCkBAIC00Mzg5LDEyICs0OTY0LDEyIEBA IEFsdGVyVGFibGUoQWx0ZXJUYWJsZVN0bXQgKnN0bXQsIExPQ0tNT0RFIGxvY2ttb2RlLAog ICogZXhpc3RpbmcgcXVlcnkgcGxhbnMuICBPbiB0aGUgYXNzdW1wdGlvbiBpdCdzIG5vdCB1 c2VkIGZvciBzdWNoLCB3ZQogICogZG9uJ3QgaGF2ZSB0byByZWplY3QgcGVuZGluZyBBRlRF UiB0cmlnZ2VycywgZWl0aGVyLgogICoKLSAqIEFsc28sIHNpbmNlIHdlIGRvbid0IGhhdmUg YW4gQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0LCB0aGlzIGNhbm5vdCBiZQorICogQWxzbywg aWYgeW91IGRvbid0IHBhc3MgYW4gQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0LCB0aGlzIGNh bm5vdCBiZQogICogdXNlZCBmb3IgYW55IHN1YmNvbW1hbmQgdHlwZXMgdGhhdCByZXF1aXJl IHBhcnNlIHRyYW5zZm9ybWF0aW9uIG9yCiAgKiBjb3VsZCBnZW5lcmF0ZSBzdWJjb21tYW5k cyB0aGF0IGhhdmUgdG8gYmUgcGFzc2VkIHRvIFByb2Nlc3NVdGlsaXR5LgogICovCiB2b2lk Ci1BbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJlY3Vy c2UpCitBbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJl Y3Vyc2UsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkKIHsKIAlSZWxhdGlv bglyZWw7CiAJTE9DS01PREUJbG9ja21vZGUgPSBBbHRlclRhYmxlR2V0TG9ja0xldmVsKGNt ZHMpOwpAQCAtNDQwMyw3ICs0OTc4LDcgQEAgQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxp ZCwgTGlzdCAqY21kcywgYm9vbCByZWN1cnNlKQogCiAJRXZlbnRUcmlnZ2VyQWx0ZXJUYWJs ZVJlbGlkKHJlbGlkKTsKIAotCUFUQ29udHJvbGxlcihOVUxMLCByZWwsIGNtZHMsIHJlY3Vy c2UsIGxvY2ttb2RlLCBOVUxMKTsKKwlBVENvbnRyb2xsZXIoTlVMTCwgcmVsLCBjbWRzLCBy ZWN1cnNlLCBsb2NrbW9kZSwgY29udGV4dCk7CiB9CiAKIC8qCkBAIC00NDk2LDYgKzUwNzEs OCBAQCBBbHRlclRhYmxlR2V0TG9ja0xldmVsKExpc3QgKmNtZHMpCiAJCQljYXNlIEFUX0Vu YWJsZVJlcGxpY2FSdWxlOgkvKiBtYXkgY2hhbmdlIFNFTEVDVCBydWxlcyAqLwogCQkJY2Fz ZSBBVF9FbmFibGVSdWxlOiAvKiBtYXkgY2hhbmdlIFNFTEVDVCBydWxlcyAqLwogCQkJY2Fz ZSBBVF9EaXNhYmxlUnVsZToJLyogbWF5IGNoYW5nZSBTRUxFQ1QgcnVsZXMgKi8KKwkJCWNh c2UgQVRfQWRkUGVyaW9kOiAvKiBzaGFyZXMgbmFtZXNwYWNlIHdpdGggY29sdW1ucywgYWRk cyBjb25zdHJhaW50ICovCisJCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CiAJCQkJY21kX2xvY2tt b2RlID0gQWNjZXNzRXhjbHVzaXZlTG9jazsKIAkJCQlicmVhazsKIApAQCAtNDgyOCw2ICs1 NDA1LDE0IEBAIEFUUHJlcENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVy VGFibGVDbWQgKmNtZCwKIAkJCS8qIFRoaXMgY29tbWFuZCBuZXZlciByZWN1cnNlcyAqLwog CQkJcGFzcyA9IEFUX1BBU1NfQUREX09USEVSQ09OU1RSOwogCQkJYnJlYWs7CisJCWNhc2Ug QVRfQWRkUGVyaW9kOiAvKiBBTFRFUiBUQUJMRSAuLi4gQUREIFBFUklPRCBGT1IgbmFtZSAo c3RhcnQsIGVuZCkgKi8KKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCBy ZWwsIEFUVF9UQUJMRSk7CisJCQlwYXNzID0gQVRfUEFTU19BRERfUEVSSU9EOworCQkJYnJl YWs7CisJCWNhc2UgQVRfRHJvcFBlcmlvZDogLyogQUxURVIgVEFCTEUgLi4uIERST1AgUEVS SU9EIEZPUiBuYW1lICovCisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwg cmVsLCBBVFRfVEFCTEUpOworCQkJcGFzcyA9IEFUX1BBU1NfRFJPUDsKKwkJCWJyZWFrOwog CQljYXNlIEFUX0FkZElkZW50aXR5OgogCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1 YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX1ZJRVcgfCBBVFRfRk9SRUlHTl9UQUJMRSk7 CiAJCQkvKiBTZXQgdXAgcmVjdXJzaW9uIGZvciBwaGFzZSAyOyBubyBvdGhlciBwcmVwIG5l ZWRlZCAqLwpAQCAtNTIzNyw2ICs1ODIyLDE0IEBAIEFURXhlY0NtZChMaXN0ICoqd3F1ZXVl LCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCWNhc2UgQVRfQ29va2VkQ29sdW1uRGVmYXVs dDoJLyogYWRkIGEgcHJlLWNvb2tlZCBkZWZhdWx0ICovCiAJCQlhZGRyZXNzID0gQVRFeGVj Q29va2VkQ29sdW1uRGVmYXVsdChyZWwsIGNtZC0+bnVtLCBjbWQtPmRlZik7CiAJCQlicmVh azsKKwkJY2FzZSBBVF9BZGRQZXJpb2Q6CisJCQlhZGRyZXNzID0gQVRFeGVjQWRkUGVyaW9k KHJlbCwgKFBlcmlvZERlZiAqKSBjbWQtPmRlZiwgY29udGV4dCk7CisJCQlicmVhazsKKwkJ Y2FzZSBBVF9Ecm9wUGVyaW9kOgorCQkJQVRFeGVjRHJvcFBlcmlvZChyZWwsIGNtZC0+bmFt ZSwgY21kLT5iZWhhdmlvciwKKwkJCQkJCQkJIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJIGNt ZC0+bWlzc2luZ19vayk7CisJCQlicmVhazsKIAkJY2FzZSBBVF9BZGRJZGVudGl0eToKIAkJ CWNtZCA9IEFUUGFyc2VUcmFuc2Zvcm1DbWQod3F1ZXVlLCB0YWIsIHJlbCwgY21kLCBmYWxz ZSwgbG9ja21vZGUsCiAJCQkJCQkJCQkgIGN1cl9wYXNzLCBjb250ZXh0KTsKQEAgLTY0MDYs NiArNjk5OSw4IEBAIGFsdGVyX3RhYmxlX3R5cGVfdG9fc3RyaW5nKEFsdGVyVGFibGVUeXBl IGNtZHR5cGUpCiAJCWNhc2UgQVRfQWRkQ29sdW1uOgogCQljYXNlIEFUX0FkZENvbHVtblRv VmlldzoKIAkJCXJldHVybiAiQUREIENPTFVNTiI7CisJCWNhc2UgQVRfQWRkUGVyaW9kOgor CQkJcmV0dXJuICJBREQgUEVSSU9EIjsKIAkJY2FzZSBBVF9Db2x1bW5EZWZhdWx0OgogCQlj YXNlIEFUX0Nvb2tlZENvbHVtbkRlZmF1bHQ6CiAJCQlyZXR1cm4gIkFMVEVSIENPTFVNTiAu Li4gU0VUIERFRkFVTFQiOwpAQCAtNjQzMSw2ICs3MDI2LDggQEAgYWx0ZXJfdGFibGVfdHlw ZV90b19zdHJpbmcoQWx0ZXJUYWJsZVR5cGUgY21kdHlwZSkKIAkJCXJldHVybiAiQUxURVIg Q09MVU1OIC4uLiBTRVQgQ09NUFJFU1NJT04iOwogCQljYXNlIEFUX0Ryb3BDb2x1bW46CiAJ CQlyZXR1cm4gIkRST1AgQ09MVU1OIjsKKwkJY2FzZSBBVF9Ecm9wUGVyaW9kOgorCQkJcmV0 dXJuICJEUk9QIFBFUklPRCI7CiAJCWNhc2UgQVRfQWRkSW5kZXg6CiAJCWNhc2UgQVRfUmVB ZGRJbmRleDoKIAkJCXJldHVybiBOVUxMOwkJLyogbm90IHJlYWwgZ3JhbW1hciAqLwpAQCAt NzQxNSwxNCArODAxMiwyOSBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0 ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAvKgogICogSWYgYSBuZXcgb3Ig cmVuYW1lZCBjb2x1bW4gd2lsbCBjb2xsaWRlIHdpdGggdGhlIG5hbWUgb2YgYW4gZXhpc3Rp bmcKICAqIGNvbHVtbiBhbmQgaWZfbm90X2V4aXN0cyBpcyBmYWxzZSB0aGVuIGVycm9yIG91 dCwgZWxzZSBkbyBub3RoaW5nLgorICoKKyAqIFNlZSBhbHNvIGNoZWNrX2Zvcl9wZXJpb2Rf bmFtZV9jb2xsaXNpb24uCiAgKi8KIHN0YXRpYyBib29sCiBjaGVja19mb3JfY29sdW1uX25h bWVfY29sbGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sbmFtZSwKIAkJCQkJ CQkJYm9vbCBpZl9ub3RfZXhpc3RzKQogewotCUhlYXBUdXBsZQlhdHRUdXBsZTsKKwlIZWFw VHVwbGUJYXR0VHVwbGUsIHBlclR1cGxlOwogCWludAkJCWF0dG51bTsKIAorCS8qIElmIHRo ZSBuYW1lIGV4aXN0cyBhcyBhIHBlcmlvZCwgd2UncmUgZG9uZS4gKi8KKwlwZXJUdXBsZSA9 IFNlYXJjaFN5c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0 dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpKSwKKwkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0o Y29sbmFtZSkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBlclR1cGxlKSkKKwl7CisJCVJl bGVhc2VTeXNDYWNoZShwZXJUdXBsZSk7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gbmFt ZSBcIiVzXCIgY29uZmxpY3RzIHdpdGggYSBwZXJpb2QgbmFtZSIsCisJCQkJCQljb2xuYW1l KSkpOworCX0KKwogCS8qCiAJICogdGhpcyB0ZXN0IGlzIGRlbGliZXJhdGVseSBub3QgYXR0 aXNkcm9wcGVkLWF3YXJlLCBzaW5jZSBpZiBvbmUgdHJpZXMgdG8KIAkgKiBhZGQgYSBjb2x1 bW4gbWF0Y2hpbmcgYSBkcm9wcGVkIGNvbHVtbiBuYW1lLCBpdCdzIGdvbm5hIGZhaWwgYW55 d2F5LgpAQCAtNzQ2Niw2ICs4MDc4LDc3IEBAIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9jb2xs aXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1lLAogCXJldHVybiB0cnVl OwogfQogCisvKgorICogSWYgYSBuZXcgcGVyaW9kIG5hbWUgd2lsbCBjb2xsaWRlIHdpdGgg dGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY29sdW1uIG9yCisgKiBwZXJpb2QgW2FuZCBpZl9u b3RfZXhpc3RzIGlzIGZhbHNlXSB0aGVuIGVycm9yIG91dCwgZWxzZSBkbyBub3RoaW5nLgor ICoKKyAqIFNlZSBhbHNvIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9jb2xsaXNpb24uCisgKi8K K3N0YXRpYyBib29sCitjaGVja19mb3JfcGVyaW9kX25hbWVfY29sbGlzaW9uKFJlbGF0aW9u IHJlbCwgY29uc3QgY2hhciAqcGVybmFtZSwKKwkJCQkJCQkJYm9vbCBjb2xleGlzdHMsIGJv b2wgaWZfbm90X2V4aXN0cykKK3sKKwlIZWFwVHVwbGUJYXR0VHVwbGUsIHBlclR1cGxlOwor CWludAkJCWF0dG51bTsKKworCS8qIFRPRE86IGltcGxlbWVudCBJRiBbTk9UXSBFWElTVFMg Zm9yIHBlcmlvZHMgKi8KKwlBc3NlcnQoIWlmX25vdF9leGlzdHMpOworCisJLyogSWYgdGhl cmUgaXMgYWxyZWFkeSBhIHBlcmlvZCB3aXRoIHRoaXMgbmFtZSwgdGhlbiB3ZSdyZSBkb25l LiAqLworCXBlclR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUsCisJCQkJCQkJ ICAgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpLAorCQkJCQkJCSAg IFBvaW50ZXJHZXREYXR1bShwZXJuYW1lKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQocGVy VHVwbGUpKQorCXsKKwkJaWYgKGlmX25vdF9leGlzdHMpCisJCXsKKwkJCVJlbGVhc2VTeXND YWNoZShwZXJUdXBsZSk7CisKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgXCIlc1wi IG9mIHJlbGF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJ CXBlcm5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQlyZXR1cm4g ZmFsc2U7CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf RFVQTElDQVRFX0NPTFVNTiksCisJCQkJIGVycm1zZygicGVyaW9kIFwiJXNcIiBvZiByZWxh dGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJcGVybmFtZSwgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwl9CisKKwkvKgorCSAqIHRoaXMgdGVzdCBpcyBk ZWxpYmVyYXRlbHkgbm90IGF0dGlzZHJvcHBlZC1hd2FyZSwgc2luY2UgaWYgb25lIHRyaWVz IHRvCisJICogYWRkIGEgY29sdW1uIG1hdGNoaW5nIGEgZHJvcHBlZCBjb2x1bW4gbmFtZSwg aXQncyBnb25uYSBmYWlsIGFueXdheS4KKwkgKi8KKwlhdHRUdXBsZSA9IFNlYXJjaFN5c0Nh Y2hlMihBVFROQU1FLAorCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRS ZWxpZChyZWwpKSwKKwkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0ocGVybmFtZSkpOworCWlm IChIZWFwVHVwbGVJc1ZhbGlkKGF0dFR1cGxlKSkKKwl7CisJCWF0dG51bSA9ICgoRm9ybV9w Z19hdHRyaWJ1dGUpIEdFVFNUUlVDVChhdHRUdXBsZSkpLT5hdHRudW07CisJCVJlbGVhc2VT eXNDYWNoZShhdHRUdXBsZSk7CisKKwkJLyoKKwkJICogV2UgdGhyb3cgYSBkaWZmZXJlbnQg ZXJyb3IgbWVzc2FnZSBmb3IgY29uZmxpY3RzIHdpdGggc3lzdGVtIGNvbHVtbgorCQkgKiBu YW1lcywgc2luY2UgdGhleSBhcmUgbm9ybWFsbHkgbm90IHNob3duIGFuZCB0aGUgdXNlciBt aWdodCBvdGhlcndpc2UKKwkJICogYmUgY29uZnVzZWQgYWJvdXQgdGhlIHJlYXNvbiBmb3Ig dGhlIGNvbmZsaWN0LgorCQkgKi8KKwkJaWYgKGF0dG51bSA8PSAwKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJ IGVycm1zZygicGVyaW9kIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgc3lzdGVtIGNv bHVtbiBuYW1lIiwKKwkJCQkJCQlwZXJuYW1lKSkpOworCQlpZiAoIWNvbGV4aXN0cykKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVN TiksCisJCQkJCSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0aCBh IGNvbHVtbiBuYW1lIiwKKwkJCQkJCQlwZXJuYW1lKSkpOworCX0KKworCXJldHVybiB0cnVl OworfQorCiAvKgogICogSW5zdGFsbCBhIGNvbHVtbidzIGRlcGVuZGVuY3kgb24gaXRzIGRh dGF0eXBlLgogICovCkBAIC03OTk2LDYgKzg2NzksMTU3IEBAIEFURXhlY0Nvb2tlZENvbHVt bkRlZmF1bHQoUmVsYXRpb24gcmVsLCBBdHRyTnVtYmVyIGF0dG51bSwKIAlyZXR1cm4gYWRk cmVzczsKIH0KIAorLyoKKyAqIEFMVEVSIFRBQkxFIEFERCBQRVJJT0QKKyAqCisgKiBSZXR1 cm4gdGhlIGFkZHJlc3Mgb2YgdGhlIHBlcmlvZC4KKyAqLworc3RhdGljIE9iamVjdEFkZHJl c3MKK0FURXhlY0FkZFBlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERlZiAqcGVyaW9kLCBB bHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCit7CisJUmVsYXRpb24JCWF0dHJl bGF0aW9uOworCU9iamVjdEFkZHJlc3MJYWRkcmVzcyA9IEludmFsaWRPYmplY3RBZGRyZXNz OworCUNvbnN0cmFpbnQJICAgKmNvbnN0cjsKKwlDb2x1bW5EZWYJICAgKnJhbmdlY29sOwor CU9pZAkJCQljb25vaWQsIHBlcmlvZG9pZDsKKwlMaXN0CQkgICAqY21kcyA9IE5JTDsKKwlB bHRlclRhYmxlQ21kICAqY21kOworCisJLyoKKwkgKiBQRVJJT0QgRk9SIFNZU1RFTV9USU1F IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQsIGJ1dCBtYWtlIHN1cmUgbm8gb25lIHVzZXMKKwkg KiB0aGUgbmFtZS4KKwkgKi8KKwlpZiAoc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwgInN5 c3RlbV90aW1lIikgPT0gMCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiUEVSSU9EIEZP UiBTWVNURU1fVElNRSBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKworCS8qIFBhcnNlIG9wdGlv bnMgKi8KKwl0cmFuc2Zvcm1QZXJpb2RPcHRpb25zKHBlcmlvZCk7CisKKwkvKiBUaGUgcGVy aW9kIG5hbWUgbXVzdCBub3QgYWxyZWFkeSBleGlzdCAqLworCSh2b2lkKSBjaGVja19mb3Jf cGVyaW9kX25hbWVfY29sbGlzaW9uKHJlbCwgcGVyaW9kLT5wZXJpb2RuYW1lLCBwZXJpb2Qt PmNvbGV4aXN0cywgZmFsc2UpOworCisJYXR0cmVsYXRpb24gPSB0YWJsZV9vcGVuKEF0dHJp YnV0ZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCVZhbGlkYXRlUGVyaW9kKHJl bCwgcGVyaW9kKTsKKworCS8qIE1ha2UgdGhlIENIRUNLIGNvbnN0cmFpbnQgKi8KKwljb25z dHIgPSBtYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZChyZWwsIHBlcmlvZCk7CisJY21kID0g bWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7CisJY21kLT5zdWJ0eXBlID0gQVRfQWRkQ29uc3Ry YWludDsKKwljbWQtPmRlZiA9IChOb2RlICopIGNvbnN0cjsKKwljbWRzID0gbGFwcGVuZChj bWRzLCBjbWQpOworCUFsdGVyVGFibGVJbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKHJlbCks IGNtZHMsIHRydWUsIGNvbnRleHQpOworCWNvbm9pZCA9IGdldF9yZWxhdGlvbl9jb25zdHJh aW50X29pZChSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+Y29uc3RyYWludG5hbWUs IGZhbHNlKTsKKworCWlmICghcGVyaW9kLT5jb2xleGlzdHMpCisJeworCQkvKiBNYWtlIHRo ZSByYW5nZSBjb2x1bW4gKi8KKwkJcmFuZ2Vjb2wgPSBtYWtlX3JhbmdlX2NvbHVtbl9mb3Jf cGVyaW9kKHBlcmlvZCk7CisJCWNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQlj bWQtPnN1YnR5cGUgPSBBVF9BZGRDb2x1bW47CisJCWNtZC0+ZGVmID0gKE5vZGUgKikgcmFu Z2Vjb2w7CisJCWNtZC0+bmFtZSA9IHBlcmlvZC0+cGVyaW9kbmFtZTsKKwkJY21kLT5yZWN1 cnNlID0gZmFsc2U7IC8qIG5vLCBsZXQgdGhlIFBFUklPRCByZWN1cnNlIGluc3RlYWQgKi8K KwkJQWx0ZXJUYWJsZUludGVybmFsKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgbGlzdF9tYWtl MShjbWQpLCB0cnVlLCBjb250ZXh0KTsKKwkJcGVyaW9kLT5ybmdhdHRudW0gPSBnZXRfYXR0 bnVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5wZXJpb2RuYW1lKTsKKwkJaWYg KHBlcmlvZC0+cm5nYXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQorCQkJZWxvZyhFUlJP UiwgIm1pc3NpbmcgYXR0cmlidXRlICVzIiwgcGVyaW9kLT5wZXJpb2RuYW1lKTsKKworCX0K KworCS8qIFNhdmUgdGhlIFBlcmlvZCAqLworCXBlcmlvZG9pZCA9IFN0b3JlUGVyaW9kKHJl bCwgcGVyaW9kLT5wZXJpb2RuYW1lLCBwZXJpb2QtPnN0YXJ0YXR0bnVtLCBwZXJpb2QtPmVu ZGF0dG51bSwgcGVyaW9kLT5ybmdhdHRudW0sIGNvbm9pZCk7CisKKwlPYmplY3RBZGRyZXNz U2V0KGFkZHJlc3MsIFBlcmlvZFJlbGF0aW9uSWQsIHBlcmlvZG9pZCk7CisKKwl0YWJsZV9j bG9zZShhdHRyZWxhdGlvbiwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gYWRkcmVz czsKK30KKworLyoKKyAqIEFMVEVSIFRBQkxFIERST1AgUEVSSU9ECisgKgorICogTGlrZSBE Uk9QIENPTFVNTiwgd2UgY2FuJ3QgdXNlIHRoZSBub3JtYWwgQUxURVIgVEFCTEUgcmVjdXJz aW9uIG1lY2hhbmlzbS4KKyAqLworc3RhdGljIHZvaWQKK0FURXhlY0Ryb3BQZXJpb2QoUmVs YXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJpb2ROYW1lLAorCQkJCQkgRHJvcEJlaGF2aW9y IGJlaGF2aW9yLAorCQkJCQkgYm9vbCByZWN1cnNlLCBib29sIHJlY3Vyc2luZywKKwkJCQkJ IGJvb2wgbWlzc2luZ19vaykKK3sKKwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJRm9ybV9wZ19w ZXJpb2QgcGVyaW9kOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5Owor CUhlYXBUdXBsZQl0dXBsZTsKKwlib29sCQlmb3VuZCA9IGZhbHNlOworCisJLyogQXQgdG9w IGxldmVsLCBwZXJtaXNzaW9uIGNoZWNrIHdhcyBkb25lIGluIEFUUHJlcENtZCwgZWxzZSBk byBpdCAqLworCWlmIChyZWN1cnNpbmcpCisJCUFUU2ltcGxlUGVybWlzc2lvbnMoQVRfRHJv cFBlcmlvZCwgcmVsLCBBVFRfVEFCTEUpOworCisJcGdfcGVyaW9kID0gdGFibGVfb3BlbihQ ZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qCisJICogRmluZCBh bmQgZHJvcCB0aGUgdGFyZ2V0IHBlcmlvZAorCSAqLworCVNjYW5LZXlJbml0KCZrZXksCisJ CQkJQW51bV9wZ19wZXJpb2RfcGVycmVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVy LCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZChyZWwp KSk7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ19wZXJpb2QsIFBlcmlvZFJlbGlk TmFtZUluZGV4SWQsCisJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCAma2V5KTsKKworCXdoaWxl IChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJ eworCQlPYmplY3RBZGRyZXNzIHBlcm9iajsKKworCQlwZXJpb2QgPSAoRm9ybV9wZ19wZXJp b2QpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJaWYgKHN0cmNtcChOYW1lU3RyKHBlcmlvZC0+ cGVybmFtZSksIHBlcmlvZE5hbWUpICE9IDApCisJCQljb250aW51ZTsKKworCQkvKgorCQkg KiBQZXJmb3JtIHRoZSBhY3R1YWwgcGVyaW9kIGRlbGV0aW9uCisJCSAqLworCQlwZXJvYmou Y2xhc3NJZCA9IFBlcmlvZFJlbGF0aW9uSWQ7CisJCXBlcm9iai5vYmplY3RJZCA9IHBlcmlv ZC0+b2lkOworCQlwZXJvYmoub2JqZWN0U3ViSWQgPSAwOworCisJCXBlcmZvcm1EZWxldGlv bigmcGVyb2JqLCBiZWhhdmlvciwgMCk7CisKKwkJZm91bmQgPSB0cnVlOworCisJCS8qIHBl cmlvZCBmb3VuZCBhbmQgZHJvcHBlZCAtLSBubyBuZWVkIHRvIGtlZXAgbG9vcGluZyAqLwor CQlicmVhazsKKwl9CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCisJaWYgKCFmb3Vu ZCkKKwl7CisJCWlmICghbWlzc2luZ19vaykKKwkJeworCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygi cGVyaW9kIFwiJXNcIiBvbiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJ CQkJCXBlcmlvZE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCX0K KwkJZWxzZQorCQl7CisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygicGVyaW9k IFwiJXNcIiBvbiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiwK KwkJCQkJCQlwZXJpb2ROYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwor CQkJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwkJCXJldHVy bjsKKwkJfQorCX0KKworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgUm93RXhjbHVzaXZlTG9j ayk7Cit9CisKIC8qCiAgKiBBTFRFUiBUQUJMRSBBTFRFUiBDT0xVTU4gQUREIElERU5USVRZ CiAgKgpAQCAtOTc3MCw4ICsxMDYwNCw5IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQo TGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ Zm9yIChpID0gMDsgaSA8IG51bWZrczsgaSsrKQogCXsKIAkJY2hhcgkJYXR0Z2VuZXJhdGVk ID0gVHVwbGVEZXNjQXR0cihSZWxhdGlvbkdldERlc2NyKHJlbCksIGZrYXR0bnVtW2ldIC0g MSktPmF0dGdlbmVyYXRlZDsKKwkJQml0bWFwc2V0ICAqcGVyaW9kcyA9IGdldF9wZXJpb2Rf YXR0bm9zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAKLQkJaWYgKGF0dGdlbmVyYXRlZCkK KwkJaWYgKGF0dGdlbmVyYXRlZCAmJiAhYm1zX2lzX21lbWJlcihma2F0dG51bVtpXSwgcGVy aW9kcykpCiAJCXsKIAkJCS8qCiAJCQkgKiBDaGVjayByZXN0cmljdGlvbnMgb24gVVBEQVRF L0RFTEVURSBhY3Rpb25zLCBwZXIgU1FMIHN0YW5kYXJkCkBAIC0xMzU1NSw2ICsxNDM5MCwx NiBAQCBSZW1lbWJlckFsbERlcGVuZGVudEZvclJlYnVpbGRpbmcoQWx0ZXJlZFRhYmxlSW5m byAqdGFiLCBBbHRlclRhYmxlVHlwZSBzdWJ0eXBlLAogCQkJCVJlbWVtYmVyQ29uc3RyYWlu dEZvclJlYnVpbGRpbmcoZm91bmRPYmplY3Qub2JqZWN0SWQsIHRhYik7CiAJCQkJYnJlYWs7 CiAKKwkJCWNhc2UgUGVyaW9kUmVsYXRpb25JZDoKKwkJCQlpZiAoc3VidHlwZSA9PSBBVF9B bHRlckNvbHVtblR5cGUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCSBlcnJtc2coImNhbm5v dCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBwZXJpb2QiKSwKKwkJCQkJCQkg ZXJyZGV0YWlsKCIlcyBkZXBlbmRzIG9uIGNvbHVtbiBcIiVzXCIiLAorCQkJCQkJCQkJICAg Z2V0T2JqZWN0RGVzY3JpcHRpb24oJmZvdW5kT2JqZWN0LCBmYWxzZSksCisJCQkJCQkJCQkg ICBjb2xOYW1lKSkpOworCQkJCWJyZWFrOworCiAJCQljYXNlIFByb2NlZHVyZVJlbGF0aW9u SWQ6CiAKIAkJCQkvKgpAQCAtMTM2NDQsNiArMTQ0ODksMTUgQEAgUmVtZW1iZXJBbGxEZXBl bmRlbnRGb3JSZWJ1aWxkaW5nKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgQWx0ZXJUYWJsZVR5 cGUgc3VidHlwZSwKIAkJCQkJfQogCQkJCQllbHNlCiAJCQkJCXsKKwkJCQkJCS8qCisJCQkJ CQkgKiBJZiB0aGlzIEdFTkVSQVRFRCBjb2x1bW4gaXMgaW1wbGVtZW50aW5nIGEgUEVSSU9E LAorCQkJCQkJICoga2VlcCBnb2luZyBhbmQgd2UnbGwgZmFpbCBmcm9tIHRoZSBQRVJJT0Qg aW5zdGVhZC4KKwkJCQkJCSAqIFRoaXMgZ2l2ZXMgYSBtb3JlIGNsZWFyIGVycm9yIG1lc3Nh Z2UuCisJCQkJCQkgKi8KKwkJCQkJCUJpdG1hcHNldCAqcGVyaW9kYXR0cyA9IGdldF9wZXJp b2RfYXR0bm9zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisJCQkJCQlpZiAoYm1zX2lzX21l bWJlcihjb2wub2JqZWN0U3ViSWQsIHBlcmlvZGF0dHMpKQorCQkJCQkJCWJyZWFrOworCiAJ CQkJCQkvKgogCQkJCQkJICogVGhpcyBtdXN0IGJlIGEgcmVmZXJlbmNlIGZyb20gdGhlIGV4 cHJlc3Npb24gb2YgYQogCQkJCQkJICogZ2VuZXJhdGVkIGNvbHVtbiBlbHNld2hlcmUgaW4g dGhlIHNhbWUgdGFibGUuCkBAIC0xNTUzNyw3ICsxNjM5MSw3IEBAIEFsdGVyVGFibGVNb3Zl QWxsKEFsdGVyVGFibGVNb3ZlQWxsU3RtdCAqc3RtdCkKIAogCQlFdmVudFRyaWdnZXJBbHRl clRhYmxlU3RhcnQoKE5vZGUgKikgc3RtdCk7CiAJCS8qIE9JRCBpcyBzZXQgYnkgQWx0ZXJU YWJsZUludGVybmFsICovCi0JCUFsdGVyVGFibGVJbnRlcm5hbChsZmlyc3Rfb2lkKGwpLCBj bWRzLCBmYWxzZSk7CisJCUFsdGVyVGFibGVJbnRlcm5hbChsZmlyc3Rfb2lkKGwpLCBjbWRz LCBmYWxzZSwgTlVMTCk7CiAJCUV2ZW50VHJpZ2dlckFsdGVyVGFibGVFbmQoKTsKIAl9CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZpZXcuYwppbmRleCBmZGFkODMzODMyNC4uM2FlMjI1ZDY3OTggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy92aWV3LmMKQEAgLTE2NCw3ICsxNjQsNyBAQCBEZWZpbmVWaXJ0dWFsUmVsYXRp b24oUmFuZ2VWYXIgKnJlbGF0aW9uLCBMaXN0ICp0bGlzdCwgYm9vbCByZXBsYWNlLAogCQkJ fQogCiAJCQkvKiBFdmVudFRyaWdnZXJBbHRlclRhYmxlU3RhcnQgY2FsbGVkIGJ5IFByb2Nl c3NVdGlsaXR5U2xvdyAqLwotCQkJQWx0ZXJUYWJsZUludGVybmFsKHZpZXdPaWQsIGF0Y21k cywgdHJ1ZSk7CisJCQlBbHRlclRhYmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVl LCBOVUxMKTsKIAogCQkJLyogTWFrZSB0aGUgbmV3IHZpZXcgY29sdW1ucyB2aXNpYmxlICov CiAJCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwpAQCAtMTk2LDcgKzE5Niw3IEBAIERl ZmluZVZpcnR1YWxSZWxhdGlvbihSYW5nZVZhciAqcmVsYXRpb24sIExpc3QgKnRsaXN0LCBi b29sIHJlcGxhY2UsCiAJCWF0Y21kcyA9IGxpc3RfbWFrZTEoYXRjbWQpOwogCiAJCS8qIEV2 ZW50VHJpZ2dlckFsdGVyVGFibGVTdGFydCBjYWxsZWQgYnkgUHJvY2Vzc1V0aWxpdHlTbG93 ICovCi0JCUFsdGVyVGFibGVJbnRlcm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUpOworCQlB bHRlclRhYmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVlLCBOVUxMKTsKIAogCQkv KgogCQkgKiBUaGVyZSBpcyB2ZXJ5IGxpdHRsZSB0byBkbyBoZXJlIHRvIHVwZGF0ZSB0aGUg dmlldydzIGRlcGVuZGVuY2llcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRh YmxlLmMKaW5kZXggYTBmMjkyODVmNDUuLmNmMjUwMDRiZmJkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwpAQCAtMTM1NSw4ICsxMzU1LDQ2IEBAIEV4ZWNG b3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQl9 CiAKIAkJLyogc3RvcmUgdGhlIG5ldyByYW5nZSAqLwotCQlsZWZ0b3ZlclNsb3QtPnR0c192 YWx1ZXNbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVy OwotCQlsZWZ0b3ZlclNsb3QtPnR0c19pc251bGxbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+ dmFyYXR0bm8gLSAxXSA9IGZhbHNlOworCQlpZiAoZm9yUG9ydGlvbk9mLT5zdGFydFZhcikK KwkJeworCQkJLyogRm9yIFBFUklPRHMgd2UgbXVzdCBzcGxpdCB0aGUgcmFuZ2UgaW50byBz dGFydCBhbmQgZW5kIGNvbHVtbnMgKi8KKworCQkJUmFuZ2VUeXBlICAqciA9IERhdHVtR2V0 UmFuZ2VUeXBlUChsZWZ0b3Zlcik7CisJCQlSYW5nZUJvdW5kCWxvd2VyOworCQkJUmFuZ2VC b3VuZAl1cHBlcjsKKwkJCWJvb2wJCWVtcHR5OworCisJCQlyYW5nZV9kZXNlcmlhbGl6ZSh0 eXBjYWNoZSwgciwgJmxvd2VyLCAmdXBwZXIsICZlbXB0eSk7CisKKwkJCWlmIChsb3dlci5p bmZpbml0ZSkKKwkJCXsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9yUG9ydGlv bk9mLT5zdGFydFZhci0+dmFyYXR0bm8gLSAxXSA9IDA7CisJCQkJbGVmdG92ZXJTbG90LT50 dHNfaXNudWxsW2ZvclBvcnRpb25PZi0+c3RhcnRWYXItPnZhcmF0dG5vIC0gMV0gPSB0cnVl OworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tm b3JQb3J0aW9uT2YtPnN0YXJ0VmFyLT52YXJhdHRubyAtIDFdID0gbG93ZXIudmFsOworCQkJ CWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0aW9uT2YtPnN0YXJ0VmFyLT52YXJh dHRubyAtIDFdID0gZmFsc2U7CisJCQl9CisKKwkJCWlmICh1cHBlci5pbmZpbml0ZSkKKwkJ CXsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5lbmRWYXIt PnZhcmF0dG5vIC0gMV0gPSAwOworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQ b3J0aW9uT2YtPmVuZFZhci0+dmFyYXR0bm8gLSAxXSA9IHRydWU7CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJbGVmdG92ZXJTbG90LT50dHNfdmFsdWVzW2ZvclBvcnRpb25PZi0+ZW5k VmFyLT52YXJhdHRubyAtIDFdID0gdXBwZXIudmFsOworCQkJCWxlZnRvdmVyU2xvdC0+dHRz X2lzbnVsbFtmb3JQb3J0aW9uT2YtPmVuZFZhci0+dmFyYXR0bm8gLSAxXSA9IGZhbHNlOwor CQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJLyogSnVzdCBzdG9yZSBpbnRvIHRoZSByYW5n ZS93aGF0ZXZlciBjb2x1bW4gKi8KKworCQkJbGVmdG92ZXJTbG90LT50dHNfdmFsdWVzW2Zv clBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vIC0gMV0gPSBsZWZ0b3ZlcjsKKwkJCWxl ZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRu byAtIDFdID0gZmFsc2U7CisJCX0KIAkJRXhlY01hdGVyaWFsaXplU2xvdChsZWZ0b3ZlclNs b3QpOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDhjNTZkYzY3YzMwLi4x NWJiYzE0Njg4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE3MjIsNiArMTcyMiw5 IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfQ29uc3RyYWlu dDoKIAkJCWxvYyA9ICgoY29uc3QgQ29uc3RyYWludCAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1BlcmlvZERlZjoKKwkJCWxvYyA9ICgoY29uc3QgUGVyaW9k RGVmICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfRnVuY3Rpb25Q YXJhbWV0ZXI6CiAJCQkvKiBqdXN0IHVzZSB0eXBlbmFtZSdzIGxvY2F0aW9uICovCiAJCQls b2MgPSBleHByTG9jYXRpb24oKE5vZGUgKikgKChjb25zdCBGdW5jdGlvblBhcmFtZXRlciAq KSBleHByKS0+YXJnVHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCAxZjU3NzQzMjRi YS4uYmRiMjUzNjU5YjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjgsNiArMjgsNyBA QAogI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNh dHRyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfcGVyaW9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCkBAIC0x MjcxLDcgKzEyNzIsMTEgQEAgdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAljaGFyICpyYW5nZV9uYW1lID0gZm9yUG9ydGlvbk9mLT5yYW5nZV9u YW1lOwogCWNoYXIgKnJhbmdlX3R5cGVfbmFtZXNwYWNlID0gTlVMTDsKIAljaGFyICpyYW5n ZV90eXBlX25hbWUgPSBOVUxMOwotCWludCByYW5nZV9hdHRubyA9IEludmFsaWRBdHRyTnVt YmVyOworCUF0dHJOdW1iZXIgcmFuZ2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlB dHRyTnVtYmVyIHN0YXJ0X2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJQXR0ck51bWJl ciBlbmRfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwljaGFyICpzdGFydGNvbG5hbWUg PSBOVUxMOworCWNoYXIgKmVuZGNvbG5hbWUgPSBOVUxMOwogCUZvcm1fcGdfYXR0cmlidXRl IGF0dHI7CiAJT2lkCW9wY2xhc3M7CiAJT2lkIG9wZmFtaWx5OwpAQCAtMTMxNSw2ICsxMzIw LDUzIEBAIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUs CiAJaWYgKCFnZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlKGF0dHItPmF0dHR5cGlkLCAmcmFu Z2VfdHlwZV9uYW1lLCAmcmFuZ2VfdHlwZV9uYW1lc3BhY2UpKQogCQllbG9nKEVSUk9SLCAi Y2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdHlwZSAldSIsIGF0dHItPmF0dHR5cGlkKTsKIAor CS8qCisJICogSWYgd2UgYXJlIHVzaW5nIGEgUEVSSU9ELCB3ZSBuZWVkIHRoZSBzdGFydCAm IGVuZCBjb2x1bW5zLgorCSAqIElmIHRoZSBhdHRyaWJ1dGUgaXQgbm90IGEgR0VORVJBVEVE IGNvbHVtbiwgd2UgbmVlZG4ndCBxdWVyeSBwZ19wZXJpb2QuCisJICovCisJaWYgKGF0dHIt PmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwl7CisJCUhl YXBUdXBsZSBwZXJUdXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJ CQkJCQkgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHRhcmdldHJlbCkpLAor CQkJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHJhbmdlX25hbWUpKTsKKwkJaWYgKEhlYXBU dXBsZUlzVmFsaWQocGVyVHVwbGUpKQorCQl7CisJCQlGb3JtX3BnX3BlcmlvZCBwZXIgPSAo Rm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVChwZXJUdXBsZSk7CisJCQlGb3JtX3BnX2F0dHJp YnV0ZSBwZXJhdHRyOworCisJCQlzdGFydF9hdHRubyA9IHBlci0+cGVyc3RhcnQ7CisJCQll bmRfYXR0bm8gPSBwZXItPnBlcmVuZDsKKworCQkJcGVyYXR0ciA9IFR1cGxlRGVzY0F0dHIo dGFyZ2V0cmVsLT5yZF9hdHQsIHN0YXJ0X2F0dG5vIC0gMSk7CisJCQlzdGFydGNvbG5hbWUg PSBOYW1lU3RyKHBlcmF0dHItPmF0dG5hbWUpOworCisJCQlyZXN1bHQtPnN0YXJ0VmFyID0g bWFrZVZhcigKKwkJCQkJcnRpbmRleCwKKwkJCQkJc3RhcnRfYXR0bm8sCisJCQkJCXBlcmF0 dHItPmF0dHR5cGlkLAorCQkJCQlwZXJhdHRyLT5hdHR0eXBtb2QsCisJCQkJCXBlcmF0dHIt PmF0dGNvbGxhdGlvbiwKKwkJCQkJMCk7CisKKwkJCXBlcmF0dHIgPSBUdXBsZURlc2NBdHRy KHRhcmdldHJlbC0+cmRfYXR0LCBlbmRfYXR0bm8gLSAxKTsKKwkJCWVuZGNvbG5hbWUgPSBO YW1lU3RyKHBlcmF0dHItPmF0dG5hbWUpOworCQkJcmVzdWx0LT5lbmRWYXIgPSBtYWtlVmFy KAorCQkJCQlydGluZGV4LAorCQkJCQllbmRfYXR0bm8sCisJCQkJCXBlcmF0dHItPmF0dHR5 cGlkLAorCQkJCQlwZXJhdHRyLT5hdHR0eXBtb2QsCisJCQkJCXBlcmF0dHItPmF0dGNvbGxh dGlvbiwKKwkJCQkJMCk7CisKKwkJCVJlbGVhc2VTeXNDYWNoZShwZXJUdXBsZSk7CisJCX0K Kwl9CisKKwlpZiAoc3RhcnRfYXR0bm8gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJeworCQly ZXN1bHQtPnN0YXJ0VmFyID0gTlVMTDsKKwkJcmVzdWx0LT5lbmRWYXIgPSBOVUxMOworCX0K IAogCWlmIChmb3JQb3J0aW9uT2YtPnRhcmdldCkKIAkJLyoKQEAgLTEzODIsNyArMTQzNCwx MCBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAog CXsKIAkJLyoKIAkJICogTm93IG1ha2Ugc3VyZSB3ZSB1cGRhdGUgdGhlIHN0YXJ0L2VuZCB0 aW1lIG9mIHRoZSByZWNvcmQuCi0JCSAqIEZvciBhIHJhbmdlIGNvbCAocikgdGhpcyBpcyBg ciA9IHIgKiB0YXJnZXRSYW5nZWAuCisJCSAqIEZvciBhIHJhbmdlL2V0YyBjb2wgKHIpIHRo aXMgaXMgYHIgPSByICogdGFyZ2V0UmFuZ2VgLgorCQkgKiBGb3IgYSBQRVJJT0Qgd2l0aCBj b2xzIChzLCBlKSB0aGlzIGlzIGBzID0gbG93ZXIodHNyYW5nZShzLCBlKSAqIHRhcmdldFJh bmdlKWAKKwkJICogYW5kIGBlID0gdXBwZXIodHNyYW5nZShzLCBlKSAqIHRhcmdldFJhbmdl YCAob2YgY291cnNlIG5vdCBuZWNlc3NhcmlseSB3aXRoCisJCSAqIHRzcmFuZ2UsIGJ1dCB3 aXRoIHdoYXRldmVyIHJhbmdlIHR5cGUgaXMgdXNlZCB0aGVyZSkuCiAJCSAqLwogCQlPaWQg ZnVuY25hbWVzcGFjZTsKIAkJY2hhciAqZnVuY25hbWU7CkBAIC0xNDEyLDEyICsxNDY3LDQ0 IEBAIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJbGlzdF9tYWtlMihjb3B5T2JqZWN0KHJhbmdlVmFyKSwgdGFyZ2V0RXhwciksCiAJCQkJ Q09FUkNFX0VYUExJQ0lUX0NBTEwsCiAJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7Ci0J CXJhbmdlVExFRXhwciA9IChFeHByICopIHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAq KSByYW5nZVRMRUV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CiAKLQkJLyogTWFr ZSBhIFRMRSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiAqLworCQkvKiBNYWtlIGEgVExFIHRv IHNldCB0aGUgcmFuZ2UgY29sdW1uIG9yIHN0YXJ0L2VuZCBjb2x1bW5zICovCiAJCXJlc3Vs dC0+cmFuZ2VUYXJnZXRMaXN0ID0gTklMOwotCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkocmFu Z2VUTEVFeHByLCByYW5nZV9hdHRubywgcmFuZ2VfbmFtZSwgZmFsc2UpOwotCQlyZXN1bHQt PnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBlbmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3QsIHRs ZSk7CisKKwkJaWYgKHJlc3VsdC0+c3RhcnRWYXIpCisJCXsKKwkJCUV4cHIgKmJvdW5kVExF RXhwcjsKKworCQkJLyogc2V0IHRoZSBzdGFydCBjb2x1bW4gKi8KKwkJCWJvdW5kVExFRXhw ciA9IChFeHByICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFtZSgibG93ZXIiKSwKKwkJ CQkJbGlzdF9tYWtlMShyYW5nZVRMRUV4cHIpLAorCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FM TCwKKwkJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7CisJCQlib3VuZFRMRUV4cHIgPSAo RXhwciAqKSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgYm91bmRUTEVFeHByLCBF WFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGJv dW5kVExFRXhwciwgc3RhcnRfYXR0bm8sIHN0YXJ0Y29sbmFtZSwgZmFsc2UpOworCQkJcmVz dWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0 LCB0bGUpOworCisJCQkvKiBzZXQgdGhlIGVuZCBjb2x1bW4gKi8KKwkJCWJvdW5kVExFRXhw ciA9IChFeHByICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFtZSgidXBwZXIiKSwKKwkJ CQkJbGlzdF9tYWtlMShyYW5nZVRMRUV4cHIpLAorCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FM TCwKKwkJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7CisJCQlib3VuZFRMRUV4cHIgPSAo RXhwciAqKSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgYm91bmRUTEVFeHByLCBF WFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGJv dW5kVExFRXhwciwgZW5kX2F0dG5vLCBlbmRjb2xuYW1lLCBmYWxzZSk7CisJCQlyZXN1bHQt PnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBlbmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3QsIHRs ZSk7CisKKwkJCS8qIE1hcmsgdGhlIHN0YXJ0L2VuZCBjb2x1bW5zIGFzIHJlcXVpcmluZyB1 cGRhdGUgcGVybWlzc2lvbnMgKi8KKwkJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMg PSBibXNfYWRkX21lbWJlcih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAorCQkJCQkJ CQkJCQkJCQkgIHN0YXJ0X2F0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51 bWJlcik7CisJCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzID0gYm1zX2FkZF9tZW1i ZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJCQkJICBlbmRf YXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsKKwkJfQorCQll bHNlCisJCXsKKwkJCXJhbmdlVExFRXhwciA9IChFeHByICopIHRyYW5zZm9ybUV4cHIocHN0 YXRlLCAoTm9kZSAqKSByYW5nZVRMRUV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7 CisJCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkocmFuZ2VUTEVFeHByLCByYW5nZV9hdHRubywg cmFuZ2VfbmFtZSwgZmFsc2UpOworCQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBw ZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOworCQl9CiAKIAkJLyogTWFyayB0 aGUgcmFuZ2UgY29sdW1uIGFzIHJlcXVpcmluZyB1cGRhdGUgcGVybWlzc2lvbnMgKi8KIAkJ dGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9w ZXJtaW5mby0+dXBkYXRlZENvbHMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAzYmNkMGM1NDIxNi4u MzRhMTRlNTJkYjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTk4LDcgKzU5OCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8a2V5d29yZD4gY29sX25hbWVfa2V5d29y ZCByZXNlcnZlZF9rZXl3b3JkCiAldHlwZSA8a2V5d29yZD4gYmFyZV9sYWJlbF9rZXl3b3Jk CiAKLSV0eXBlIDxub2RlPglEb21haW5Db25zdHJhaW50IFRhYmxlQ29uc3RyYWludCBUYWJs ZUxpa2VDbGF1c2UKKyV0eXBlIDxub2RlPglEb21haW5Db25zdHJhaW50IFRhYmxlQ29uc3Ry YWludCBUYWJsZUxpa2VDbGF1c2UgVGFibGVQZXJpb2QKICV0eXBlIDxpdmFsPglUYWJsZUxp a2VPcHRpb25MaXN0IFRhYmxlTGlrZU9wdGlvbgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21w cmVzc2lvbiBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNvbHVtbl9zdG9yYWdlIG9wdF9jb2x1 bW5fc3RvcmFnZQogJXR5cGUgPGxpc3Q+CUNvbFF1YWxMaXN0CkBAIC0yNjk2LDYgKzI2OTYs MjQgQEAgYWx0ZXJfdGFibGVfY21kOgogCQkJCQluLT5kZWYgPSAoTm9kZSAqKSAkNDsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBB REQgUEVSSU9EIEZPUiA8bmFtZT4gKDxuYW1lPiwgPG5hbWU+KSAqLworCQkJfCBBRERfUCBU YWJsZVBlcmlvZAorCQkJCXsKKwkJCQkJQWx0ZXJUYWJsZUNtZCAqbiA9IG1ha2VOb2RlKEFs dGVyVGFibGVDbWQpOworCQkJCQluLT5zdWJ0eXBlID0gQVRfQWRkUGVyaW9kOworCQkJCQlu LT5kZWYgPSAkMjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJLyogQUxURVIg VEFCTEUgPG5hbWU+IERST1AgUEVSSU9EIEZPUiA8bmFtZT4gW1JFU1RSSUNUfENBU0NBREVd ICovCisJCQl8IERST1AgUEVSSU9EIEZPUiBuYW1lIG9wdF9kcm9wX2JlaGF2aW9yCisJCQkJ eworCQkJCQlBbHRlclRhYmxlQ21kICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7CisJ CQkJCW4tPnN1YnR5cGUgPSBBVF9Ecm9wUGVyaW9kOworCQkJCQluLT5uYW1lID0gJDQ7CisJ CQkJCW4tPmJlaGF2aW9yID0gJDU7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJ CQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQkJLyogQUxURVIgVEFCTEUgPG5hbWU+IEFE RCBDT05TVFJBSU5UIC4uLiAqLwogCQkJfCBBRERfUCBUYWJsZUNvbnN0cmFpbnQKIAkJCQl7 CkBAIC0zODI2LDggKzM4NDQsMTAgQEAgVGFibGVFbGVtZW50OgogCQkJY29sdW1uRGVmCQkJ CQkJCXsgJCQgPSAkMTsgfQogCQkJfCBUYWJsZUxpa2VDbGF1c2UJCQkJCXsgJCQgPSAkMTsg fQogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsgfQorCQkJfCBUYWJsZVBl cmlvZAkJCQkJCXsgJCQgPSAkMTsgfQogCQk7CiAKKwogVHlwZWRUYWJsZUVsZW1lbnQ6CiAJ CQljb2x1bW5PcHRpb25zCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQl8IFRhYmxlQ29uc3RyYWlu dAkJCQkJeyAkJCA9ICQxOyB9CkBAIC00MTc2LDYgKzQxOTYsMTkgQEAgVGFibGVMaWtlT3B0 aW9uOgogCQk7CiAKIAorVGFibGVQZXJpb2Q6CisJCQlQRVJJT0QgRk9SIG5hbWUgJygnIG5h bWUgJywnIG5hbWUgJyknIG9wdF9kZWZpbml0aW9uCisJCQkJeworCQkJCQlQZXJpb2REZWYg Km4gPSBtYWtlTm9kZShQZXJpb2REZWYpOworCQkJCQluLT5wZXJpb2RuYW1lID0gJDM7CisJ CQkJCW4tPnN0YXJ0Y29sbmFtZSA9ICQ1OworCQkJCQluLT5lbmRjb2xuYW1lID0gJDc7CisJ CQkJCW4tPm9wdGlvbnMgPSAkOTsKKwkJCQkJbi0+bG9jYXRpb24gPSBAMTsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKiBDb25zdHJhaW50RWxlbSBzcGVjaWZp ZXMgY29uc3RyYWludCBzeW50YXggd2hpY2ggaXMgbm90IGVtYmVkZGVkIGludG8KICAqCWEg Y29sdW1uIGRlZmluaXRpb24uIENvbENvbnN0cmFpbnRFbGVtIHNwZWNpZmllcyB0aGUgZW1i ZWRkZWQgZm9ybS4KICAqIC0gdGhvbWFzIDE5OTctMTItMDMKQEAgLTcyODIsNiArNzMxNSwx NCBAQCBDb21tZW50U3RtdDoKIAkJCQkJbi0+Y29tbWVudCA9ICQ5OwogCQkJCQkkJCA9IChO b2RlICopIG47CiAJCQkJfQorCQkJfCBDT01NRU5UIE9OIFBFUklPRCBhbnlfbmFtZSBJUyBj b21tZW50X3RleHQKKwkJCQl7CisJCQkJCUNvbW1lbnRTdG10ICpuID0gbWFrZU5vZGUoQ29t bWVudFN0bXQpOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1BFUklPRDsKKwkJCQkJbi0+ b2JqZWN0ID0gKE5vZGUgKikgJDQ7CisJCQkJCW4tPmNvbW1lbnQgPSAkNjsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KIAkJCXwgQ09NTUVOVCBPTiBMQVJHRV9QIE9CSkVDVF9Q IE51bWVyaWNPbmx5IElTIGNvbW1lbnRfdGV4dAogCQkJCXsKIAkJCQkJQ29tbWVudFN0bXQg Km4gPSBtYWtlTm9kZShDb21tZW50U3RtdCk7CkBAIC0xNzgzMSw3ICsxNzg3Miw2IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUEFTU0lORwogCQkJfCBQQVNTV09SRAogCQkJfCBQ QVRICi0JCQl8IFBFUklPRAogCQkJfCBQTEFOCiAJCQl8IFBMQU5TCiAJCQl8IFBPTElDWQpA QCAtMTgxMzcsNiArMTgxNzcsNyBAQCByZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBPTkxZCiAJ CQl8IE9SCiAJCQl8IE9SREVSCisJCQl8IFBFUklPRAogCQkJfCBQTEFDSU5HCiAJCQl8IFBS SU1BUlkKIAkJCXwgUkVGRVJFTkNFUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24u YwppbmRleCAyZjY0ZWFmMGUzNy4uNzVhZTBmYjg0NTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3Rh YmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9oZWFwLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJu b2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTMxODgsNiArMzE4OSw3IEBAIGV4cGFuZE5TSXRlbUF0 dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJ CQkJICBpbnQgc3VibGV2ZWxzX3VwLCBib29sIHJlcXVpcmVfY29sX3ByaXZzLCBpbnQgbG9j YXRpb24pCiB7CiAJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbnNpdGVtLT5wX3J0ZTsKKwlCaXRt YXBzZXQgICpwZXJpb2RhdHRzID0gTlVMTDsKIAlSVEVQZXJtaXNzaW9uSW5mbyAqcGVybWlu Zm8gPSBuc2l0ZW0tPnBfcGVybWluZm87CiAJTGlzdAkgICAqbmFtZXMsCiAJCQkgICAqdmFy czsKQEAgLTMyMTEsMTIgKzMyMTMsMjAgQEAgZXhwYW5kTlNJdGVtQXR0cnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJcGVybWluZm8tPnJl cXVpcmVkUGVybXMgfD0gQUNMX1NFTEVDVDsKIAl9CiAKKwkvKiBHZXQgUEVSSU9EIGNvbHVt bnMgdG8gZXhjbHVkZSAqLworCWlmIChydGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9OKQor CQlwZXJpb2RhdHRzID0gZ2V0X3BlcmlvZF9hdHRub3MocnRlLT5yZWxpZCk7CisKIAlmb3Ji b3RoKG5hbWUsIG5hbWVzLCB2YXIsIHZhcnMpCiAJewogCQljaGFyCSAgICpsYWJlbCA9IHN0 clZhbChsZmlyc3QobmFtZSkpOwogCQlWYXIJCSAgICp2YXJub2RlID0gKFZhciAqKSBsZmly c3QodmFyKTsKIAkJVGFyZ2V0RW50cnkgKnRlOwogCisJCS8qIElmIHRoaXMgY29sdW1uIGlz IGZyb20gYSBQRVJJT0QsIHNraXAgaXQgKi8KKwkJaWYgKGJtc19pc19tZW1iZXIodmFybm9k ZS0+dmFyYXR0bm8sIHBlcmlvZGF0dHMpKQorCQkJCWNvbnRpbnVlOworCiAJCXRlID0gbWFr ZVRhcmdldEVudHJ5KChFeHByICopIHZhcm5vZGUsCiAJCQkJCQkJIChBdHRyTnVtYmVyKSBw c3RhdGUtPnBfbmV4dF9yZXNubysrLAogCQkJCQkJCSBsYWJlbCwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jCmluZGV4IDJhN2Y4ZmQxNTRlLi5mNjJhMmM1YjFlZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNs YXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWNfZXh0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv Y29tbWVudC5oIgpAQCAtODMsNiArODQsNyBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCWlz Zm9yZWlnbjsJCS8qIHRydWUgaWYgQ1JFQVRFL0FMVEVSIEZPUkVJR04gVEFCTEUgKi8KIAli b29sCQlpc2FsdGVyOwkJLyogdHJ1ZSBpZiBhbHRlcmluZyBleGlzdGluZyB0YWJsZSAqLwog CUxpc3QJICAgKmNvbHVtbnM7CQkvKiBDb2x1bW5EZWYgaXRlbXMgKi8KKwlMaXN0CSAgICpw ZXJpb2RzOwkJLyogUGVyaW9kRGVmIGl0ZW1zICovCiAJTGlzdAkgICAqY2tjb25zdHJhaW50 czsJLyogQ0hFQ0sgY29uc3RyYWludHMgKi8KIAlMaXN0CSAgICpma2NvbnN0cmFpbnRzOwkv KiBGT1JFSUdOIEtFWSBjb25zdHJhaW50cyAqLwogCUxpc3QJICAgKml4Y29uc3RyYWludHM7 CS8qIGluZGV4LWNyZWF0aW5nIGNvbnN0cmFpbnRzICovCkBAIC0xMTIsNiArMTE0LDggQEAg dHlwZWRlZiBzdHJ1Y3QKIAogc3RhdGljIHZvaWQgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlv bihDcmVhdGVTdG10Q29udGV4dCAqY3h0LAogCQkJCQkJCQkJICBDb2x1bW5EZWYgKmNvbHVt bik7CitzdGF0aWMgdm9pZCB0cmFuc2Zvcm1UYWJsZVBlcmlvZChDcmVhdGVTdG10Q29udGV4 dCAqY3h0LAorCQkJCQkJCQkgUGVyaW9kRGVmICpwZXJpb2QpOwogc3RhdGljIHZvaWQgdHJh bnNmb3JtVGFibGVDb25zdHJhaW50KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJCQkJ CQkgQ29uc3RyYWludCAqY29uc3RyYWludCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1UYWJs ZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKQEAgLTI0Miw2ICsyNDYsNyBA QCB0cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0ZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nKQogCWN4dC5pbmhSZWxhdGlvbnMgPSBzdG10LT5pbmhSZWxhdGlvbnM7CiAJ Y3h0LmlzYWx0ZXIgPSBmYWxzZTsKIAljeHQuY29sdW1ucyA9IE5JTDsKKwljeHQucGVyaW9k cyA9IE5JTDsKIAljeHQuY2tjb25zdHJhaW50cyA9IE5JTDsKIAljeHQuZmtjb25zdHJhaW50 cyA9IE5JTDsKIAljeHQuaXhjb25zdHJhaW50cyA9IE5JTDsKQEAgLTI4MCw2ICsyODUsMTAg QEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZykKIAkJCQl0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKCZjeHQsIChDb2x1 bW5EZWYgKikgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9QZXJpb2REZWY6 CisJCQkJdHJhbnNmb3JtVGFibGVQZXJpb2QoJmN4dCwgKFBlcmlvZERlZiAqKSBlbGVtZW50 KTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBUX0NvbnN0cmFpbnQ6CiAJCQkJdHJhbnNmb3Jt VGFibGVDb25zdHJhaW50KCZjeHQsIChDb25zdHJhaW50ICopIGVsZW1lbnQpOwogCQkJCWJy ZWFrOwpAQCAtMzQyLDYgKzM1MSw3IEBAIHRyYW5zZm9ybUNyZWF0ZVN0bXQoQ3JlYXRlU3Rt dCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJICogT3V0cHV0IHJlc3VsdHMu CiAJICovCiAJc3RtdC0+dGFibGVFbHRzID0gY3h0LmNvbHVtbnM7CisJc3RtdC0+cGVyaW9k cyA9IGN4dC5wZXJpb2RzOwogCXN0bXQtPmNvbnN0cmFpbnRzID0gY3h0LmNrY29uc3RyYWlu dHM7CiAKIAlyZXN1bHQgPSBsYXBwZW5kKGN4dC5ibGlzdCwgc3RtdCk7CkBAIC04NzAsNiAr ODgwLDkxIEBAIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQg KmN4dCwgQ29sdW1uRGVmICpjb2x1bW4pCiAJfQogfQogCit2b2lkCit0cmFuc2Zvcm1QZXJp b2RPcHRpb25zKFBlcmlvZERlZiAqcGVyaW9kKQoreworCUxpc3RDZWxsICAgKm9wdGlvbjsK KwlEZWZFbGVtCSAgICpkY29uc3RyYWludG5hbWUgPSBOVUxMOworCURlZkVsZW0JICAgKmRy YW5nZXR5cGVuYW1lID0gTlVMTDsKKwlEZWZFbGVtCSAgICpkY29sZXhpc3RzID0gTlVMTDsK KworCWZvcmVhY2gob3B0aW9uLCBwZXJpb2QtPm9wdGlvbnMpCisJeworCQlEZWZFbGVtICAg ICpkZWZlbCA9IChEZWZFbGVtICopIGxmaXJzdChvcHRpb24pOworCisJCWlmIChzdHJjbXAo ZGVmZWwtPmRlZm5hbWUsICJjaGVja19jb25zdHJhaW50X25hbWUiKSA9PSAwKQorCQl7CisJ CQlpZiAoZGNvbnN0cmFpbnRuYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGlu ZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlkY29uc3RyYWludG5hbWUgPSBkZWZl bDsKKwkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJyYW5nZXR5cGUi KSA9PSAwKQorCQl7CisJCQlpZiAoZHJhbmdldHlwZW5hbWUpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJt c2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWRyYW5nZXR5 cGVuYW1lID0gZGVmZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1l LCAiY29sZXhpc3RzIikgPT0gMCkKKwkJeworCQkJaWYgKGRjb2xleGlzdHMpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJCSBlcnJtc2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJ CWRjb2xleGlzdHMgPSBkZWZlbDsKKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coIm9w dGlvbiBcIiVzXCIgbm90IHJlY29nbml6ZWQiLCBkZWZlbC0+ZGVmbmFtZSkpKTsKKwl9CisK KwlpZiAoZGNvbnN0cmFpbnRuYW1lICE9IE5VTEwpCisJCXBlcmlvZC0+Y29uc3RyYWludG5h bWUgPSBkZWZHZXRTdHJpbmcoZGNvbnN0cmFpbnRuYW1lKTsKKwllbHNlCisJCXBlcmlvZC0+ Y29uc3RyYWludG5hbWUgPSBOVUxMOworCisJaWYgKGRyYW5nZXR5cGVuYW1lICE9IE5VTEwp CisJCXBlcmlvZC0+cmFuZ2V0eXBlbmFtZSA9IGRlZkdldFN0cmluZyhkcmFuZ2V0eXBlbmFt ZSk7CisJZWxzZQorCQlwZXJpb2QtPnJhbmdldHlwZW5hbWUgPSBOVUxMOworCisJaWYgKGRj b2xleGlzdHMgIT0gTlVMTCkKKwkJcGVyaW9kLT5jb2xleGlzdHMgPSBkZWZHZXRCb29sZWFu KGRjb2xleGlzdHMpOworCWVsc2UKKwkJcGVyaW9kLT5jb2xleGlzdHMgPSBmYWxzZTsKK30K KworLyoKKyAqIHRyYW5zZm9ybVRhYmxlUGVyaW9kCisgKgkJdHJhbnNmb3JtIGEgUGVyaW9k RGVmIG5vZGUgd2l0aGluIENSRUFURSBUQUJMRQorICovCitzdGF0aWMgdm9pZAordHJhbnNm b3JtVGFibGVQZXJpb2QoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgUGVyaW9kRGVmICpwZXJp b2QpCit7CisJaWYgKHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsICJzeXN0ZW1fdGltZSIp ID09IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIlBFUklPRCBGT1IgU1lTVEVNX1RJ TUUgaXMgbm90IHN1cHBvcnRlZCIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+ cHN0YXRlLAorCQkJCQkJCQkJCXBlcmlvZC0+bG9jYXRpb24pKSk7CisKKwlpZiAoc3RyY21w KHBlcmlvZC0+c3RhcnRjb2xuYW1lLCBwZXJpb2QtPmVuZGNvbG5hbWUpID09IDApCisJCWVy ZXBvcnQoRVJST1IsIChlcnJtc2coImNvbHVtbiBcIiVzXCIgY2FuJ3QgYmUgdGhlIHN0YXJ0 IGFuZCBlbmQgY29sdW1uIGZvciBwZXJpb2QgXCIlc1wiIiwKKwkJCQkJCXBlcmlvZC0+c3Rh cnRjb2xuYW1lLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkvKgorCSAqIERldGVybWlu ZSB0aGUgY29sdW1uIGluZm8gYW5kIHJhbmdlIHR5cGUgc28gdGhhdCB0cmFuc2Zvcm1JbmRl eENvbnN0cmFpbnRzCisJICoga25vd3MgaG93IHRvIGNyZWF0ZSBQUklNQVJZIEtFWS9VTklR VUUgY29uc3RyYWludHMgdXNpbmcgdGhpcyBQRVJJT0QuCisJICovCisJdHJhbnNmb3JtUGVy aW9kT3B0aW9ucyhwZXJpb2QpOworCisJY3h0LT5wZXJpb2RzID0gbGFwcGVuZChjeHQtPnBl cmlvZHMsIHBlcmlvZCk7Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1UYWJsZUNvbnN0cmFpbnQK ICAqCQl0cmFuc2Zvcm0gYSBDb25zdHJhaW50IG5vZGUgd2l0aGluIENSRUFURSBUQUJMRSBv ciBBTFRFUiBUQUJMRQpAQCAtOTU3LDYgKzEwNTIsNyBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VD bGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9s aWtlX2NsYQogCUF0dHJOdW1iZXIJcGFyZW50X2F0dG5vOwogCVJlbGF0aW9uCXJlbGF0aW9u OwogCVR1cGxlRGVzYwl0dXBsZURlc2M7CisJQml0bWFwc2V0ICAqcGVyaW9kYXR0czsKIAlB Y2xSZXN1bHQJYWNscmVzdWx0OwogCWNoYXIJICAgKmNvbW1lbnQ7CiAJUGFyc2VDYWxsYmFj a1N0YXRlIHBjYnN0YXRlOwpAQCAtMTAwOCw2ICsxMTA0LDcgQEAgdHJhbnNmb3JtVGFibGVM aWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFi bGVfbGlrZV9jbGEKIAl9CiAKIAl0dXBsZURlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbGF0 aW9uKTsKKwlwZXJpb2RhdHRzID0gZ2V0X3BlcmlvZF9hdHRub3MoUmVsYXRpb25HZXRSZWxp ZChyZWxhdGlvbikpOwogCiAJLyoKIAkgKiBJbnNlcnQgdGhlIGNvcGllZCBhdHRyaWJ1dGVz IGludG8gdGhlIGN4dCBmb3IgdGhlIG5ldyB0YWJsZSBkZWZpbml0aW9uLgpAQCAtMTAxNywx MCArMTExNCwxOCBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRl eHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYQogCWZvciAocGFyZW50 X2F0dG5vID0gMTsgcGFyZW50X2F0dG5vIDw9IHR1cGxlRGVzYy0+bmF0dHM7CiAJCSBwYXJl bnRfYXR0bm8rKykKIAl7Ci0JCUZvcm1fcGdfYXR0cmlidXRlIGF0dHJpYnV0ZSA9IFR1cGxl RGVzY0F0dHIodHVwbGVEZXNjLAotCQkJCQkJCQkJCQkJCXBhcmVudF9hdHRubyAtIDEpOwor CQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyaWJ1dGU7CiAJCUNvbHVtbkRlZiAgKmRlZjsKIAor CQkvKgorCQkgKiBJZiB0aGlzIGNvbHVtbiBpcyBmcm9tIGEgUEVSSU9ELCBza2lwIGl0CisJ CSAqIChzaW5jZSBMSUtFIG5ldmVyIGNvcGllcyBQRVJJT0RzKS4KKwkJICovCisJCWlmIChi bXNfaXNfbWVtYmVyKHBhcmVudF9hdHRubywgcGVyaW9kYXR0cykpCisJCQljb250aW51ZTsK KworCQlhdHRyaWJ1dGUgPSBUdXBsZURlc2NBdHRyKHR1cGxlRGVzYywgcGFyZW50X2F0dG5v IC0gMSk7CisKIAkJLyoKIAkJICogSWdub3JlIGRyb3BwZWQgY29sdW1ucyBpbiB0aGUgcGFy ZW50LgogCQkgKi8KQEAgLTI0MDcsNiArMjUxMiw3IEBAIHRyYW5zZm9ybUluZGV4Q29uc3Ry YWludChDb25zdHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQog CQkJY2hhcgkgICAqa2V5ID0gc3RyVmFsKGxmaXJzdChsYykpOwogCQkJYm9vbAkJZm91bmQg PSBmYWxzZTsKIAkJCWJvb2wJCWZvcmNlZF9ub3RfbnVsbCA9IGZhbHNlOworCQkJYm9vbAkJ aGFzcGVyaW9kID0gZmFsc2U7CiAJCQlDb2x1bW5EZWYgICpjb2x1bW4gPSBOVUxMOwogCQkJ TGlzdENlbGwgICAqY29sdW1uczsKIAkJCUluZGV4RWxlbSAgKmlwYXJhbTsKQEAgLTI0MjUs MTkgKzI1MzEsNDAgQEAgdHJhbnNmb3JtSW5kZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNv bnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQpCiAJCQlpZiAoIWZvdW5kKQogCQkJ CWNvbHVtbiA9IE5VTEw7CiAKKwkJCS8qIElmIHRoZSBrZXkgaXMgV0lUSE9VVCBPVkVSTEFQ UywgYSBQRVJJT0Qgd2lsbCB3b3JrIHRvby4gKi8KKwkJCWlmICghZm91bmQgJiYgY29uc3Ry YWludC0+d2l0aG91dF9vdmVybGFwcyAmJgorCQkJCWxjID09IGxpc3RfbGFzdF9jZWxsKGNv bnN0cmFpbnQtPmtleXMpKQorCQkJeworCQkJCVBlcmlvZERlZiAgKnBlcmlvZCA9IE5VTEw7 CisKKwkJCQlmb3JlYWNoKGNvbHVtbnMsIGN4dC0+cGVyaW9kcykKKwkJCQl7CisJCQkJCXBl cmlvZCA9IGxmaXJzdF9ub2RlKFBlcmlvZERlZiwgY29sdW1ucyk7CisJCQkJCWlmIChzdHJj bXAocGVyaW9kLT5wZXJpb2RuYW1lLCBrZXkpID09IDApCisJCQkJCXsKKwkJCQkJCWZvdW5k ID0gdHJ1ZTsKKwkJCQkJCWhhc3BlcmlvZCA9IHRydWU7CisJCQkJCQlicmVhazsKKwkJCQkJ fQorCQkJCX0KKwkJCX0KKwogCQkJaWYgKGZvdW5kKQogCQkJewotCQkJCS8qCi0JCQkJICog Y29sdW1uIGlzIGRlZmluZWQgaW4gdGhlIG5ldyB0YWJsZS4gIEZvciBQUklNQVJZIEtFWSwg d2UKLQkJCQkgKiBjYW4gYXBwbHkgdGhlIG5vdC1udWxsIGNvbnN0cmFpbnQgY2hlYXBseSBo ZXJlIC4uLiB1bmxlc3MKLQkJCQkgKiB0aGUgY29sdW1uIGlzIG1hcmtlZCBpc19mcm9tX3R5 cGUsIGluIHdoaWNoIGNhc2UgbWFya2luZyBpdAotCQkJCSAqIGhlcmUgd291bGQgYmUgaW5l ZmZlY3RpdmUgKHNlZSBNZXJnZUF0dHJpYnV0ZXMpLgotCQkJCSAqLwotCQkJCWlmIChjb25z dHJhaW50LT5jb250eXBlID09IENPTlNUUl9QUklNQVJZICYmCi0JCQkJCSFjb2x1bW4tPmlz X2Zyb21fdHlwZSkKKwkJCQlpZiAoY29sdW1uKQogCQkJCXsKLQkJCQkJY29sdW1uLT5pc19u b3RfbnVsbCA9IHRydWU7Ci0JCQkJCWZvcmNlZF9ub3RfbnVsbCA9IHRydWU7CisJCQkJCS8q CisJCQkJCSAqIGNvbHVtbiBpcyBkZWZpbmVkIGluIHRoZSBuZXcgdGFibGUuICBGb3IgUFJJ TUFSWSBLRVksIHdlCisJCQkJCSAqIGNhbiBhcHBseSB0aGUgbm90LW51bGwgY29uc3RyYWlu dCBjaGVhcGx5IGhlcmUgLi4uIHVubGVzcworCQkJCQkgKiB0aGUgY29sdW1uIGlzIG1hcmtl ZCBpc19mcm9tX3R5cGUsIGluIHdoaWNoIGNhc2UgbWFya2luZyBpdAorCQkJCQkgKiBoZXJl IHdvdWxkIGJlIGluZWZmZWN0aXZlIChzZWUgTWVyZ2VBdHRyaWJ1dGVzKS4KKwkJCQkJICov CisJCQkJCWlmIChjb25zdHJhaW50LT5jb250eXBlID09IENPTlNUUl9QUklNQVJZICYmCisJ CQkJCQkhY29sdW1uLT5pc19mcm9tX3R5cGUpCisJCQkJCXsKKwkJCQkJCWNvbHVtbi0+aXNf bm90X251bGwgPSB0cnVlOworCQkJCQkJZm9yY2VkX25vdF9udWxsID0gdHJ1ZTsKKwkJCQkJ fQogCQkJCX0KIAkJCX0KIAkJCWVsc2UgaWYgKFN5c3RlbUF0dHJpYnV0ZUJ5TmFtZShrZXkp ICE9IE5VTEwpCkBAIC0yNTU3LDcgKzI2ODQsMTIgQEAgdHJhbnNmb3JtSW5kZXhDb25zdHJh aW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQpCiAJ CQkJCQl9CiAJCQkJCX0KIAkJCQl9Ci0JCQkJaWYgKGZvdW5kKQorCQkJCS8qCisJCQkJICog SW4gQ1JFQVRFIFRBQkxFIHdlIGRvbid0IGtub3cgUEVSSU9EcycgcmFuZ2V0eXBlIHlldCwK KwkJCQkgKiBidXQgd2Uga25vdyBpdCB3aWxsIGJlIGEgcmFuZ2UvbXVsdGlyYW5nZS4gU28g aWYgd2UKKwkJCQkgKiBoYXZlIGEgUEVSSU9EIHRoZW4gd2UncmUgc2FmZS4KKwkJCQkgKi8K KwkJCQlpZiAoZm91bmQgJiYgIWhhc3BlcmlvZCkKIAkJCQl7CiAJCQkJCWlmICghT2lkSXNW YWxpZCh0eXBpZCkgJiYgY29sdW1uKQogCQkJCQkJdHlwaWQgPSB0eXBlbmFtZVR5cGVJZChO VUxMLCBjb2x1bW4tPnR5cGVOYW1lKTsKQEAgLTI5MDgsNiArMzA0MCwxMCBAQCB0cmFuc2Zv cm1JbmRleFN0bXQoT2lkIHJlbGlkLCBJbmRleFN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nKQogCQl9CiAJfQogCisJLyogdGFrZSBjYXJlIG9mIHRoZSBwZXJpb2QgKi8K KwlpZiAoc3RtdC0+cGVyaW9kKQorCQlzdG10LT5wZXJpb2QtPm9pZCA9IGdldF9wZXJpb2Rf b2lkKHJlbGlkLCBzdG10LT5wZXJpb2QtPnBlcmlvZG5hbWUsIGZhbHNlKTsKKwogCS8qCiAJ ICogQ2hlY2sgdGhhdCBvbmx5IHRoZSBiYXNlIHJlbCBpcyBtZW50aW9uZWQuICAoVGhpcyBz aG91bGQgYmUgZGVhZCBjb2RlCiAJICogbm93IHRoYXQgYWRkX21pc3NpbmdfZnJvbSBpcyBo aXN0b3J5LikKQEAgLTM1MTksNiArMzY1NSw3IEBAIHRyYW5zZm9ybUFsdGVyVGFibGVTdG10 KE9pZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0bXQsCiAJY3h0LmluaFJlbGF0aW9ucyA9 IE5JTDsKIAljeHQuaXNhbHRlciA9IHRydWU7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0 LnBlcmlvZHMgPSBOSUw7CiAJY3h0LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0LmZrY29u c3RyYWludHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWludHMgPSBOSUw7CkBAIC0zNTc5LDYg KzM3MTYsMjIgQEAgdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoT2lkIHJlbGlkLCBBbHRlclRh YmxlU3RtdCAqc3RtdCwKIAkJCQkJCSAoaW50KSBub2RlVGFnKGNtZC0+ZGVmKSk7CiAJCQkJ YnJlYWs7CiAKKwkJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJCXsKKwkJCQkJLyoKKwkJCQkJ ICogV2UgY2FuJ3QgY2FsbCB0cmFuc2Zvcm1UYWJsZVBlcmlvZCBoZXJlCisJCQkJCSAqIGJl Y2F1c2UgaXQgbG9va3MgYXQgY3h0LT5jb2x1bW5zCisJCQkJCSAqIGFuZCBpbiBhbiBBTFRF UiBzdGF0ZW1lbnQgdGhlIGNvbHVtbiBtaWdodCBhbHJlYWR5IGV4aXN0CisJCQkJCSAqIChv ciBub3QpLgorCQkJCQkgKi8KKwkJCQkJLy8gVE9ETzogaXQgZG9lc24ndCBsb29rIGF0IGN4 dC0+Y29sdW1ucyBhbnkgbW9yZS4KKwkJCQkJLy8gU28gc2hvdWxkIHdlIGNhbGwgaXQgaGVy ZT8gVG8gZG8gd2hhdD8KKwkJCQkJLy8gV2VsbCBpdCBtaWdodCBiZSB1c2VmdWwgdG8ga25v dyBhYm91dCBpdCBpbiBjeHQtPnBlcmlvZHMgYXQgbGVhc3QuCisJCQkJCXRyYW5zZm9ybVRh YmxlUGVyaW9kKCZjeHQsIGNhc3ROb2RlKFBlcmlvZERlZiwgY21kLT5kZWYpKTsKKwkJCQkJ bmV3Y21kcyA9IGxhcHBlbmQobmV3Y21kcywgY21kKTsKKwkJCQkJYnJlYWs7CisJCQkJfQor CiAJCQljYXNlIEFUX0FsdGVyQ29sdW1uVHlwZToKIAkJCQl7CiAJCQkJCUNvbHVtbkRlZiAg KmRlZiA9IGNhc3ROb2RlKENvbHVtbkRlZiwgY21kLT5kZWYpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L01h a2VmaWxlCmluZGV4IGVkYjA5ZDRlMzU2Li5lMTM3ZjE3ZTU5OSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9NYWtlZmlsZQpAQCAtNzgsNiArNzgsNyBAQCBPQkpTID0gXAogCW9yYWNsZV9jb21wYXQu byBcCiAJb3JkZXJlZHNldGFnZ3MubyBcCiAJcGFydGl0aW9uZnVuY3MubyBcCisJcGVyaW9k Lm8gXAogCXBnX2xvY2FsZS5vIFwKIAlwZ19sc24ubyBcCiAJcGdfdXBncmFkZV9zdXBwb3J0 Lm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4wZWQ0MzA0ZTE2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZXJpb2QuYwpAQCAtMCwwICsxLDU2IEBACisvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCisgKiBwZXJpb2QuYworICoJICBGdW5jdGlvbnMgdG8gc3VwcG9ydCBw ZXJpb2RzLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZXJpb2QuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImV4ZWN1dG9yL3R1cHRhYmxlLmgiCisjaW5jbHVk ZSAiZm1nci5oIgorI2luY2x1ZGUgIm5vZGVzL3ByaW1ub2Rlcy5oIgorI2luY2x1ZGUgInV0 aWxzL2ZtZ3Jwcm90b3MuaCIKKyNpbmNsdWRlICJ1dGlscy9wZXJpb2QuaCIKKyNpbmNsdWRl ICJ1dGlscy9yYW5nZXR5cGVzLmgiCisKK0RhdHVtIHBlcmlvZF90b19yYW5nZShUdXBsZVRh YmxlU2xvdCAqc2xvdCwgaW50IHN0YXJ0YXR0bm8sIGludCBlbmRhdHRubywgT2lkIHJhbmdl dHlwZSkKK3sKKwlEYXR1bSBzdGFydHZhbHVlOworCURhdHVtIGVuZHZhbHVlOworCURhdHVt IHJlc3VsdDsKKwlib29sCXN0YXJ0aXNudWxsOworCWJvb2wJZW5kaXNudWxsOworCUxPQ0FM X0ZDSU5GTyhmY2luZm8sIDIpOworCUZtZ3JJbmZvCWZsaW5mbzsKKwlGdW5jRXhwciAgICpm OworCisJSW5pdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sICZmbGluZm8sIDIsIElu dmFsaWRPaWQsIE5VTEwsIE5VTEwpOworCWYgPSBtYWtlTm9kZShGdW5jRXhwcik7CisJZi0+ ZnVuY3Jlc3VsdHR5cGUgPSByYW5nZXR5cGU7CisJZmxpbmZvLmZuX2V4cHIgPSAoTm9kZSAq KSBmOworCWZsaW5mby5mbl9leHRyYSA9IE5VTEw7CisKKwkvKiBjb21wdXRlIG9sZHZhbHVl ICovCisJc3RhcnR2YWx1ZSA9IHNsb3RfZ2V0YXR0cihzbG90LCBzdGFydGF0dG5vLCAmc3Rh cnRpc251bGwpOworCWVuZHZhbHVlID0gc2xvdF9nZXRhdHRyKHNsb3QsIGVuZGF0dG5vLCAm ZW5kaXNudWxsKTsKKworCWZjaW5mby0+YXJnc1swXS52YWx1ZSA9IHN0YXJ0dmFsdWU7CisJ ZmNpbmZvLT5hcmdzWzBdLmlzbnVsbCA9IHN0YXJ0aXNudWxsOworCWZjaW5mby0+YXJnc1sx XS52YWx1ZSA9IGVuZHZhbHVlOworCWZjaW5mby0+YXJnc1sxXS5pc251bGwgPSBlbmRpc251 bGw7CisKKwlyZXN1bHQgPSByYW5nZV9jb25zdHJ1Y3RvcjIoZmNpbmZvKTsKKwlpZiAoZmNp bmZvLT5pc251bGwpCisJCWVsb2coRVJST1IsICJmdW5jdGlvbiAldSByZXR1cm5lZCBOVUxM IiwgZmxpbmZvLmZuX29pZCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBiNjdjMGMwM2I5Ny4uOTE1MGNjNDk1ZjggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zMSw2ICszMSw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X29wY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19yYW5nZS5oIgpAQCAtOTk1LDYgKzk5Niw2OCBAQCBnZXRfYXR0b3B0aW9ucyhPaWQg cmVsaWQsIGludDE2IGF0dG51bSkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgkJCQktLS0t LS0tLS0tIFBHX1BFUklPRCBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0 X3BlcmlvZG5hbWUgLSBnaXZlbiBpdHMgT0lELCBsb29rIHVwIGEgcGVyaW9kCisgKgorICog SWYgbWlzc2luZ19vayBpcyBmYWxzZSwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHBlcmlvZCBp cyBub3QgZm91bmQuCisgKiBJZiB0cnVlLCBqdXN0IHJldHVybiBJbnZhbGlkT2lkLgorICov CitjaGFyICoKK2dldF9wZXJpb2RuYW1lKE9pZCBwZXJpb2RpZCwgYm9vbCBtaXNzaW5nX29r KQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFBFUklPRE9J RCwKKwkJCQkJCSBPYmplY3RJZEdldERhdHVtKHBlcmlvZGlkKSk7CisJaWYgKEhlYXBUdXBs ZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ19wZXJpb2QgcGVyaW9kX3R1cCA9IChGb3Jt X3BnX3BlcmlvZCkgR0VUU1RSVUNUKHRwKTsKKwkJY2hhcgkgICAqcmVzdWx0OworCisJCXJl c3VsdCA9IHBzdHJkdXAoTmFtZVN0cihwZXJpb2RfdHVwLT5wZXJuYW1lKSk7CisJCVJlbGVh c2VTeXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJaWYgKCFtaXNzaW5n X29rKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcGVyaW9kICVk IiwKKwkJCSBwZXJpb2RpZCk7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBnZXRfcGVy aW9kX29pZCAtIGdldHMgaXRzIHJlbGF0aW9uIGFuZCBuYW1lLCBsb29rIHVwIGEgcGVyaW9k CisgKgorICogSWYgbWlzc2luZ19vayBpcyBmYWxzZSwgdGhyb3cgYW4gZXJyb3IgaWYgdGhl IGNhc3QgaXMgbm90IGZvdW5kLiAgSWYKKyAqIHRydWUsIGp1c3QgcmV0dXJuIEludmFsaWRP aWQuCisgKi8KK09pZAorZ2V0X3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25zdCBjaGFyICpw ZXJpb2RuYW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAg PSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCSBPYmplY3RJZEdldERhdHVt KHJlbGlkKSwKKwkJCQkJCSBQb2ludGVyR2V0RGF0dW0ocGVyaW9kbmFtZSkpOworCisJaWYg KEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ19wZXJpb2QgcGVyaW9kX3R1 cCA9IChGb3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHRwKTsKKwkJT2lkIHJlc3VsdDsKKwor CQlyZXN1bHQgPSBwZXJpb2RfdHVwLT5vaWQ7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJ CXJldHVybiByZXN1bHQ7CisJfQorCisJaWYgKCFtaXNzaW5nX29rKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcGVyaW9kICVzIiwKKwkJCSBwZXJpb2RuYW1l KTsKKwlyZXR1cm4gSW52YWxpZE9pZDsKK30KKwogLyoJCQkJLS0tLS0tLS0tLSBQR19DQVNU IENBQ0hFIC0tLS0tLS0tLS0JCQkJCSAqLwogCiAvKgpAQCAtMzU1Myw2ICszNjE2LDMwIEBA IGdldF9tdWx0aXJhbmdlX3JhbmdlKE9pZCBtdWx0aXJhbmdlT2lkKQogCQlyZXR1cm4gSW52 YWxpZE9pZDsKIH0KIAorT2lkCitnZXRfc3VidHlwZV9yYW5nZShPaWQgc3VidHlwZU9pZCkK K3sKKwlDYXRDTGlzdCAqY2F0bGlzdDsKKwlPaWQJcmVzdWx0ID0gSW52YWxpZE9pZDsKKwor CWNhdGxpc3QgPSBTZWFyY2hTeXNDYWNoZUxpc3QxKFJBTkdFU1VCVFlQRSwgT2JqZWN0SWRH ZXREYXR1bShzdWJ0eXBlT2lkKSk7CisKKwlpZiAoY2F0bGlzdC0+bl9tZW1iZXJzID09IDEp CisJeworCQlIZWFwVHVwbGUJdHVwbGUgPSAmY2F0bGlzdC0+bWVtYmVyc1swXS0+dHVwbGU7 CisJCUZvcm1fcGdfcmFuZ2Ugcm5ndHVwID0gKEZvcm1fcGdfcmFuZ2UpIEdFVFNUUlVDVCh0 dXBsZSk7CisJCXJlc3VsdCA9IHJuZ3R1cC0+cm5ndHlwaWQ7CisJCVJlbGVhc2VDYXRDYWNo ZUxpc3QoY2F0bGlzdCk7CisJfQorCWVsc2UgaWYgKGNhdGxpc3QtPm5fbWVtYmVycyA+IDEp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTkRFVEVSTUlOQVRF X0RBVEFUWVBFKSwKKwkJCQkgZXJybXNnKCJhbWJpZ3VvdXMgcmFuZ2UgZm9yIHR5cGUgJXMi LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUoc3VidHlwZU9pZCkpKSk7CisKKwlyZXR1cm4gcmVz dWx0OworfQorCiAvKgkJCQktLS0tLS0tLS0tIFBHX0lOREVYIENBQ0hFIC0tLS0tLS0tLS0J CQkJICovCiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXgg OGMyMGMyNjNjNGIuLmJmMmY1NWQ1YTE1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9h cmNoaXZlci5jCkBAIC0zNzA0LDYgKzM3MDQsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24o UFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCQkgc3RyY21wKHR5cGUs ICJEQVRBQkFTRSBQUk9QRVJUSUVTIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiREVG QVVMVCIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIkZLIENPTlNUUkFJTlQiKSA9PSAw IHx8CisJCQkgc3RyY21wKHR5cGUsICJQRVJJT0QiKSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5 cGUsICJJTkRFWCIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIlJVTEUiKSA9PSAwIHx8 CiAJCQkgc3RyY21wKHR5cGUsICJUUklHR0VSIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5k ZXggZWIzZWZhMzg5YTAuLmNlNjM1YzE0NDA5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTY3ODAs NiArNjc4MCw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykK IAlpbnQJCQlpX3JlbHR5cGU7CiAJaW50CQkJaV9yZWxvd25lcjsKIAlpbnQJCQlpX3JlbGNo ZWNrczsKKwlpbnQJCQlpX25wZXJpb2Q7CiAJaW50CQkJaV9yZWxoYXNpbmRleDsKIAlpbnQJ CQlpX3JlbGhhc3J1bGVzOwogCWludAkJCWlfcmVscGFnZXM7CkBAIC02ODU3LDYgKzY4NTgs MTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgImMucmVsaGFzb2lkcywgIik7CiAK KwkvKiBJbiBQRzE4IHVwd2FyZHMgd2UgaGF2ZSBQRVJJT0RzLiAqLworCWlmIChmb3V0LT5y ZW1vdGVWZXJzaW9uID49IDE4MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CisJCQkJCQkJICIoU0VMRUNUIGNvdW50KCopIEZST00gcGdfcGVyaW9kIFdIRVJFIHBlcnJl bGlkID0gYy5vaWQpIEFTIG5wZXJpb2RzLCAiKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiMCBBUyBucGVyaW9kcywgIik7CisKIAlpZiAoZm91 dC0+cmVtb3RlVmVyc2lvbiA+PSA5MDMwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVl cnksCiAJCQkJCQkJICJjLnJlbGlzcG9wdWxhdGVkLCAiKTsKQEAgLTY5OTQsNiArNzAwMyw3 IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAlpX3JlbHR5 cGUgPSBQUWZudW1iZXIocmVzLCAicmVsdHlwZSIpOwogCWlfcmVsb3duZXIgPSBQUWZudW1i ZXIocmVzLCAicmVsb3duZXIiKTsKIAlpX3JlbGNoZWNrcyA9IFBRZm51bWJlcihyZXMsICJy ZWxjaGVja3MiKTsKKwlpX25wZXJpb2QgPSBQUWZudW1iZXIocmVzLCAibnBlcmlvZHMiKTsK IAlpX3JlbGhhc2luZGV4ID0gUFFmbnVtYmVyKHJlcywgInJlbGhhc2luZGV4Iik7CiAJaV9y ZWxoYXNydWxlcyA9IFBRZm51bWJlcihyZXMsICJyZWxoYXNydWxlcyIpOwogCWlfcmVscGFn ZXMgPSBQUWZudW1iZXIocmVzLCAicmVscGFnZXMiKTsKQEAgLTcwNzcsNiArNzA4Nyw3IEBA IGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJfQogCQl0Ymxp bmZvW2ldLnJlbHRhYmxlc3BhY2UgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf cmVsdGFibGVzcGFjZSkpOwogCQl0YmxpbmZvW2ldLmhhc29pZHMgPSAoc3RyY21wKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3JlbGhhc29pZHMpLCAidCIpID09IDApOworCQl0YmxpbmZvW2ld Lm5wZXJpb2QgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX25wZXJpb2QpKTsKIAkJdGJs aW5mb1tpXS5oYXN0cmlnZ2VycyA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVs aGFzdHJpZ2dlcnMpLCAidCIpID09IDApOwogCQl0YmxpbmZvW2ldLnJlbHBlcnNpc3RlbmNl ID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxwZXJzaXN0ZW5jZSkpOwogCQl0YmxpbmZv W2ldLnJlbGlzcG9wdWxhdGVkID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxp c3BvcHVsYXRlZCksICJ0IikgPT0gMCk7CkBAIC04NzEwLDcgKzg3MjEsNyBAQCBnZXRUcmFu c2Zvcm1zKEFyY2hpdmUgKmZvdXQpCiAvKgogICogZ2V0VGFibGVBdHRycyAtCiAgKgkgIGZv ciBlYWNoIGludGVyZXN0aW5nIHRhYmxlLCByZWFkIGluZm8gYWJvdXQgaXRzIGF0dHJpYnV0 ZXMKLSAqCSAgKG5hbWVzLCB0eXBlcywgZGVmYXVsdCB2YWx1ZXMsIENIRUNLIGNvbnN0cmFp bnRzLCBldGMpCisgKgkgIChuYW1lcywgdHlwZXMsIGRlZmF1bHQgdmFsdWVzLCBDSEVDSyBj b25zdHJhaW50cywgUEVSSU9EcywgZXRjKQogICoKICAqCW1vZGlmaWVzIHRibGluZm8KICAq LwpAQCAtODc2MCw2ICs4NzcxLDggQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJZm9yIChpbnQgaSA9IDA7IGkg PCBudW1UYWJsZXM7IGkrKykKIAl7CiAJCVRhYmxlSW5mbyAgKnRiaW5mbyA9ICZ0YmxpbmZv W2ldOworCQlpbnQJCQluZHVtcGFibGVjaGVja3M7CS8qIG51bWJlciBvZiBDSEVDSyBjb25z dHJhaW50cyB0aGF0IGRvCisJCQkJCQkJCQkJICAgbm90IGJlbG9uZyB0byBhIHBlcmlvZCAq LwogCiAJCS8qIERvbid0IGJvdGhlciB0byBjb2xsZWN0IGluZm8gZm9yIHNlcXVlbmNlcyAq LwogCQlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCkBAIC04Nzc0 LDcgKzg3ODcsOCBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAq dGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcih0Ymxv aWRzLCAnLCcpOwogCQlhcHBlbmRQUUV4cEJ1ZmZlcih0YmxvaWRzLCAiJXUiLCB0YmluZm8t PmRvYmouY2F0SWQub2lkKTsKIAotCQlpZiAodGJpbmZvLT5uY2hlY2sgPiAwKQorCQluZHVt cGFibGVjaGVja3MgPSB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBlcmlvZDsKKwkJaWYg KG5kdW1wYWJsZWNoZWNrcyA+IDApCiAJCXsKIAkJCS8qIEFsc28gbWFrZSBhIGxpc3Qgb2Yg dGhlIG9uZXMgd2l0aCBjaGVjayBjb25zdHJhaW50cyAqLwogCQkJaWYgKGNoZWNrb2lkcy0+ bGVuID4gMSkgLyogZG8gd2UgaGF2ZSBtb3JlIHRoYW4gdGhlICd7Jz8gKi8KQEAgLTkxMzYs MTUgKzkxNTAsMzYgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g KnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCXBnX2xvZ19pbmZvKCJmaW5kaW5nIHRhYmxl IGNoZWNrIGNvbnN0cmFpbnRzIik7CiAKIAkJcmVzZXRQUUV4cEJ1ZmZlcihxKTsKLQkJYXBw ZW5kUFFFeHBCdWZmZXIocSwKLQkJCQkJCSAgIlNFTEVDVCBjLnRhYmxlb2lkLCBjLm9pZCwg Y29ucmVsaWQsIGNvbm5hbWUsICIKLQkJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X2NvbnN0 cmFpbnRkZWYoYy5vaWQpIEFTIGNvbnNyYywgIgotCQkJCQkJICAiY29uaXNsb2NhbCwgY29u dmFsaWRhdGVkICIKLQkJCQkJCSAgIkZST00gdW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lk W10pIEFTIHNyYyh0YmxvaWQpXG4iCi0JCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfY29u c3RyYWludCBjIE9OIChzcmMudGJsb2lkID0gYy5jb25yZWxpZClcbiIKLQkJCQkJCSAgIldI RVJFIGNvbnR5cGUgPSAnYycgIgotCQkJCQkJICAiT1JERVIgQlkgYy5jb25yZWxpZCwgYy5j b25uYW1lIiwKLQkJCQkJCSAgY2hlY2tvaWRzLT5kYXRhKTsKKwkJaWYgKGZvdXQtPnJlbW90 ZVZlcnNpb24gPj0gMTgwMDAwKQorCQl7CisJCQkvKgorCQkJICogUEVSSU9EcyB3ZXJlIGFk ZGVkIGluIHYxOCBhbmQgd2UgZG9uJ3QgZHVtcCBDSEVDSworCQkJICogY29uc3RyYWludHMg Zm9yIHRoZW0uCisJCQkgKi8KKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkJICAi U0VMRUNUIGMudGFibGVvaWQsIGMub2lkLCBjb25yZWxpZCwgY29ubmFtZSwgIgorCQkJCQkJ CSAgInBnX2NhdGFsb2cucGdfZ2V0X2NvbnN0cmFpbnRkZWYoYy5vaWQpIEFTIGNvbnNyYywg IgorCQkJCQkJCSAgImNvbmlzbG9jYWwsIGNvbnZhbGlkYXRlZCAiCisJCQkJCQkJICAiRlJP TSB1bm5lc3QoJyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkgQVMgc3JjKHRibG9pZClcbiIKKwkJ CQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCBjIE9OIChzcmMudGJsb2lk ID0gYy5jb25yZWxpZClcbiIKKwkJCQkJCQkgICJXSEVSRSBjb250eXBlID0gJ2MnICIKKwkJ CQkJCQkgICIgICBBTkQgTk9UIEVYSVNUUyAoU0VMRUNUIEZST00gcGdfcGVyaW9kICIKKwkJ CQkJCQkgICIgICAgICAgICAgICAgICAgICAgV0hFUkUgKHBlcnJlbGlkLCBwZXJjb25zdHJh aW50KSA9IChjb25yZWxpZCwgYy5vaWQpKSAiCisJCQkJCQkJICAiT1JERVIgQlkgYy5jb25y ZWxpZCwgYy5jb25uYW1lIiwKKwkJCQkJCQkgIGNoZWNrb2lkcy0+ZGF0YSk7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLAorCQkJCQkJCSAgIlNFTEVDVCBj LnRhYmxlb2lkLCBjLm9pZCwgY29ucmVsaWQsIGNvbm5hbWUsICIKKwkJCQkJCQkgICJwZ19j YXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkKSBBUyBjb25zcmMsICIKKwkJCQkJ CQkgICJjb25pc2xvY2FsLCBjb252YWxpZGF0ZWQgIgorCQkJCQkJCSAgIkZST00gdW5uZXN0 KCclcyc6OnBnX2NhdGFsb2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4iCisJCQkJCQkJICAi Sk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMuY29u cmVsaWQpXG4iCisJCQkJCQkJICAiV0hFUkUgY29udHlwZSA9ICdjJyAiCisJCQkJCQkJICAi T1JERVIgQlkgYy5jb25yZWxpZCwgYy5jb25uYW1lIiwKKwkJCQkJCQkgIGNoZWNrb2lkcy0+ ZGF0YSk7CisJCX0KIAogCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcS0+ZGF0YSwg UEdSRVNfVFVQTEVTX09LKTsKIApAQCAtOTE2Niw2ICs5MjAxLDcgQEAgZ2V0VGFibGVBdHRy cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJ CQlPaWQJCQljb25yZWxpZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaiwgaV9jb25yZWxp ZCkpOwogCQkJVGFibGVJbmZvICAqdGJpbmZvID0gTlVMTDsKIAkJCWludAkJCW51bWNvbnM7 CisJCQlpbnQJCQluZHVtcGFibGVjaGVja3M7CiAKIAkJCS8qIENvdW50IHJvd3MgZm9yIHRo aXMgdGFibGUgKi8KIAkJCWZvciAobnVtY29ucyA9IDE7IG51bWNvbnMgPCBudW1Db25zdHJz IC0gajsgbnVtY29ucysrKQpAQCAtOTE4NSwxMiArOTIyMSwxMyBAQCBnZXRUYWJsZUF0dHJz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJ CWlmIChjdXJ0YmxpbmR4ID49IG51bVRhYmxlcykKIAkJCQlwZ19mYXRhbCgidW5yZWNvZ25p emVkIHRhYmxlIE9JRCAldSIsIGNvbnJlbGlkKTsKIAotCQkJaWYgKG51bWNvbnMgIT0gdGJp bmZvLT5uY2hlY2spCisJCQluZHVtcGFibGVjaGVja3MgPSB0YmluZm8tPm5jaGVjayAtIHRi aW5mby0+bnBlcmlvZDsKKwkJCWlmIChudW1jb25zICE9IG5kdW1wYWJsZWNoZWNrcykKIAkJ CXsKIAkJCQlwZ19sb2dfZXJyb3IobmdldHRleHQoImV4cGVjdGVkICVkIGNoZWNrIGNvbnN0 cmFpbnQgb24gdGFibGUgXCIlc1wiIGJ1dCBmb3VuZCAlZCIsCiAJCQkJCQkJCQkgICJleHBl Y3RlZCAlZCBjaGVjayBjb25zdHJhaW50cyBvbiB0YWJsZSBcIiVzXCIgYnV0IGZvdW5kICVk IiwKLQkJCQkJCQkJCSAgdGJpbmZvLT5uY2hlY2spLAotCQkJCQkJCSB0YmluZm8tPm5jaGVj aywgdGJpbmZvLT5kb2JqLm5hbWUsIG51bWNvbnMpOworCQkJCQkJCQkJICBuZHVtcGFibGVj aGVja3MpLAorCQkJCQkJCSBuZHVtcGFibGVjaGVja3MsIHRiaW5mby0+ZG9iai5uYW1lLCBu dW1jb25zKTsKIAkJCQlwZ19sb2dfZXJyb3JfaGludCgiVGhlIHN5c3RlbSBjYXRhbG9ncyBt aWdodCBiZSBjb3JydXB0ZWQuIik7CiAJCQkJZXhpdF9uaWNlbHkoMSk7CiAJCQl9CkBAIC05 MjQ5LDYgKzkyODYsODAgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUlu Zm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCVBRY2xlYXIocmVzKTsKIAl9CiAKKwlm b3IgKGludCBpID0gMDsgaSA8IG51bVRhYmxlczsgaSsrKQorCXsKKwkJVGFibGVJbmZvICAq dGJpbmZvID0gJnRibGluZm9baV07CisKKwkJLyoKKwkJICogR2V0IGluZm8gYWJvdXQgUEVS SU9EIGRlZmluaXRpb25zCisJCSAqLworCQlpZiAodGJpbmZvLT5ucGVyaW9kID4gMCkKKwkJ eworCQkJUGVyaW9kSW5mbyAqcGVyaW9kczsKKwkJCWludAkJCW51bVBlcmlvZHM7CisJCQlp bnQJCQlqOworCisJCQkvKiBXZSBzaG91bGRuJ3QgaGF2ZSBhbnkgcGVyaW9kcyBiZWZvcmUg djE4ICovCisJCQlBc3NlcnQoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDApOworCisJ CQlwZ19sb2dfaW5mbygiZmluZGluZyBwZXJpb2RzIGZvciB0YWJsZSBcIiVzLiVzXCIiLAor CQkJCQkJdGJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJdGJpbmZv LT5kb2JqLm5hbWUpOworCisJCQlyZXNldFBRRXhwQnVmZmVyKHEpOworCQkJYXBwZW5kUFFF eHBCdWZmZXIocSwKKwkJCQkiU0VMRUNUIHAudGFibGVvaWQsIHAub2lkLCBwLnBlcm5hbWUs ICIKKwkJCQkiICAgICAgIHNhLmF0dG5hbWUgQVMgcGVyc3RhcnQsIGVhLmF0dG5hbWUgQVMg cGVyZW5kLCAiCisJCQkJIiAgICAgICByLnR5cG5hbWUgQVMgcm5ndHlwZSwgIgorCQkJCSIg ICAgICAgYy5jb25uYW1lIEFTIGNvbm5hbWUgIgorCQkJCSJGUk9NIHBnX2NhdGFsb2cucGdf cGVyaW9kIEFTIHAgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIEFTIHNh IE9OIChzYS5hdHRyZWxpZCwgc2EuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnN0YXJ0 KSAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgQVMgZWEgT04gKGVhLmF0 dHJlbGlkLCBlYS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyZW5kKSAiCisJCQkJIkpP SU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgQVMgcmEgT04gKHJhLmF0dHJlbGlkLCByYS5h dHRudW0pID0gKHAucGVycmVsaWQsIHAucGVycmFuZ2UpICIKKwkJCQkiSk9JTiBwZ19jYXRh bG9nLnBnX3R5cGUgQVMgciBPTiByLm9pZCA9IHJhLmF0dHR5cGlkICIKKwkJCQkiSk9JTiBw Z19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgQVMgYyBPTiBjLm9pZCA9IHAucGVyY29uc3RyYWlu dCAiCisJCQkJIldIRVJFIHAucGVycmVsaWQgPSAnJXUnOjpwZ19jYXRhbG9nLm9pZCAiCisJ CQkJIk9SREVSIEJZIHAucGVybmFtZSIsCisJCQkJdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7 CisKKwkJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxLT5kYXRhLCBQR1JFU19UVVBM RVNfT0spOworCisJCQkvKgorCQkJICogSWYgd2UgZGlkbid0IGdldCB0aGUgbnVtYmVyIG9m IHJvd3Mgd2UgdGhvdWdodCB3ZSB3ZXJlIGdvaW5nIHRvLAorCQkJICogdGhlbiB0aG9zZSBK T0lOcyBkaWRuJ3Qgd29yay4KKwkJCSAqLworCQkJbnVtUGVyaW9kcyA9IFBRbnR1cGxlcyhy ZXMpOworCQkJaWYgKG51bVBlcmlvZHMgIT0gdGJpbmZvLT5ucGVyaW9kKQorCQkJeworCQkJ CXBnX2xvZ19pbmZvKG5nZXR0ZXh0KCJleHBlY3RlZCAlZCBwZXJpb2Qgb24gdGFibGUgXCIl c1wiIGJ1dCBmb3VuZCAlZCIsCisJCQkJCQkJCQkgImV4cGVjdGVkICVkIHBlcmlvZHMgb24g dGFibGUgXCIlc1wiIGJ1dCBmb3VuZCAlZCIsCisJCQkJCQkJCQkgdGJpbmZvLT5ucGVyaW9k KSwKKwkJCQkJCQl0YmluZm8tPm5wZXJpb2QsIHRiaW5mby0+ZG9iai5uYW1lLCBudW1QZXJp b2RzKTsKKwkJCQlwZ19sb2dfaW5mbygiKFRoZSBzeXN0ZW0gY2F0YWxvZ3MgbWlnaHQgYmUg Y29ycnVwdGVkLikiKTsKKwkJCQlleGl0X25pY2VseSgxKTsKKwkJCX0KKworCQkJcGVyaW9k cyA9IChQZXJpb2RJbmZvICopIHBnX21hbGxvYyhudW1QZXJpb2RzICogc2l6ZW9mKFBlcmlv ZEluZm8pKTsKKwkJCXRiaW5mby0+cGVyaW9kcyA9IHBlcmlvZHM7CisKKwkJCWZvciAoaiA9 IDA7IGogPCBudW1QZXJpb2RzOyBqKyspCisJCQl7CisJCQkJcGVyaW9kc1tqXS5kb2JqLm9i alR5cGUgPSBET19QRVJJT0Q7CisJCQkJcGVyaW9kc1tqXS5kb2JqLmNhdElkLnRhYmxlb2lk ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBqLCAwKSk7CisJCQkJcGVyaW9kc1tqXS5kb2Jq LmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaiwgMSkpOworCQkJCUFzc2ln bkR1bXBJZCgmcGVyaW9kc1tqXS5kb2JqKTsKKwkJCQlwZXJpb2RzW2pdLmRvYmoubmFtZSA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaiwgMikpOworCQkJCXBlcmlvZHNbal0uZG9i ai5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFtZXNwYWNlOworCQkJCXBlcmlvZHNbal0u cGVydGFibGUgPSB0YmluZm87CisJCQkJcGVyaW9kc1tqXS5wZXJzdGFydCA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaiwgMykpOworCQkJCXBlcmlvZHNbal0ucGVyZW5kID0gcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCA0KSk7CisJCQkJcGVyaW9kc1tqXS5ybmd0eXBl ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCA1KSk7CisJCQkJcGVyaW9kc1tqXS5j b25uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCA2KSk7CisJCQl9CisJCQlQ UWNsZWFyKHJlcyk7CisJCX0KKwl9CisKIAlkZXN0cm95UFFFeHBCdWZmZXIocSk7CiAJZGVz dHJveVBRRXhwQnVmZmVyKHRibG9pZHMpOwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcihjaGVja29p ZHMpOwpAQCAtMTA0NzcsNiArMTA1ODgsOCBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2 ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fRktfQ09OU1RSQUlO VDoKIAkJCWR1bXBDb25zdHJhaW50KGZvdXQsIChjb25zdCBDb25zdHJhaW50SW5mbyAqKSBk b2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1BFUklPRDoKKwkJCWJyZWFrOwogCQljYXNl IERPX1BST0NMQU5HOgogCQkJZHVtcFByb2NMYW5nKGZvdXQsIChjb25zdCBQcm9jTGFuZ0lu Zm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTE2MDMwLDYgKzE2MTQzLDMzIEBAIGR1bXBU YWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJ CQl9CiAJCQl9CiAKKwkJCS8qCisJCQkgKiBBZGQgbm9uLWluaGVyaXRlZCBQRVJJT0QgZGVm aW5pdGlvbnMsIGlmIGFueS4KKwkJCSAqLworCQkJZm9yIChqID0gMDsgaiA8IHRiaW5mby0+ bnBlcmlvZDsgaisrKQorCQkJeworCQkJCVBlcmlvZEluZm8gKnBlcmlvZCA9ICYodGJpbmZv LT5wZXJpb2RzW2pdKTsKKworCQkJCWNoYXIJICAgKm5hbWUgPSBwZ19zdHJkdXAoZm10SWQo cGVyaW9kLT5kb2JqLm5hbWUpKTsKKwkJCQljaGFyCSAgICpzdGFydCA9IHBnX3N0cmR1cChm bXRJZChwZXJpb2QtPnBlcnN0YXJ0KSk7CisJCQkJY2hhcgkgICAqZW5kID0gcGdfc3RyZHVw KGZtdElkKHBlcmlvZC0+cGVyZW5kKSk7CisJCQkJY2hhcgkgICAqcm5ndHlwZSA9IHBnX3N0 cmR1cChmbXRJZChwZXJpb2QtPnJuZ3R5cGUpKTsKKwkJCQljaGFyCSAgICpjb25uYW1lID0g cGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+Y29ubmFtZSkpOworCisJCQkJaWYgKGFjdHVhbF9h dHRzID09IDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICIgKFxuICAgICIpOwor CQkJCWVsc2UKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIixcbiAgICAiKTsKKwor CQkJCS8qIEFsd2F5cyBzYXkgY29sZXhpc3RzIHNvIHdlIGNhbiBqdXN0IHByaW50IHRoZSBH RU5FUkFURUQgY29sdW1uICovCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlBFUklPRCBG T1IgJXMgKCVzLCAlcykgIgorCQkJCQkJIldJVEggKHJhbmdldHlwZSA9ICVzLCBjaGVja19j b25zdHJhaW50X25hbWUgPSAlcywgY29sZXhpc3RzID0gdHJ1ZSkiLAorCQkJCQkJCQkgIG5h bWUsIHN0YXJ0LCBlbmQsCisJCQkJCQkJCSAgcm5ndHlwZSwgY29ubmFtZSk7CisKKwkJCQlh Y3R1YWxfYXR0cysrOworCQkJfQorCiAJCQkvKgogCQkJICogQWRkIG5vbi1pbmhlcml0ZWQg Q0hFQ0sgY29uc3RyYWludHMsIGlmIGFueS4KIAkJCSAqCkBAIC0xNjAzOCw3ICsxNjE3OCw3 IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRi aW5mbykKIAkJCSAqIFBBUlRJVElPTiB0aGF0IHdlJ2xsIGVtaXQgbGF0ZXIgZXhwZWN0cyB0 aGUgY29uc3RyYWludCB0byBiZQogCQkJICogdGhlcmUuICAoTm8gbmVlZCB0byBmaXggY29u aXNsb2NhbDogQVRUQUNIIFBBUlRJVElPTiBkb2VzIHRoYXQpCiAJCQkgKi8KLQkJCWZvciAo aiA9IDA7IGogPCB0YmluZm8tPm5jaGVjazsgaisrKQorCQkJZm9yIChqID0gMDsgaiA8IHRi aW5mby0+bmNoZWNrIC0gdGJpbmZvLT5ucGVyaW9kOyBqKyspCiAJCQl7CiAJCQkJQ29uc3Ry YWludEluZm8gKmNvbnN0ciA9ICYodGJpbmZvLT5jaGVja2V4cHJzW2pdKTsKIApAQCAtMTYy ODQsNyArMTY0MjQsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3Qg VGFibGVJbmZvICp0YmluZm8pCiAJCQkgKi8KIAkJCXJlc2V0UFFFeHBCdWZmZXIoZXh0cmEp OwogCQkJZmlyc3RpdGVtID0gdHJ1ZTsKLQkJCWZvciAoayA9IDA7IGsgPCB0YmluZm8tPm5j aGVjazsgaysrKQorCQkJZm9yIChrID0gMDsgayA8IHRiaW5mby0+bmNoZWNrIC0gdGJpbmZv LT5ucGVyaW9kOyBrKyspCiAJCQl7CiAJCQkJQ29uc3RyYWludEluZm8gKmNvbnN0ciA9ICYo dGJpbmZvLT5jaGVja2V4cHJzW2tdKTsKIApAQCAtMTY1OTAsNyArMTY3MzAsNyBAQCBkdW1w VGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJ CWR1bXBUYWJsZVNlY0xhYmVsKGZvdXQsIHRiaW5mbywgcmVsdHlwZW5hbWUpOwogCiAJLyog RHVtcCBjb21tZW50cyBvbiBpbmxpbmVkIHRhYmxlIGNvbnN0cmFpbnRzICovCi0JZm9yIChq ID0gMDsgaiA8IHRiaW5mby0+bmNoZWNrOyBqKyspCisJZm9yIChqID0gMDsgaiA8IHRiaW5m by0+bmNoZWNrIC0gdGJpbmZvLT5ucGVyaW9kOyBqKyspCiAJewogCQlDb25zdHJhaW50SW5m byAqY29uc3RyID0gJih0YmluZm8tPmNoZWNrZXhwcnNbal0pOwogCkBAIC0xODY2Miw2ICsx ODgwMiw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9i anMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19UUklHR0VSOgogCQkJY2FzZSBET19FVkVO VF9UUklHR0VSOgogCQkJY2FzZSBET19ERUZBVUxUX0FDTDoKKwkJCWNhc2UgRE9fUEVSSU9E OgogCQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OOgogCQkJY2Fz ZSBET19QVUJMSUNBVElPTl9SRUw6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCBiMjViOWY5MzA0ZS4u ODE4N2FkYTY2ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTksNiArNTksNyBAQCB0eXBlZGVm IGVudW0KIAlET19UUklHR0VSLAogCURPX0NPTlNUUkFJTlQsCiAJRE9fRktfQ09OU1RSQUlO VCwJCQkvKiBzZWUgbm90ZSBmb3IgQ29uc3RyYWludEluZm8gKi8KKwlET19QRVJJT0QsCiAJ RE9fUFJPQ0xBTkcsCiAJRE9fQ0FTVCwKIAlET19UQUJMRV9EQVRBLApAQCAtMzAwLDEyICsz MDEsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJvb2wJCXJvd3NlYzsJCQkv KiBpcyByb3cgc2VjdXJpdHkgZW5hYmxlZD8gKi8KIAlib29sCQlmb3JjZXJvd3NlYzsJLyog aXMgcm93IHNlY3VyaXR5IGZvcmNlZD8gKi8KIAlib29sCQloYXNvaWRzOwkJLyogZG9lcyBp dCBoYXZlIE9JRHM/ICovCisJYm9vbAkJaGFzcGVyaW9kczsJCS8qIGRvZXMgaXQgaGF2ZSBh bnkgcGVyaW9kcz8gKi8KIAl1aW50MzIJCWZyb3plbnhpZDsJCS8qIHRhYmxlJ3MgcmVsZnJv emVueGlkICovCiAJdWludDMyCQltaW5teGlkOwkJLyogdGFibGUncyByZWxtaW5teGlkICov CiAJT2lkCQkJdG9hc3Rfb2lkOwkJLyogdG9hc3QgdGFibGUncyBPSUQsIG9yIDAgaWYgbm9u ZSAqLwogCXVpbnQzMgkJdG9hc3RfZnJvemVueGlkOwkvKiB0b2FzdCB0YWJsZSdzIHJlbGZy b3plbnhpZCwgaWYgYW55ICovCiAJdWludDMyCQl0b2FzdF9taW5teGlkOwkvKiB0b2FzdCB0 YWJsZSdzIHJlbG1pbm14aWQgKi8KIAlpbnQJCQluY2hlY2s7CQkJLyogIyBvZiBDSEVDSyBl eHByZXNzaW9ucyAqLworCWludAkJCW5wZXJpb2Q7CQkvKiAjIG9mIFBFUklPRCBkZWZpbml0 aW9ucyAqLwogCU9pZAkJCXJlbHR5cGU7CQkvKiBPSUQgb2YgdGFibGUncyBjb21wb3NpdGUg dHlwZSwgaWYgYW55ICovCiAJT2lkCQkJcmVsb2Z0eXBlOwkJLyogdW5kZXJseWluZyB0eXBl IGZvciB0eXBlZCB0YWJsZSAqLwogCU9pZAkJCWZvcmVpZ25fc2VydmVyOyAvKiBmb3JlaWdu IHNlcnZlciBvaWQsIGlmIGFwcGxpY2FibGUgKi8KQEAgLTMzNiw2ICszMzksNyBAQCB0eXBl ZGVmIHN0cnVjdCBfdGFibGVJbmZvCiAJY2hhcgkgICAqYXR0c3RvcmFnZTsJCS8qIGF0dHJp YnV0ZSBzdG9yYWdlIHNjaGVtZSAqLwogCWNoYXIJICAgKnR5cHN0b3JhZ2U7CQkvKiB0eXBl IHN0b3JhZ2Ugc2NoZW1lICovCiAJYm9vbAkgICAqYXR0aXNkcm9wcGVkOwkvKiB0cnVlIGlm IGF0dHIgaXMgZHJvcHBlZDsgZG9uJ3QgZHVtcCBpdCAqLworCWJvb2wJICAgKmF0dGlzcGVy aW9kOwkvKiB0cnVlIGlmIGF0dHIgaXMgYSBQRVJJT0Q7IGRvbid0IGR1bXAgaXQgKi8KIAlj aGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAgICphdHRnZW5lcmF0ZWQ7CiAJaW50CQkg ICAqYXR0bGVuOwkJCS8qIGF0dHJpYnV0ZSBsZW5ndGgsIHVzZWQgYnkgYmluYXJ5X3VwZ3Jh ZGUgKi8KQEAgLTM1MCw2ICszNTQsNyBAQCB0eXBlZGVmIHN0cnVjdCBfdGFibGVJbmZvCiAJ Ym9vbAkgICAqaW5oTm90TnVsbDsJCS8qIHRydWUgaWYgTk9UIE5VTEwgaXMgaW5oZXJpdGVk ICovCiAJc3RydWN0IF9hdHRyRGVmSW5mbyAqKmF0dHJkZWZzOyAvKiBERUZBVUxUIGV4cHJl c3Npb25zICovCiAJc3RydWN0IF9jb25zdHJhaW50SW5mbyAqY2hlY2tleHByczsgLyogQ0hF Q0sgY29uc3RyYWludHMgKi8KKwlzdHJ1Y3QgX3BlcmlvZEluZm8gKnBlcmlvZHM7CS8qIFBF UklPRCBkZWZpbml0aW9ucyAqLwogCWJvb2wJCW5lZWRzX292ZXJyaWRlOyAvKiBoYXMgR0VO RVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSAqLwogCWNoYXIJICAgKmFtbmFtZTsJCQkvKiBy ZWxhdGlvbiBhY2Nlc3MgbWV0aG9kICovCiAKQEAgLTQ3OSw2ICs0ODQsMTYgQEAgdHlwZWRl ZiBzdHJ1Y3QgX2NvbnN0cmFpbnRJbmZvCiAJYm9vbAkJc2VwYXJhdGU7CQkvKiB0cnVlIGlm IG11c3QgZHVtcCBhcyBzZXBhcmF0ZSBpdGVtICovCiB9IENvbnN0cmFpbnRJbmZvOwogCit0 eXBlZGVmIHN0cnVjdCBfcGVyaW9kSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJ VGFibGVJbmZvICAqcGVydGFibGU7CisJY2hhcgkgICAqcGVyc3RhcnQ7CQkvKiB0aGUgbmFt ZSBvZiB0aGUgc3RhcnQgY29sdW1uICovCisJY2hhcgkgICAqcGVyZW5kOwkJCS8qIHRoZSBu YW1lIG9mIHRoZSBlbmQgY29sdW1uICovCisJY2hhcgkgICAqcm5ndHlwZTsJCS8qIHRoZSBu YW1lIG9mIHRoZSByYW5nZSB0eXBlICovCisJY2hhcgkgICAqY29ubmFtZTsJCS8qIHRoZSBu YW1lIG9mIHRoZSBDSEVDSyBjb25zdHJhaW50ICovCit9IFBlcmlvZEluZm87CisKIHR5cGVk ZWYgc3RydWN0IF9wcm9jTGFuZ0luZm8KIHsKIAlEdW1wYWJsZU9iamVjdCBkb2JqOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDRjYjc1NGNhYTU1Li41NjAyY2RhNGQ1YyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtODYsNiArODYsNyBAQCBlbnVtIGRiT2JqZWN0 VHlwZVByaW9yaXRpZXMKIAlQUklPX0NPTlNUUkFJTlQsCiAJUFJJT19JTkRFWCwKIAlQUklP X0lOREVYX0FUVEFDSCwKKwlQUklPX1BFUklPRCwKIAlQUklPX1NUQVRTRVhULAogCVBSSU9f UlVMRSwKIAlQUklPX1RSSUdHRVIsCkBAIC0xMjEsNiArMTIyLDcgQEAgc3RhdGljIGNvbnN0 IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fQVRUUkRFRl0gPSBQUklPX0FU VFJERUYsCiAJW0RPX0lOREVYXSA9IFBSSU9fSU5ERVgsCiAJW0RPX0lOREVYX0FUVEFDSF0g PSBQUklPX0lOREVYX0FUVEFDSCwKKwlbRE9fUEVSSU9EXSA9IFBSSU9fUEVSSU9ELAogCVtE T19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhULAogCVtET19SVUxFXSA9IFBSSU9fUlVMRSwK IAlbRE9fVFJJR0dFUl0gPSBQUklPX1RSSUdHRVIsCkBAIC0xMzcxLDYgKzEzNzMsMTEgQEAg ZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYs IGludCBidWZzaXplKQogCQkJCQkgIkZLIENPTlNUUkFJTlQgJXMgIChJRCAlZCBPSUQgJXUp IiwKIAkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJ CXJldHVybjsKKwkJY2FzZSBET19QRVJJT0Q6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUs CisJCQkJCSAiUEVSSU9EICVzICAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPm5hbWUs IG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47CiAJCWNhc2UgRE9f UFJPQ0xBTkc6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiUFJPQ0VEVVJB TCBMQU5HVUFHRSAlcyAgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBmYWFiZWNi Yzc2Zi4uYjFmYjk1MmE0MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xOTQ3LDYgKzE5NDcsOCBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCiAJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0 ZSBhIik7CiAJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIlxuV0hFUkUgYS5hdHRyZWxpZCA9 ICclcycgQU5EIGEuYXR0bnVtID4gMCBBTkQgTk9UIGEuYXR0aXNkcm9wcGVkIiwgb2lkKTsK KwlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsICJcbkFORCBOT1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIHBnX2NhdGFsb2cucGdfcGVy aW9kIHAgV0hFUkUgcC5wZXJyZWxpZCA9IGEuYXR0cmVsaWQgQU5EIHAucGVycmFuZ2UgPSBh LmF0dG51bSkiKTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5PUkRFUiBCWSBh LmF0dG51bTsiKTsKIAogCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKQEAgLTIzNjksNiAr MjM3MSw0MCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFu YW1lLAogCQlQR3Jlc3VsdCAgICpyZXN1bHQgPSBOVUxMOwogCQlpbnQJCQl0dXBsZXMgPSAw OwogCisJCS8qIHByaW50IHBlcmlvZHMgKi8KKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgw MDAwKQorCQl7CisJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIlNFTEVD VCBxdW90ZV9pZGVudChwLnBlcm5hbWUpLCBxdW90ZV9pZGVudChzLmF0dG5hbWUpIEFTIHN0 YXJ0YXR0LCBxdW90ZV9pZGVudChlLmF0dG5hbWUpIEFTIGVuZGF0dFxuIgorCQkJCQkJCSAg IkZST00gcGdfcGVyaW9kIEFTIHBcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2F0dHJpYnV0ZSBB UyBzIE9OIChzLmF0dHJlbGlkLCBzLmF0dG51bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJzdGFy dClcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2F0dHJpYnV0ZSBBUyBlIE9OIChlLmF0dHJlbGlk LCBlLmF0dG51bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJlbmQpXG4iCisJCQkJCQkJICAiV0hF UkUgcC5wZXJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCisJCQkJ CQkJICBvaWQpOworCQkJcmVzdWx0ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCQkJaWYgKCFy ZXN1bHQpCisJCQkJZ290byBlcnJvcl9yZXR1cm47CisJCQllbHNlCisJCQkJdHVwbGVzID0g UFFudHVwbGVzKHJlc3VsdCk7CisKKwkJCWlmICh0dXBsZXMgPiAwKQorCQkJeworCQkJCXBy aW50VGFibGVBZGRGb290ZXIoJmNvbnQsIF8oIlBlcmlvZHM6IikpOworCQkJCWZvciAoaSA9 IDA7IGkgPCB0dXBsZXM7IGkrKykKKwkJCQl7CisJCQkJCS8qIHVudHJhbnNsYXRlZCBjb25z dHJhaW50IG5hbWUgYW5kIGRlZiAqLworCQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAi ICAgICVzICglcywgJXMpIiwKKwkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDAp LAorCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMSksCisJCQkJCQkJCQkgIFBR Z2V0dmFsdWUocmVzdWx0LCBpLCAyKSk7CisKKwkJCQkJcHJpbnRUYWJsZUFkZEZvb3Rlcigm Y29udCwgYnVmLmRhdGEpOworCQkJCX0KKwkJCX0KKwkJCVBRY2xlYXIocmVzdWx0KTsKKwkJ fQorCiAJCS8qIHByaW50IGluZGV4ZXMgKi8KIAkJaWYgKHRhYmxlaW5mby5oYXNpbmRleCkK IAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTY3ZjkxYTZlM2YuLjYyYmI0ZmM2M2Zi IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTY1LDYgKzY1LDcgQEAgQ0FUQUxPR19IRUFE RVJTIDo9IFwKIAlwZ19mb3JlaWduX3NlcnZlci5oIFwKIAlwZ191c2VyX21hcHBpbmcuaCBc CiAJcGdfZm9yZWlnbl90YWJsZS5oIFwKKwlwZ19wZXJpb2QuaCBcCiAJcGdfcG9saWN5Lmgg XAogCXBnX3JlcGxpY2F0aW9uX29yaWdpbi5oIFwKIAlwZ19kZWZhdWx0X2FjbC5oIFwKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9oZWFwLmgKaW5kZXggYzUxMjgyNGNkMWMuLjA1NDE4MjFhYTQzIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L2hlYXAuaApAQCAtMTE3LDYgKzExNywxMCBAQCBleHRlcm4gTGlzdCAqQWRkUmVsYXRpb25O ZXdDb25zdHJhaW50cyhSZWxhdGlvbiByZWwsCiBleHRlcm4gdm9pZCBSZWxhdGlvbkNsZWFy TWlzc2luZyhSZWxhdGlvbiByZWwpOwogZXh0ZXJuIHZvaWQgU2V0QXR0ck1pc3NpbmcoT2lk IHJlbGlkLCBjaGFyICphdHRuYW1lLCBjaGFyICp2YWx1ZSk7CiAKK2V4dGVybiBPaWQgU3Rv cmVQZXJpb2QoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJpb2QsCisJCQkJCSAgIEF0 dHJOdW1iZXIgc3RhcnRudW0sIEF0dHJOdW1iZXIgZW5kbnVtLAorCQkJCQkgICBBdHRyTnVt YmVyIHJhbmdlbnVtLCBPaWQgY29ub2lkKTsKKwogZXh0ZXJuIE5vZGUgKmNvb2tEZWZhdWx0 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSBOb2RlICpyYXdfZGVmYXVsdCwKIAkJCQkJ CSBPaWQgYXR0dHlwaWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29u LmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBmNzBkMWRh YmE1Mi4uZDQ1YWE1ZmE4NjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVz b24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjEs NiArNjEsNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19jb2xsYXRpb24uaCcsCiAg ICdwZ19wYXJhbWV0ZXJfYWNsLmgnLAogICAncGdfcGFydGl0aW9uZWRfdGFibGUuaCcsCisg ICdwZ19wZXJpb2QuaCcsCiAgICdwZ19yYW5nZS5oJywKICAgJ3BnX3RyYW5zZm9ybS5oJywK ICAgJ3BnX3NlcXVlbmNlLmgnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19pbmRleC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCmluZGV4IDM0NjI1 NzJlYjU1Li4wYTNjODExMWI2NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19pbmRleC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaApAQCAtNDgs NyArNDgsNiBAQCBDQVRBTE9HKHBnX2luZGV4LDI2MTAsSW5kZXhSZWxhdGlvbklkKSBCS0lf U0NIRU1BX01BQ1JPCiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlLCBi dXQgd2UgYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBpbmRrZXkgKi8KIAlpbnQydmVjdG9yCWlu ZGtleSBCS0lfRk9SQ0VfTk9UX05VTEw7CS8qIGNvbHVtbiBudW1iZXJzIG9mIGluZGV4ZWQg Y29scywKIAkJCQkJCQkJCQkJICogb3IgMCAqLwotCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4K IAlvaWR2ZWN0b3IJaW5kY29sbGF0aW9uIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbikg QktJX0ZPUkNFX05PVF9OVUxMOwkvKiBjb2xsYXRpb24gaWRlbnRpZmllcnMgKi8KIAlvaWR2 ZWN0b3IJaW5kY2xhc3MgQktJX0xPT0tVUChwZ19vcGNsYXNzKSBCS0lfRk9SQ0VfTk9UX05V TEw7IC8qIG9wY2xhc3MgaWRlbnRpZmllcnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcGVyaW9kLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNTA4Y2Q0NWEwOQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmgKQEAg LTAsMCArMSw1OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfcGVyaW9k LmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgInBlcmlvZCIgc3lzdGVtIGNhdGFsb2cgKHBn X3BlcmlvZCkKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjEs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9n LnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGlu Zm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBH X1BFUklPRF9ICisjZGVmaW5lIFBHX1BFUklPRF9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dl bmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kX2QuaCIKKyNpbmNsdWRlICJu b2Rlcy9iaXRtYXBzZXQuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3Blcmlv ZCBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0 IEZvcm1EYXRhX3BnX3BlcmlvZAorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9H KHBnX3BlcmlvZCw4MDAwLFBlcmlvZFJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8q IE9JRCBvZiB0aGUgcGVyaW9kICovCisJTmFtZURhdGEJcGVybmFtZTsJCS8qIG5hbWUgb2Yg cGVyaW9kICovCisJT2lkCQkJcGVycmVsaWQ7CQkvKiBPSUQgb2YgcmVsYXRpb24gY29udGFp bmluZyB0aGlzIHBlcmlvZCAqLworCWludDE2CQlwZXJzdGFydDsJCS8qIGNvbHVtbiBmb3Ig c3RhcnQgdmFsdWUgKi8KKwlpbnQxNgkJcGVyZW5kOwkJCS8qIGNvbHVtbiBmb3IgZW5kIHZh bHVlICovCisJaW50MTYJCXBlcnJhbmdlOwkJLyogY29sdW1uIGZvciByYW5nZSB2YWx1ZSAq LworCU9pZAkJCXBlcmNvbnN0cmFpbnQ7CS8qIE9JRCBvZiAoc3RhcnQgPCBlbmQpIGNvbnN0 cmFpbnQgKi8KK30gRm9ybURhdGFfcGdfcGVyaW9kOworCisvKiAtLS0tLS0tLS0tLS0tLS0t CisgKgkJRm9ybV9wZ19wZXJpb2QgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVw bGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcGVyaW9kIHJlbGF0aW9uLgorICogLS0t LS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZvcm1EYXRhX3BnX3BlcmlvZCAqRm9ybV9w Z19wZXJpb2Q7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcGVyaW9kX29pZF9p bmRleCwgODAwMSwgUGVyaW9kT2JqZWN0SW5kZXhJZCwgcGdfcGVyaW9kLCBidHJlZShvaWQg b2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcGVyaW9kX3BlcnJlbGlkX3Bl cm5hbWVfaW5kZXgsIDgwMDIsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHBnX3BlcmlvZCwg YnRyZWUocGVycmVsaWQgb2lkX29wcywgcGVybmFtZSBuYW1lX29wcykpOworCitNQUtFX1NZ U0NBQ0hFKFBFUklPRE9JRCwgcGdfcGVyaW9kX29pZF9pbmRleCwgMzIpOworTUFLRV9TWVND QUNIRShQRVJJT0ROQU1FLCBwZ19wZXJpb2RfcGVycmVsaWRfcGVybmFtZV9pbmRleCwgMzIp OworCitleHRlcm4gdm9pZCBSZW1vdmVQZXJpb2RCeUlkKE9pZCBwZXJpb2RJZCk7CisKK2V4 dGVybiBPaWQgZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25zdCBjaGFy ICpwZXJuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIEJpdG1hcHNldCAqZ2V0X3Bl cmlvZF9hdHRub3MoT2lkIHJlbGlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1BFUklPRF9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgKaW5kZXggMGJkM2FiNjg4YmQuLjEwYTk0ZGQx MWYxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oCkBAIC01OSw4ICs1OSwxMCBAQCB0eXBl ZGVmIEZvcm1EYXRhX3BnX3JhbmdlICpGb3JtX3BnX3JhbmdlOwogCiBERUNMQVJFX1VOSVFV RV9JTkRFWF9QS0VZKHBnX3JhbmdlX3JuZ3R5cGlkX2luZGV4LCAzNTQyLCBSYW5nZVR5cGlk SW5kZXhJZCwgcGdfcmFuZ2UsIGJ0cmVlKHJuZ3R5cGlkIG9pZF9vcHMpKTsKIERFQ0xBUkVf VU5JUVVFX0lOREVYKHBnX3JhbmdlX3JuZ211bHRpdHlwaWRfaW5kZXgsIDIyMjgsIFJhbmdl TXVsdGlyYW5nZVR5cGlkSW5kZXhJZCwgcGdfcmFuZ2UsIGJ0cmVlKHJuZ211bHRpdHlwaWQg b2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcmFuZ2Vfcm5nc3VidHlwZV9y bmd0eXBpZF9pbmRleCwgODAwMywgUmFuZ2VTdWJUeXBpZFR5cGlkSW5kZXhJZCwgcGdfcmFu Z2UsIGJ0cmVlKHJuZ3N1YnR5cGUgb2lkX29wcywgcm5ndHlwaWQgb2lkX29wcykpOwogCiBN QUtFX1NZU0NBQ0hFKFJBTkdFVFlQRSwgcGdfcmFuZ2Vfcm5ndHlwaWRfaW5kZXgsIDQpOwor TUFLRV9TWVNDQUNIRShSQU5HRVNVQlRZUEUsIHBnX3JhbmdlX3JuZ3N1YnR5cGVfcm5ndHlw aWRfaW5kZXgsIDQpOwogTUFLRV9TWVNDQUNIRShSQU5HRU1VTFRJUkFOR0UsIHBnX3Jhbmdl X3JuZ211bHRpdHlwaWRfaW5kZXgsIDQpOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvdGFibGVjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNt ZHMuaAppbmRleCA4NWNiYWQzZDBjMi4uNjI4ZmE1Mzc5NmMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3RhYmxlY21kcy5oCkBAIC00MCw3ICs0MCw4IEBAIGV4dGVybiBMT0NLTU9ERSBBbHRlclRh YmxlR2V0TG9ja0xldmVsKExpc3QgKmNtZHMpOwogCiBleHRlcm4gdm9pZCBBVEV4ZWNDaGFu Z2VPd25lcihPaWQgcmVsYXRpb25PaWQsIE9pZCBuZXdPd25lcklkLCBib29sIHJlY3Vyc2lu ZywgTE9DS01PREUgbG9ja21vZGUpOwogCi1leHRlcm4gdm9pZCBBbHRlclRhYmxlSW50ZXJu YWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJlY3Vyc2UpOworZXh0ZXJuIHZvaWQg QWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21kcywgYm9vbCByZWN1cnNl LAorCQkJCQkJCSAgIHN0cnVjdCBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQp OwogCiBleHRlcm4gT2lkCUFsdGVyVGFibGVNb3ZlQWxsKEFsdGVyVGFibGVNb3ZlQWxsU3Rt dCAqc3RtdCk7CiAKQEAgLTEwNiw1ICsxMDcsNiBAQCBleHRlcm4gdm9pZCBSYW5nZVZhckNh bGxiYWNrT3duc1JlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCQkJCQkJ CQkgT2lkIHJlbElkLCBPaWQgb2xkUmVsSWQsIHZvaWQgKmFyZyk7CiBleHRlcm4gYm9vbCBQ YXJ0Q29uc3RyYWludEltcGxpZWRCeVJlbENvbnN0cmFpbnQoUmVsYXRpb24gc2NhbnJlbCwK IAkJCQkJCQkJCQkJCSBMaXN0ICpwYXJ0Q29uc3RyYWludCk7CitleHRlcm4gT2lkIGNob29z ZV9yYW5nZXR5cGVfZm9yX3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCk7CiAKICNlbmRpZgkJ CQkJCQkvKiBUQUJMRUNNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGNj N2JmYjBmMjk0Li40NjA2ODc2NWI4YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt MjMwNiw2ICsyMzA2LDcgQEAgdHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfT1BF UkFUT1IsCiAJT0JKRUNUX09QRkFNSUxZLAogCU9CSkVDVF9QQVJBTUVURVJfQUNMLAorCU9C SkVDVF9QRVJJT0QsCiAJT0JKRUNUX1BPTElDWSwKIAlPQkpFQ1RfUFJPQ0VEVVJFLAogCU9C SkVDVF9QVUJMSUNBVElPTiwKQEAgLTIzOTQsNiArMjM5NSw4IEBAIHR5cGVkZWYgZW51bSBB bHRlclRhYmxlVHlwZQogCUFUX1ZhbGlkYXRlQ29uc3RyYWludCwJCS8qIHZhbGlkYXRlIGNv bnN0cmFpbnQgKi8KIAlBVF9BZGRJbmRleENvbnN0cmFpbnQsCQkvKiBhZGQgY29uc3RyYWlu dCB1c2luZyBleGlzdGluZyBpbmRleCAqLwogCUFUX0Ryb3BDb25zdHJhaW50LAkJCS8qIGRy b3AgY29uc3RyYWludCAqLworCUFUX0FkZFBlcmlvZCwJCQkJLyogQUREIFBFUklPRCAqLwor CUFUX0Ryb3BQZXJpb2QsCQkJCS8qIERST1AgUEVSSU9EICovCiAJQVRfUmVBZGRDb21tZW50 LAkJCS8qIGludGVybmFsIHRvIGNvbW1hbmRzL3RhYmxlY21kcy5jICovCiAJQVRfQWx0ZXJD b2x1bW5UeXBlLAkJCS8qIGFsdGVyIGNvbHVtbiB0eXBlICovCiAJQVRfQWx0ZXJDb2x1bW5H ZW5lcmljT3B0aW9ucywJLyogYWx0ZXIgY29sdW1uIE9QVElPTlMgKC4uLikgKi8KQEAgLTI2 NjIsMTEgKzI2NjUsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFyaWFibGVTaG93U3RtdAogLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUNyZWF0ZSBUYWJsZSBTdGF0ZW1lbnQKICAq Ci0gKiBOT1RFOiBpbiB0aGUgcmF3IGdyYW0ueSBvdXRwdXQsIENvbHVtbkRlZiBhbmQgQ29u c3RyYWludCBub2RlcyBhcmUKLSAqIGludGVybWl4ZWQgaW4gdGFibGVFbHRzLCBhbmQgY29u c3RyYWludHMgaXMgTklMLiAgQWZ0ZXIgcGFyc2UgYW5hbHlzaXMsCi0gKiB0YWJsZUVsdHMg Y29udGFpbnMganVzdCBDb2x1bW5EZWZzLCBhbmQgY29uc3RyYWludHMgY29udGFpbnMganVz dAotICogQ29uc3RyYWludCBub2RlcyAoaW4gZmFjdCwgb25seSBDT05TVFJfQ0hFQ0sgbm9k ZXMsIGluIHRoZSBwcmVzZW50Ci0gKiBpbXBsZW1lbnRhdGlvbikuCisgKiBOT1RFOiBpbiB0 aGUgcmF3IGdyYW0ueSBvdXRwdXQsIENvbHVtbkRlZiwgUGVyaW9kRGVmLCBhbmQgQ29uc3Ry YWludCBub2RlcyBhcmUKKyAqIGludGVybWl4ZWQgaW4gdGFibGVFbHRzOyBwZXJpb2RzIGFu ZCBjb25zdHJhaW50cyBhcmUgTklMLiAgQWZ0ZXIgcGFyc2UgYW5hbHlzaXMsCisgKiB0YWJs ZUVsdHMgY29udGFpbnMganVzdCBDb2x1bW5EZWZzLCBwZXJpb2RzIGNvbnRhaW5zIGp1c3Qg UGVyaW9kRGVmcywgYW5kCisgKiBjb25zdHJhaW50cyBjb250YWlucyBqdXN0IENvbnN0cmFp bnQgbm9kZXMgKGluIGZhY3QsIG9ubHkgQ09OU1RSX0NIRUNLIG5vZGVzLAorICogaW4gdGhl IHByZXNlbnQgaW1wbGVtZW50YXRpb24pLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICovCiAKQEAgLTI2NzUsNiArMjY3OCw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVN0bXQK IAlOb2RlVGFnCQl0eXBlOwogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24g dG8gY3JlYXRlICovCiAJTGlzdAkgICAqdGFibGVFbHRzOwkJLyogY29sdW1uIGRlZmluaXRp b25zIChsaXN0IG9mIENvbHVtbkRlZikgKi8KKwlMaXN0CSAgICpwZXJpb2RzOwkJLyogcGVy aW9kcyAobGlzdCBvZiBQZXJpb2REZWYgbm9kZXMpICovCiAJTGlzdAkgICAqaW5oUmVsYXRp b25zOwkvKiByZWxhdGlvbnMgdG8gaW5oZXJpdCBmcm9tIChsaXN0IG9mCiAJCQkJCQkJCSAq IFJhbmdlVmFyKSAqLwogCVBhcnRpdGlvbkJvdW5kU3BlYyAqcGFydGJvdW5kOwkvKiBGT1Ig VkFMVUVTIGNsYXVzZSAqLwpAQCAtMjY4OCw2ICsyNjkyLDMxIEBAIHR5cGVkZWYgc3RydWN0 IENyZWF0ZVN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBqdXN0IGRvIG5vdGhpbmcg aWYgaXQgYWxyZWFkeSBleGlzdHM/ICovCiB9IENyZWF0ZVN0bXQ7CiAKKworLyogLS0tLS0t LS0tLQorICogRGVmaW5pdGlvbnMgZm9yIHBlcmlvZHMgaW4gQ3JlYXRlU3RtdAorICogLS0t LS0tLS0tLQorICovCisKK3R5cGVkZWYgc3RydWN0IFBlcmlvZERlZgoreworCU5vZGVUYWcJ CXR5cGU7CisJT2lkCQkJb2lkOwkJCS8qIHBlcmlvZCBvaWQsIG9uY2UgaXQncyB0cmFuc2Zv cm1lZCAqLworCWNoYXIJICAgKnBlcmlvZG5hbWU7CQkvKiBwZXJpb2QgbmFtZSAqLworCWNo YXIJICAgKnN0YXJ0Y29sbmFtZTsJLyogbmFtZSBvZiBzdGFydCBjb2x1bW4gKi8KKwljaGFy CSAgICplbmRjb2xuYW1lOwkJLyogbmFtZSBvZiBlbmQgY29sdW1uICovCisJQXR0ck51bWJl cglzdGFydGF0dG51bTsJLyogYXR0bnVtIG9mIHRoZSBzdGFydCBjb2x1bW4gKi8KKwlBdHRy TnVtYmVyCWVuZGF0dG51bTsJCS8qIGF0dG51bSBvZiB0aGUgZW5kIGNvbHVtbiAqLworCUF0 dHJOdW1iZXIJcm5nYXR0bnVtOwkJLyogYXR0bnVtIG9mIHRoZSBHRU5FUkFURUQgcmFuZ2Ug Y29sdW1uICovCisJTGlzdAkgICAqb3B0aW9uczsJCS8qIG9wdGlvbnMgZnJvbSBXSVRIIGNs YXVzZSAqLworCWNoYXIJICAgKmNvbnN0cmFpbnRuYW1lOwkvKiBuYW1lIG9mIHRoZSBDSEVD SyBjb25zdHJhaW50ICovCisJY2hhcgkgICAqcmFuZ2V0eXBlbmFtZTsJLyogbmFtZSBvZiB0 aGUgcmFuZ2UgdHlwZSAqLworCU9pZAkJCWNvbHR5cGlkOwkJLyogdGhlIHN0YXJ0L2VuZCBj b2wgdHlwZSAqLworCU9pZAkJCXJuZ3R5cGlkOwkJLyogdGhlIHJhbmdlIHR5cGUgdG8gdXNl ICovCisJYm9vbAkJY29sZXhpc3RzOwkJLyogdXNlIGFuIGV4aXN0aW5nIEdFTkVSQVRFRCBj b2x1bW4gKi8KKwlpbnQJCQlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBp ZiB1bmtub3duICovCit9IFBlcmlvZERlZjsKKwogLyogLS0tLS0tLS0tLQogICogRGVmaW5p dGlvbnMgZm9yIGNvbnN0cmFpbnRzIGluIENyZWF0ZVN0bXQKICAqCkBAIC0zMzgzLDYgKzM0 MTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFN0bXQKIAlMaXN0CSAgICppbmRleFBhcmFt czsJLyogY29sdW1ucyB0byBpbmRleDogYSBsaXN0IG9mIEluZGV4RWxlbSAqLwogCUxpc3QJ ICAgKmluZGV4SW5jbHVkaW5nUGFyYW1zOwkvKiBhZGRpdGlvbmFsIGNvbHVtbnMgdG8gaW5k ZXg6IGEgbGlzdAogCQkJCQkJCQkJCSAqIG9mIEluZGV4RWxlbSAqLworCVBlcmlvZERlZiAg KnBlcmlvZDsJCQkvKiBUaGUgcGVyaW9kIGluY2x1ZGVkIGluIHRoZSBpbmRleCAqLwogCUxp c3QJICAgKm9wdGlvbnM7CQkvKiBXSVRIIGNsYXVzZSBvcHRpb25zOiBhIGxpc3Qgb2YgRGVm RWxlbSAqLwogCU5vZGUJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9uIChwYXJ0 aWFsLWluZGV4IHByZWRpY2F0ZSkgKi8KIAlMaXN0CSAgICpleGNsdWRlT3BOYW1lczsgLyog ZXhjbHVzaW9uIG9wZXJhdG9yIG5hbWVzLCBvciBOSUwgaWYgbm9uZSAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaAppbmRleCAwMWExMDFkMzc3Ni4uNzE5Y2Q2NGE5NDUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oCkBAIC0yMzUwLDYgKzIzNTAsOCBAQCB0eXBlZGVmIHN0cnVjdCBGb3JQ b3J0aW9uT2ZFeHByCiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlWYXIJCSAgICpyYW5nZVZhcjsJ CQkvKiBSYW5nZSBjb2x1bW4gKi8KKwlWYXIJCSAgICpzdGFydFZhcjsJCQkvKiBTdGFydCBj b2x1bW4gaWYgUEVSSU9EICovCisJVmFyCQkgICAqZW5kVmFyOwkJCQkvKiBFbmQgY29sdW1u IGlmIFBFUklPRCAqLwogCWNoYXIJICAgKnJhbmdlX25hbWU7CQkJLyogUmFuZ2UgbmFtZSAq LwogCU5vZGUJICAgKnRhcmdldFJhbmdlOwkJLyogRk9SIFBPUlRJT04gT0YgYm91bmRzIGFz IGEgcmFuZ2UgKi8KIAlPaWQJCQlyYW5nZVR5cGU7CQkJLyogdHlwZSBvZiB0YXJnZXRSYW5n ZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDMzOWYwOTRhODBkLi43YWZmNGY4ZGJhNCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNs dWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMzM5LDcgKzMzOSw3IEBAIFBHX0tFWVdPUkQoInBh cnRpdGlvbnMiLCBQQVJUSVRJT05TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJwYXNzaW5nIiwgUEFTU0lORywgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFzc3dvcmQiLCBQQVNTV09SRCwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGF0aCIsIFBBVEgsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKLVBHX0tFWVdPUkQoInBlcmlvZCIsIFBFUklP RCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicGVyaW9k IiwgUEVSSU9ELCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cGxhY2luZyIsIFBMQUNJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJwbGFuIiwgUExBTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgicGxhbnMiLCBQTEFOUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKaW5kZXggMTQwNjU4OTQ3Nzku LmQ4NGQwMmIwMjgwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRp bGNtZC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKQEAgLTQw LDUgKzQwLDYgQEAgZXh0ZXJuIEluZGV4U3RtdCAqZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQo UmFuZ2VWYXIgKmhlYXBSZWwsCiAJCQkJCQkJCQkJICBSZWxhdGlvbiBzb3VyY2VfaWR4LAog CQkJCQkJCQkJCSAgY29uc3Qgc3RydWN0IEF0dHJNYXAgKmF0dG1hcCwKIAkJCQkJCQkJCQkg IE9pZCAqY29uc3RyYWludE9pZCk7CitleHRlcm4gdm9pZCB0cmFuc2Zvcm1QZXJpb2RPcHRp b25zKFBlcmlvZERlZiAqcGVyaW9kKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1VUSUxD TURfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9z cmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCBlN2FkNTEzMTQ2YS4uYWNiMDY0 OTM2NGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBi L3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC05NSw2ICs5NSw4IEBAIGV4dGVy biBPaWQJZ2V0X2F0dHR5cGUoT2lkIHJlbGlkLCBBdHRyTnVtYmVyIGF0dG51bSk7CiBleHRl cm4gdm9pZCBnZXRfYXR0dHlwZXR5cG1vZGNvbGwoT2lkIHJlbGlkLCBBdHRyTnVtYmVyIGF0 dG51bSwKIAkJCQkJCQkJICBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLCBPaWQgKmNvbGxp ZCk7CiBleHRlcm4gRGF0dW0gZ2V0X2F0dG9wdGlvbnMoT2lkIHJlbGlkLCBpbnQxNiBhdHRu dW0pOworZXh0ZXJuIGNoYXIgKmdldF9wZXJpb2RuYW1lKE9pZCBwZXJpb2RpZCwgYm9vbCBt aXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25z dCBjaGFyICpwZXJpb2RuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRf Y2FzdF9vaWQoT2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwgYm9vbCBtaXNz aW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfY29sbGF0aW9uX25hbWUoT2lkIGNvbGxvaWQp OwogZXh0ZXJuIGJvb2wgZ2V0X2NvbGxhdGlvbl9pc2RldGVybWluaXN0aWMoT2lkIGNvbGxv aWQpOwpAQCAtMTk5LDYgKzIwMSw3IEBAIGV4dGVybiBPaWQJZ2V0X3JhbmdlX3N1YnR5cGUo T2lkIHJhbmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX2NvbGxhdGlvbihPaWQgcmFu Z2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfbXVsdGlyYW5nZShPaWQgcmFuZ2VPaWQp OwogZXh0ZXJuIE9pZAlnZXRfbXVsdGlyYW5nZV9yYW5nZShPaWQgbXVsdGlyYW5nZU9pZCk7 CitleHRlcm4gT2lkCWdldF9zdWJ0eXBlX3JhbmdlKE9pZCBzdWJ0eXBlT2lkKTsKIGV4dGVy biBPaWQJZ2V0X2luZGV4X2NvbHVtbl9vcGNsYXNzKE9pZCBpbmRleF9vaWQsIGludCBhdHRu byk7CiBleHRlcm4gYm9vbCBnZXRfaW5kZXhfaXNyZXBsaWRlbnQoT2lkIGluZGV4X29pZCk7 CiBleHRlcm4gYm9vbCBnZXRfaW5kZXhfaXN2YWxpZChPaWQgaW5kZXhfb2lkKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMv cGVyaW9kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwMmMx NzAzNmZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgK QEAgLTAsMCArMSwyMSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGVyaW9k LmgKKyAqCSAgc3VwcG9ydCBmb3IgUG9zdGdyZXMgcGVyaW9kcy4KKyAqCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL3V0 aWxzL3BlcmlvZC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYg UEVSSU9EX0gKKyNkZWZpbmUgUEVSSU9EX0gKKworI2luY2x1ZGUgImV4ZWN1dG9yL3R1cHRh YmxlLmgiCisKK2V4dGVybiBEYXR1bSBwZXJpb2RfdG9fcmFuZ2UoVHVwbGVUYWJsZVNsb3Qg KnNsb3QsIGludCBzdGFydGF0dG5vLCBpbnQgZW5kYXR0bm8sIE9pZCByYW5nZXR5cGUpOwor CisjZW5kaWYJCQkJCQkJLyogUEVSSU9EX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMgYi9zcmMvdGVzdC9t b2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jCmluZGV4IDY3ZmYy YjYzNjc1Li5hNmZkOTg0ZGM3OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYworKysgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jCkBAIC0xODMsNiArMTgzLDEy IEBAIGdldF9hbHRlcnRhYmxlX3N1YmNtZGluZm8oUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNh c2UgQVRfRHJvcENvbnN0cmFpbnQ6CiAJCQkJc3RydHlwZSA9ICJEUk9QIENPTlNUUkFJTlQi OwogCQkJCWJyZWFrOworCQkJY2FzZSBBVF9BZGRQZXJpb2Q6CisJCQkJc3RydHlwZSA9ICJB REQgUEVSSU9EIjsKKwkJCQlicmVhazsKKwkJCWNhc2UgQVRfRHJvcFBlcmlvZDoKKwkJCQlz dHJ0eXBlID0gIkRST1AgUEVSSU9EIjsKKwkJCQlicmVhazsKIAkJCWNhc2UgQVRfUmVBZGRD b21tZW50OgogCQkJCXN0cnR5cGUgPSAiKHJlKSBBREQgQ09NTUVOVCI7CiAJCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29m Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0Cmlu ZGV4IDExYWI1OWFlYjQwLi4zOGJmY2QxNzc3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKQEAgLTUzMiw2ICs1MzIsNDQgQEAgU0VM RUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CiAgWzMsNCkgfCB7WzAxLTAxLTIwMTgsKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGhyZWUKICg2IHJvd3MpCiAKK0RS T1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CistLSBUZXN0IHdpdGggUEVSSU9Ecwor Q1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5P VCBOVUxMLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBuYW1l IHRleHQgTk9UIE5VTEwsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRP IGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCAnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAzJywgJ29uZScpLAorKCdbMSwyKScsICcyMDE4LTAyLTA0JywgJzIwMTgt MDMtMDMnLCAnb25lJyksCisoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcs ICdvbmUnKSwKKygnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTA1LTAxJywgJ3R3bycp LAorKCdbMyw0KScsICcyMDE4LTAxLTAxJywgbnVsbCwgJ3RocmVlJyk7Cis7CitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBp ZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTgtMDItMTUnCitX SEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Qy IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LQorIFsxLDIpIHwgMDEtMDItMjAxOCB8IDAxLTEwLTIwMTggfCBvbmUKKyBbMSwyKSB8IDAx LTEwLTIwMTggfCAwMi0wMy0yMDE4IHwgb25lXjEKKyBbMSwyKSB8IDAyLTA0LTIwMTggfCAw Mi0xMC0yMDE4IHwgb25lXjEKKyBbMSwyKSB8IDAyLTEwLTIwMTggfCAwMy0wMy0yMDE4IHwg b25lCisgWzEsMikgfCAwMy0wMy0yMDE4IHwgMDQtMDQtMjAxOCB8IG9uZQorIFsyLDMpIHwg MDEtMDEtMjAxOCB8IDAxLTE1LTIwMTggfCB0d28KKyBbMiwzKSB8IDAyLTE1LTIwMTggfCAw NS0wMS0yMDE4IHwgdHdvCisgWzMsNCkgfCAwMS0wMS0yMDE4IHwgICAgICAgICAgICB8IHRo cmVlCisoOCByb3dzKQorCiBEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOwogLS0g VGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKIENSRUFURSBUWVBFIG15ZGF0ZXJhbmdl IEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dl bmVyYXRlZC5vdXQKaW5kZXggNDQwNThkYjdjMWQuLjBjZjhhM2E1YzgwIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0CkBAIC0xOSw3ICsxOSw5IEBAIFNF TEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fCiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwg ZGVwZW5kZW50X2NvbHVtbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLQogIGd0ZXN0MSAgICAgfCBhICAgICAgICAgICB8IGIKLSgxIHJvdykKKyBw dCAgICAgICAgIHwgZGUgICAgICAgICAgfCBwCisgcHQgICAgICAgICB8IGRzICAgICAgICAg IHwgcAorKDMgcm93cykKIAogXGQgZ3Rlc3QxCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy5ndGVzdDEiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BlcmlvZHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJp b2RzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWZkM2E4 NDZhYjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bl cmlvZHMub3V0CkBAIC0wLDAgKzEsMjY3IEBACisvKiBTeXN0ZW0gcGVyaW9kcyBhcmUgbm90 IGltcGxlbWVudGVkICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHBlcmlvZCBmb3Igc3lzdGVtX3RpbWUgKGRzLCBkZSkpOworRVJST1I6ICBQ RVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQKK0xJTkUgMjogY3JlYXRl IHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHN5 Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorLyogUGVyaW9kcyBtdXN0IHNwZWNpZnkgYWN0dWFsIGNvbHVtbnMgKi8KK2Ny ZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZv ciBwIChib2d1cywgZGUpKTsKK0VSUk9SOiAgY29sdW1uICJib2d1cyIgb2YgcmVsYXRpb24g InB0IiBkb2VzIG5vdCBleGlzdAorY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBib2d1cykpOworRVJST1I6ICBjb2x1 bW4gImJvZ3VzIiBvZiByZWxhdGlvbiAicHQiIGRvZXMgbm90IGV4aXN0CisvKiBEYXRhIHR5 cGVzIG11c3QgbWF0Y2ggZXhhY3RseSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2Vy LCBkcyBkYXRlLCBkZSB0aW1lc3RhbXAsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJP UjogIHN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBiZSBvZiBzYW1lIHR5 cGUKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgdGV4dCBjb2xsYXRlICJDIiwg ZGUgdGV4dCBjb2xsYXRlICJQT1NJWCIsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJP UjogIHN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBoYXZlIHNhbWUgY29s bGF0aW9uCisvKiBQZXJpb2RzIG11c3QgaGF2ZSBhIGRlZmF1bHQgQlRyZWUgb3BlcmF0b3Ig Y2xhc3MgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgeG1sLCBkZSB4bWws IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIG5vIHJhbmdlIHR5cGUgZm9yIHht bCBmb3VuZCBmb3IgcGVyaW9kIHAKK0hJTlQ6ICBZb3UgY2FuIGRlZmluZSBhIGN1c3RvbSBy YW5nZSB0eXBlIHdpdGggQ1JFQVRFIFRZUEUKKy8qIFBlcmlvZCBhbmQgY29sdW1uIG5hbWVz IGFyZSBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBjdGlkIChkcywgZGUpKTsKK0VS Uk9SOiAgcGVyaW9kIG5hbWUgImN0aWQiIGNvbmZsaWN0cyB3aXRoIGEgc3lzdGVtIGNvbHVt biBuYW1lCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHBlcmlvZCBmb3IgaWQgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2QgbmFtZSAiaWQiIGNv bmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUKKy8qIFBlcmlvZCBuYW1lIGNhbid0IGJlIGdp dmVuIG1vcmUgdGhhbiBvbmNlICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSwgcGVyaW9kIGZvciBwIChk cywgZGUpKTsKK0VSUk9SOiAgcGVyaW9kIG5hbWUgInAiIHNwZWNpZmllZCBtb3JlIHRoYW4g b25jZQorLyogTm93IG1ha2Ugb25lIHRoYXQgd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdCAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsK Ky8qIFNFTEVDVCAqIGV4Y2x1ZGVzIHRoZSBQRVJJT0QgKi8KK2luc2VydCBpbnRvIHB0IHZh bHVlcyAoMSwgJzIwMDAtMDEtMDEnLCAnMjAwMS0wMS0wMScpOworc2VsZWN0ICogZnJvbSBw dDsKKyBpZCB8ICAgICBkcyAgICAgfCAgICAgZGUgICAgIAorLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgIDEgfCAwMS0wMS0yMDAwIHwgMDEtMDEtMjAwMQorKDEgcm93KQor CisvKiBZb3UgY2FuIGdldCBpdCBpZiB5b3Ugd2FudCAqLworc2VsZWN0ICosIHAgZnJvbSBw dDsKKyBpZCB8ICAgICBkcyAgICAgfCAgICAgZGUgICAgIHwgICAgICAgICAgICBwICAgICAg ICAgICAgCistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAxIHwgMDEtMDEtMjAwMCB8IDAxLTAxLTIwMDEgfCBbMDEtMDEtMjAw MCwwMS0wMS0yMDAxKQorKDEgcm93KQorCisvKiBUd28gYXJlIG9rYXkgKi8KK2NyZWF0ZSB0 YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEg KGRzLCBkZSksIHBlcmlvZCBmb3IgcDIgKGRzLCBkZSkpOworZHJvcCB0YWJsZSBwdDI7Cisv KiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IHdvcmtzICovCitjcmVhdGUgdGFi bGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3Qg bnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworXGQgcHQy CisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorUGVyaW9kczoKKyAgICBwIChkcywgZGUpCitDaGVjayBjb25zdHJhaW50czoK KyAgICAicHQyX3BfY2hlY2siIENIRUNLIChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsK Ky8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUg Y29sIGlzbid0IHRoZXJlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0g dHJ1ZSkpOworRVJST1I6ICBObyBjb2x1bW4gZm91bmQgd2l0aCBuYW1lIHAKKy8qIFNraXAg Y3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhh cyBhbiBpbnZhbGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gJ3doYXRldmVyJykpOworRVJST1I6ICBjb2xleGlzdHMgcmVxdWlyZXMgYSBCb29sZWFu IHZhbHVlCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1 c2UgdGhlIGNvbHVtbiBpcyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBhbHdh eXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBn ZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzCisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgR0VORVJB VEVEICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwIGRhdGVyYW5nZSBub3QgbnVsbCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNv bGV4aXN0cyA9IHRydWUpKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIG5vbi1nZW5lcmF0 ZWQgY29sdW1uCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFURUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJl c3Npb24gKi8KKy0tIFRPRE86CistLSBjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChkYXRlcmFuZ2UoZGUsIGRzKSkgc3RvcmVkLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQg Y29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8K K2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNy YW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0 b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsK K0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0aCB0aGUgd3Jv bmcgdHlwZQorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNh dXNlIHRoZSBjb2x1bW4gaXMgaW5oZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQycGFyZW50 IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0 ZSB0YWJsZSBwdDIgKHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0 cnVlKSkgaW5oZXJpdHMgKHB0MnBhcmVudCk7CitFUlJPUjogIEluaGVyaXRpbmcgaXMgbm90 IHN1cHBvcnRlZCB3aGVuIGEgdGFibGUgaGFzIGEgUEVSSU9ECitkcm9wIHRhYmxlIHB0MnBh cmVudDsKKy8qCisgKiBBTFRFUiBUQUJMRSB0ZXN0cworICovCithbHRlciB0YWJsZSBwdCBk cm9wIHBlcmlvZCBmb3IgcDsKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHN5c3Rl bV90aW1lIChkcywgZGUpOworRVJST1I6ICBQRVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5v dCBzdXBwb3J0ZWQKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7 CisvKiBBZGRpbmcgYSBzZWNvbmQgb25lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRl Z2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAxIChkcywgZGUpKTsKK2FsdGVy IHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwMiAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQy OworLyogQ2FuJ3QgZHJvcCBpdHMgY29sdW1ucyAqLworYWx0ZXIgdGFibGUgcHQgZHJvcCBj b2x1bW4gZHM7CitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBkcyBvZiB0YWJsZSBwdCBi ZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBwZXJpb2QgcCBv biB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiBkcyBvZiB0YWJsZSBwdAorSElOVDogIFVz ZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4K K2FsdGVyIHRhYmxlIHB0IGRyb3AgY29sdW1uIGRlOworRVJST1I6ICBjYW5ub3QgZHJvcCBj b2x1bW4gZGUgb2YgdGFibGUgcHQgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBp dAorREVUQUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1bW4gZGUg b2YgdGFibGUgcHQKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBk ZXBlbmRlbnQgb2JqZWN0cyB0b28uCisvKiBDYW4ndCBjaGFuZ2UgdGhlIGRhdGEgdHlwZXMg Ki8KK2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsKK0VS Uk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIHBlcmlvZAor REVUQUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1bW4gImRzIgor YWx0ZXIgdGFibGUgcHQgYWx0ZXIgY29sdW1uIGRzIHR5cGUgdGltZXN0YW1wOworRVJST1I6 ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgcGVyaW9kCitERVRB SUw6ICBwZXJpb2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiAiZHMiCisvKiBj b2x1bW4vcGVyaW9kIG5hbWVzcGFjZSBjb25mbGljdHMgKi8KK2FsdGVyIHRhYmxlIHB0IGFk ZCBjb2x1bW4gcCBpbnRlZ2VyOworRVJST1I6ICBjb2x1bW4gbmFtZSAicCIgY29uZmxpY3Rz IHdpdGggYSBwZXJpb2QgbmFtZQorYWx0ZXIgdGFibGUgcHQgcmVuYW1lIGNvbHVtbiBpZCB0 byBwOworRVJST1I6ICBjb2x1bW4gbmFtZSAicCIgY29uZmxpY3RzIHdpdGggYSBwZXJpb2Qg bmFtZQorYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgdGFibGVvaWQgKGRzLCBkZSk7 CitFUlJPUjogIHBlcmlvZCBuYW1lICJ0YWJsZW9pZCIgY29uZmxpY3RzIHdpdGggYSBzeXN0 ZW0gY29sdW1uIG5hbWUKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yICIuLi4uLi4u LnBnLmRyb3BwZWQuNC4uLi4uLi4uIiAoZHMsIGRlKTsKK0VSUk9SOiAgcGVyaW9kIG5hbWUg Ii4uLi4uLi4ucGcuZHJvcHBlZC40Li4uLi4uLi4iIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1u IG5hbWUKKy8qIGFkZGluZyBjb2x1bW5zIGFuZCB0aGUgcGVyaW9kIGF0IHRoZSBzYW1lIHRp bWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIpOworYWx0ZXIgdGFibGUgcHQy IGFkZCBjb2x1bW4gZHMgZGF0ZSwgYWRkIGNvbHVtbiBkZSBkYXRlLCBhZGQgcGVyaW9kIGZv ciBwIChkcywgZGUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBBbWJpZ3VvdXMgcmFuZ2UgdHlw ZXMgcmFpc2UgYW4gZXJyb3IgKi8KK2NyZWF0ZSB0eXBlIG15ZGF0ZXJhbmdlIGFzIHJhbmdl KHN1YnR5cGU9ZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRl IGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIGFtYmlndW91cyByYW5n ZSBmb3IgdHlwZSBkYXRlCisvKiBZb3UgY2FuIGdpdmUgYW4gZXhwbGljaXQgcmFuZ2UgdHlw ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ215ZGF0ZXJhbmdlJykpOwor ZHJvcCB0eXBlIG15ZGF0ZXJhbmdlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIG15ZGF0 ZXJhbmdlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHBl cmlvZCBwIG9uIHRhYmxlIHB0MiBkZXBlbmRzIG9uIHR5cGUgbXlkYXRlcmFuZ2UKK0hJTlQ6 ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0 b28uCitkcm9wIHR5cGUgbXlkYXRlcmFuZ2UgY2FzY2FkZTsKK05PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gcGVyaW9kIHAgb24gdGFibGUgcHQyCitkcm9wIHRhYmxlIHB0MjsKK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICdkYXRlcmFuZ2UnKSk7CisvKiBSYW5nZSB0eXBl IGlzIG5vdCBmb3VuZCAqLworY3JlYXRlIHRhYmxlIHB0MyAoaWQgaW50LCBkcyBkYXRlLCBk ZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ25vdGFy YW5nZScpKTsKK0VSUk9SOiAgUmFuZ2UgdHlwZSBub3RhcmFuZ2Ugbm90IGZvdW5kCisvKiBS YW5nZSB0eXBlIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBp bnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5n ZXR5cGUgPSAndHN0enJhbmdlJykpOworRVJST1I6ICBSYW5nZSB0eXBlIHRzdHpyYW5nZSBk b2VzIG5vdCBtYXRjaCBjb2x1bW4gdHlwZSBkYXRlCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxs IGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0 ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gdHJ1ZSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB0MiIK KyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisg aWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZHMgICAgIHwg ZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0ZSAgICB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHAgKGRzLCBkZSkKK0No ZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVjayIgQ0hFQ0sgKGRzIDwgZGUpCisK K2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBm YWlscyBiZWNhdXNlIHRoZSBjb2wgaXNuJ3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjog IGNvbHVtbiAicCIgb2YgcmVsYXRpb24gInB0MiIgZG9lcyBub3QgZXhpc3QKK2Ryb3AgdGFi bGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNh dXNlIHRoZSBvcHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxs IGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0 ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gJ3doYXRldmVyJyk7CitFUlJPUjogIGNvbGV4aXN0cyByZXF1aXJlcyBhIEJvb2xlYW4g dmFsdWUKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29s dW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IE5PVCBOVUxMICovCitjcmVh dGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5n ZSBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2Fs dGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0 cyA9IHRydWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0 aGF0IGFsbG93cyBudWxscworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgR0VORVJB VEVEICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwIGRhdGVyYW5nZSBub3QgbnVsbCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVyaW9k IHAgdXNlcyBhIG5vbi1nZW5lcmF0ZWQgY29sdW1uCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1u IGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0gVE9E TzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShk ZSwgZHMpKSBzdG9yZWQpOworLS0gYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAg KGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3Jvbmcg dHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0 ZSwgcCB0c3JhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMs IGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEg Z2VuZXJhdGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlCitkcm9wIHRhYmxlIHB0MjsK Ky8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUg Y29sdW1uIGlzIGluaGVyaXRlZCAqLworY3JlYXRlIHRhYmxlIHB0MnBhcmVudCAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CitjcmVhdGUgdGFibGUg cHQyICgpIGluaGVyaXRzIChwdDJwYXJlbnQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIFBl cmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgaW5oZXJpdGVkCitkcm9w IHRhYmxlIHB0MjsKK2Ryb3AgdGFibGUgcHQycGFyZW50OworLyogQ1JFQVRFIFRBQkxFIChM SUtFIC4uLikgKi8KKy8qIFBlcmlvZHMgYXJlIG5vdCBjb3BpZWQgYnkgTElLRSwgc28gdGhl aXIgY29sdW1ucyBhcmVuJ3QgZWl0aGVyICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0 KTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEgcGVy aW9kIHJlZmVycmluZyB0byBMSUtFJ2QgY29sdW1ucyAqLworY3JlYXRlIHRhYmxlIG5vdF9w IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKGxp a2Ugbm90X3AsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKKyAgICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisgZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJp b2RzOgorICAgIHAgKGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9j aGVjayIgQ0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuIGFkZCBh IHBlcmlvZCB3aXRoIHRoZSBzYW1lIG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2Ug cHQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg ZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgor ICAgIHAgKGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVjayIg Q0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuIGFkZCBhIHBlcmlv ZCB3aXRoIGEgZGlmZmVyZW50IG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQs IHBlcmlvZCBmb3IgcDIgKGRzLCBkZSkpOworXGQgcHQyCisgICAgICAgICAgICAgICAgVGFi bGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRl ICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAg ICBwMiAoZHMsIGRlKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wMl9jaGVjayIg Q0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuJ3QgYWRkIGEgcGVy aW9kIHdob3NlIG5hbWUgY29uZmxpY3RzIHdpdGggYSBMSUtFJ2QgY29sdW1uICovCitjcmVh dGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIGlkIChkcywgZGUpKTsKK0VSUk9S OiAgcGVyaW9kIG5hbWUgImlkIiBjb25mbGljdHMgd2l0aCBhIGNvbHVtbiBuYW1lCisvKiBD UkVBVEUgVEFMQkUgSU5IRVJJVFMgKi8KKy8qIENhbid0IGluaGVyaXQgZnJvbSBhIHRhYmxl IHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKG5hbWUgdGV4dCkgaW5oZXJp dHMgKHB0KTsKK0VSUk9SOiAgSW5oZXJpdGluZyBmcm9tIGEgdGFibGUgd2l0aCBhIFBFUklP RCBpcyBub3Qgc3VwcG9ydGVkCisvKiBDYW4ndCBpbmhlcml0IHdpdGggYSBwZXJpb2QgKi8K K2NyZWF0ZSB0YWJsZSBwdDIgKGQycyBkYXRlLCBkMmUgZGF0ZSwgcGVyaW9kIGZvciBwIChk MnMsIGQyZSkpIGluaGVyaXRzIChub3RfcCk7CitFUlJPUjogIEluaGVyaXRpbmcgaXMgbm90 IHN1cHBvcnRlZCB3aGVuIGEgdGFibGUgaGFzIGEgUEVSSU9ECitkcm9wIHRhYmxlIG5vdF9w OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJs YXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKaW5kZXggNzE2ODlmZGJiYzAuLjA5NTA3MzhmZTJjIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTE1Myw2ICsxNTMs NzYgQEAgU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGUKICBDUkVBVEUgVU5JUVVFIElOREVY IHRlbXBvcmFsX3JuZzJfcGsgT04gdGVtcG9yYWxfcm5nMiBVU0lORyBnaXN0IChpZDEsIGlk MiwgdmFsaWRfYXQpCiAoMSByb3cpCiAKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEg UEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlciAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor KTsKK1xkIHRlbXBvcmFsX3BlcgorICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1w b3JhbF9wZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyX3BrIiBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAi dGVtcG9yYWxfcGVyX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlk X3RpbCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKKyAgICAgICAgICAg IHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVm KGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9wZXJfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVy X3BrIE9OIHRlbXBvcmFsX3BlciBVU0lORyBnaXN0IChpZCwgdmFsaWRfYXQpCisoMSByb3cp CisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIyCisgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudGVtcG9yYWxfcGVyMiIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQxICAgICAgICB8IGludDRyYW5nZSB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgaWQyICAgICAgICB8IGludDRyYW5nZSB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9wZXIyX3BrIiBQUklNQVJZIEtF WSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJh aW50czoKKyAgICAidGVtcG9yYWxfcGVyMl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlk X2Zyb20gPCB2YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjJfcGsn OworICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiso MSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjJfcGsnOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX3BlcjJfcGsg T04gdGVtcG9yYWxfcGVyMiBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFsaWRfYXQpCisoMSBy b3cpCisKIC0tIFBLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToKIENSRUFURSBUWVBFIHRl eHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9uPSJDIik7CiBDUkVB VEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0zMDAsNiArMzcwLDc4IEBAIFNFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlCiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVtcG9yYWxfcm5n MzsKKy0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRh dGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9m cm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVF IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIz CisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcGVyMyIKKyAgIENvbHVt biAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t CisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg dmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFs aWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2Rz OgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAg ICJ0ZW1wb3JhbF9wZXIzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX3BlcjNfdmFsaWRfYXRf Y2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitTRUxFQ1QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxF Q1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFp bnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVO SVFVRSBJTkRFWCB0ZW1wb3JhbF9wZXIzX3VxIE9OIHRlbXBvcmFsX3BlcjMgVVNJTkcgZ2lz dCAoaWQsIHZhbGlkX2F0KQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjM7 CistLSBVTklRVUUgd2l0aCB0d28gY29sdW1ucyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX3BlcjNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu dGVtcG9yYWxfcGVyMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQxICAgICAgICB8IGludDRyYW5nZSB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgaWQyICAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9wZXIzX3VxIiBVTklRVUUgKGlkMSwg aWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6Cisg ICAgInRlbXBvcmFsX3BlcjNfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwg dmFsaWRfdGlsKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAg ICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBVTklRVUUgKGlkMSwgaWQy LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0 X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRF IFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9wZXIzX3VxIE9OIHRlbXBvcmFsX3BlcjMgVVNJTkcg Z2lzdCAoaWQxLCBpZDIsIHZhbGlkX2F0KQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlbXBv cmFsX3BlcjM7CiAtLSBVTklRVUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgogQ1JFQVRF IFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMi KTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTM3Nyw2ICs1MTksMTA2IEBA IEFMVEVSIFRBQkxFIHRlbXBvcmFsMwogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEK ICAgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBEUk9QIFRBQkxF IHRlbXBvcmFsMzsKKy0tIFBSSU1BUlkgS0VZIHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKKyAgICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnRlbXBvcmFsMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9m cm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbDNfcGsiIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRz OgorICAgICJ0ZW1wb3JhbDNfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwg dmFsaWRfdGlsKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0tIFBSSU1BUlkgS0VZIHdp dGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZQorKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCisgIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKKyAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsMyIKKyAgIENvbHVtbiAgIHwg ICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQg ICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRf ZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGls ICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAg IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1w b3JhbDNfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykK K0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbDNfdmFsaWRfYXRfY2hlY2siIENI RUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsK Ky0tIFVOSVFVRSB3aXRoIFBFUklPRCBhbHJlYWR5IHRoZXJlCitDUkVBVEUgVEFCTEUgdGVt cG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlk X3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsM191cQorICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xk IHRlbXBvcmFsMworICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwzIgor ICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4 ZXM6CisgICAgInRlbXBvcmFsM191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbDNfdmFsaWRfYXRf Y2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitEUk9QIFRBQkxFIHRl bXBvcmFsMzsKKy0tIFVOSVFVRSB3aXRoIFBFUklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1w b3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsM191cQorICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K1xkIHRlbXBvcmFsMworICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwz IgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsM191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbDNfdmFsaWRf YXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitEUk9QIFRBQkxF IHRlbXBvcmFsMzsKIC0tCiAtLSByYW5nZSBQSzogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MK IC0tCkBAIC04NzQsNiArMTExNiwyODQgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRy bmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczOwogLS0KKy0tIFBFUklPRCBQSzogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0tCitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9w azsKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0w MycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sz LDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrOworLS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAg SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworRVJST1I6ICBjb3Vs ZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXJfcGsiCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAy LTAzKSkgY29uZmxpY3RzIHdpdGgga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDEtMDEsMjAxOC0wMS0wNSkpLgorUk9MTEJBQ0s7CistLSByZWplY3RzIGVtcHR5OgorQkVH SU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIFBFUklPRCBGT1IgdmFsaWRf YXQ7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKTsKK0VSUk9SOiAgY2hlY2sgY29uc3RyYWludCAidGVtcG9y YWxfcGVyX3ZhbGlkX2F0X2NoZWNrIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcGVyIiBpcyB2 aW9sYXRlZCBieSBzb21lIHJvdworUk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w ZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXI7Cist LQorLS0gUEVSSU9EIFBLOiB0ZXN0IGluc2VydHMKKy0tCistLSBva2F5OgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxOC0wMy0wMycsICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEt MDEnLCAnMjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVM TCk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcy MDE4LTAxLTA1Jyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBl eGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcGVyX3BrIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpIGNvbmZsaWN0 cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAy LDIwMTgtMDItMDMpKS4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTIChOVUxMLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1 Jyk7CitFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJpZCIgb2YgcmVsYXRpb24gInRl bXBvcmFsX3BlciIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFp bGluZyByb3cgY29udGFpbnMgKG51bGwsIDIwMTgtMDEtMDEsIDIwMTgtMDEtMDUsIFsyMDE4 LTAxLTAxLDIwMTgtMDEtMDUpKS4KKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQp JywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworRVJST1I6ICBuZXcgcm93IGZvciBy ZWxhdGlvbiAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJ0ZW1w b3JhbF9wZXJfdmFsaWRfYXRfY2hlY2siCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlu cyAoWzMsNCksIDIwMjAtMDEtMDEsIDIwMjAtMDEtMDEsIGVtcHR5KS4KK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEsMikgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMi0wMworIFsxLDIpIHwgMjAxOC0wMy0w MyB8IDIwMTgtMDQtMDQKKyBbMiwzKSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMs NCkgfCAyMDE4LTAxLTAxIHwgCisoNCByb3dzKQorCistLQorLS0gUEVSSU9EIFBLOiB0ZXN0 IHVwZGF0ZXMKKy0tCistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBv cmFsX3BlcgorU0VUICAgICBpZCA9ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScK K0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRo ZSBQRVJJT0QgYm91bmRzCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICB2YWxpZF9m cm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMS0wMS0wMScK K1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEt MTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRFICB0ZW1wb3JhbF9w ZXIKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAx OC0wMS0wMicsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAzJworV0hFUkUgICBp ZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICBpZCAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSAgIHwgMjAxOC0wMy0wMyB8IDIwMTgtMDQtMDQK KyBbMiwzKSAgIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0KSAgIHwgMjAxOC0w MS0wMSB8IAorIFsyMSwyMikgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMi0wMworKDQgcm93cykK KworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9 ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wNScsCisgICAgICAg IHZhbGlkX3RpbCA9ICcyMDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VS Uk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJh aW50ICJ0ZW1wb3JhbF9wZXJfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbMjAxOC0wMy0wNSwyMDE4LTA1LTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcg a2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkpLgor LS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3Blcgor U0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wNScs CisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMjEs MjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxhdGlvbiAi dGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgMjAxOC0wMy0wNSwgMjAxOC0wNS0wNSwgWzIw MTgtMDMtMDUsMjAxOC0wNS0wNSkpLgorLS0gc2V0IGEgUEVSSU9EIGJvdW5kIHRvIE5VTEwg KG9rYXkpCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAgICAgIHZhbGlkX3RpbCA9 IE5VTEwKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSByZWplY3RzIGVtcHR5OgorVVBE QVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZh bGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIwLTAx LTAxJworV0hFUkUgICBpZCA9ICdbMSwyKSc7CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0 aW9uICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFs X3Blcl92YWxpZF9hdF9jaGVjayIKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChb MjEsMjIpLCAyMDIwLTAxLTAxLCAyMDIwLTAxLTAxLCBlbXB0eSkuCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxLDIpIHwgMjAxOC0wMy0wMyB8IDIwMTgtMDQtMDQKKyBbMSwyKSB8IDIwMTgtMDQtMDQg fCAKKyBbMiwzKSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMsNCkgfCAyMDE4LTAx LTAxIHwgCisoNCByb3dzKQorCistLQorLS0gUEVSSU9EIFVROiB0ZXN0IHdpdGggZXhpc3Rp bmcgcm93cworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworLS0gb2theToKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgt MDEtMDEnLCBOVUxMKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoTlVMTCwgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191 cTsKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgt MDEtMDEnLCAnMjAxOC0wMS0wNScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyk7CitFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNv bnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdXEiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKSkgY29uZmxpY3RzIHdpdGgga2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgorUk9M TEJBQ0s7CistLSByZWplY3RzIGVtcHR5OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3BlcjMgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0OworICBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScs ICcyMDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxf cGVyMyBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsK K0VSUk9SOiAgY2hlY2sgY29uc3RyYWludCAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVj ayIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3BlcjMiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93 CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjM7CistLQorLS0gUEVSSU9EIFVROiB0ZXN0 IGluc2VydHMKKy0tCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgt MDQtMDQnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5VTEwpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTIChOVUxM LCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworRVJST1I6ICBjb25m bGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBv cmFsX3BlcjNfdXEiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMSwyMDE4LTAxLTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwg dmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykpLgorLS0gcmVqZWN0 cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScp OworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxfcGVyMyIgdmlvbGF0 ZXMgY2hlY2sgY29uc3RyYWludCAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVjayIKK0RF VEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChbMyw0KSwgMjAyMC0wMS0wMSwgMjAyMC0w MS0wMSwgZW1wdHkpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDE4LTAxLTAyIHwgMjAx OC0wMi0wMworIFsxLDIpIHwgMjAxOC0wMy0wMyB8IDIwMTgtMDQtMDQKKyBbMiwzKSB8IDIw MTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMsNCkgfCAyMDE4LTAxLTAxIHwgCisgICAgICAg fCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorKDUgcm93cykKKworLS0KKy0tIFBFUklPRCBV UTogdGVzdCB1cGRhdGVzCistLQorLS0gdXBkYXRlIHRoZSBzY2FsYXIgcGFydAorVVBEQVRF ICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0g J1sxLDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1 cGRhdGUgdGhlIFBFUklPRCBib3VuZHMKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAg ICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAy MS0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4g JzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRFICB0 ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxpZF9m cm9tID0gJzIwMTgtMDEtMDInLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMycK K1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMjAtMDEt MTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgIGlkICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpICAgfCAyMDE4LTAzLTAzIHwg MjAxOC0wNC0wNAorIFsyLDMpICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQp ICAgfCAyMDE4LTAxLTAxIHwgCisgWzIxLDIyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAz CisgICAgICAgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisoNSByb3dzKQorCistLSBz aG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMSwy KScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wNScsCisgICAgICAgIHZhbGlk X3RpbCA9ICcyMDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAg Y29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwg WzIwMTgtMDMtMDUsMjAxOC0wNS0wNSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAo aWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTAzLDIwMTgtMDQtMDQpKS4KKy0tIHNl dCB0aGUgc2NhbGFyIHBhcnQgdG8gTlVMTCAob2theSkKK1VQREFURSAgdGVtcG9yYWxfcGVy MworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0w MScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdb MjEsMjIpJzsKKy0tIHNldCBhIFBFUklPRCBib3VuZCB0byBOVUxMIChva2F5KQorVVBEQVRF ICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRf ZnJvbSA9ICcyMDE4LTA0LTA0JywKKyAgICAgICAgdmFsaWRfdGlsID0gTlVMTAorV0hFUkUg ICBpZCBJUyBOVUxMIEFORCB2YWxpZF9hdCBAPiAnMjAyMC0wNi0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMSwyKSB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0CisgWzEsMikgfCAy MDE4LTA0LTA0IHwgCisgWzIsMykgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQp IHwgMjAxOC0wMS0wMSB8IAorICAgICAgIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1 IHJvd3MpCisKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQg ICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcy MDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJUyBOVUxM OworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNv bnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdXEiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFsxLDIpLCBbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KSkgY29uZmxpY3RzIHdpdGggZXhp c3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDMsMjAxOC0wNC0w NCkpLgorLS0gcmVqZWN0cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAg ICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAy MC0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwgSVMgTlVMTDsK K0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3BlcjMiIHZpb2xhdGVz IGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdmFsaWRfYXRfY2hlY2siCitERVRB SUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzEsMiksIDIwMjAtMDEtMDEsIDIwMjAtMDEt MDEsIGVtcHR5KS4KKy0tIHN0aWxsIHJlamVjdHMgZW1wdHkgd2hlbiBzY2FsYXIgcGFydCBp cyBOVUxMOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gTlVMTCwKKyAg ICAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5V TEw7CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIzIiB2aW9s YXRlcyBjaGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIgor REVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIDIwMjAtMDEtMDEsIDIwMjAt MDEtMDEsIGVtcHR5KS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAxOC0wMy0wMyB8IDIw MTgtMDQtMDQKKyBbMSwyKSB8IDIwMTgtMDQtMDQgfCAKKyBbMiwzKSB8IDIwMTgtMDEtMDEg fCAyMDE4LTAxLTA1CisgWzMsNCkgfCAyMDE4LTAxLTAxIHwgCisgICAgICAgfCAyMDE4LTAx LTAxIHwgMjAxOC0wMS0wNQorKDUgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIz OworLS0KIC0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBhbmQgYSBVTklRVUUgY29u c3RyYWludAogLS0KIENSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKApAQCAtMTQyNCwzMiArMTk0 NCwyMTAgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmczOwogLS0KLS0tIHRlc3Qg RksgZGVwZW5kZW5jaWVzCistLSBPTiBDT05GTElDVDogUEVSSU9EcwogLS0KLS0tIGNhbid0 IGRyb3AgYSByYW5nZSByZWZlcmVuY2VkIGJ5IGFuIEZLLCB1bmxlc3Mgd2l0aCBDQVNDQURF Ci1DUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKLSAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9h dCBkYXRlcmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKLSk7Ci1DUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZyAoCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNU IERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RI SU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScs ICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0w MS0wMQorIFsxLDIpIHwgMjAxMC0wMS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUt MDEtMDEgfCAyMDA2LTAxLTAxCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0 aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0w MScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRo ZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUg T04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09O RkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8g dW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElD VCBzcGVjaWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChp ZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBv ciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lm aWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAor LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAx IHwgMjAxMC0wMS0wMQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9O IENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7Cist LSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAx LTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFs X3Blcl9wayBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElD VCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBOT1RISU5HOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsK KyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorIFsx LDIpIHwgMjAxMC0wMS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEgfCAy MDA2LTAxLTAxCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCAr ICdbMiwzKSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29u c3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQg bWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScs ICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNF VCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5p cXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBz cGVjaWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwg dmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitF UlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRj aGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorKDEgcm93KQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7 CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhj bHVzaW9uIGNvbnN0cmFpbnRzCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBP TiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVE RUQuaWQgKyAnWzMsNCknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1 cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gZGF0ZSBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEt MDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBVUERB VEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6ICBPTiBDT05GTElD VCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0w MS0wMQorKDEgcm93KQorCistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfcGVyMyAoCiAgIGlkIGludDRyYW5nZSwKLSAgdmFsaWRfYXQgZGF0 ZXJhbmdlLAotICBwYXJlbnRfaWQgaW50NHJhbmdlLAotICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLSAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs MyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCiApOwotQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09M VU1OIHZhbGlkX2F0OwotRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gdmFsaWRfYXQgb2Yg dGFibGUgdGVtcG9yYWwzIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKLURF VEFJTDogIGNvbnN0cmFpbnQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBvbiB0YWJsZSB0ZW1w b3JhbF9ma19ybmcycm5nIGRlcGVuZHMgb24gY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRl bXBvcmFsMwotSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVu ZGVudCBvYmplY3RzIHRvby4KLUFMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2 YWxpZF9hdCBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJhaW50 IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5nMnJuZwot RFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nOwotRFJPUCBUQUJMRSB0ZW1wb3JhbDM7 Ci0tLQotLS0gdGVzdCBGT1JFSUdOIEtFWSwgcmFuZ2UgcmVmZXJlbmNlcyByYW5nZQorVFJV TkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0g aWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEt MDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywg JzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisgIGlk ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKyBbMSwyKSB8 IDIwMTAtMDEtMDEgfCAyMDIwLTAxLTAxCisgWzIsMykgfCAyMDA1LTAxLTAxIHwgMjAwNi0w MS0wMQorKDMgcm93cykKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05G TElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1 bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNU IHNwZWNpZmljYXRpb24KKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQs IHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3Ig ZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmlj YXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMp JywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNp b24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWw7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAt MDEtMDEKKygxIHJvdykKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05G TElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsKKy0tIGlk IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAx JywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cjNfdXEgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNU IE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBOT1RISU5HOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7 CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKyBb MSwyKSB8IDIwMTAtMDEtMDEgfCAyMDIwLTAxLTAxCisgWzIsMykgfCAyMDA1LTAxLTAxIHwg MjAwNi0wMS0wMQorKDMgcm93cykKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQu aWQgKyAnWzIsMyknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9u IGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0t IGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIz IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAx LTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERB VEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworRVJST1I6ICB0aGVyZSBpcyBu byB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZM SUNUIHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNU IChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1 KSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWlu dCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7Cisg IGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKygxIHJv dykKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlk ICsgJ1syLDMpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0 ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBP TiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gVVBEQVRFIFNF VCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8g VVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0tIGRh dGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJS T1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lv biBjb25zdHJhaW50cworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAw MC0wMS0wMSB8IDIwMTAtMDEtMDEKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9w ZXIzOworLS0KKy0tIHRlc3QgRksgZGVwZW5kZW5jaWVzCistLQorLS0gY2FuJ3QgZHJvcCBh IHJhbmdlIHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVzcyB3aXRoIENBU0NBREUKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVy YW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxp ZF9hdDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRl bXBvcmFsMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBj b25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtf cm5nMnJuZyBkZXBlbmRzIG9uIGNvbHVtbiB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMK K0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2Jq ZWN0cyB0b28uCitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQg Q0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29uc3RyYWludCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcKK0RST1AgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0KKy0t IHRlc3QgRk9SRUlHTiBLRVksIHJhbmdlIHJlZmVyZW5jZXMgcmFuZ2UKIC0tCiAtLSB0ZXN0 IHRhYmxlIHNldHVwCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzsKQEAgLTE0NzcsNiArMjE3 NSwxOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCiAgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCiApOworXGQgdGVtcG9yYWxfZmtfcm5nMnJuZworICAgICAgICAgICBUYWJs ZSAicHVibGljLnRlbXBvcmFsX2ZrX3JuZzJybmciCisgIENvbHVtbiAgIHwgICBUeXBlICAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgfCBp bnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICB8IGRhdGVy YW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgcGFyZW50X2lkIHwgaW50NHJhbmdl IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2Zr X3JuZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisKIERST1AgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZzsKIC0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoK IC0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlk X2F0KQpAQCAtMzcyNSw2ICs0NDM1LDEyNjcgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWwKICBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAg ICB8IFs4LDkpCiAoMiByb3dzKQogCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9E IHJlZmVyZW5jZXMgUEVSSU9ECistLQorLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJM RSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFC TEUgdGVtcG9yYWxfcGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9waworICBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworLS0gQ2FuJ3Qg Y3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g aW50LAorICB2YWxpZF90aWwgaW50LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIGNhbm5vdCBiZSBp bXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlk X2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiBpbnQ0cmFuZ2UgYW5kIGRhdGVyYW5n ZS4KKy0tIHdvcmtzOiBQRVJJT0QgZm9yIGJvdGggcmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNp bmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkK Kyk7CitcZCB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMu dGVtcG9yYWxfZmtfcGVyMnBlciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycGVyX3BrIiBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25z dHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hF Q0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoK KyAgICAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZh bGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSB3aXRoIG1p c21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91 bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJl ZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJl bnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNo b3VsZCBzcGVjaWZ5IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBk YXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf YXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSBtdXN0IHVzZSBQRVJJT0Qgd2hlbiByZWZl cmVuY2luZyBhIHByaW1hcnkgdXNpbmcgV0lUSE9VVCBPVkVSTEFQUworLS0gKHBhcmVudF9p ZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JF SUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2Vz IFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2lu ZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0 XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9m cm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAor ICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0g KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9m cm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAor ICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2Vz IFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNl ZCB0YWJsZQorLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3Jl aWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRo ZSByZWZlcmVuY2luZyB0YWJsZQorLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJl bmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAg cGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitEUk9QIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtp bXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJl bnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVS SU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRh YmxlCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNv bHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRy YW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFy ZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKQor KTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBu b3QgY29udGFpbiBkdXBsaWNhdGVzCistLSBUd28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFC TEUgdGVtcG9yYWxfcGVyMjsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQx IGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChp ZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBw YXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9w ZXIycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3BlcjJwZXIi CisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVy aW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoK KyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3Jh bF9mazJfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxp ZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMihpZDEsIGlkMiwgUEVSSU9EIHZh bGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworLS0KKy0tIHRl c3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQKKy0tCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQs IFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFyIGNvbHVtbnM6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAor ICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgICAg ICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3BlcjJwZXIiCisgICBDb2x1bW4g ICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZh bGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlk X3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9p ZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9y YWxfZmsyX3BlcjJwZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnBl cl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCitGb3Jl aWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsiIEZP UkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyMihpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCist LSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBhbmQgd3Jvbmcg Y29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBEUk9QIFBFUklPRCBGT1Ig dmFsaWRfYXQsCisgIEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgdGltZXN0YW1wLAor ICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAorICBBREQgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyOworRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJ TDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29t cGF0aWJsZSB0eXBlczogdHNyYW5nZSBhbmQgZGF0ZXJhbmdlLgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQsCisgIEFMVEVS IENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgZGF0ZSwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX3Rp bCBUWVBFIGRhdGUsCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpOworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJs ZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gc2hvdWxkIGZh aWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrMgorICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lk KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCk7CitFUlJPUjog IGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4g ZHVwbGljYXRlcworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMKKyAgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSwKKyAgKCdb MSwxXScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSwKKyAgKCdbMiwyXScsICcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKSwKKyAgKCdbMywzXScsICcyMDE4LTAxLTAxJywgTlVM TCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0 LTAxJywgJ1sxLDFdJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19wZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfcGVyIi4KKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXI7CistLQorLS0gdGVzdCBwZ19nZXRfY29uc3RyYWludGRlZgorLS0KK1NFTEVDVCBwZ19n ZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1l ID0gJ3RlbXBvcmFsX2ZrX3BlcjJwZXJfZmsnOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jaW5nIGluc2VydHMKKy0tCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFd JywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZh aWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAn MjAxOC0wNC0wMScsICdbMSwxXScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQs IHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJl c2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGVyIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScs ICdbMSwxXScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKy0t IHNsaWRlIHRoZSBlZGdlIGFjcm9zcyBhIHJlZmVyZW5jZWQgdHJhbnNpdGlvbjoKK1VQREFU RSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLCB2 YWxpZF90aWwgPSAnMjAxOC0wMi0yMCcgV0hFUkUgaWQgPSAnWzEsMV0nOworLS0gc2hvdWxk IGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgdmFsaWRfZnJvbSA9ICcy MDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDEnIFdIRVJFIGlkID0gJ1sxLDFd JzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVy MnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVy MnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBb MjAxOC0wMS0wMiwyMDE4LTA1LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBv cmFsX3BlciIuCitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0g J1s4LDhdJyBXSEVSRSBpZCA9ICdbMSwxXSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVu dF9pZCwgdmFsaWRfYXQpPShbOCw5KSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0yMCkpIGlzIG5v dCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gQUxURVIgRksgREVGRVJS QUJMRQorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSwKKyAgICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsM10nLCAnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0Lgor Q09NTUlUOyAtLSBzaG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnBlciIuCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBOTyBBQ1RJT04K Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIK KyAgT04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMg YmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1 XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAx JyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFu Z2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVd Jyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEn LCB2YWxpZF90aWwgPSAnMjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFs aWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOwor LS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUworICAoJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp LAorICAoJ1s2LDcpJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUn LCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0gQ0FT RSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScKKyAg ICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhF TiAnMjAxOC0wMS0wNScgRU5EOjpkYXRlLAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdIRU4g dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTA1JworICAgICAgICAg ICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4 LTAzLTAxJyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRl IHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBv cmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIw MTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVS UkVEOworICBVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEt MDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitD T01NSVQ7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Bl ciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBl cl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tIGNoYW5n aW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlk ID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0 IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw3XScK K1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor VVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9 ICdbNSw1XSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFs X3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVy MnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFs1LDYpIHwgMjAxNi0w Mi0wMSB8IDIwMTYtMDMtMDEKKyBbNSw2KSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisg WzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0wMQorIFs3LDgpIHwgMjAxOC0wMS0wMiB8 IDIwMTgtMDEtMDMKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEt MDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFs aWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tCist LSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFJFU1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBSRVNUUklD VDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBp ZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAx Ni0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmlj IGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0w My0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAx JyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gQSBQSyB1cGRhdGUgc2xpZGlu ZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s2 LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s2LDcpJywgJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdb NCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnLCAnWzYsNyknKTsKK1VQREFURSB0 ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0gQ0FTRSBXSEVOIHZhbGlkX2Zyb20gPSAn MjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScKKyAgICAgICAgICAgICAgICAgICAgICBX SEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0wMS0wNScgRU5EOjpk YXRlLAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAx LTAxJyBUSEVOICcyMDE4LTAxLTA1JworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFs aWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAzLTAxJyBFTkQ6OmRhdGUKK1dI RVJFIGlkID0gJ1s2LDcpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzYsNyksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEp KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIi LgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5j ZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAn MjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0 ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBb MjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KK1JPTExCQUNLOworLS0gY2hhbmdpbmcgdGhlIHNj YWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10n CitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBl ciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3BlcjJwZXIiLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToK K1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQg PSAnWzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVt cG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBU TyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAx Ni0wMy0wMQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIw MTgtMDEtMDMgfCAyMDE4LTAyLTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0w MworKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJF IGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxp ZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgt MDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAn MjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksg cGFyZW50IGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0 ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVk cyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1 LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2Vl ZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRo ZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0g JzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAn MjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBv cmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0t IGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBi dXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIw MTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAi dGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFy dCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0g J1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1 JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hF UkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYp IHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb Myw0KSB8IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0g dGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRl bGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1 LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIw MTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgUkVTVFJJQ1QKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAg T04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1 XSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1l cmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUwor ICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywg JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20g PSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJl Zm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBE RUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBB TkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnBlciIuCitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBw YXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQg PSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBX SEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUs NikgfCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0wMQorKDIgcm93cykKKworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCist LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg ZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVS RSBpZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAn MjAxOC0wMi0wMSc7CistLQorLS0gcGVyMnBlciB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0 aW9ucworLS0KKy0tIFRPQzoKKy0tIHBhcmVudCB1cGRhdGVzIENBU0NBREUKKy0tIHBhcmVu dCBkZWxldGVzIENBU0NBREUKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxMCistLSBwYXJl bnQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0t IHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBwYXJlbnQgdXBkYXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLSBwYXJlbnQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHBh cmVudCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNl dCkKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCist LSBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFy ZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQg c3Vic2V0KQorLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYs Nl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgQ0FTQ0FE RSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2 XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEw MCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJv bSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAx IHwgWzcsOCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNyw4KQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkKKyBbMTAwLDEwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs3LDgpCisoMyByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg MjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbOSwxMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBw YXJlbnQgZGVsZXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1w b3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAx OS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworIGlkIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCB8IHBhcmVudF9pZCAKKy0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyBwYXJl bnQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQg aWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwx MDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0 ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8 IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgCisoMyByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMjAwLDIwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Blciwg dGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAx LTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQor KDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4 XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzIwMCwyMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBu dWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIK KyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04g REVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3 LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIw MTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAy MDE5LTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEt MDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFst MSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4 XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0g J1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0x LDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIg cm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0w MSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIw LTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApCisgWzEwMCwx MDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAy MDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAy MDIwLTAxLTAxIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMg Q0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIs IHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJw ZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NB REU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg MjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIy IFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKygz IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitV UERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgs OF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4 LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs5LDEwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFy IGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZd Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwg MjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEt MDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQg dXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0n LCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2Zr LAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQ REFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8 IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8 IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkg fCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwg MjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwg WzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEt MDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRl OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwx MDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwx MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAgICAgICAgIHwgCisoMyByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0w MSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFy ZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0 KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOwor LS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVy MnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVM RVRFIFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6ICBj b2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNh bm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJw ZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYs NykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcpCisoMyByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAg ICAgICAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJl bnQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn Wy0xLC0xXScsICdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2 XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAx IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAn WzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAx OS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQg KHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3Jh bF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51 bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScs ICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0w MS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAy MDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMg cm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIy IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAy MC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAx IHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn WzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDAp ICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQg ZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJz ZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDZdJywgbnVsbCwgbnVsbCk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBm YWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBT RVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsK KyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQg REVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK0VSUk9SOiAgY29s dW1uICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5u b3QgYmUgUEVSSU9ECistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVy CisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYs NykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisoMyByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDhdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAg ICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgs OSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCiAtLSBGSyB3aXRoIGEgY3VzdG9tIHJhbmdl IHR5cGUKIENSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7 CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC00NDI4LDQgKzYzOTksMTggQEAg U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxNSwxNiknOwogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZzsKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogUEVSSU9Ecwor LS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9wZXIgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIG5hbWUg dGV4dCwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChp ZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9wZXIgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgp JywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgp JywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitFUlJPUjogIEluaGVyaXRp bmcgZnJvbSBhIHRhYmxlIHdpdGggYSBQRVJJT0QgaXMgbm90IHN1cHBvcnRlZAorRFJPUCBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9wZXI7CiBSRVNFVCBkYXRlc3R5bGU7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCA1ZTk2OTNhMWQyNC4uZDkyMjVjZjM2 ODUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtNDMsNyArNDMsNyBA QCB0ZXN0OiBjb3B5IGNvcHlzZWxlY3QgY29weWRtbCBpbnNlcnQgaW5zZXJ0X2NvbmZsaWN0 CiAjIE5vdGU6IG1hbnkgb2YgdGhlIHRlc3RzIGluIGxhdGVyIGdyb3VwcyBkZXBlbmQgb24g Y3JlYXRlX2luZGV4CiAjIC0tLS0tLS0tLS0KIHRlc3Q6IGNyZWF0ZV9mdW5jdGlvbl9jIGNy ZWF0ZV9taXNjIGNyZWF0ZV9vcGVyYXRvciBjcmVhdGVfcHJvY2VkdXJlIGNyZWF0ZV90YWJs ZSBjcmVhdGVfdHlwZSBjcmVhdGVfc2NoZW1hCi10ZXN0OiBjcmVhdGVfaW5kZXggY3JlYXRl X2luZGV4X3NwZ2lzdCBjcmVhdGVfdmlldyBpbmRleF9pbmNsdWRpbmcgaW5kZXhfaW5jbHVk aW5nX2dpc3QKK3Rlc3Q6IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5kZXhfc3BnaXN0IGNyZWF0 ZV92aWV3IGluZGV4X2luY2x1ZGluZyBpbmRleF9pbmNsdWRpbmdfZ2lzdCBwZXJpb2RzCiAK ICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKaW5kZXggOTZhZDg3YzljZjEu LjE3ODQ1ZTllMmY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9y dGlvbl9vZi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yu c3FsCkBAIC00MjMsNiArNDIzLDM4IEBAIFNFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3QyOwogCistLSBUZXN0IHdpdGggUEVSSU9EcworCitDUkVBVEUgVEFCTEUgZm9y X3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIG5hbWUgdGV4dCBOT1QgTlVMTCwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2Zf dGVzdDIKK1ZBTFVFUworKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnLCAn b25lJyksCisoJ1sxLDIpJywgJzIwMTgtMDItMDQnLCAnMjAxOC0wMy0wMycsICdvbmUnKSwK KygnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JywgJ29uZScpLAorKCdbMiwz KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDUtMDEnLCAndHdvJyksCisoJ1szLDQpJywgJzIw MTgtMDEtMDEnLCBudWxsLCAndGhyZWUnKTsKKzsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTEwJyBUTyAn MjAxOC0wMi0xMCcKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOwor CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTgtMDItMTUnCitXSEVSRSBpZCA9ICdb MiwzKSc7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworCiAt LSBUZXN0IHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQogCiBDUkVBVEUgVFlQRSBteWRhdGVy YW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcGVyaW9kcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWQzOTcxMmQyYjQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbApA QCAtMCwwICsxLDE3OCBAQAorLyogU3lzdGVtIHBlcmlvZHMgYXJlIG5vdCBpbXBsZW1lbnRl ZCAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBw ZXJpb2QgZm9yIHN5c3RlbV90aW1lIChkcywgZGUpKTsKKworLyogUGVyaW9kcyBtdXN0IHNw ZWNpZnkgYWN0dWFsIGNvbHVtbnMgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChib2d1cywgZGUpKTsKK2NyZWF0ZSB0 YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChk cywgYm9ndXMpKTsKKworLyogRGF0YSB0eXBlcyBtdXN0IG1hdGNoIGV4YWN0bHkgKi8KK2Ny ZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgdGltZXN0YW1wLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkpOworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB0 ZXh0IGNvbGxhdGUgIkMiLCBkZSB0ZXh0IGNvbGxhdGUgIlBPU0lYIiwgcGVyaW9kIGZvciBw IChkcywgZGUpKTsKKworLyogUGVyaW9kcyBtdXN0IGhhdmUgYSBkZWZhdWx0IEJUcmVlIG9w ZXJhdG9yIGNsYXNzICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIHhtbCwg ZGUgeG1sLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBQZXJpb2QgYW5kIGNvbHVt biBuYW1lcyBhcmUgaW4gdGhlIHNhbWUgbmFtZXNwYWNlICovCitjcmVhdGUgdGFibGUgcHQg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgY3RpZCAoZHMsIGRl KSk7CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBl cmlvZCBmb3IgaWQgKGRzLCBkZSkpOworCisvKiBQZXJpb2QgbmFtZSBjYW4ndCBiZSBnaXZl biBtb3JlIHRoYW4gb25jZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSksIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSk7CisKKy8qIE5vdyBtYWtlIG9uZSB0aGF0IHdvcmtzICovCitjcmVhdGUgdGFibGUg cHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSk7CisKKy8qIFNFTEVDVCAqIGV4Y2x1ZGVzIHRoZSBQRVJJT0QgKi8KK2luc2VydCBpbnRv IHB0IHZhbHVlcyAoMSwgJzIwMDAtMDEtMDEnLCAnMjAwMS0wMS0wMScpOworc2VsZWN0ICog ZnJvbSBwdDsKKworLyogWW91IGNhbiBnZXQgaXQgaWYgeW91IHdhbnQgKi8KK3NlbGVjdCAq LCBwIGZyb20gcHQ7CisKKy8qIFR3byBhcmUgb2theSAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwMSAoZHMsIGRlKSwg cGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogU2tpcCBj cmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZv ciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKK1xkIHB0MgorZHJvcCB0 YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNv bGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjog ZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBpbnZhbGlkIHZhbHVlICovCitjcmVh dGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gJ3doYXRldmVyJykpOworLyogU2tpcCBj cmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMg bm90IE5PVCBOVUxMICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2Uo ZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBi ZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGws IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVt biBpcyBHRU5FUkFURUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Npb24gKi8KKy0tIFRP RE86CistLSBjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2Uo ZGUsIGRzKSkgc3RvcmVkLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBi ZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBub3QgbnVsbCBn ZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZv ciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIGluaGVy aXRlZCAqLworY3JlYXRlIHRhYmxlIHB0MnBhcmVudCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwg ZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0 ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CitjcmVhdGUgdGFibGUgcHQyIChwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpIGluaGVyaXRzIChwdDJwYXJl bnQpOworZHJvcCB0YWJsZSBwdDJwYXJlbnQ7CisKKworLyoKKyAqIEFMVEVSIFRBQkxFIHRl c3RzCisgKi8KK2FsdGVyIHRhYmxlIHB0IGRyb3AgcGVyaW9kIGZvciBwOworYWx0ZXIgdGFi bGUgcHQgYWRkIHBlcmlvZCBmb3Igc3lzdGVtX3RpbWUgKGRzLCBkZSk7CithbHRlciB0YWJs ZSBwdCBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpOworCisvKiBBZGRpbmcgYSBzZWNvbmQg b25lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwZXJpb2QgZm9yIHAxIChkcywgZGUpKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9k IGZvciBwMiAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworCisvKiBDYW4ndCBkcm9wIGl0 cyBjb2x1bW5zICovCithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkczsKK2FsdGVyIHRh YmxlIHB0IGRyb3AgY29sdW1uIGRlOworCisvKiBDYW4ndCBjaGFuZ2UgdGhlIGRhdGEgdHlw ZXMgKi8KK2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsK K2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsKKworLyog Y29sdW1uL3BlcmlvZCBuYW1lc3BhY2UgY29uZmxpY3RzICovCithbHRlciB0YWJsZSBwdCBh ZGQgY29sdW1uIHAgaW50ZWdlcjsKK2FsdGVyIHRhYmxlIHB0IHJlbmFtZSBjb2x1bW4gaWQg dG8gcDsKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHRhYmxlb2lkIChkcywgZGUp OworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgIi4uLi4uLi4ucGcuZHJvcHBlZC40 Li4uLi4uLi4iIChkcywgZGUpOworCisvKiBhZGRpbmcgY29sdW1ucyBhbmQgdGhlIHBlcmlv ZCBhdCB0aGUgc2FtZSB0aW1lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyKTsK K2FsdGVyIHRhYmxlIHB0MiBhZGQgY29sdW1uIGRzIGRhdGUsIGFkZCBjb2x1bW4gZGUgZGF0 ZSwgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworCisvKiBB bWJpZ3VvdXMgcmFuZ2UgdHlwZXMgcmFpc2UgYW4gZXJyb3IgKi8KK2NyZWF0ZSB0eXBlIG15 ZGF0ZXJhbmdlIGFzIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChp ZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8q IFlvdSBjYW4gZ2l2ZSBhbiBleHBsaWNpdCByYW5nZSB0eXBlICovCitjcmVhdGUgdGFibGUg cHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChyYW5nZXR5cGUgPSAnbXlkYXRlcmFuZ2UnKSk7Citkcm9wIHR5cGUgbXlkYXRlcmFu Z2U7Citkcm9wIHR5cGUgbXlkYXRlcmFuZ2UgY2FzY2FkZTsKK2Ryb3AgdGFibGUgcHQyOwor Y3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ2RhdGVyYW5nZScpKTsKKworLyogUmFu Z2UgdHlwZSBpcyBub3QgZm91bmQgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9 ICdub3RhcmFuZ2UnKSk7CisKKy8qIFJhbmdlIHR5cGUgaXMgdGhlIHdyb25nIHR5cGUgKi8K K2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZv ciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICd0c3R6cmFuZ2UnKSk7Citkcm9wIHRh YmxlIHB0MjsKKworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBk YXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBk ZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7Cisv KiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNv bCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBj cmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBvcHRpb24gaGFz IGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMg YXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gJ3doYXRldmVyJyk7Citk cm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFp bHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJs ZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVl KTsKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ug bm90IG51bGwpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3Jl YXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIEdF TkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0gVE9ETzoKKy0t IGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0 ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkZSwgZHMp KSBzdG9yZWQpOworLS0gYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBk ZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRF RCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3JvbmcgdHlwZSAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCB0 c3JhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRlKSkg c3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0 aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhl cml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRh dGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAoKSBpbmhlcml0 cyAocHQycGFyZW50KTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7Citkcm9wIHRh YmxlIHB0MnBhcmVudDsKKworLyogQ1JFQVRFIFRBQkxFIChMSUtFIC4uLikgKi8KKworLyog UGVyaW9kcyBhcmUgbm90IGNvcGllZCBieSBMSUtFLCBzbyB0aGVpciBjb2x1bW5zIGFyZW4n dCBlaXRoZXIgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQpOworXGQgcHQyCitkcm9w IHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBlcmlvZCByZWZlcnJpbmcgdG8gTElLRSdk IGNvbHVtbnMgKi8KK2NyZWF0ZSB0YWJsZSBub3RfcCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwg ZGUgZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChsaWtlIG5vdF9wLCBwZXJpb2QgZm9yIHAg KGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBl cmlvZCB3aXRoIHRoZSBzYW1lIG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQs IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworCisv KiBDYW4gYWRkIGEgcGVyaW9kIHdpdGggYSBkaWZmZXJlbnQgbmFtZSAqLworY3JlYXRlIHRh YmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7CitcZCBwdDIKK2Ry b3AgdGFibGUgcHQyOworCisvKiBDYW4ndCBhZGQgYSBwZXJpb2Qgd2hvc2UgbmFtZSBjb25m bGljdHMgd2l0aCBhIExJS0UnZCBjb2x1bW4gKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2Ug cHQsIHBlcmlvZCBmb3IgaWQgKGRzLCBkZSkpOworCisvKiBDUkVBVEUgVEFMQkUgSU5IRVJJ VFMgKi8KKworLyogQ2FuJ3QgaW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBhIHBlcmlvZCAq LworY3JlYXRlIHRhYmxlIHB0MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQpOworCisvKiBD YW4ndCBpbmhlcml0IHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGQycyBk YXRlLCBkMmUgZGF0ZSwgcGVyaW9kIGZvciBwIChkMnMsIGQyZSkpIGluaGVyaXRzIChub3Rf cCk7CisKK2Ryb3AgdGFibGUgbm90X3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsCmluZGV4IGE4ZjQxMDIwZTBhLi4yZGRiZDg0YzM2ZiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTkxLDYgKzkx LDMxIEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKIFNFTEVDVCBwZ19nZXRfY29u c3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3JuZzJfcGsnOwogU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwg dHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5n Ml9wayc7CiAKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEgUEVSSU9EOgorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBk YXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFs X3BlcgorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKK1NFTEVDVCBwZ19nZXRf aW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBj b25uYW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7CisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMg cGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGlu dDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxp ZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEs IGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIy CitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5k ZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX3BlcjJfcGsnOworCiAtLSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdl IHR5cGU6CiBDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQs IGNvbGxhdGlvbj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMTY5 LDYgKzE5NCwzMyBAQCBTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybgogU0VMRUNUIHBnX2dl dF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3Ju ZzM7CiAKKy0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9w ZXIzCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFp bnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK1NFTEVDVCBwZ19nZXRf aW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBj b25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIz OworCistLSBVTklRVUUgd2l0aCB0d28gY29sdW1ucyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJh bmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRk ZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9w ZXIzX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLSBVTklRVUUgd2l0aCBhIGN1c3RvbSBy YW5nZSB0eXBlOgogQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10 ZXh0LCBjb2xsYXRpb249IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAg LTI0NSw2ICsyOTcsNTggQEAgQUxURVIgVEFCTEUgdGVtcG9yYWwzCiAgIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAK Ky0tIFBSSU1BUlkgS0VZIHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAg dmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWwzX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyk7CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBQUklN QVJZIEtFWSB3aXRoIFBFUklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUKKyk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19wawor ICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVt cG9yYWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworLS0gVU5JUVVFIHdpdGggUEVSSU9E IGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCitEUk9QIFRBQkxF IHRlbXBvcmFsMzsKKworLS0gVU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpOworXGQgdGVtcG9yYWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKwogLS0KIC0tIHJh bmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cwogLS0KQEAgLTYxNSw2ICs3MTksMjEy IEBAIFdIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOwogU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1Ag VEFCTEUgdGVtcG9yYWxfbWx0cm5nMzsKIAorLS0KKy0tIFBFUklPRCBQSzogdGVzdCB3aXRo IGV4aXN0aW5nIHJvd3MKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrOworCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wazsKKwor LS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpOworUk9MTEJBQ0s7CistLSByZWplY3RzIGVtcHR5OgorQkVHSU47Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQ7Cisg IElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CisgIEFMVEVS IFRBQkxFIHRlbXBvcmFsX3BlciBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKTsKK1JPTExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyOworCistLQor LS0gUEVSSU9EIFBLOiB0ZXN0IGluc2VydHMKKy0tCisKKy0tIG9rYXk6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcy MDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxM KTsKKworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KTsKKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAn MjAyMC0wMS0wMScpOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCistLQorLS0gUEVSSU9EIFBLOiB0ZXN0IHVwZGF0ZXMKKy0tCisKKy0t IHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAg IGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxpZF9h dCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhlIFBFUklPRCBib3VuZHMK K1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0w MScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdb MTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1 cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9 ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAgICAg ICAgdmFsaWRfdGlsID0gJzIwMTgtMDItMDMnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitB TkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgor VVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2 YWxpZF9mcm9tID0gJzIwMTgtMDMtMDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0w NS0wNScKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0 IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gTlVMTCwKKyAg ICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IGEgUEVSSU9E IGJvdW5kIHRvIE5VTEwgKG9rYXkpCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBp ZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAg ICAgIHZhbGlkX3RpbCA9IE5VTEwKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSByZWpl Y3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzIxLDIy KScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlk X3RpbCA9ICcyMDIwLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMSwyKSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBQRVJJ T0QgVVE6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCistLQorCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKQorKTsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDIn LCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoTlVM TCwgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf cGVyMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cTsKKworLS0gc2hvdWxkIGZhaWw6CitCRUdJ TjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVy M191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNL OworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w ZXIzIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAy MC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMg QUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CitST0xM QkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcjM7CisKKy0tCistLSBQRVJJT0QgVVE6IHRlc3QgaW5z ZXJ0cworLS0KKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAn MjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0 LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoTlVMTCwg JzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworLS0gcmVqZWN0cyBl bXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIFBFUklPRCBVUTogdGVzdCB1cGRhdGVzCistLQorCistLSB1cGRhdGUgdGhlIHNj YWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzExLDEy KScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgUEVSSU9EIGJvdW5kcworVVBEQVRFICB0ZW1w b3JhbF9wZXIzCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAg IHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5E ICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBh dCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScs CisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsCisgICAgICAgIHZhbGlkX3Rp bCA9ICcyMDE4LTAyLTAzJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxp ZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl cjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRl bXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9t ID0gJzIwMTgtMDMtMDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dI RVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwg KG9rYXkpCitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAg ICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAn MjAyMS0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgYSBQRVJJT0Qg Ym91bmQgdG8gTlVMTCAob2theSkKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBp ZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAg ICAgIHZhbGlkX3RpbCA9IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRfYXQg QD4gJzIwMjAtMDYtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3Jh bF9wZXIzCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wMScsCisgICAgICAgIHZh bGlkX3RpbCA9ICcyMDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlk X3RpbCBJUyBOVUxMOworLS0gcmVqZWN0cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfcGVy MworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90 aWwgPSAnMjAyMC0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwg SVMgTlVMTDsKKy0tIHN0aWxsIHJlamVjdHMgZW1wdHkgd2hlbiBzY2FsYXIgcGFydCBpcyBO VUxMOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAg ICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIw MjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5VTEw7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLQogLS0gdGVzdCBhIHJhbmdlIHdpdGgg Ym90aCBhIFBLIGFuZCBhIFVOSVFVRSBjb25zdHJhaW50CiAtLQpAQCAtOTY2LDYgKzEyNzYs MTIxIEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CiAKIERST1AgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMzsKIAorLS0KKy0tIE9OIENP TkZMSUNUOiBQRVJJT0RzCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENP TkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBE TyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RI SU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElD VCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04g Q09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7 CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMikn LCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXJfcGsgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9O IENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7Cist LSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyX3BrIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRF UiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0g d2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0w MS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElD VCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMs NCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScs ICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0 KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsK KworVFJVTkNBVEUgdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAx JywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScs ICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5U IHRlbXBvcmFsX3Blcl9wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIs MyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXJfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQp JzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXJfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWw7CisKKy0tIHdpdGggYSBVTklRVUUgY29uc3RyYWludDoKKworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBVTklR VUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1RSVU5DQVRFIHRlbXBv cmFsX3BlcjM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEn KTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScs ICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMg YnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAt MDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBu byBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAx JykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVy MyBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAx Jyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7 CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAx MC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8g Tk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sy LDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFs aWRfYXQpIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIg QlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVy MzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0g d2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYt MDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8g Tk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJB SU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQg bm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0w MScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBOT1RI SU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWw7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjM7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09O RkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsg J1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlk X2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworLS0gZGF0 ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0w MScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRF IFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOwor LS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAt MDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOwor LS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXIzX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbDsKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLQogLS0gdGVz dCBGSyBkZXBlbmRlbmNpZXMKIC0tCkBAIC0xMDE5LDYgKzE0NDQsNyBAQCBDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCiAgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiApOworXGQg dGVtcG9yYWxfZmtfcm5nMnJuZwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nOwog CiAtLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CkBAIC0yNjc3LDcwICszMTAz LDk3NCBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQQogREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCi0tLSBG SyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKLQotQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2Ug QVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCBQRVJJ T0QgcmVmZXJlbmNlcyBQRVJJT0QKKy0tCiAKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcz ICgKKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyOworQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3BlciAoCiAgIGlkIGludDRyYW5nZSwKLSAgdmFsaWRfYXQg bXlkYXRlcmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkKICk7Ci1DUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmcgKAor QUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cl9waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwor CistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCByYW5nZSB0eXBlCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCiAgIGlkIGludDRyYW5nZSwKLSAg dmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIHZhbGlkX2Zyb20gaW50LAorICB2YWxpZF90aWwg aW50LAogICBwYXJlbnRfaWQgaW50NHJhbmdlLAotICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr M19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiApOwotSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azNfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywg bXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKLURF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKLVNFTEVD VCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOwogCi1E Uk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOwotRFJPUCBUQUJMRSB0ZW1wb3JhbF9y bmczOwotRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOworLS0gd29ya3M6IFBFUklPRCBmb3IgYm90 aCByZWZlcmVuY2VkIGFuZCByZWZlcmVuY2luZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFs aWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrX3BlcjJwZXIK K0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcjsKIAotLS0KLS0tIEZLIGJldHdlZW4g cGFydGl0aW9uZWQgdGFibGVzOiByYW5nZXMKLS0tCistLSB3aXRoIG1pc21hdGNoZWQgUEVS SU9EIGNvbHVtbnM6CiAKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KAorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFs aWRfYXQpCistLSBSRUZFUkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCiAgIGlkIGludDRyYW5nZSwKLSAgdmFs aWRfYXQgZGF0ZXJhbmdlLAotICBuYW1lIHRleHQsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxf cGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQotKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRwMSBQ QVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdb MSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScs ICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMikn LCAnWzIzLDI0KScpOwotQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1 KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScs ICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSkn KTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 LCBuYW1lKSBWQUxVRVMKLSAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDAwLTAyLTAxJyksICdvbmUnKSwKLSAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0w MScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKLSAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0d28nKTsKLQotQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAot ICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCiAgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAotICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQot ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZh bGlkX2F0KQotKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRma3Ax IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxV RVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAn WzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywg J1syMSwyMiknLCAnWzIzLDI0KScpOwotQ1JFQVRFIFRBQkxFIHRma3AyIFBBUlRJVElPTiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwx KScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sx MiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdb MjIsMjMpJywgJ1syNCwyNSknKTsKLQotLS0KLS0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5j aW5nIGluc2VydHMKLS0tCi0KLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKLSAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMSwyKScpLAotICAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAxLTAxLTAxJywgJzIwMDItMDEtMDEnKSwgJ1syLDMp JyksCi0gICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScp LCAnWzEsMiknKTsKLS0tIHNob3VsZCBmYWlsOgotSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwor ICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRf YXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBw YXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5D RVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJ T0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3Rp bCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAo aWQpCispOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworLS0gd2l0aCBpbmZl cnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSAocGFy ZW50X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CisKKy0tIHNo b3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJh bmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgaWQpCispOworCistLSBU d28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMjsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlciAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJf ZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFs aWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX3BlcjJwZXIKK0RST1AgVEFCTEUgdGVtcG9y YWxfZmsyX3BlcjJwZXI7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJB SU5UCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBU d28gc2NhbGFyIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRh dGUsCisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Bl cjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsK K1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhl IHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmssCisgIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09MVU1O IHZhbGlkX2Zyb20gVFlQRSB0aW1lc3RhbXAsCisgIEFMVEVSIENPTFVNTiB2YWxpZF90aWwg VFlQRSB0aW1lc3RhbXAsCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgUEVSSU9EIEZPUiB2YWxp ZF9hdCwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX2Zyb20gVFlQRSBkYXRlLAorICBBTFRFUiBD T0xVTU4gdmFsaWRfdGlsIFRZUEUgZGF0ZSwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhl IHJlZmVyZW5jZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjsKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBj b2x1bW5zOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrMgorICBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgcGFyZW50X2lkKQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBF UklPRCBpZCk7CisKKy0tCistLSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQorCitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSwKKyAg KCdbMSwxXScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSwKKyAgKCdbMiwyXScsICcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSwKKyAgKCdbMywzXScsICcyMDE4LTAxLTAxJywg TlVMTCk7CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScsICdbMSwxXScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIw MTgtMDQtMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBva2F5IGFnYWluOgorREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy OworCistLQorLS0gdGVzdCBwZ19nZXRfY29uc3RyYWludGRlZgorLS0KKworU0VMRUNUIHBn X2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5h bWUgPSAndGVtcG9yYWxfZmtfcGVyMnBlcl9mayc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jaW5nIGluc2VydHMKKy0tCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMV0n LCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDFdJyk7CistLSBzaG91bGQgZmFp bDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcy MDE4LTA0LTAxJywgJ1sxLDFdJyk7CistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1sxLDFdJywgJzIwMTgtMDItMDMnLCAnMjAxOC0wMy0wMycpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMV0n KTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKworLS0gc2xp ZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgorVVBEQVRFIHRl bXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTIwJyBXSEVSRSBpZCA9ICdbMSwxXSc7CistLSBzaG91bGQgZmFp bDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQgPSAnWzEsMV0nOwor VVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHBhcmVudF9pZCA9ICdbOCw4XScgV0hF UkUgaWQgPSAnWzEsMV0nOworCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCisKK0JFR0lOOwor ICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUworICAgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisg ICAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKyAgSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcsICdbNSw1XScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVGRVJSQUJM RSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s1LDVdJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBz aG91bGQgZmFpbCBoZXJlLgorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBOTyBB Q1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBl cjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcgorICBPTiBVUERBVEUgTk8gQUNUSU9OOworLS0gYSBQSyB1cGRhdGUgdGhhdCBz dWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworVVBEQVRFIHRlbXBv cmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIw MTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3Vj Y2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNl IHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn LCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAx Ni0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w My0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgJzIwMTgtMDEtMTUnLCAnMjAx OC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zy b20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAx LTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAy LTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENB U0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisg ICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRI RU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQ SyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90 aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3Qg J3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERF RkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIg U0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAx JworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0tIGNoYW5naW5nIHRoZSBzY2Fs YXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJwor V0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2 YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQg cGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcs N10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWls czoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUg aWQgPSAnWzUsNV0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4g KCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEn CitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVw ZGF0ZXMgUkVTVFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxf ZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcgorICBPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0 ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNl ZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90 aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUg dGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2Vk IGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJv bSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9 ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAzLTAxJzsKKy0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2Vl biB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAxOC0wMS0x NScsICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyCitTRVQg dmFsaWRfZnJvbSA9IENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4g JzIwMTgtMDEtMDEnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0g JzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDEtMDUnIEVORDo6ZGF0ZSwKKyAgICB2YWxpZF90 aWwgPSAgQ0FTRSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0w MS0wNScKKyAgICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0w Mi0wMScgVEhFTiAnMjAxOC0wMy0wMScgRU5EOjpkYXRlCitXSEVSRSBpZCA9ICdbNiw3KSc7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgVVBEQVRFIHRl bXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0g JzIwMTYtMDItMDEnCisgIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcy MDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworUk9MTEJBQ0s7Cist LSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gY2hhbmdp bmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9wZXIK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAx LTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdp bmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBp ZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4g KCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlk X3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCist LSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUg dGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRl IHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNl ZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQg dmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBi ZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIg V0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2 YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJl Y2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lO OworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkg REVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOworQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2th eToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIw MTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgn WzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2Jq ZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCist LSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gREVMRVRFIFJFU1RS SUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVy ZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4 LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScg QU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFp bHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgor QkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJ QUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwg PSAnMjAxOC0wMi0wMSc7CitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNl ZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUg aWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNV0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBz dWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBB TkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDIt MDEnOworCistLQorLS0gcGVyMnBlciB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucwor LS0KKy0tIFRPQzoKKy0tIHBhcmVudCB1cGRhdGVzIENBU0NBREUKKy0tIHBhcmVudCBkZWxl dGVzIENBU0NBREUKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxMCistLSBwYXJlbnQgZGVs ZXRlcyBTRVQgTlVMTAorLS0gcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHBhcmVu dCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBwYXJlbnQgdXBkYXRlcyBDQVNDQURFICh0d28g c2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNv bHMpCistLSBwYXJlbnQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0g cGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBk ZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0t IHBhcmVudCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJl bnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IGRl bGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0 KQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBDQVNDQURFCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRFIENBU0NBREUg T04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdI RVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVs ZXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2Zr X3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBV UERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScs ICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJF IGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRl cyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19w ZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sy MDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0K Ky0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScs IG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFd JywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIK KyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQg aWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQg PSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn Wy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgQ0FTQ0FERSAodHdv IHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxf ZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZd JywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlcjIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBp ZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQg aWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitV UERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgs OF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor CistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBj b2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZd Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdb Nyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAn WzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0 ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9m azJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n LCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBT RVQgTlVMTCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3Jh bF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYs Nl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVS SU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBX SEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk MSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIg PSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQx ID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywg J1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJywgaWQy ID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVz dCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0n LCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVS RSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVs ZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNl0nLCBudWxsLCBudWxsKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZh aWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk MSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBX SEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4 XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwt MV0nLCAnWzgsOF0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlk MSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlw ZQorCitDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOwor CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgbXlkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9h dCBteWRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpIE9OIERFTEVURSBDQVNDQURF CispOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hF UkUgaWQgPSAnWzUsNiknOworCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOworCist LQorLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6IHJhbmdlcworLS0KKworQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxF IHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMg SU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzEx LDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1sy MSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScs ICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0 LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1sy NCwyNSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw MC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0d28nKTsKKworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVB VEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgp JywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgp JywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZr cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZB TFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywg J1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScs ICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOworCistLQorLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwg J1sxLDIpJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDEtMDEtMDEnLCAnMjAwMi0w MS0wMScpLCAnWzIsMyknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScs ICcyMDAwLTAyLTE1JyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTCiAgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAx MC0wMi0xNScpLCAnWzEsMiknKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKICAgKCdbMyw0 KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMyw0KScpOwpA QCAtMzE4NSw0ICs0NTE1LDE5IEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKIERST1AgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKIERST1AgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nOwogCistLQorLS0gRksgYmV0d2VlbiBwYXJ0aXRp b25lZCB0YWJsZXM6IFBFUklPRHMKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAg dmFsaWRfdGlsIGRhdGUsCisgIG5hbWUgdGV4dCwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlv bmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElP TiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9wZXIgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywg J1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywx NCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMs MjQpJyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3BlcjsKKwogUkVTRVQg ZGF0ZXN0eWxlOwotLSAKMi40Mi4wCgo= --------------ILCnfobTFgrrlXVrLT5hmthX--