120715|spldoublylinkedlist.shift|100|1488278479|fabs2s at marsatak dot org|T25lIG1heSBleHBlY3QgU3BsRG91Ymx5TGlua2VkTGlzdDo6c2hpZnQgdG8gcHJvcGVybHkgbWFpbnRhaW4gaW50ZXJuYWwgcG9pbnRlcnMsIGJ1dCB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgdGhpcyB3aWxsIHlpZWxkIG5vIHJlc3VsdHMsIGV2ZW4gaWYgeW91IHJld2luZCBmaXJzdAoKPD9waHAKd2hpbGUgKCRzcGxEb3VibHlMaW5rZWRMaXN0LT52YWxpZCgpKSB7CiAgICB5aWVsZCAkc3BsRG91Ymx5TGlua2VkTGlzdC0+c2hpZnQoKTsKfQo/PgoKSXQgY291bGQgYmUgYnkgZGVzaWduLCBidXQgdGhlIGZvbGxvd2luZyByYWlzZXMgc29tZSBtb3JlIHF1ZXN0aW9ucyA6Cgo8P3BocAoKJHRlc3QgPSBuZXcgXFNwbERvdWJseUxpbmtlZExpc3Q7CiRkYXRhU2V0ID0gWwogICAgWydpZCcgPT4gMV0sCiAgICBbJ2lkJyA9PiAyXSwKICAgIFsnaWQnID0+IDNdLAogICAgWydpZCcgPT4gNF0sCl07Cgpmb3JlYWNoICgkZGF0YVNldCBhcyAkcm93KSB7CiAgICAkdGVzdC0+cHVzaCgkcm93KTsKfQoKZWNobyAiY291bnQ6ICIgLiAkdGVzdC0+Y291bnQoKSAuIFBIUF9FT0w7CmVjaG8gInZhbGlkOiAiIC4gKCR0ZXN0LT52YWxpZCgpID8gJ3RydWUnIDogJ2ZhbHNlJykgLiBQSFBfRU9MOwplY2hvICJjdXJyZW50OiAiIC4gdmFyX2V4cG9ydCgkdGVzdC0+Y3VycmVudCgpLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gImtleTogIiAuICR0ZXN0LT5rZXkoKSAuIFBIUF9FT0w7CmVjaG8gIjFzdCBzaGlmdDogIiAuIHZhcl9leHBvcnQoJHRlc3QtPnNoaWZ0KCksIHRydWUpIC4gUEhQX0VPTDsKZWNobyAiY291bnQ6ICIgLiAkdGVzdC0+Y291bnQoKSAuIFBIUF9FT0w7CmVjaG8gInZhbGlkOiAiIC4gKCR0ZXN0LT52YWxpZCgpID8gJ3RydWUnIDogJ2ZhbHNlJykgLiBQSFBfRU9MOwplY2hvICJjdXJyZW50OiAiIC4gdmFyX2V4cG9ydCgkdGVzdC0+Y3VycmVudCgpLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gImtleTogIiAuICR0ZXN0LT5rZXkoKSAuIFBIUF9FT0w7CmVjaG8gIjJuZCBzaGlmdDogIiAuIHZhcl9leHBvcnQoJHRlc3QtPnNoaWZ0KCksIHRydWUpIC4gUEhQX0VPTDsKZWNobyAiY291bnQ6ICIgLiAkdGVzdC0+Y291bnQoKSAuIFBIUF9FT0w7CmVjaG8gInZhbGlkOiAiIC4gKCR0ZXN0LT52YWxpZCgpID8gJ3RydWUnIDogJ2ZhbHNlJykgLiBQSFBfRU9MOwplY2hvICJjdXJyZW50OiAiIC4gdmFyX2V4cG9ydCgkdGVzdC0+Y3VycmVudCgpLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gImtleTogIiAuICR0ZXN0LT5rZXkoKSAuIFBIUF9FT0w7CmVjaG8gInJld2luZGluZy4uLiAiIC4gUEhQX0VPTDsKJHRlc3QtPnJld2luZCgpOwplY2hvICJjdXJyZW50OiAiIC4gdmFyX2V4cG9ydCgkdGVzdC0+Y3VycmVudCgpLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gIjJuZCBzaGlmdDogIiAuIHZhcl9leHBvcnQoJHRlc3QtPnNoaWZ0KCksIHRydWUpIC4gUEhQX0VPTDsKZWNobyAiY291bnQ6ICIgLiAkdGVzdC0+Y291bnQoKSAuIFBIUF9FT0w7CmVjaG8gInZhbGlkOiAiIC4gKCR0ZXN0LT52YWxpZCgpID8gJ3RydWUnIDogJ2ZhbHNlJykgLiBQSFBfRU9MOwplY2hvICJjdXJyZW50OiAiIC4gdmFyX2V4cG9ydCgkdGVzdC0+Y3VycmVudCgpLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gImtleTogIiAuICR0ZXN0LT5rZXkoKSAuIFBIUF9FT0w7Cj8+Cgp3aWxsIHJlc3VsdCBpbiA6Cjw/cGhwCgovKgpjb3VudDogNCAgICAgICAgICAgICAgICAKdmFsaWQ6IGZhbHNlICAgICAgICAgICAgICAgICAgICAgICA8PT0gRmlyc3QgdGhpbmcgdG8gbm90ZSwgeW91IGhhdmUgbm8gdmFsaWQgcG9pbnRlciB1bmxlc3MgeW91IHJld2luZCBmaXJzdApjdXJyZW50OiBOVUxMICAgICAgICAgICAgICAgICAgPD09IGhlbmNlIG5vIGN1cnJlbnQKa2V5OiAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PT0gYnV0IHdlIGhhdmUgYSB2YWxpZCBrZXkKb2Zmc2V0R2V0KGtleSk6IGFycmF5ICggICAgPD09IGluZGVlZAogICdpZCcgPT4gMSwgICAgICAgICAgICAKKSAgICAgICAgICAgICAgICAgICAgICAgCjFzdCBzaGlmdDogYXJyYXkgKCAgICAgICAgICAgICAgIDw9PSBhbmQgc2hpZnQgZG9lcyByZXR1cm4gZmlyc3Qgcm93CiAgJ2lkJyA9PiAxLCAgICAgICAgICAgIAopICAgICAgICAgICAgICAgICAgICAgICAKY291bnQ6IDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD09IGFuZCBjb3VudCBpcyBtYWludGFpbmVkIGFzIGV4cGVjdGVkCnZhbGlkOiBmYWxzZSAgICAgICAgICAgICAgICAgICAgICA8PT0gYnV0IGludGVybmFsIHBvaW50ZXIgd2FzIGxlZnQgb3V0c2lkZSB2YWxpZCByYW5nZQpjdXJyZW50OiBOVUxMICAgICAgICAgICAgICAgICA8PT0gaGVuY2Ugbm8gY3VycmVudCBhZ2FpbgprZXk6IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9PSBidXQgd2Ugc3RpbGwgaGF2ZSBhIHZhbGlkIGtleQpvZmZzZXRHZXQoa2V5KTogYXJyYXkgKCAgIDw9PSBpbmRlZWQKICAnaWQnID0+IDIsICAgICAgICAgICAgCikgICAgICAgICAgICAgICAgICAgICAgIAoybmQgc2hpZnQ6IGFycmF5ICggICAgICAgICAgICAgPD09IGFuZCBzaGlmdCBkb2VzIHJldHVybiBmaXJzdCByb3cKICAnaWQnID0+IDIsICAgICAgICAgICAgCikgICAgICAgICAgICAgICAgICAgICAgIApjb3VudDogMiAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9PSBhbmQgY291bnQgaXMgbWFpbnRhaW5lZCBhcyBleHBlY3RlZAp2YWxpZDogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgPD09IHN0aWxsIG5vdCB2YWxpZCBldGMgLi4KY3VycmVudDogTlVMTCAgICAgICAgICAgCmtleTogMCAgICAgICAgICAgICAgICAgIApvZmZzZXRHZXQoa2V5KTogYXJyYXkgKCAKICAnaWQnID0+IDMsICAgICAgICAgICAgCikgICAgICAgICAgICAgICAgICAgICAgIApyZXdpbmRpbmcuLi4gICAgICAgICAgICAgICAgICAgIDw9PSBub3cgcmV3aW5kCmN1cnJlbnQ6IGFycmF5ICggICAgICAgICAgICAgPD09IHlheSBhIGN1cnJlbnQKICAnaWQnID0+IDMsICAgICAgICAgICAgCikgICAgICAgICAgICAgICAgICAgICAgIAozcmQgc2hpZnQ6IGFycmF5ICggICAgICAgICAgICA8PT0gc2hpZnQgb2sKICAnaWQnID0+IDMsICAgICAgICAgICAgCikgICAgICAgICAgICAgICAgICAgICAgIApjb3VudDogMSAgICAgICAgICAgICAgICAgICAgICAgICAgPD09IGNvdW50IG9rCnZhbGlkOiB0cnVlICAgICAgICAgICAgICAgICAgICAgPD09IG91Y2ggdmFsaWQgCmN1cnJlbnQ6IE5VTEwgICAgICAgICAgICAgICA8PT0gd2l0aCBubyBjdXJyZW50CmtleTogMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9PSBzdGlsbCBvdXIga2V5IGlzIHZhbGlkIDpvCm9mZnNldEdldChrZXkpOiBhcnJheSAoIAogICdpZCcgPT4gNCwgICAgICAgICAgICAKKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKi8KPz4KCkNvbmNsdXNpb24gOiBJIG1heSBiZSBtaXNzaW5nIHNvbWV0aGluZyBhYm91dCB3aHkgU3BsRG91Ymx5TGlua2VkTGlzdDo6c2hpZnQgaXMgbm90IG1haW50YWluaW5nIHByb3BlciBpbnRlcm5hbCBpbmRleCBpbiB0aGUgZmlyc3QgcGxhY2UsIGJ1dCBJIGZpbmQgaXQgZXZlbiBtb3JlIGNvbmZ1c2luZyB0byBiZSBhYmxlIHRvIGVuZCB1cCB3aXRoIGEgdmFsaWQgdmFsaWQoKSBhbmQgYSB2YWxpZCBrZXkoKSBhbmQgbm8gY3VycmVudCgpIHdoaWxlIHRoZXJlIGlzIG9idmlvdXNseSBvbmUuCgpUZXN0ZWQgb24gcGhwIDUuNi4zMCAmIDcuMS4yIHdpdGggdGhlIGV4YWN0IHNhbWUgcmVzdWx0Lg==|1|0