<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div id="craft_clipboard" data-craft="W3siY29udGVudCI6IkhpISBJ4oCZbSBuZXcgdG8gQ29uVGVYdC4iLCJjcmVhdGVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJkb2N1bWVudElkIjoiNzA1RTMyRTAtMzgyMy00OTZFLTkxNzItODQ5NzVCRDZDNjUzIiwibGlzdE9yZGVyIjowLCJtb2RpZmllZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwicGFnZVN0eWxlIjoie30iLCJwcm9wZXJ0aWVzIjoie30iLCJzdHlsZUF0dHJpYnV0ZXMiOiJ7XCJfcnVuQXR0cmlidXRlc1wiOltdLFwiZGVjb3JhdGlvbnNcIjp7fSxcImluZGVudGF0aW9uTGV2ZWxcIjowLFwibGlzdFN0eWxlXCI6XCJub25lXCIsXCJ0ZXh0U3R5bGVcIjpcImJvZHlcIn0iLCJzdWJCbG9ja3MiOltdLCJ0ZXh0IjoiSGkhIEnigJltIG5ldyB0byBDb25UZVh0LiIsInR5cGUiOiJ0ZXh0In0seyJjb250ZW50IjoiSSBuZWVkIHRvIG1ha2UgYSBjdXN0b20gdGFibGUgb2YgY29udGVudCB0aGF0IGxvb2tzIGxpa2UgdGhpczoiLCJjcmVhdGVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJkb2N1bWVudElkIjoiNzA1RTMyRTAtMzgyMy00OTZFLTkxNzItODQ5NzVCRDZDNjUzIiwibGlzdE9yZGVyIjowLCJtb2RpZmllZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwicGFnZVN0eWxlIjoie30iLCJwcm9wZXJ0aWVzIjoie30iLCJzdHlsZUF0dHJpYnV0ZXMiOiJ7XCJfcnVuQXR0cmlidXRlc1wiOltdLFwiZGVjb3JhdGlvbnNcIjp7fSxcImluZGVudGF0aW9uTGV2ZWxcIjowLFwibGlzdFN0eWxlXCI6XCJub25lXCIsXCJ0ZXh0U3R5bGVcIjpcImJvZHlcIn0iLCJzdWJCbG9ja3MiOltdLCJ0ZXh0IjoiSSBuZWVkIHRvIG1ha2UgYSBjdXN0b20gdGFibGUgb2YgY29udGVudCB0aGF0IGxvb2tzIGxpa2UgdGhpczoiLCJ0eXBlIjoidGV4dCJ9LHsiY29udGVudCI6IkNsZWFuU2hvdCAyMDIyLTAxLTIwIGF0IDE2LjU1LjM3QDJ4LnBuZyIsImNyZWF0ZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsImRvY3VtZW50SWQiOiI3MDVFMzJFMC0zODIzLTQ5NkUtOTE3Mi04NDk3NUJENkM2NTMiLCJsaXN0T3JkZXIiOjAsIm1vZGlmaWVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJwYWdlU3R5bGUiOiJ7fSIsInByb3BlcnRpZXMiOiJ7XCJhc3BlY3RSYXRpb1wiOlwiMC43MTE3NDM3NzIyNDE5OTI5XCIsXCJmaWxlRXh0ZW5zaW9uXCI6XCJwbmdcIixcImZpbGVOYW1lXCI6XCJDbGVhblNob3QgMjAyMi0wMS0yMCBhdCAxNi41NS4zN0AyeC5wbmdcIixcImlzUHJldmlld0ltYWdlVXBsb2FkZWRcIjpcInRydWVcIixcIm1pbWVUeXBlXCI6XCJpbWFnZVxcXC9wbmdcIixcInByZXZpZXdJbWFnZVdpZHRoXCI6XCIxMjAwLjBcIixcInByaW1hcnlDb2xvclwiOlwiMTY3NzcyMTVcIixcInJhd0RhdGFTaXplXCI6XCI0NTgwODhcIixcInJhd1VybFwiOlwiaHR0cHM6XFxcL1xcXC9yZXMuY3JhZnQuZG9cXFwvdXNlclxcXC9mdWxsXFxcLzZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NFxcXC9kb2NcXFwvNzA1RTMyRTAtMzgyMy00OTZFLTkxNzItODQ5NzVCRDZDNjUzXFxcL0I3MjAwQjY4LTdBMEMtNDUyMi1BRDM3LTA4RDAxRDkwNEIzQV8yXFxcL3RwcDRkWmQwbFVuYkNDN3lOZ0x1eDc1aTFmZVB6S1d0Y2MweW54ZW1GNHN6XFxcL0NsZWFuU2hvdCUyMDIwMjItMDEtMjAlMjBhdCUyMDE2LjU1LjM3MngucG5nXCIsXCJ1cGxvYWRlZFwiOlwidHJ1ZVwiLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3Jlcy5jcmFmdC5kb1xcXC91c2VyXFxcL3ByZXZpZXdcXFwvNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0XFxcL2RvY1xcXC83MDVFMzJFMC0zODIzLTQ5NkUtOTE3Mi04NDk3NUJENkM2NTNcXFwvQjcyMDBCNjgtN0EwQy00NTIyLUFEMzctMDhEMDFEOTA0QjNBXzFcXFwvV3hMTTJBemRKVmtUYzZwUkVKUDdZZXBRdjJ1UUcwSHFxRmtTMUVLNEx3TXpcXFwvQ2xlYW5TaG90JTIwMjAyMi0wMS0yMCUyMGF0JTIwMTYuNTUuMzcyeC5qcGdcIn0iLCJzdHlsZUF0dHJpYnV0ZXMiOiJ7XCJfcnVuQXR0cmlidXRlc1wiOltdLFwiZGVjb3JhdGlvbnNcIjp7fSxcImltYWdlRmlsbFN0eWxlXCI6XCJzY2FsZUFzcGVjdEZpdFwiLFwiaW5kZW50YXRpb25MZXZlbFwiOjAsXCJsaXN0U3R5bGVcIjpcIm5vbmVcIixcInRleHRTdHlsZVwiOlwiYm9keVwifSIsInN1YkJsb2NrcyI6W10sInRleHQiOiIiLCJ0eXBlIjoiaW1hZ2UifSx7ImNvbnRlbnQiOiJFYWNoIHJvdyBpbiB0aGUgdGFibGUgY29ycmVzcG9uZHMgdG8gYW4gaXRlbSB0aGF0IGhhcyBmb2xsb3dpbmcgZGF0YSB0byBwcmludCBpbiB0aGUgdGFibGUgb2YgY29udGVudDogcGFnZSwgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIHRoZSBpdGVtIHNwYW5zLCBuYW1lIG9mIHRoZSBpdGVtIGFuZCBhIGN1c3RvbSB0ZXh0IG1ldGFkYXRhIGZpZWxkIHdoaWNoIGlzIGRlZmluZWQgYnkgdGhlIGl0ZW0uIEVhY2ggaXRlbSB3aWxsIGhhdmUgaXRzIG93biByZWd1bGFyIHRhYmxlIG9mIGNvbnRlbnQgYW5kIG93biBzdHJ1Y3R1cmUuIFNvIHdlIGNhbiB0aGluayBvZiB0aGlzIFRPQyBhcyBraW5kIG9mIGEgbWVnYSB0YWJsZSBvZiBjb250ZW50IG9uZSBsZXZlbCBhYm92ZS4iLCJjcmVhdGVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJkb2N1bWVudElkIjoiNzA1RTMyRTAtMzgyMy00OTZFLTkxNzItODQ5NzVCRDZDNjUzIiwibGlzdE9yZGVyIjowLCJtb2RpZmllZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwicGFnZVN0eWxlIjoie30iLCJwcm9wZXJ0aWVzIjoie30iLCJzdHlsZUF0dHJpYnV0ZXMiOiJ7XCJfcnVuQXR0cmlidXRlc1wiOltdLFwiZGVjb3JhdGlvbnNcIjp7fSxcImluZGVudGF0aW9uTGV2ZWxcIjowLFwibGlzdFN0eWxlXCI6XCJub25lXCIsXCJ0ZXh0U3R5bGVcIjpcImJvZHlcIn0iLCJzdWJCbG9ja3MiOltdLCJ0ZXh0IjoiRWFjaCByb3cgaW4gdGhlIHRhYmxlIGNvcnJlc3BvbmRzIHRvIGFuIGl0ZW0gdGhhdCBoYXMgZm9sbG93aW5nIGRhdGEgdG8gcHJpbnQgaW4gdGhlIHRhYmxlIG9mIGNvbnRlbnQ6IHBhZ2UsIHRvdGFsIG51bWJlciBvZiBwYWdlcyB3aGljaCB0aGUgaXRlbSBzcGFucywgbmFtZSBvZiB0aGUgaXRlbSBhbmQgYSBjdXN0b20gdGV4dCBtZXRhZGF0YSBmaWVsZCB3aGljaCBpcyBkZWZpbmVkIGJ5IHRoZSBpdGVtLiBFYWNoIGl0ZW0gd2lsbCBoYXZlIGl0cyBvd24gcmVndWxhciB0YWJsZSBvZiBjb250ZW50IGFuZCBvd24gc3RydWN0dXJlLiBTbyB3ZSBjYW4gdGhpbmsgb2YgdGhpcyBUT0MgYXMga2luZCBvZiBhIG1lZ2EgdGFibGUgb2YgY29udGVudCBvbmUgbGV2ZWwgYWJvdmUuIiwidHlwZSI6InRleHQifSx7ImNvbnRlbnQiOiJUaGUgYWN0dWFsIHRhYmxlIGlzIGdvaW5nIHRvIGJlIGFuIHh0YWJsZSAod2hpY2ggSSB3YXMgYmxvd24gYXdheSBieSBhZnRlciB1c2luZyBMYVRlWCBnb2Rhd2Z1bCB0YWJsZXMgZm9yIHllYXJzLCBpdOKAmXMgc29vIGdvb2QpLiIsImNyZWF0ZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsImRvY3VtZW50SWQiOiI3MDVFMzJFMC0zODIzLTQ5NkUtOTE3Mi04NDk3NUJENkM2NTMiLCJsaXN0T3JkZXIiOjAsIm1vZGlmaWVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJwYWdlU3R5bGUiOiJ7fSIsInByb3BlcnRpZXMiOiJ7fSIsInN0eWxlQXR0cmlidXRlcyI6IntcIl9ydW5BdHRyaWJ1dGVzXCI6W3tcImlzQm9sZFwiOmZhbHNlLFwiaXNDb2RlXCI6dHJ1ZSxcImlzSXRhbGljXCI6ZmFsc2UsXCJpc1N0cmlrZXRocm91Z2hcIjpmYWxzZSxcInJhbmdlXCI6WzM1LDZdfV0sXCJkZWNvcmF0aW9uc1wiOnt9LFwiaW5kZW50YXRpb25MZXZlbFwiOjAsXCJsaXN0U3R5bGVcIjpcIm5vbmVcIixcInRleHRTdHlsZVwiOlwiYm9keVwifSIsInN1YkJsb2NrcyI6W10sInRleHQiOiJUaGUgYWN0dWFsIHRhYmxlIGlzIGdvaW5nIHRvIGJlIGFuIHh0YWJsZSAod2hpY2ggSSB3YXMgYmxvd24gYXdheSBieSBhZnRlciB1c2luZyBMYVRlWCBnb2Rhd2Z1bCB0YWJsZXMgZm9yIHllYXJzLCBpdOKAmXMgc29vIGdvb2QpLiIsInR5cGUiOiJ0ZXh0In0seyJjb250ZW50IjoiQWZ0ZXIgZGlnZ2luZyBpbnRvIHRoZSBkb2N1bWVudGF0aW9uIChhZ2Fpbiwgd293LCBpdOKAmXMgc29vIGRldGFpbGVkIGFuZCBhcHByb2FjaGFibGUgYWZ0ZXIgTGFUZVjwn5iCKSwgSSBmb3VuZCBvdXQgdGhhdCBcXGNvbXBsZXRlY29udGVudCBkb2Vzbid0IHByb3ZpZGUgc3VjaCBleHRyZW1lIGxldmVsIG9mIGN1c3RvbWl6YXRpb24uIFRoZXJlZm9yZSBJIG5lZWQgcmVpbXBsZW1lbnQgYXQgbGVhc3Qgc29tZSBwYXJ0cyBvZiB0aGUgZGVmYXVsdCBjb250ZW50IGZvcm1pbmcgbWVjaGFuaXNtLiBBZnRlciBkaWdnaW5nIGluIHRoZSBzb3VyY2UgYSBiaXQsIEkgZm91bmQgc29tZXRoaW5nIHJlbGV2YW50OiBodHRwczpcL1wvc291cmNlLmNvbnRleHRnYXJkZW4ubmV0XC90ZXhcL2NvbnRleHRcL2Jhc2VcL21reGxcL3N0cmMtbHN0Lm1rbHguIiwiY3JlYXRlZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwiZG9jdW1lbnRJZCI6IjcwNUUzMkUwLTM4MjMtNDk2RS05MTcyLTg0OTc1QkQ2QzY1MyIsImxpc3RPcmRlciI6MCwibW9kaWZpZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsInBhZ2VTdHlsZSI6Int9IiwicHJvcGVydGllcyI6Int9Iiwic3R5bGVBdHRyaWJ1dGVzIjoie1wiX3J1bkF0dHJpYnV0ZXNcIjpbe1wiaXNCb2xkXCI6ZmFsc2UsXCJpc0NvZGVcIjpmYWxzZSxcImlzSXRhbGljXCI6ZmFsc2UsXCJpc1N0cmlrZXRocm91Z2hcIjpmYWxzZSxcImxpbmtVUkxcIjpcImh0dHBzOlxcXC9cXFwvc291cmNlLmNvbnRleHRnYXJkZW4ubmV0XFxcL3RleFxcXC9jb250ZXh0XFxcL2Jhc2VcXFwvbWt4bFxcXC9zdHJjLWxzdC5ta2x4XCIsXCJyYW5nZVwiOlszNDIsNjhdfSx7XCJpc0JvbGRcIjpmYWxzZSxcImlzQ29kZVwiOnRydWUsXCJpc0l0YWxpY1wiOmZhbHNlLFwiaXNTdHJpa2V0aHJvdWdoXCI6ZmFsc2UsXCJyYW5nZVwiOlsxMTgsMTZdfV0sXCJkZWNvcmF0aW9uc1wiOnt9LFwiaW5kZW50YXRpb25MZXZlbFwiOjAsXCJsaXN0U3R5bGVcIjpcIm5vbmVcIixcInRleHRTdHlsZVwiOlwiYm9keVwifSIsInN1YkJsb2NrcyI6W10sInRleHQiOiJBZnRlciBkaWdnaW5nIGludG8gdGhlIGRvY3VtZW50YXRpb24gKGFnYWluLCB3b3csIGl04oCZcyBzb28gZGV0YWlsZWQgYW5kIGFwcHJvYWNoYWJsZSBhZnRlciBMYVRlWPCfmIIpLCBJIGZvdW5kIG91dCB0aGF0IFxcY29tcGxldGVjb250ZW50IGRvZXNuJ3QgcHJvdmlkZSBzdWNoIGV4dHJlbWUgbGV2ZWwgb2YgY3VzdG9taXphdGlvbi4gVGhlcmVmb3JlIEkgbmVlZCByZWltcGxlbWVudCBhdCBsZWFzdCBzb21lIHBhcnRzIG9mIHRoZSBkZWZhdWx0IGNvbnRlbnQgZm9ybWluZyBtZWNoYW5pc20uIEFmdGVyIGRpZ2dpbmcgaW4gdGhlIHNvdXJjZSBhIGJpdCwgSSBmb3VuZCBzb21ldGhpbmcgcmVsZXZhbnQ6IGh0dHBzOlwvXC9zb3VyY2UuY29udGV4dGdhcmRlbi5uZXRcL3RleFwvY29udGV4dFwvYmFzZVwvbWt4bFwvc3RyYy1sc3QubWtseC4iLCJ0eXBlIjoidGV4dCJ9LHsiY29udGVudCI6IldoYXQgSSBuZWVkIGlzIHNvbWUgZ3VpZGFuY2Ugb24gd2hhdCB3b3VsZCBiZSB0aGUgYmVzdCBjb3Vyc2Ugb2YgYWN0aW9uLCBpbiBwYXJ0aWN1bGFyLCB3aGljaCBBUEkgSSBzaG91bGQgdXNlIGFuZCByb3VnaGx5IGhvdyBzaG91bGQgSSBhcHByb2FjaCBpdPCfmY8iLCJjcmVhdGVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJkb2N1bWVudElkIjoiNzA1RTMyRTAtMzgyMy00OTZFLTkxNzItODQ5NzVCRDZDNjUzIiwibGlzdE9yZGVyIjowLCJtb2RpZmllZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwicGFnZVN0eWxlIjoie30iLCJwcm9wZXJ0aWVzIjoie30iLCJzdHlsZUF0dHJpYnV0ZXMiOiJ7XCJfcnVuQXR0cmlidXRlc1wiOltdLFwiZGVjb3JhdGlvbnNcIjp7fSxcImluZGVudGF0aW9uTGV2ZWxcIjowLFwibGlzdFN0eWxlXCI6XCJub25lXCIsXCJ0ZXh0U3R5bGVcIjpcImJvZHlcIn0iLCJzdWJCbG9ja3MiOltdLCJ0ZXh0IjoiV2hhdCBJIG5lZWQgaXMgc29tZSBndWlkYW5jZSBvbiB3aGF0IHdvdWxkIGJlIHRoZSBiZXN0IGNvdXJzZSBvZiBhY3Rpb24sIGluIHBhcnRpY3VsYXIsIHdoaWNoIEFQSSBJIHNob3VsZCB1c2UgYW5kIHJvdWdobHkgaG93IHNob3VsZCBJIGFwcHJvYWNoIGl08J+ZjyIsInR5cGUiOiJ0ZXh0In0seyJjb250ZW50IjoiU2hvdWxkIEkgY3JlYXRlIG15IG93biBjb3VudGVycyBmb3IgZWFjaCBpdGVtIGFuZCBzb21laG93IHJlZmVyZW5jZSB0aG9zZSBtYW51YWxseSBpbiB0aGUgVE9DPyIsImNyZWF0ZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsImRvY3VtZW50SWQiOiI3MDVFMzJFMC0zODIzLTQ5NkUtOTE3Mi04NDk3NUJENkM2NTMiLCJsaXN0T3JkZXIiOjAsIm1vZGlmaWVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJwYWdlU3R5bGUiOiJ7fSIsInByb3BlcnRpZXMiOiJ7fSIsInN0eWxlQXR0cmlidXRlcyI6IntcIl9ydW5BdHRyaWJ1dGVzXCI6W10sXCJkZWNvcmF0aW9uc1wiOnt9LFwiaW5kZW50YXRpb25MZXZlbFwiOjAsXCJsaXN0U3R5bGVcIjpcIm5vbmVcIixcInRleHRTdHlsZVwiOlwiYm9keVwifSIsInN1YkJsb2NrcyI6W10sInRleHQiOiJTaG91bGQgSSBjcmVhdGUgbXkgb3duIGNvdW50ZXJzIGZvciBlYWNoIGl0ZW0gYW5kIHNvbWVob3cgcmVmZXJlbmNlIHRob3NlIG1hbnVhbGx5IGluIHRoZSBUT0M/IiwidHlwZSI6InRleHQifSx7ImNvbnRlbnQiOiJIb3cgd291bGQgSSBzYXZlIGFkZGl0aW9uYWwgdGV4dCBtZXRhZGF0YSBmaWVsZCAoYXNpZGUgb2YgdGhlIGl0ZW0gbmFtZSkgdG8gc2hvdyBpdCBpbiB0aGUgVE9DPyIsImNyZWF0ZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsImRvY3VtZW50SWQiOiI3MDVFMzJFMC0zODIzLTQ5NkUtOTE3Mi04NDk3NUJENkM2NTMiLCJsaXN0T3JkZXIiOjAsIm1vZGlmaWVkQnlVc2VySWQiOiI2YWI4MjM4NS0zY2Y2LTlhMzYtNzVkMy05ZGYyZWJjYmYzOTQiLCJwYWdlU3R5bGUiOiJ7fSIsInByb3BlcnRpZXMiOiJ7fSIsInN0eWxlQXR0cmlidXRlcyI6IntcIl9ydW5BdHRyaWJ1dGVzXCI6W10sXCJkZWNvcmF0aW9uc1wiOnt9LFwiaW5kZW50YXRpb25MZXZlbFwiOjAsXCJsaXN0U3R5bGVcIjpcIm5vbmVcIixcInRleHRTdHlsZVwiOlwiYm9keVwifSIsInN1YkJsb2NrcyI6W10sInRleHQiOiJIb3cgd291bGQgSSBzYXZlIGFkZGl0aW9uYWwgdGV4dCBtZXRhZGF0YSBmaWVsZCAoYXNpZGUgb2YgdGhlIGl0ZW0gbmFtZSkgdG8gc2hvdyBpdCBpbiB0aGUgVE9DPyIsInR5cGUiOiJ0ZXh0In0seyJjb250ZW50IjoiVGhlIHNvdXJjZSBjb2RlIG1lbnRpb25zIGEgY29uY2VwdCBvZiBsaXN0IHJlbmRlcmVycy4gVGhpcyBzb3VuZHMgbGlrZSB0aGUgY29ycmVjdCBBUEkgdG8gcGx1ZyBpbiwgYnV0IGl04oCZcyBoYXJkIGZvciBtZSB0byBncmFzcCBob3cgZXhhY3RseSBkb2VzIGl0IHdvcmsuIiwiY3JlYXRlZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwiZG9jdW1lbnRJZCI6IjcwNUUzMkUwLTM4MjMtNDk2RS05MTcyLTg0OTc1QkQ2QzY1MyIsImxpc3RPcmRlciI6MCwibW9kaWZpZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsInBhZ2VTdHlsZSI6Int9IiwicHJvcGVydGllcyI6Int9Iiwic3R5bGVBdHRyaWJ1dGVzIjoie1wiX3J1bkF0dHJpYnV0ZXNcIjpbXSxcImRlY29yYXRpb25zXCI6e30sXCJpbmRlbnRhdGlvbkxldmVsXCI6MCxcImxpc3RTdHlsZVwiOlwibm9uZVwiLFwidGV4dFN0eWxlXCI6XCJib2R5XCJ9Iiwic3ViQmxvY2tzIjpbXSwidGV4dCI6IlRoZSBzb3VyY2UgY29kZSBtZW50aW9ucyBhIGNvbmNlcHQgb2YgbGlzdCByZW5kZXJlcnMuIFRoaXMgc291bmRzIGxpa2UgdGhlIGNvcnJlY3QgQVBJIHRvIHBsdWcgaW4sIGJ1dCBpdOKAmXMgaGFyZCBmb3IgbWUgdG8gZ3Jhc3AgaG93IGV4YWN0bHkgZG9lcyBpdCB3b3JrLiIsInR5cGUiOiJ0ZXh0In0seyJjb250ZW50IjoiIiwiY3JlYXRlZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwiZG9jdW1lbnRJZCI6IjcwNUUzMkUwLTM4MjMtNDk2RS05MTcyLTg0OTc1QkQ2QzY1MyIsImxpc3RPcmRlciI6MCwibW9kaWZpZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsInBhZ2VTdHlsZSI6Int9IiwicHJvcGVydGllcyI6Int9Iiwic3R5bGVBdHRyaWJ1dGVzIjoie1wiX3J1bkF0dHJpYnV0ZXNcIjpbXSxcImRlY29yYXRpb25zXCI6e30sXCJpbmRlbnRhdGlvbkxldmVsXCI6MCxcImxpc3RTdHlsZVwiOlwibm9uZVwiLFwidGV4dFN0eWxlXCI6XCJib2R5XCJ9Iiwic3ViQmxvY2tzIjpbXSwidGV4dCI6IiIsInR5cGUiOiJ0ZXh0In0seyJjb250ZW50IjoiQW55IGhlbHAgd2lsbCBiZSBhcHByZWNpYXRlZCEgVGhhbmsgeW91IGluIGFkdmFuY2UhIiwiY3JlYXRlZEJ5VXNlcklkIjoiNmFiODIzODUtM2NmNi05YTM2LTc1ZDMtOWRmMmViY2JmMzk0IiwiZG9jdW1lbnRJZCI6IjcwNUUzMkUwLTM4MjMtNDk2RS05MTcyLTg0OTc1QkQ2QzY1MyIsImxpc3RPcmRlciI6MCwibW9kaWZpZWRCeVVzZXJJZCI6IjZhYjgyMzg1LTNjZjYtOWEzNi03NWQzLTlkZjJlYmNiZjM5NCIsInBhZ2VTdHlsZSI6Int9IiwicHJvcGVydGllcyI6Int9Iiwic3R5bGVBdHRyaWJ1dGVzIjoie1wiX3J1bkF0dHJpYnV0ZXNcIjpbXSxcImRlY29yYXRpb25zXCI6e30sXCJpbmRlbnRhdGlvbkxldmVsXCI6MCxcImxpc3RTdHlsZVwiOlwibm9uZVwiLFwidGV4dFN0eWxlXCI6XCJib2R5XCJ9Iiwic3ViQmxvY2tzIjpbXSwidGV4dCI6IkFueSBoZWxwIHdpbGwgYmUgYXBwcmVjaWF0ZWQhIFRoYW5rIHlvdSBpbiBhZHZhbmNlISIsInR5cGUiOiJ0ZXh0In1d" class=""><p class="p1"><span class="s1">Hi! I’m new to ConTeXt.</span></p><p class="p1"><span class="s1">I need to make a custom table of contents that looks like this:</span></p><p class="p1"><a href="https://imgur.com/a/Ca3By6X" class="">https://imgur.com/a/Ca3By6X</a></p><p class="p1">Each row in the table corresponds to an item that has following data to print in the table of contents: page, total number of pages which the item spans, name of the item and a custom text metadata field which is defined by the item. Each item will have its own regular table of content and own structure. So we can think of this TOC as kind of a mega table of content one level above.</p><div class="">It needs to be fully automatic.</div><p class="p1"><span class="s1">The actual table is going to be an</span><span class="s2"> </span><span class="s3">xtabl</span><span class="s4">e</span><span class="s1"> (which I was blown away by after using LaTeX godawful tables for years, it’s soo good).</span></p><p class="p1"><span class="s1">After digging into the documentation (again, wow, it’s soo detailed and approachable after LaTeX😂), I found out that</span><span class="s2"> </span><span class="s3">\completeconten</span><span class="s4">t</span><span class="s1"> doesn't provide such extreme level of customization. Therefore I need reimplement at least some parts of the default content forming mechanism. After digging in the source a bit, I found something relevant: <a href="https://source.contextgarden.net/tex/context/base/mkxl/strc-lst.mklx" class=""><span class="s5">https://source.contextgarden.net/tex/context/base/mkxl/strc-lst.mklx</span></a>.</span></p><div class=""><br class=""></div><p class="p1"><span class="s1">What I need is some guidance on what would be the best course of action, in particular, which API should I use and roughly how should I approach it🙏</span></p><p class="p1"><span class="s1">Should I create my own counters for each item and somehow reference those manually in the TOC?</span></p><p class="p1"><span class="s1">How would I save additional text metadata field and the item name to show it in the TOC?</span></p><p class="p1"><span class="s1">The source code mentions a concept of list renderers. This sounds like the correct API to plug in, but it’s hard for me to grasp how exactly it works.</span></p><p class="p2"><span class="s6"></span><br class=""></p><p class="p1"><span class="s1">Any help will be appreciated! Thank you in advance!</span></p><div class="">Stay safe,</div><div class="">Andrei Borisov.</div></div></div></body></html>