{
  "format": "refined.math.wasm-adapter",
  "schemaVersion": 1,
  "name": {
    "en": "Editable Rust QAP",
    "sk": "Upraviteľný Rust QAP"
  },
  "description": {
    "en": "Assign facilities to locations using your own swap deltas, local search and recombination.",
    "sk": "Priraďte objekty k miestam pomocou vlastných prepočtov výmen, lokálneho vyhľadávania a kombinovania riešení."
  },
  "executable": {
    "moduleBase64": "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DgMBAgMAC0EBIQQgASgCACIFQZi9wIAAQQcgASgCBCIGKAIMIgcRgICAgACAgICAAA0EIAIgACgCACIBNgIcIAJBg4CAgACtQiCGIAJBHGqthCIINwMIIAUgBkGskcCAACACQQhqELmAgIAADQNBACEEIANBA3QiA0F4aiIARQ0EIAEgA2ohCSAAQQN2IQogAUEIaiIAQQBBCCADQQhGG2ohAwNAIAMhASACIAA2AhwgBUGfvcCAAEECIAcRgICAgACAgICAAA0EIAIgCDcDCCAFIAZBrJHAgAAgAkEIahC5gICAAA0EQQAhBCABQQBBCCABIAlGG2ohAyABIQAgCkF/aiIKDQAMBQsLQfm8wIAAQQ5BiL3AgAAQl4CAgAAACyACQYGAgIAArUIghiAANQIAhDcDCCABKAIAIAEoAgRBrJHAgAAgAkEIahC5gICAACEEDAILIAJBgYCAgACtQiCGIgggACgCACIArYQ3AwggAiAIIABBCGqthDcDECABKAIAIAEoAgRByJDAgAAgAkEIahC5gICAACEEDAELQQEhBAsgAkEgaiSAgICAACAEC3oBAX8jgICAgABBIGsiAiSAgICAACACQcSSwIAANgIMIAIgATYCCCACIAA2AgQgAkGEgICAAK1CIIYgAkEIaq2ENwMYIAJBhYCAgACtQiCGIAJBBGqthDcDEEGwg8CAACACQRBqEISAgIAAIQEgAkEgaiSAgICAACABCx8AIAAoAgAgASAAKAIEQQxqKAIAEYGAgIAAgICAgAALTwEBfyOAgICAAEEQayICJICAgIAAIAFBAUEBQQAgAkEGaiAAKAIAIAJBBmoQo4GAgAAiAGpBCiAAaxCcgYCAACEAIAJBEGokgICAgAAgAAtWAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNgIEIAIgADYCACACQYGAgIAArUIghiACrYQ3AwhBlpHAgAAgAkEIahCEgICAACEBIAJBEGokgICAgAAgAQvKAwEJfyOAgICAAEEgayIFJICAgIAAIAEgASgCFCIGQQFqIgc2AhQCQAJAIAcgASgCECIITw0AIAcgCGshCSABKAIMIQpBACEGAkADQAJAIAogB2otAAAiC0FQaiIMQf8BcSINQQpJDQACQCAGRQ0AIAYgBGohBwJAIAtBIHJB5QBGDQAgACABIAIgAyAHEIyA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ACABIABBAXI2AgQgASAAaiAANgIADwsCQAJAQQAoAoT3wYAAIgNBASAAQQN2dCICcQ0AQQAgAyACcjYChPfBgAAgAEH4AXFB/PTBgABqIgAhAwwBCyAAQfgBcSIAQfz0wYAAaiEDIABBhPXBgABqKAIAIQALIAMgATYCCCAAIAE2AgwgASADNgIMIAEgADYCCA8LAkACQAJAIAIoAgAiBCgCBEF4cSAARw0AIAQhAwwBCyAAQQBBGSADQQF2ayADQR9GG3QhAgNAIAQgAkEddkEEcWoiBSgCECIDRQ0CIAJBAXQhAiADIQQgAygCBEF4cSAARw0ACwsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIDAELIAVBEGogATYCACABIAQ2AhggASABNgIMIAEgATYCCAtBACEBQQBBACgCrPfBgABBf2oiADYCrPfBgAAgAA0BAkBBACgC9PTBgAAiAEUNAEEAIQEDQCABQQFqIQEgACgCCCIADQALC0EAIAFB/x8gAUH/H0sbNgKs98GAAA8LAkBBACgC9PTBgAAiAUUNAEEAIQIDQCACQQFqIQIgASgCCCIBDQALC0EAIAJB/x8gAkH/H0sbNgKs98GAACAFIARNDQBBAEF/NgKk98GAAAsLFQAgACABQQF0QQFyIAIQ/ICAgAAACzoBAX8jgICAgABBEGsiAySAgICAACADIAAQmYCAgAAgAyABIAIQmoCAgAAhACADQRBqJICAgIAAIAALqQEBAX9BByECAkACQAJAAkACQAJAIAEtAAAOBgUAAQIDBAULIAAgAS0AAToAASAAQQA6AAAPCwJAAkACQCABKAIIDgMAAQIACyAAIAEpAxA3AwggAEEBOgAADwsgACABKQMQNwMIIABBAjoAAA8LIAAgASsDEDkDCCAAQQM6AAAPCyAAIAEpAwg3AgQgAEEFOgAADwsgAEEKOgAADwtBCyECCyAAIAI6AAALjAEBAX8jgICAgABBMGsiAySAgICAACADIAI2AgwgAyABNgIIIANBEGpBCGogAEEIaikDADcDACADIAApAwA3AxAgA0GEgICAAK1CIIYgA0EIaq2ENwMoIANBhoCAgACtQiCGIANBEGqthDcDIEHug8CAACADQSBqEISAgIAAIQAgA0EwaiSAgICAACAAC90tBAh/An4EfwF+I4CAgIAAQfACayICJICAgIAAIAEoAgwhAwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgQgASgCECIFTw0AIAFBDGohBgNAAkACQCADIARqLQAAIgdBd2oOJQEBDg4BDg4ODg4ODg4ODg4ODg4ODg4OAQ4LDg4ODg4ODg4ODgoACyAHQaV/ag4hCw0NDQ0NDQ0NDQ0FDQ0NDQ0NDQMNDQ0NDQQNDQ0NDQ0RDQsgASAEQQFqIgQ2AhQgBSAERw0ACyAFIQQLIAJBBTYCmAIgAkEIaiADIAUgBEEBaiIEIAUgBCAFSRsQjoCAgAAgAkGYAmogAigCCCACKAIMEI+AgIAAIQQgAEEGOgAAIAAgBDYCBAwfCyABIARBAWoiBzYCFCAHIAVPDQIgASAEQQJqIgg2AhQgAyAHai0AAEH1AEcNHCAIIAcgBSAHIAVLGyIHRg0CIAEgBEEDaiIGNgIUAkAgAyAIai0AAEHsAEYNACAGIQgMHQsgBiAHRg0CIAEgBEEEaiIINgIUIAMgBmotAABB7ABHDRxBACEHDAsLIAEgBEEBaiIHNgIUIAcgBU8NAiABIARBAmoiCDYCFCADIAdqLQAAQfIARw0ZIAggByAFIAcgBUsbIgdGDQIgASAEQQNqIgY2AhQCQCADIAhqLQAAQfUARg0AIAYhCAwaCyAGIAdGDQIgASAEQQRqIgg2AhQgAyAGai0AAEHlAEcNGUEBIQZBASEHDBYLIAEgBEEBaiIHNgIUIAcgBU8NAiABIARBAmoiCDYCFCADIAdqLQAAQeEARw0WIAggByAFIAcgBUsbIgdGDQIgASAEQQNqIgY2AhQCQCADIAhqLQAAQewARg0AIAYhCAwXCyAGIAdGDQIgASAEQQRqIgk2AhQCQCADIAZqLQAAQfMARg0AIAkhCAwXCyAJIAdGDQIgASAEQQVqIgg2AhQgAyAJai0AAEHlAEcNFkEBIQdBACEGDBULIAJBBTYCmAIgAkEQaiADIAUgBxCOgICAACACQZgCaiACKAIQIAIoAhQQj4CAgAAhBAwaCyACQQU2ApgCIAJBIGogAyAFIAcQjoCAgAAgAkGYAmogAigCICACKAIkEI+AgIAAIQQMFwsgAkEFNgKYAiACQTBqIAMgBSAHEI6AgIAAIAJBmAJqIAIoAjAgAigCNBCPgICAACEEDBQLIAEgBEEBajYCFEEAIQMgAkHYAmogAUEAEJGAgIAAIAIpA9gCIgpCA1ENDkECIQcgAikD4AIhCwJAAkACQCAKpw4DAAIBAAtBACEHAkAgC0L///////////8Ag0L/////////9/8AVQ0AIAJBADoAmAIgAkGYAmoQnICAgABBAiEHC0ECIQNBACEEDAYLIAtCP4inIQMLQQAhBAwECyABQQA2AgggASAEQQFqNgIUIAJBmAJqIAYgARCdgICAACACKAKcAiEBIAIoApgCIgNBAkYNDCACKAKgAiEEAkACQCADQQFxRQ0AAkAgBA0AQQEhAwwCCyAEEJ6AgIAAIgMNAUEBIAQQn4CAgAAACwJAIAQNAEEBIQMMAQsgBBCegICAACIDRQ0CCwJAIARFDQAgAyABIAT8CgAAC0EDIQcgBCEIDAULIAEgAS0AGEF/aiIHOgAYIAdB/wFxRQ0GIAEgBEEBaiIENgIUQQAhCSACQQA2AuACIAJCgICAgIABNwLYAiAEIAVPDQggAkGYAmpBCGohDCACQZgCakEBciENQQghDkEBIQ8DQCAGKAIAIQMCQANAIAMgBGotAAAiCEF3aiIHQRdLDQFBASAHdEGTgIAEcUUNASABIARBAWoiBDYCFCAFIARHDQALIAUhBAwKCwJAAkACQCAIQd0ARg0AIA9BAXENAgJAIAhBLEYNACACQQc2ApgCIAJBgAFqIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAKAASACKAKEARCPgICAACEIDA4LIAEgBEEBaiIENgIUAkAgBCAFTw0AA0AgAyAEai0AACIIQXdqIgdBF0sNA0EBIAd0QZOAgARxRQ0DIAEgBEEBaiIENgIUIAUgBEcNAAsgBSEECyACQQU2ApgCIAJB8ABqIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAJwIAIoAnQQj4CAgAAhCAwNCyACKQLcAiELIAIoAtgCIQhBBCEHQQAhCQwNCyAIQd0ARw0AIAJBFTYCmAIgAkH4AGogAyAFIARBAWoiBCAFIAQgBUkbEI6AgIAAIAJBmAJqIAIoAnggAigCfBCPgICAACEIDAsLIAJBmAJqIAEQm4CAgAACQCACLQCYAiIDQQZHDQAgAigCnAIhCAwLCyACQdQCakECaiIFIA1BAmotAAA6AAAgAkHAAmpBCGoiByAMQQhqKQMANwMAIAIgDS8AADsB1AIgAiAMKQMANwPAAiACKAKcAiEIAkAgCSACKALYAkcNACACQdgCahCggICAACACKALcAiEOCyAOIAlBGGxqIgQgAzoAACAEIAg2AAQgBEEDaiAFLQAAOgAAIAQgAi8B1AI7AAEgBCACKQPAAjcACCAEQRBqIAcpAwA3AAAgAiAJQQFqIgk2AuACQQAhDyABKAIUIgQgASgCECIFTw0IDAALC0EBIAQQn4CAgAAACwJAIAdBUGpB/wFxQQpJDQAgAkEKNgKYAiACIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAIAIAIoAgQQj4CAgAAgARCVgICAACEEIABBBjoAACAAIAQ2AgQMFQsgAkHYAmogAUEBEJGAgIAAAkAgAikD2AIiCkIDUg0AIAAgAigC4AI2AgQgAEEGOgAADBULQQAhBEECIQcgAikD4AIhC0EAIQMCQAJAIAqnDgMAAgEAC0EAIQcCQCALQv///////////wCDQv/////////3/wBVDQAgAkEAOgCYAiACQZgCahCcgICAAEECIQcLQQIhAwwBCyALQj+IpyEDCwsLDAoLIAEgAS0AGEF/aiIHOgAYAkACQAJAIAdB/wFxRQ0AIAEgBEEBajYCFCACQQE6AMgBIAIgATYCxAEgAkGYAmogAkHEAWoQoYCAgAACQAJAAkAgAi0AmAJBAUcNACACKAKcAiEEDAELIAItAJkCQQFHDQEgAigCxAEiA0EANgIIIAMgAygCFEEBajYCFCACQZgCaiADQQxqIAMQnYCAgAAgAigCnAIhBwJAIAIoApgCIgRBAkcNACAHIQQMAQsgAigCoAIhBQJAAkACQCAEQQFxRQ0AIAVFDQEgBRCegICAACIEDQJBASAFEJ+AgIAAAAsgBUUNACAFEJ6AgIAAIgQNAUEBIAUQn4CAgAAAC0EBIQQgBUUNBEEBIAcgBfwKAAAMBAsCQCAFRQ0AIAQgByAF/AoAAAsgBUGAgICAeEYNACAFQYGAgIB4Rw0DC0EGIQkgAkEGOgCoASACIAQ2AqwBDAMLIAJBADYCtAEgAkEANgKsAUEFIQkgAkEFOgCoAQwCCyACQRg2ApgCIAJBiAFqIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAKIASACKAKMARCPgICAACEEIABBBjoAACAAIAQ2AgQMEgsgAkEANgLUASACQQA2AswBIAIgBTYC4AIgAiAENgLcAiACIAU2AtgCAkACQAJAIAMQlICAgAAiB0UNACACQQY6AKgBIAIgBzYCrAEMAQsgAkGoAWogAxCbgICAACACLQCoAUEGRw0BCwJAIAVFDQAgBCAFQQEQooCAgAALAkACQCACKALMASIEDQBBACEEQQAhAwwBCyACIAIoAtABIgM2ArQCIAIgBDYCsAIgAkEANgKsAiACIAM2AqQCIAIgBDYCoAIgAkEANgKcAkEBIQQgAigC1AEhAwsgAiADNgK4AiACIAQ2AqgCIAIgBDYCmAICQANAIAJB2AJqIAJBmAJqEKOAgIAAIAIoAtgCRQ0BIAJB2AJqEKSAgIAADAALC0EGIQkMAQsgAkGYAmogAkHMAWogAkHYAmogAkGoAWoQpYCAgAACQCACLQCYAkEGRg0AIAJBmAJqEJyAgIAACyACQdgBakEEaiEHIAJBmAJqQQRqIQgDQCACQZgCaiACQcQBahChgICAAAJAAkACQCACLQCYAkEBRw0AIAIoApwCIQUMAQsCQAJAIAItAJkCQQFHDQAgAigCxAEiBEEANgIIIAQgBCgCFEEBajYCFCACQZgCaiAEQQxqIAQQnYCAgAAgAigCnAIhBSACKAKYAiIGQQJGDQIgAigCoAIhAwJAAkACQCAGQQFxRQ0AIANFDQEgAxCegICAACIGDQJBASADEJ+AgIAAAAsgA0UNACADEJ6AgIAAIgYNAUEBIAMQn4CAgAAAC0EBIQYgA0UNAkEBIAUgA/wKAAAMAgsCQCADRQ0AIAYgBSAD/AoAAAsCQCADQYCAgIB4ag4CAAACCyAGIQUMAgsgAkGjAmogAkHMAWpBCGooAgA2AAAgAiACKQLMATcAmwIgAkGoAWpBCGogAkGfAmopAAA3AABBBSEJIAJBBToAqAEgAiACKQCYAjcAqQEMBAsCQCAEEJSAgIAAIgUNACACQZgCaiAEEJuAgIAAIAItAJgCQQZHDQIgAigCnAIhBQsgA0UNACAGIANBARCigICAAAsgAiAFNgKsASACQQY6AKgBAkACQCACKALMASIEDQBBACEEQQAhAwwBCyACIAIoAtABIgM2ArQCIAIgBDYCsAIgAkEANgKsAiACIAM2AqQCIAIgBDYCoAIgAkEANgKcAkEBIQQgAigC1AEhAwsgAiADNgK4AiACIAQ2AqgCIAIgBDYCmAICQANAIAJB2AJqIAJBmAJqEKOAgIAAIAIoAtgCRQ0BIAJB2AJqEKSAgIAADAALC0EGIQkMAgsgAkHYAmpBEGogAkGYAmpBEGoiBCkDACILNwMAIAJB2AJqQQhqIAJBmAJqQQhqIgUpAwAiCjcDACACIAIpA5gCIhA3A9gCIAhBEGogCzcCACAIQQhqIAo3AgAgCCAQNwIAIAJB2AFqQQhqIAUpAgA3AwAgAkHYAWpBEGogBCkCADcDACACQdgBakEYaiACQZgCakEYaigCADYCACACIAIpApgCNwPYASACIAM2AvwBIAIgBjYC+AEgAiADNgL0ASACQYACakEQaiAHQRBqKQIANwMAIAJBgAJqQQhqIAdBCGopAgA3AwAgAiAHKQIANwOAAiACQZgCaiACQcwBaiACQfQBaiACQYACahClgICAACACLQCYAkEGRg0AIAJBmAJqEJyAgIAADAALCyABIAEtABhBAWo6ABggASgCDCEDAkACQAJAAkACQAJAAkAgASgCFCIEIAEoAhAiB08NAANAAkAgAyAEai0AACIFQXdqDiQAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAUDCyABIARBAWoiBDYCFCAHIARHDQALIAchBAsgAkEDNgLYAiACQZgBaiADIAcgBEEBaiIEIAcgBCAHSRsQjoCAgAAgAkHYAmogAigCmAEgAigCnAEQj4CAgAAhCAwDCyAFQf0ARg0DCyACQRY2AtgCIAJBkAFqIAMgByAEQQFqIgQgByAEIAdJGxCOgICAACACQdgCaiACKAKQASACKAKUARCPgICAACEIDAELIAJBFTYC2AIgAkGgAWogAyAHIARBAWoiBCAHIAQgB0kbEI6AgIAAIAJB2AJqIAIoAqABIAIoAqQBEI+AgIAAIQgLIAJBmAJqQRBqIAJBqAFqQRBqKQMANwMAIAJBmAJqQQhqIAJBqAFqQQhqKQMANwMAIAIgAikDqAEiCzcDmAIgAiAINgKwAkEGIQcgC6dB/wFxQQZGDQEgAkGYAmoQnICAgAAMCgsgASAEQQFqNgIUIAJBmAJqQQhqIAJBqAFqQQhqKQMANwMAIAJBmAJqQRBqIAJBqAFqQRBqKQMANwMAIAIgAikDqAEiCzcDmAJBBiEHIAunQf8BcUEGRw0IIAIoApwCIQgMCQsgAigCnAIhCCACQbACahCmgICAAAwICyACQRg2ApgCIAJBwABqIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAJAIAIoAkQQj4CAgAAhBCAAQQY6AAAgACAENgIEDA8LIAYoAgAhAwsgAkECNgKYAiACQegAaiADIAUgBEEBaiIEIAUgBCAFSRsQjoCAgAAgAkGYAmogAigCaCACKAJsEI+AgIAAIQgLIAJB2AJqEKeAgIAAAkAgAigC2AIiBEUNACACKALcAiAEQRhsQQgQooCAgAALIAEoAgwhAyABKAIUIQQgASgCECEFQQYhB0EBIQkLIAEgAS0AGEEBajoAGAJAAkACQAJAAkACQAJAAkAgBCAFTw0AA0ACQCADIARqLQAAIgZBd2oOJAAABAQABAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBQMLIAEgBEEBaiIENgIUIAUgBEcNAAsgBSEECyACQQI2ApgCIAJB0ABqIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAJQIAIoAlQQj4CAgAAhBQwGCyAGQd0ARg0CCyACQRY2ApgCIAJByABqIAMgBSAEQQFqIgQgBSAEIAVJGxCOgICAACACQZgCaiACKAJIIAIoAkwQj4CAgAAhBQwECyABIARBAWoiBDYCFCAEIAVPDQIDQCADIARqLQAAIg9Bd2oiBkEXSw0CQQEgBnRBk4CABHFFDQIgASAEQQFqIgQ2AhQgBSAERw0ACyAFIQQMAgsgASAEQQFqNgIUAkAgCUUNAEEGIQcMBwsgC0IgiKchBCALpyEDDAYLIA9B3QBHDQAgAkEVNgKYAiACQeAAaiADIAUgBEEBaiIEIAUgBCAFSRsQjoCAgAAgAkGYAmogAigCYCACKAJkEI+AgIAAIQUMAQsgAkEWNgKYAiACQdgAaiADIAUgBEEBaiIEIAUgBCAFSRsQjoCAgAAgAkGYAmogAigCWCACKAJcEI+AgIAAIQULIAIgBTYCsAIgAiALNwOgAiACIAg2ApwCIAIgBzoAmAICQCAJDQAgAkGYAmoQnICAgABBBiEHIAUhCAwECyACQbACahCmgICAAEEGIQcMAwsgAEEGOgAAIAAgATYCBAwKCyAAIAIoAuACNgIEIABBBjoAAAwJCyACKQO4ASELIAIoArQBIQQgAigCsAEhAyACKAKsASEIIAIvAaoBIQUgAi0AqQEhBiAJIQcLIAdBBkcNACAIIAEQlYCAgAAhBCAAQQY6AAAgACAENgIEDAcLIAAgCzcDECAAIAQ2AgwgACADNgIIIAAgCDYCBCAAIAU7AQIgACAGOgABIAAgBzoAAAwGCyACQQk2ApgCIAJBOGogAyAFIAgQjoCAgAAgAkGYAmogAigCOCACKAI8EI+AgIAAIQQLIABBBjoAACAAIAQ2AgQMBAsgAkEJNgKYAiACQShqIAMgBSAIEI6AgIAAIAJBmAJqIAIoAiggAigCLBCPgICAACEECyAAQQY6AAAgACAENgIEDAILIAJBCTYCmAIgAkEYaiADIAUgCBCOgICAACACQZgCaiACKAIYIAIoAhwQj4CAgAAhBAsgAEEGOgAAIAAgBDYCBAsgAkHwAmokgICAgAALzQMBBH8jgICAgABBMGsiASSAgICAAAJAAkACQAJAAkACQAJAAkAgAC0AAA4FAwMDAQIACwJAAkAgACgCBCICDQBBACEAQQAhAgwBCyABIAI2AhggAUEANgIUIAEgAjYCCCABQQA2AgQgASAAKAIIIgI2AhwgASACNgIMIAAoAgwhAkEBIQALIAEgAjYCICABIAA2AhAgASAANgIAA0AgAUEkaiABEKOAgIAAIAEoAiRFDQMgAUEkahCkgICAAAwACwsgACgCBCICRQ0BIAAoAggiA0F8aigCACIAQXhxIgRBBEEIIABBA3EiABsgAmpJDQICQCAARQ0AIAQgAkEnaksNBAsgAxCWgICAAAwBCyAAQQRqEKeAgIAAIAAoAgQiAkUNACAAKAIIIgNBfGooAgAiAEF4cSIEQQRBCCAAQQNxIgAbIAJBGGwiAmpJDQMCQCAARQ0AIAQgAkEnaksNBQsgAxCWgICAAAsgAUEwaiSAgICAAA8LQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAAC+INAgl/AX4jgICAgABBMGsiAySAgICAAAJAAkADQAJAAkACQAJAAkAgASgCCCIEIAEoAgQiBUYNAAJAAkACQCAEIAVPDQACQCABKAIAIgYgBGotAAAiB0EiRw0AIAQhBwwDCyAHQdwARw0BIAQhBwwCCyAEIAVB1NvAgAAQr4CAgAAACwJAIAdBIE8NACAEIQcMAQsgBiAEQQFqIghqIQlBACAFIAhrIgpB+P///wdxayEHA0AgCSELAkAgBw0AIAEgCkF4cSAIajYCCCABEMmBgIAAIAEoAgQhBSABKAIIIQcMAgsgB0EIaiEHIAtBCGohCSALKQAAIgxCf4UgDEKixIiRosSIkSKFQv/9+/fv37//fnwgDELgv//+/fv37198hCAMQty48eLFi5eu3ACFQv/9+/fv37//fnyEg0KAgYKEiJCgwIB/gyIMUA0ACyABIAsgBmsgDHqnQQN2aiIHNgIICyAHIAVGDQAgByAFTw0BAkAgASgCACIIIAdqLQAAIgtB3ABGDQACQCALQSJGDQAgASAHQQFqNgIIIANBEDYCJCAAIAEgA0EkahDEgYCAAAwJCwJAIAIoAggiC0UNACAHIARJDQQCQCAHIARrIgkgAigCACALa00NACACIAsgCRDAgYCAACACKAIIIQsLIAIoAgQhBgJAIAlFDQAgBiALaiAIIARqIAn8CgAACyABIAdBAWoiBDYCCCACIAsgCWoiBzYCCCADQRhqIAYgBxCygYCAAAJAIAMoAhhFDQAgAygCHCEJIANBEGogCCAFIAQQjoCAgAAgAygCECEEIAMoAhQhCyADQQ82AiQgA0EkaiAEQQAgCyAJIAdraiIHIAcgC0sbEI+AgIAAIQcgAEECNgIAIAAgBzYCBAwKCyAAIAMpAhw3AgQgAEEBNgIADAkLIAcgBEkNBCABIAdBAWoiCzYCCCADQRhqIAggBGogByAEayIHELKBgIAAAkAgAygCGEUNACADKAIcIQkgA0EIaiAIIAUgCxCOgICAACADKAIIIQQgAygCDCELIANBDzYCJCADQSRqIARBACALIAkgB2tqIgcgByALSxsQj4CAgAAhByAAQQI2AgAgACAHNgIEDAkLIAAgAykCHDcCBCAAQQA2AgAMCAsCQAJAIAcgBEkNAAJAIAcgBGsiCyACKAIAIAIoAggiBmtNDQAgAiAGIAsQwIGAgAAgAigCCCEGCyACKAIEIQoCQCALRQ0AIAogBmogCCAEaiAL/AoAAAsgASAHQQFqIgk2AgggAiAGIAtqIgs2AggCQAJAIAkgBU8NACABIAdBAmo2AgggCCAJai0AACEHDAELIANBBDYCJCADQRhqIAEgA0EkahDFgYCAACADLQAYDQIgAy0AGSEHCwJAAkACQAJAAkACQAJAAkACQAJAIAdB/wFxQV5qDlQCAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABQAAAAYAAAAAAAAABwAAAAgACQEACyADQQw2AiQgASADQSRqEMaBgIAAIQcMEQsgASACEMeBgIAAIgdFDQ8MEAsCQCALIAIoAgBHDQAgAhCZgYCAACACKAIEIQoLIAIgC0EBajYCCCAKIAtqQSI6AAAMDQsCQCALIAIoAgBHDQAgAhCZgYCAACACKAIEIQoLIAIgC0EBajYCCCAKIAtqQdwAOgAADAwLAkAgCyACKAIARw0AIAIQmYGAgAAgAigCBCEKCyACIAtBAWo2AgggCiALakEvOgAADAsLAkAgCyACKAIARw0AIAIQmYGAgAAgAigCBCEKCyACIAtBAWo2AgggCiALakEIOgAADAoLAkAgCyACKAIARw0AIAIQmYGAgAAgAigCBCEKCyACIAtBAWo2AgggCiALakEMOgAADAkLAkAgCyACKAIARw0AIAIQmYGAgAAgAigCBCEKCyACIAtBAWo2AgggCiALakEKOgAADAgLAkAgCyACKAIARw0AIAIQmYGAgAAgAigCBCEKCyACIAtBAWo2AgggCiALakENOgAADAcLAkAgCyACKAIARw0AIAIQmYGAgAAgAigCBCEKCyACIAtBAWo2AgggCiALakEJOgAADAYLIAQgByAFQZTcwIAAEPuAgIAAAAsgAygCHCEHDAYLIANBBDYCJCAAIAEgA0EkahDEgYCAAAwGCyAHIAVB5NvAgAAQr4CAgAAACyAEIAcgBUH028CAABD7gICAAAALIAQgByAFQYTcwIAAEPuAgIAAAAtBACEHQQBFDQALCyAAQQI2AgAgACAHNgIECyADQTBqJICAgIAAC/AmAgh/AX4CQAJAAkACQAJAAkACQAJAAkACQCAAQfUBSQ0AAkAgAEHM/3tNDQBBAA8LIABBC2oiAUF4cSECQQAoAoj3wYAAIgNFDQRBHyEEAkAgAEH0//8HSw0AIAJBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBAtBACACayEBAkAgBEECdEHs88GAAGooAgAiBQ0AQQAhBkEAIQAMAgtBACEGIAJBAEEZIARBAXZrIARBH0YbdCEHQQAhAANAAkAgBSIFKAIEQXhxIgggAkkNACAIIAJrIgggAU8NACAFIQYgCCEBIAgNAEEAIQEgBSEAIAUhBgwECyAFKAIUIgggACAIIAUgB0EddkEEcWooAhAiBUcbIAAgCBshACAHQQF0IQcgBUUNAgwACwsCQAJAAkACQAJAAkBBACgChPfBgAAiBUEQIABBC2pB+ANxIABBC0kbIgJBA3YiAXYiAEEDcUUNACAAQX9zQQFxIAFqIgdBA3QiAEH89MGAAGoiASAAQYT1wYAAaigCACICKAIIIgZGDQEgBiABNgIMIAEgBjYCCAwCCyACQQAoAoz3wYAATQ0IAkAgAA0AQQAoAoj3wYAAIgBFDQkgAGhBAnRB7PPBgABqKAIAIgUoAgRBeHEgAmshASAFIQYCQANAAkAgBigCECIADQAgBigCFCIARQ0CCyAAKAIEQXhxIAJrIgYgASAGIAFJIgYbIQEgACAFIAYbIQUgACEGDAALCyAFKAIYIQQCQAJAAkAgBSgCDCIAIAVHDQAgBUEUQRAgBSgCFCIAG2ooAgAiBg0BQQAhAAwCCyAFKAIIIgYgADYCDCAAIAY2AggMAQsgBUEUaiAFQRBqIAAbIQcDQCAHIQggBiIAQRRqIABBEGogACgCFCIGGyEHIABBFEEQIAYbaigCACIGDQALIAhBADYCAAsgBEUNBQJAAkAgBSAFKAIcQQJ0QezzwYAAaiIGKAIARg0AAkAgBCgCECAFRg0AIAQgADYCFCAADQIMCAsgBCAANgIQIAANAQwHCyAGIAA2AgAgAEUNBQsgACAENgIYAkAgBSgCECIGRQ0AIAAgBjYCECAGIAA2AhgLIAUoAhQiBkUNBSAAIAY2AhQgBiAANgIYDAULAkACQCAAIAF0QQIgAXQiAEEAIABrcnFoIghBA3QiAUH89MGAAGoiBiABQYT1wYAAaigCACIAKAIIIgdGDQAgByAGNgIMIAYgBzYCCAwBC0EAIAVBfiAId3E2AoT3wYAACyAAIAJBA3I2AgQgACACaiIFIAEgAmsiBkEBcjYCBCAAIAFqIAY2AgBBACgCjPfBgAAiAUUNAkEAKAKU98GAACECAkACQEEAKAKE98GAACIHQQEgAUEDdnQiCHENAEEAIAcgCHI2AoT3wYAAIAFBeHFB/PTBgABqIgEhBwwBCyABQXhxIgFB/PTBgABqIQcgAUGE9cGAAGooAgAhAQsgByACNgIIIAEgAjYCDCACIAc2AgwgAiABNgIIDAILQQAgBUF+IAd3cTYChPfBgAALIAIgAEEDcjYCBCACIABqIgAgACgCBEEBcjYCBCACQQhqDwtBACAFNgKU98GAAEEAIAY2Aoz3wYAAIABBCGoPC0EAQQAoAoj3wYAAQX4gBSgCHHdxNgKI98GAAAsCQAJAAkAgAUEQSQ0AIAUgAkEDcjYCBCAFIAJqIgYgAUEBcjYCBCAGIAFqIAE2AgBBACgCjPfBgAAiB0UNAUEAKAKU98GAACEAAkACQEEAKAKE98GAACIIQQEgB0EDdnQiBHENAEEAIAggBHI2AoT3wYAAIAdBeHFB/PTBgABqIgchCAwBCyAHQXhxIgdB/PTBgABqIQggB0GE9cGAAGooAgAhBwsgCCAANgIIIAcgADYCDCAAIAg2AgwgACAHNgIIDAELIAUgASACaiIAQQNyNgIEIAUgAGoiACAAKAIEQQFyNgIEDAELQQAgBjYClPfBgABBACABNgKM98GAAAsgBUEIaiIARQ0DDAQLAkAgACAGcg0AQQAhBkECIAR0IgBBACAAa3IgA3EiAEUNAyAAaEECdEHs88GAAGooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIgUgAmsiByABIAcgAUkiCBshBCAFIAJJIQcgACAGIAgbIQgCQCAAKAIQIgUNACAAKAIUIQULIAEgBCAHGyEBIAYgCCAHGyEGIAUhACAFDQALCyAGRQ0AAkBBACgCjPfBgAAiACACSQ0AIAEgACACa08NAQsgBigCGCEEAkACQAJAIAYoAgwiACAGRw0AIAZBFEEQIAYoAhQiABtqKAIAIgUNAUEAIQAMAgsgBigCCCIFIAA2AgwgACAFNgIIDAELIAZBFGogBkEQaiAAGyEHA0AgByEIIAUiAEEUaiAAQRBqIAAoAhQiBRshByAAQRRBECAFG2ooAgAiBQ0ACyAIQQA2AgALAkAgBEUNAAJAAkACQCAGIAYoAhxBAnRB7PPBgABqIgUoAgBGDQACQCAEKAIQIAZGDQAgBCAANgIUIAANAgwECyAEIAA2AhAgAA0BDAMLIAUgADYCACAARQ0BCyAAIAQ2AhgCQCAGKAIQIgVFDQAgACAFNgIQIAUgADYCGAsgBigCFCIFRQ0BIAAgBTYCFCAFIAA2AhgMAQtBAEEAKAKI98GAAEF+IAYoAhx3cTYCiPfBgAALAkACQCABQRBJDQAgBiACQQNyNgIEIAYgAmoiACABQQFyNgIEIAAgAWogATYCAAJAIAFBgAJJDQAgACABEM2BgIAADAILAkACQEEAKAKE98GAACIFQQEgAUEDdnQiB3ENAEEAIAUgB3I2AoT3wYAAIAFB+AFxQfz0wYAAaiIBIQUMAQsgAUH4AXEiAUH89MGAAGohBSABQYT1wYAAaigCACEBCyAFIAA2AgggASAANgIMIAAgBTYCDCAAIAE2AggMAQsgBiABIAJqIgBBA3I2AgQgBiAAaiIAIAAoAgRBAXI2AgQLIAZBCGoiAA0BC0EAKAKM98GAACIAIAJPDQECQEEAKAKQ98GAACIAIAJLDQACQCACQa+ABGoiBkEQdkAAIgFBf0cNAEEADwtBACEAIAFBEHQiBUUNAUEAQQAoApz3wYAAIAZBgIB8cSIAQXBqIAAgBUEAIABrRhsiCGoiADYCnPfBgABBACAAQQAoAqD3wYAAIgEgACABSxs2AqD3wYAAAkACQAJAAkACQEEAKAKY98GAACIBRQ0AQez0wYAAIQADQCAAKAIAIgYgACgCBCIHaiAFRg0CIAAoAggiAA0ADAMLCwJAAkBBACgCqPfBgAAiAEUNACAAIAVNDQELQQAgBTYCqPfBgAALQQBB/x82Aqz3wYAAQQAgCDYC8PTBgABBACAFNgLs9MGAAEEAQfz0wYAANgKI9cGAAEEAQYT1wYAANgKQ9cGAAEEAQfz0wYAANgKE9cGAAEEAQYz1wYAANgKY9cGAAEEAQYT1wYAANgKM9cGAAEEAQZT1wYAANgKg9cGAAEEAQYz1wYAANgKU9cGAAEEAQZz1wYAANgKo9cGAAEEAQZT1wYAANgKc9cGAAEEAQaT1wYAANgKw9cGAAEEAQZz1wYAANgKk9cGAAEEAQaz1wYAANgK49cGAAEEAQaT1wYAANgKs9cGAAEEAQbT1wYAANgLA9cGAAEEAQaz1wYAANgK09cGAAEEAQQA2Avj0wYAAQQBBvPXBgAA2Asj1wYAAQQBBtPXBgAA2Arz1wYAAQQBBvPXBgAA2AsT1wYAAQQBBxPXBgAA2AtD1wYAAQQBBxPXBgAA2Asz1wYAAQQBBzPXBgAA2Atj1wYAAQQBBzPXBgAA2AtT1wYAAQQBB1PXBgAA2AuD1wYAAQQBB1PXBgAA2Atz1wYAAQQBB3PXBgAA2Auj1wYAAQQBB3PXBgAA2AuT1wYAAQQBB5PXBgAA2AvD1wYAAQQBB5PXBgAA2Auz1wYAAQQBB7PXBgAA2Avj1wYAAQQBB7PXBgAA2AvT1wYAAQQBB9PXBgAA2AoD2wYAAQQBB9PXBgAA2Avz1wYAAQQBB/PXBgAA2Aoj2wYAAQQBBhPbBgAA2ApD2wYAAQQBB/PXBgAA2AoT2wYAAQQBBjPbBgAA2Apj2wYAAQQBBhPbBgAA2Aoz2wYAAQQBBlPbBgAA2AqD2wYAAQQBBjPbBgAA2ApT2wYAAQQBBnPbBgAA2Aqj2wYAAQQBBlPbBgAA2Apz2wYAAQQBBpPbBgAA2ArD2wYAAQQBBnPbBgAA2AqT2wYAAQQBBrPbBgAA2Arj2wYAAQQBBpPbBgAA2Aqz2wYAAQQBBtPbBgAA2AsD2wYAAQQBBrPbBgAA2ArT2wYAAQQBBvPbBgAA2Asj2wYAAQQBBtPbBgAA2Arz2wYAAQQBBxPbBgAA2AtD2wYAAQQBBvPbBgAA2AsT2wYAAQQBBzPbBgAA2Atj2wYAAQQBBxPbBgAA2Asz2wYAAQQBB1PbBgAA2AuD2wYAAQQBBzPbBgAA2AtT2wYAAQQBB3PbBgAA2Auj2wYAAQQBB1PbBgAA2Atz2wYAAQQBB5PbBgAA2AvD2wYAAQQBB3PbBgAA2AuT2wYAAQQBB7PbBgAA2Avj2wYAAQQBB5PbBgAA2Auz2wYAAQQBB9PbBgAA2AoD3wYAAQQBB7PbBgAA2AvT2wYAAQQAgBTYCmPfBgABBAEH09sGAADYC/PbBgABBACAIQVhqIgA2ApD3wYAAIAUgAEEBcjYCBCAFIABqQSg2AgRBAEGAgIABNgKk98GAAAwDCyABIAVPDQAgBiABSw0AIAAoAgxFDQELQQBBACgCqPfBgAAiACAFIAAgBUkbNgKo98GAACAFIAhqIQZB7PTBgAAhAAJAAkACQANAIAAoAgAiByAGRg0BIAAoAggiAA0ADAILCyAAKAIMRQ0BC0Hs9MGAACEAAkADQAJAIAAoAgAiBiABSw0AIAEgBiAAKAIEaiIGSQ0CCyAAKAIIIQAMAAsLQQAgBTYCmPfBgABBACAIQVhqIgA2ApD3wYAAIAUgAEEBcjYCBCAFIABqQSg2AgRBAEGAgIABNgKk98GAACABIAZBYGpBeHFBeGoiACAAIAFBEGpJGyIHQRs2AgRBACkC7PTBgAAhCSAHQRBqQQApAvT0wYAANwIAIAdBCGoiACAJNwIAQQAgCDYC8PTBgABBACAFNgLs9MGAAEEAIAA2AvT0wYAAQQBBADYC+PTBgAAgB0EcaiEAA0AgAEEHNgIAIABBBGoiACAGSQ0ACyAHIAFGDQIgByAHKAIEQX5xNgIEIAEgByABayIAQQFyNgIEIAcgADYCAAJAIABBgAJJDQAgASAAEM2BgIAADAMLAkACQEEAKAKE98GAACIGQQEgAEEDdnQiBXENAEEAIAYgBXI2AoT3wYAAIABB+AFxQfz0wYAAaiIAIQYMAQsgAEH4AXEiAEH89MGAAGohBiAAQYT1wYAAaigCACEACyAGIAE2AgggACABNgIMIAEgBjYCDCABIAA2AggMAgsgACAFNgIAIAAgACgCBCAIajYCBCAFIAJBA3I2AgQgB0EPakF4cUF4aiIBIAUgAmoiAGshAiABQQAoApj3wYAARg0FIAFBACgClPfBgABGDQYCQCABKAIEIgZBA3FBAUcNACABIAZBeHEiBhCOgYCAACAGIAJqIQIgASAGaiIBKAIEIQYLIAEgBkF+cTYCBCAAIAJBAXI2AgQgACACaiACNgIAAkAgAkGAAkkNACAAIAIQzYGAgAAMCAsCQAJAQQAoAoT3wYAAIgFBASACQQN2dCIGcQ0AQQAgASAGcjYChPfBgAAgAkH4AXFB/PTBgABqIgIhAQwBCyACQfgBcSICQfz0wYAAaiEBIAJBhPXBgABqKAIAIQILIAEgADYCCCACIAA2AgwgACABNgIMIAAgAjYCCAwHCyAAIAcgCGo2AgRBAEEAKAKY98GAACIAQQ9qQXhxIgFBeGoiBjYCmPfBgABBACAAIAFrQQAoApD3wYAAIAhqIgFqQQhqIgU2ApD3wYAAIAYgBUEBcjYCBCAAIAFqQSg2AgRBAEGAgIABNgKk98GAAAtBACEAQQAoApD3wYAAIgEgAk0NAUEAIAEgAmsiATYCkPfBgABBAEEAKAKY98GAACIAIAJqIgY2Apj3wYAAIAYgAUEBcjYCBCAAIAJBA3I2AgQgAEEIag8LQQAgACACayIBNgKQ98GAAEEAQQAoApj3wYAAIgAgAmoiBjYCmPfBgAAgBiABQQFyNgIEIAAgAkEDcjYCBCAAQQhqIQALIAAPC0EAKAKU98GAACEBAkACQCAAIAJrIgZBD0sNAEEAQQA2ApT3wYAAQQBBADYCjPfBgAAgASAAQQNyNgIEIAEgAGoiACAAKAIEQQFyNgIEDAELQQAgBjYCjPfBgABBACABIAJqIgU2ApT3wYAAIAUgBkEBcjYCBCABIABqIAY2AgAgASACQQNyNgIECyABQQhqDwtBACAANgKY98GAAEEAQQAoApD3wYAAIAJqIgI2ApD3wYAAIAAgAkEBcjYCBAwBC0EAIAA2ApT3wYAAQQBBACgCjPfBgAAgAmoiAjYCjPfBgAAgACACQQFyNgIEIAAgAmogAjYCAAsgBUEIagscAAJAIABFDQAgACABEOaAgIAAAAsQqoCAgAAAC38BA38jgICAgABBEGsiASSAgICAACABQQRqIAAoAgAiAiAAKAIEIAJBAXQiAkEEIAJBBEsbIgJBCEEYEMOBgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCfgICAAAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokgICAgAAL5AUBB38jgICAgABBwABrIgIkgICAgAAgASgCACIDKAIMIQQCQAJAAkAgAygCFCIFIAMoAhAiBk8NAANAIAQgBWotAAAiB0F3aiIIQRdLDQJBASAIdEGTgIAEcUUNAiADIAVBAWoiBTYCFCAGIAVHDQALIAYhBQsgAkEDNgI0QQEhCCACQShqIAQgBiAFQQFqIgUgBiAFIAZJGxCOgICAACAAIAJBNGogAigCKCACKAIsEI+AgIAANgIEDAELAkACQAJAAkAgB0H9AEYNACABLQAEDQIgB0EsRg0BIAJBCDYCNEEBIQggAkEgaiAEIAYgBUEBaiIFIAYgBSAGSRsQjoCAgAAgACACQTRqIAIoAiAgAigCJBCPgICAADYCBAwEC0EAIQggAEEAOgABDAMLQQEhCCADIAVBAWoiBTYCFAJAIAUgBk8NAANAIAQgBWotAAAiAUF3aiIHQRlLDQMCQEEBIAd0QZOAgARxDQAgB0EZRw0EIABBAToAAUEAIQgMBQsgAyAFQQFqIgU2AhQgBiAFRw0ACyAGIQULIAJBBTYCNCACQRBqIAQgBiAFQQFqIgUgBiAFIAZJGxCOgICAACAAIAJBNGogAigCECACKAIUEI+AgIAANgIEDAILQQAhCCABQQA6AAQCQCAHQSJGDQAgAkERNgI0QQEhCCACIAQgBiAFQQFqIgUgBiAFIAZJGxCOgICAACAAIAJBNGogAigCACACKAIEEI+AgIAANgIEDAILIABBAToAAQwBCwJAIAFB/QBGDQAgAkERNgI0QQEhCCACQQhqIAQgBiAFQQFqIgUgBiAFIAZJGxCOgICAACAAIAJBNGogAigCCCACKAIMEI+AgIAANgIEDAELIAJBFTYCNEEBIQggAkEYaiAEIAYgBUEBaiIFIAYgBSAGSRsQjoCAgAAgACACQTRqIAIoAhggAigCHBCPgICAADYCBAsgACAIOgAAIAJBwABqJICAgIAAC3ABAn8CQAJAIABBfGooAgAiA0F4cSIEQQRBCCADQQNxIgMbIAFqSQ0AAkAgA0UNACAEIAFBJ2pLDQILIAAQloCAgAAPC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAAL2ggBB38CQAJAAkACQAJAAkACQAJAAkACQCABKAIgIgJFDQAgASACQX9qNgIgIAEoAgBBAUcNAQJAIAEoAgQiAkUNACABKAIMIQMgASgCCCEEDAoLIAEoAgghAgJAIAEoAgwiBUUNAAJAAkAgBUEHcSIEDQAgBSEEDAELA0AgAigCmAMhAiAEQX9qIgQNAAsgBUF4cSEECyAFQQhJDQADQCACKAKYAygCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMhAiAEQXhqIgQNAAsLIAFCADcCCCABIAI2AgQgAUEBNgIAQQAhA0EAIQQMCQsgASgCACECIAFBADYCACACQQFxRQ0DIAEoAgghAiABKAIEIgQNAiABKAIMIgVFDQECQAJAIAVBB3EiBA0AIAUhBAwBCwNAIAIoApgDIQIgBEF/aiIEDQALIAVBeHEhBAsgBUEISQ0BA0AgAigCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIQIgBEF4aiIEDQAMAgsLQfzewIAAEKuAgIAAAAsgAiEEQQAhAgsCQAJAIAQoAogCIgMNACAEIQUMAQsDQCADIQUgBEF8aigCACIDQXhxIgZBBEEIIANBA3EiAxtByANBmAMgAhsiB2pJDQMCQCADRQ0AIAYgB0EncksNBQsgBBCWgICAACACQQFqIQIgBSEEIAUoAogCIgMNAAsLIAVBfGooAgAiBEF4cSIDQQRBCCAEQQNxIgQbQcgDQZgDIAIbIgJqSQ0DAkAgBEUNACADIAJBJ3JLDQULIAUQloCAgAALIABBADYCAA8LQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAACwJAAkAgAyACLwGSA08NACACIQUMAQsCQANAAkAgAigCiAIiBQ0AIAJByANBmAMgBBtBCBCigICAAEGM38CAABCrgICAAAALAkAgAkF8aigCACIDQXhxIgdBBEEIIANBA3EiBhtByANBmAMgBBsiCGpJDQAgAi8BkAMhAwJAIAZFDQAgByAIQSdySw0DCyACEJaAgIAAIARBAWohBCAFIQIgAyAFLwGSA0kNAwwBCwtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAACyADQQFqIQgCQAJAIAQNACAFIQcMAQsgBSAIQQJ0akGYA2ohAgJAAkAgBEEHcSIGDQAgBCEGDAELA0AgAigCACIHQZgDaiECIAZBf2oiBg0ACyAEQXhxIQYLQQAhCCAEQQhJDQADQCACKAIAKAKYAygCmAMoApgDKAKYAygCmAMoApgDKAKYAyIHQZgDaiECIAZBeGoiBg0ACwsgASAINgIMIAFBADYCCCABIAc2AgQgACADNgIIIAAgBDYCBCAAIAU2AgAL7AQBBn8jgICAgABBMGsiASSAgICAAAJAAkACQAJAAkACQAJAIAAoAgAiAiAAKAIIIgBBDGxqIgMoAowCIgRFDQAgA0GMAmooAgQiBUF8aigCACIDQXhxIgZBBEEIIANBA3EiAxsgBGpJDQECQCADRQ0AIAYgBEEnaksNAwsgBRCWgICAAAsCQAJAAkACQCACIABBGGxqIgAtAAAOBQMDAwECAAsCQAJAIAAoAgQiAg0AQQAhAEEAIQIMAQsgASACNgIYIAFBADYCFCABIAI2AgggAUEANgIEIAEgACgCCCICNgIcIAEgAjYCDCAAKAIMIQJBASEACyABIAI2AiAgASAANgIQIAEgADYCAANAIAFBJGogARCjgICAACABKAIkRQ0DIAFBJGoQpICAgAAMAAsLIAAoAgQiAkUNASAAKAIIIgRBfGooAgAiAEF4cSIDQQRBCCAAQQNxIgAbIAJqSQ0EAkAgAEUNACADIAJBJ2pLDQYLIAQQloCAgAAMAQsgAEEEahCngICAACAAKAIEIgJFDQAgAEEIaigCACIEQXxqKAIAIgBBeHEiA0EEQQggAEEDcSIAGyACQRhsIgJqSQ0FAkAgAEUNACADIAJBJ2pLDQcLIAQQloCAgAALIAFBMGokgICAgAAPC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAAC5MfBQx/AX4BfwF+Bn8jgICAgABBsAFrIgQkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAIgVFDQAgAigCCCEGIAIoAgQhByABKAIEIQgCQANAIAUvAZIDIglBDGwhCkF/IQsgBUGMAmoiDCENAkACQANAAkAgCg0AIAkhCwwCCyANQQhqIQ4gDUEEaiEPIAtBAWohCyAKQXRqIQogDUEMaiENIAcgDygCACAGIA4oAgAiDiAGIA5JGxDUgYCAACIPIAYgDmsgDxsiDkEASiAOQQBIa0H/AXEiDkEBRg0ACyAORQ0BCyAIRQ0CIAhBf2ohCCAFIAtBAnRqKAKYAyEFDAELCyACKAIAIg1FDQMgB0F8aigCACIKQXhxIgZBBEEIIApBA3EiChsgDWpJDQYCQCAKRQ0AIAYgDUEnaksNCAsgBxCWgICAAAwDCyACKAIAIg1BgICAgHhHDQMgByEFDAELIAIoAgQhBSACKAIAIgpBgICAgHhHDQMLIAEhCwsgBEH4AGpBEGoiCiAFIAtBGGxqIg1BEGoiBikDADcDACAEQfgAakEIaiIOIA1BCGoiCykDADcDACAEIA0pAwA3A3ggDSADKQMANwMAIAsgA0EIaikDADcDACAGIANBEGopAwA3AwAgAEEQaiAKKQMANwMAIABBCGogDikDADcDACAAIAQpA3g3AwAMDQsCQAJAAkACQCAJQQtJDQAgBEGYAWohCUEEIQogC0EFSQ0DIAshCiALQXtqDgIDAgELIAwgC0EMbGohCgJAAkAgCSALSw0AIAogBjYCCCAKIAc2AgQgCiANNgIADAELAkAgCSALayIOQQxsIg9FDQAgCkEMaiAKIA/8CgAACyAKIAY2AgggCiAHNgIEIAogDTYCACAOQRhsIg1FDQAgBSALQRhsaiIKQRhqIAogDfwKAAALIAUgC0EYbGoiDUEQaiADQRBqKQMANwMAIA0gAykDADcDACANQQhqIANBCGopAwA3AwAgBSAJQQFqOwGSAwwOCyALQXlqIQsgBEHQAGohCUEGIQoMAQtBACELIARB0ABqIQlBBSEKC0GYAxCegICAACIORQ0DIA5BADYCiAIgDiAFLwGSAyAKQX9zaiICOwGSAyACQQxPDQQgDCAKQQxsaiIPKQIEIRAgDygCACEIAkAgAkEMbCIMRQ0AIA5BjAJqIA9BDGogDPwKAAALIAUgCkEYbGohDwJAIAJBGGwiAkUNACAOIA9BGGogAvwKAAALIAUgCjsBkgMgBEH4AGpBDGogD0EIaikCADcCACAEQYwBaiAPQRBqKQIANwIAIAQgDykCADcCfCAEQdgAakEIaiAEQfgAakEIaikCADcDACAEQdgAakEQaiAEQfgAakEQaikCADcDACAEQdgAakEYaiAEQfgAakEYaigCADYCACAEIAU2ApgBIAQgDjYCUCAEIAQpAng3A1ggCSgCACIKQYwCaiIJIAtBDGxqIQ8CQAJAIAovAZIDIgIgC0sNACAPIAY2AgggDyAHNgIEIA8gDTYCAAwBCwJAIAIgC2siDEEMbCIRRQ0AIAtBDGwgCWpBDGogDyAR/AoAAAsgDyAGNgIIIA8gBzYCBCAPIA02AgAgDEEYbCINRQ0AIAogC0EYbGoiBkEYaiAGIA38CgAACyAKIAtBGGxqIg1BEGogA0EQaikDADcDACANIAMpAwA3AwAgBEEIakEIaiIGIARB2ABqQQhqKQMANwMAIARBCGpBEGoiCyAEQdgAakEQaikDADcDACAEQQhqQRhqIg8gBEHYAGpBGGooAgA2AgAgDUEIaiADQQhqKQMANwMAIAogAkEBajsBkgMgBCAEKQNYNwMIIAhBgICAgHhGDQsgBEEoakEYaiAPKAIANgIAIARBKGpBEGogCykDADcDACAEQShqQQhqIAYpAwA3AwAgBCAEKQMINwMoAkAgBSgCiAIiCg0AQQAhCQwLCyAEQfgAakEEaiECIARBKGpBBHIhA0EAIQkgDiEMIBAhEiAIIREDQCAFLwGQAyENAkACQAJAIAoiBy8BkgMiC0ELSQ0AIARB0ABqIQUgDUEFTw0BIA0hD0EEIQ0MAgsgB0GMAmoiBSANQQxsaiEGIA1BAWohCiALQQFqIQ4CQAJAIA0gC0kNACAGIBI3AgQgBiARNgIAIAcgDUEYbGoiBiADKQIANwIAIAZBEGogA0EQaikCADcCACAGQQhqIANBCGopAgA3AgAMAQsCQCALIA1rIg9BDGwiCEUNACAFIApBDGxqIAYgCPwKAAALIAYgEjcCBCAGIBE2AgAgByANQRhsaiEGAkAgD0EYbCIFRQ0AIAcgCkEYbGogBiAF/AoAAAsgBkEQaiADQRBqKQIANwIAIAZBCGogA0EIaikCADcCACAGIAMpAgA3AgAgD0ECdCIGRQ0AIAdBmANqIg8gDUECdGpBCGogDyAKQQJ0aiAG/AoAAAsgByAOOwGSAyAHIApBAnRqIAw2ApgDIAogC0ECaiIPTw0OAkAgCyANayILQQFqQQNxIgZFDQAgByANQQJ0akGcA2ohDQNAIA0oAgAiDiAKOwGQAyAOIAc2AogCIA1BBGohDSAKQQFqIQogBkF/aiIGDQALCyALQQNJDQ4gCkECdCAHakGkA2ohDQNAIA1BdGooAgAiBiAKOwGQAyAGIAc2AogCIA1BeGooAgAiBiAKQQFqOwGQAyAGIAc2AogCIA1BfGooAgAiBiAKQQJqOwGQAyAGIAc2AogCIA0oAgAiBiAKQQNqOwGQAyAGIAc2AogCIA1BEGohDSAPIApBBGoiCkcNAAwPCwsgDSEPAkACQCANQXtqDgICAQALIA1BeWohDyAEQcgAaiEFQQYhDQwBC0EAIQ8gBEHIAGohBUEFIQ0LQcgDEJ6AgIAAIg5FDQYgDkEANgKIAiAOIAcvAZIDIA1Bf3NqIgo7AZIDIARBmAFqQQhqIhMgByANQRhsaiIGQQhqKQMANwMAIARBmAFqQRBqIhQgBkEQaikDADcDACAEIAYpAwA3A5gBIApBDE8NByAHQYwCaiIVIA1BDGxqIgYpAgQhECAGKAIAIQggDUEBaiEGAkAgCkEMbCIWRQ0AIA5BjAJqIBUgBkEMbGogFvwKAAALAkAgCkEYbCIKRQ0AIA4gByAGQRhsaiAK/AoAAAsgByANOwGSAyACIAQpA5gBNwIAIAJBCGogEykDADcCACACQRBqIBQpAwA3AgAgDi8BkgMiCkEBaiEGIApBDE8NCCALIA1rIAZHDQkgDkGYA2ohCwJAIAZBAnQiBkUNACALIAcgDUECdGpBnANqIAb8CgAACyAJQQFqIQlBACENAkADQCALIA1BAnRqKAIAIgYgDTsBkAMgBiAONgKIAiANIApPDQEgDSANIApJaiINIApNDQALCyAEQdgAakEIaiITIARB+ABqQQhqKQIANwMAIARB2ABqQRBqIhQgBEH4AGpBEGopAgA3AwAgBEHYAGpBGGoiFSAEQfgAakEYaigCADYCACAEIAc2AlAgBCAEKQJ4NwNYIAQgDjYCSCAFKAIAIgZBjAJqIhcgD0EMbGohCyAPQQFqIQ0gBi8BkgMiCkEBaiEFAkACQCAKIA9LDQAgCyASNwIEIAsgETYCACAGIA9BGGxqIgsgAykCADcCACALQRBqIANBEGopAgA3AgAgC0EIaiADQQhqKQIANwIADAELAkAgCiAPayIWQQxsIhhFDQAgFyANQQxsaiALIBj8CgAACyALIBI3AgQgCyARNgIAIAYgD0EYbGohCwJAIBZBGGwiEUUNACAGIA1BGGxqIAsgEfwKAAALIAtBEGogA0EQaikCADcCACALQQhqIANBCGopAgA3AgAgCyADKQIANwIAIBZBAnQiC0UNACAGQZgDaiIRIA9BAnRqQQhqIBEgDUECdGogC/wKAAALIAYgBTsBkgMgBiANQQJ0aiAMNgKYAwJAIA0gCkECaiIFTw0AAkAgCiAPayIMQQFqQQNxIgtFDQAgBiAPQQJ0akGcA2ohCgNAIAooAgAiDyANOwGQAyAPIAY2AogCIApBBGohCiANQQFqIQ0gC0F/aiILDQALCyAMQQNJDQAgBiANQQJ0akGkA2ohCgNAIApBdGooAgAiCyANOwGQAyALIAY2AogCIApBeGooAgAiCyANQQFqOwGQAyALIAY2AogCIApBfGooAgAiCyANQQJqOwGQAyALIAY2AogCIAooAgAiCyANQQNqOwGQAyALIAY2AogCIApBEGohCiAFIA1BBGoiDUcNAAsLIARBCGpBGGoiDSAVKAIANgIAIARBCGpBEGoiCiAUKQMANwMAIARBCGpBCGoiBiATKQMANwMAIAQgBCkDWDcDCCAIQYCAgIB4Rg0MIARBKGpBGGogDSgCADYCACAEQShqQRBqIAopAwA3AwAgBEEoakEIaiAGKQMANwMAIAQgBCkDCDcDKCAOIQwgByEFIBAhEiAIIREgBygCiAIiCkUNCwwACwsgAigCCCEGQZgDEJ6AgIAAIg1FDQggAUEANgIEIAEgDTYCACANQQA2AogCIA1BATsBkgMgDSAGNgKUAiANIAU2ApACIA0gCjYCjAIgDSADKQMANwMAIA1BCGogA0EIaikDADcDACANQRBqIANBEGopAwA3AwAMCgtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAAC0EIQZgDEOaAgIAAAAtBACACQQtBvJ7AgAAQ+4CAgAAAC0EIQcgDEOaAgIAAAAtBACAKQQtBvJ7AgAAQ+4CAgAAAC0EAIAZBDEHMnsCAABD7gICAAAALQYSewIAAQShBrJ7AgAAQl4CAgAAAC0EIQZgDEOaAgIAAAAsCQAJAIAEoAgAiCkUNACABKAIEIQZByAMQnoCAgAAiDUUNBCANIAo2ApgDIA1BADsBkgMgDUEANgKIAiAGQQFqIgtFDQUgCkEAOwGQAyAKIA02AogCIAEgCzYCBCABIA02AgAgCSAGRg0BQaSdwIAAQTBB1J3AgAAQl4CAgAAAC0HknMCAABCrgICAAAALIA0gEDcDkAIgDSAINgKMAiANQQE7AZIDIA0gBCkCLDcCACANIA42ApwDIA5BATsBkAMgDiANNgKIAiANQQhqIARBNGopAgA3AgAgDUEQaiAEQTxqKQIANwIACyAAQQY6AAAgASABKAIIQQFqNgIICyAEQbABaiSAgICAAA8LQQhByAMQ5oCAgAAAC0H0ncCAABCrgICAAAALhQQBBX8CQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAiACgCAA4CAAEDCyAAKAIIIgFFDQIgACgCBCICQXxqKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNAyADRQ0BIAQgAUEnak0NAUHk6sCAAEEuQZTrwIAAEJeAgIAAAAsgAC0ABEEDRw0BIAAoAggiAigCACEBAkAgAkEEaigCACIDKAIAIgRFDQAgASAEEYKAgIAAgICAgAALAkAgAygCBCIDRQ0AIAFBfGooAgAiBEF4cSIFQQRBCCAEQQNxIgQbIANqSQ0EAkAgBEUNACAFIANBJ2pLDQYLIAEQloCAgAALIAJBfGooAgAiAUF4cSIDQRBBFCABQQNxIgEbSQ0FIAFFDQAgA0E0Tw0GCyACEJaAgIAACyAAQXxqKAIAIgJBeHEiAUEYQRwgAkEDcSICG0kNBQJAIAJFDQAgAUE8Tw0HCyAAEJaAgIAADwtBpOrAgABBLkHU6sCAABCXgICAAAALQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAAC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALogUBB38jgICAgABBwABrIgEkgICAgAACQAJAAkACQAJAAkACQCAAKAIIIgJFDQAgACgCBCEDQQAhBANAAkACQAJAAkAgAyAEQRhsaiIALQAADgUDAwMBAgALAkACQCAAKAIEIgUNAEEAIQBBACEFDAELIAEgBTYCJCABQQA2AiAgASAFNgIUIAFBADYCECABIAAoAggiBTYCKCABIAU2AhggACgCDCEFQQEhAAsgASAFNgIsIAEgADYCHCABIAA2AgwDQCABQTBqIAFBDGoQo4CAgAAgASgCMCIARQ0DIAEgACABKAI4IgVBGGxqNgI8AkAgACAFQQxsaiIFKAKMAiIARQ0AIAVBjAJqKAIEIgZBfGooAgAiBUF4cSIHQQRBCCAFQQNxIgUbIABqSQ0HAkAgBUUNACAHIABBJ2pLDQkLIAYQloCAgAALIAFBPGoQt4CAgAAMAAsLIAAoAgQiBUUNASAAKAIIIgZBfGooAgAiAEF4cSIHQQRBCCAAQQNxIgAbIAVqSQ0GAkAgAEUNACAHIAVBJ2pLDQgLIAYQloCAgAAMAQsgAEEEahCngICAACAAKAIEIgVFDQAgAEEIaigCACIGQXxqKAIAIgBBeHEiB0EEQQggAEEDcSIAGyAFQRhsIgVqSQ0HAkAgAEUNACAHIAVBJ2pLDQkLIAYQloCAgAALIARBAWoiBCACRw0ACwsgAUHAAGokgICAgAAPC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAAC4QQBAF/AX4BfAp/I4CAgIAAQeAAayICJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAA4GAAECAwQFAAsgAEEAOgAADBELIABBAToAACAAIAEtAAE6AAEMEAsCQAJAAkAgASgCCA4DAAECAAsgAEIANwMIIABBAjoAACAAIAEpAxA3AxAMEQsgAEECOgAAIAAgASkDECIDNwMQIAAgA0I/iDcDCAwQCyABKwMQIQQgAkEAOgAYAkAgBL1C////////////AINCgICAgICAgPj/AFMNACAAIAIpAxg3AwAgAEEQaiACQRhqQRBqKQMANwMAIABBCGogAkEYakEIaikDADcDAAwQCyAAIAQ5AxAgAEICNwMIIABBAjoAAAwPCyABKAIIIQUCQAJAIAEoAgwiBg0AQQEhAQwBCyAGEJ6AgIAAIgFFDQMLAkAgBkUNACABIAUgBvwKAAALIAAgBjYCDCAAIAE2AgggACAGNgIEIABBAzoAAAwOCyABKAIMIgZB1qrVKk8NAiABKAIIIQcCQAJAIAZBGGwiCA0AQQghCUEAIQEMAQsgBiEBIAgQnoCAgAAiCUUNBAsgAkEANgIIIAIgCTYCBCACIAE2AgACQAJAIAZFDQBBACEGQQAhAQNAIAJByABqIAcgBmoQqICAgAAgAi0ASEEGRg0CAkAgASACKAIARw0AIAIQoICAgAAgAigCBCEJCyAJIAZqIgUgAikDSDcDACAFQRBqIAJByABqQRBqKQMANwMAIAVBCGogAkHIAGpBCGopAwA3AwAgAiABQQFqIgE2AgggCCAGQRhqIgZHDQALCyACQSNqIAJBCGooAgA2AAAgAEEEOgAAIAIgAikCADcAGyAAIAIpABg3AAEgAEEIaiACQR9qKQAANwAADA4LIAAgAigCTDYCBCAAQQY6AAAgAhCngICAACACKAIAIgZFDQ0gCSAGQRhsQQgQooCAgAAMDQtBACEGIAJBADYCFCACQQA2AgwgAkGAgICAeDYCACABKAIMQQAgASgCBCIFGyEKIAVBAEchByABKAIIIQsCQAJAAkADQCAKRQ0BIAdBAXFFDQgCQAJAIAZFDQAgBSEJDAELQQAhCQJAIAtFDQACQAJAIAtBB3EiBg0AIAshBgwBCwNAIAUoApgDIQUgBkF/aiIGDQALIAtBeHEhBgsgC0EISQ0AA0AgBSgCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIQUgBkF4aiIGDQALCyAFIQZBACELCwJAAkAgCyAGLwGSA08NACAGIQEgCyEIDAELA0AgBigCiAIiAUUNCSAJQQFqIQkgBi8BkAMhCCABIQYgCCABLwGSA08NAAsLIAhBAWohCwJAAkAgCQ0AIAEhBgwBCyABIAtBAnRqQZgDaiEFAkACQCAJQQdxIgcNACAJIQcMAQsDQCAFKAIAIgZBmANqIQUgB0F/aiIHDQALIAlBeHEhBwtBACELIAlBCEkNAANAIAUoAgAoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIgZBmANqIQUgB0F4aiIHDQALCwJAAkACQCABIAhBDGxqIglBlAJqKAIAIgUNAEEBIQkMAQsgCUGQAmooAgAhByAFEJ6AgIAAIglFDQsCQCAFRQ0AIAkgByAF/AoAAAsgBUGAgICAeEYNAQsCQCACKAIAIgdBgICAgHhyQYCAgIB4Rg0AIAIoAgQiDEF8aigCACINQXhxIg5BBEEIIA1BA3EiDRsgB2pJDQwCQCANRQ0AIA4gB0EnaksNDgsgDBCWgICAAAsgCkF/aiEKIAIgBTYCCCACIAk2AgQgAiAFNgIAQQAhBUEBIQcgAiABIAhBGGxqEKmAgIAAIglFDQELCyAAQQY6AAAgACAJNgIEIAIoAgwiBg0BQQAhBkEAIQEMAgsgAigCBCEBIAIoAgAhBiACQSNqIAJBFGooAgA2AAAgAEEFOgAAIAIgAikCDDcAGyAAIAIpABg3AAEgAEEIaiACQR9qKQAANwAAIAZBgICAgHhyQYCAgIB4Rg0OIAFBfGooAgAiBUF4cSIJQQRBCCAFQQNxIgUbIAZqSQ0KAkAgBUUNACAJIAZBJ2pLDQwLIAEQloCAgAAMDgsgAiACKAIQIgE2AjQgAiAGNgIwIAJBADYCLCACIAE2AiQgAiAGNgIgIAJBADYCHEEBIQYgAigCFCEBCyACIAE2AjggAiAGNgIoIAIgBjYCGAJAA0AgAkE8aiACQRhqEKOAgIAAIAIoAjxFDQEgAkE8ahCkgICAAAwACwsgAigCACIGQYCAgIB4ckGAgICAeEYNDCACKAIEIgVBfGooAgAiAUF4cSIJQQRBCCABQQNxIgEbIAZqSQ0KAkAgAUUNACAJIAZBJ2pLDQwLIAUQloCAgAAMDAtBASAGEJ+AgIAAAAsQqoCAgAAAC0EIIAgQn4CAgAAAC0GUn8CAABCrgICAAAALQaSfwIAAEKuAgIAAAAtBASAFEJ+AgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAAC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAsgAkHgAGokgICAgAALqwIDAn8BfgJ/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhAyAAQYCAgIB4NgIAAkACQAJAIANBgICAgHhGDQAgACkCBCEEIAIgAzYCHCACIAQ3AiAgAkEoaiABEKiAgIAAAkACQCACLQAoQQZHDQAgAigCLCEAIANFDQEgBKciBUF8aigCACIBQXhxIgZBBEEIIAFBA3EiARsgA2pJDQMCQCABRQ0AIAYgA0EnaksNBQsgBRCWgICAAAwBCyACIABBDGogAkEcaiACQShqEKWAgIAAQQAhACACLQAAQQZGDQAgAhCcgICAAAsgAkHAAGokgICAgAAgAA8LEIiBgIAAAAtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAACxcAQeCjwIAAQSNB9KPAgAAQ/ICAgAAACxMAQfCtwIAAQSsgABCXgICAAAALqBAEBH8CfgF8BX8jgICAgABBMGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAIAAtAAAOBgABAggDBAALAkAgASgCACIDKAIAIAMoAggiBGtBA0sNACADIARBBBCBgICAACADKAIIIQQLIAMgBEEEajYCCCADKAIEIARqQe7qseMGNgAADAgLIAEoAgAhAwJAIAAtAAENAAJAIAMoAgAgAygCCCIEa0EESw0AIAMgBEEFEIGAgIAAIAMoAgghBAsgAygCBCAEaiIAQQAoAKSqwIAANgAAIABBBGpBAC0AqKrAgAA6AAAgAyAEQQVqNgIIDAgLAkAgAygCACADKAIIIgRrQQNLDQAgAyAEQQQQgYCAgAAgAygCCCEECyADKAIEIARqQfTk1asGNgAAIAMgBEEEajYCCAwHCyABKAIAIQMCQAJAAkAgACgCCA4DAAECAAsCQEEUIAApAxAgAkEIahCtgICAACIFayIEIAMoAgAgAygCCCIAa00NACADIAAgBBCBgICAACADKAIIIQALAkAgBEUNACADKAIEIABqIAJBCGogBWogBPwKAAALIAMgACAEajYCCAwICyAAKQMQIgYgBkI/hyIHhSAHfSACQQhqEK2AgIAAIQQCQCAGQn9VDQAgBEF/aiIEQRNLDQQgAkEIaiAEakEtOgAACwJAQRQgBGsiACADKAIAIAMoAggiBWtNDQAgAyAFIAAQgYCAgAAgAygCCCEFCwJAIABFDQAgAygCBCAFaiACQQhqIARqIAD8CgAACyADIAUgAGo2AggMBwsCQCAAKwMQIgi9Qv///////////wCDQoCAgICAgID4/wBTDQACQCADKAIAIAMoAggiBGtBA0sNACADIARBBBCBgICAACADKAIIIQQLIAMgBEEEajYCCCADKAIEIARqQe7qseMGNgAADAcLAkAgCCACQQhqEK6AgIAAIAJBCGprIgQgAygCACADKAIIIgBrTQ0AIAMgACAEEIGAgIAAIAMoAgghAAsCQCAERQ0AIAMoAgQgAGogAkEIaiAE/AoAAAsgAyAAIARqNgIIDAYLIAAoAgwhBSAAKAIIIQQCQCABKAIAIgMoAgAgAygCCCIARw0AIAMgAEEBEIGAgIAAIAMoAgghAAsgAyAAQQFqIgk2AgggAygCBCAAakHbADoAAAJAAkAgBUUNACAFQRhsQWhqIQADQCAEIAEQrICA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AUEBaiEBDAELCyAAIAIpAhwiBzcCACAAQQhqIAJBHGpBCGooAgA2AgAgB6ciAUGAgICAeEYNBCACKAIYIgYgAigCECIFRg0FIAAoAgQhCCAEQbySwIAAEIeAgIAAIQMgAEGAgICAeDYCACAAIAM2AgQCQCABRQ0AIAggAUECdEEEEKKAgIAACyAGIAVrQRhuIQEDQCAFEJyAgIAAIAVBGGohBSABQX9qIgENAAwGCwsgASACQQxqQfSSwIAAEJiAgIAAIQUgAEGAgICAeDYCACAAIAU2AgQgARCcgICAAAwFC0EEIAYQn4CAgAAAC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALIAIoAhgiBiACKAIQIgFrQRhuIQUgBiABRg0AA0AgARCcgICAACABQRhqIQEgBUF/aiIFDQALCyACKAIUIgFFDQAgAigCDCIGQXxqKAIAIgVBeHEiA0EEQQggBUEDcSIFGyABQRhsIgFqSQ0BAkAgBUUNACADIAFBJ2pLDQMLIAYQloCAgAALIAJBMGokgICAgAAPC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALfQECfyOAgICAAEEQayIAJICAgIAAAkBBEBCegICAACIBDQBBAUEQEJ+AgIAAAAsgAUEIakEAKQC4ocCAADcAACABQQApALChwIAANwAAIABBEDYCDCAAIAE2AgggAEEQNgIEIABBBGoQh4GAgAAhASAAQRBqJICAgIAAIAEL1QMBBH8jgICAgABBMGsiASSAgICAAAJAAkACQAJAAkACQAJAAkAgACgCACIALQAADgUDAwMBAgALAkACQCAAKAIEIgINAEEAIQBBACECDAELIAEgAjYCGCABQQA2AhQgASACNgIIIAFBADYCBCABIAAoAggiAjYCHCABIAI2AgwgACgCDCECQQEhAAsgASACNgIgIAEgADYCECABIAA2AgADQCABQSRqIAEQo4CAgAAgASgCJEUNAyABQSRqEKSAgIAADAALCyAAKAIEIgJFDQEgACgCCCIDQXxqKAIAIgBBeHEiBEEEQQggAEEDcSIAGyACakkNAgJAIABFDQAgBCACQSdqSw0ECyADEJaAgIAADAELIABBBGoQp4CAgAAgACgCBCICRQ0AIABB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BAsgAkEDOgAYIAIgBDcDICACQRhqIAJBL2pBlJLAgAAQmoCAgAAhAUEBIQMMAwsgAiACQS9qQZSSwIAAEJiAgIAAIQEgAhCcgICAAEEBIQMMAgtBASEDELaAgIAAIQEMAQsgBKchAUEAIQMLIAAgATYCBCAAIAM2AgAgAkEwaiSAgICAAAvQAwICfwF+I4CAgIAAQTBrIgIkgICAgAACQAJAAkACQCABLQAAIgMNACABEJyAgIAAQQAhAQwBCwJAAkACQAJAIANBAkcNACABKQMQIQQCQAJAIAEoAggOAwABAwALIARCgICAgBBUDQQgAkEBOgAYIAIgBDcDICACQRhqIAJBL2pBlJLAgAAQv4CAgAAhAwwDCyAEQoCAgIAQVA0DIAJBAjoAGCACIAQ3AyAgAkEYaiACQS9qQZSSwIAAEL+AgIAAIQMMAgsgASACQS9qQZSSwIAAEJiAgIAAIQMgARCcgICAAAwBCyACQQM6ABggAiAENwMgIAJBGGogAkEvakGUksCAABCagICAACEDCyACIAM2AgggAkEANgIUIAJCgICAgBA3AgwgAkGom8CAADYCHCACQqCAgIAGNwIgIAIgAkEMajYCGCADIAJBGGoQwICAgAANAyAAIAIpAgw3AgAgAEEIaiACQQxqQQhqKAIANgIAIAJBCGoQpoCAgAAMAgsgBKchA0EBIQELIAAgAzYCCCAAIAE2AgQgAEGAgICAeDYCAAsgAkEwaiSAgICAAA8LQezdwIAAQTcgAkEvakHAm8CAAEGk3sCAABC6gICAAAALjAEBAX8jgICAgABBMGsiAySAgICAACADIAI2AgwgAyABNgIIIANBEGpBCGogAEEIaikDADcDACADIAApAwA3AxAgA0GEgICAAK1CIIYgA0EIaq2ENwMoIANBhoCAgACtQiCGIANBEGqthDcDIEHPg8CAACADQSBqEISAgIAAIQAgA0EwaiSAgICAACAAC5YBAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkAgACgCDEUNACACQYWAgIAArUIghiIDIABBEGqthDcDGCACIAMgAEEMaq2ENwMQIAJBh4CAgACtQiCGIACthDcDCCABKAIAIAEoAgRB/4HAgAAgAkEIahC5gICAACEADAELIAAgARC4gICAACEACyACQSBqJICAgIAAIAALzAMCAn8BfiOAgICAAEEwayICJICAgIAAAkACQAJAAkAgAS0AACIDDQAgARCcgICAAEEAIQEMAQsCQAJAAkACQCADQQJHDQAgASkDECEEAkACQCABKAIIDgMAAQMACyAEQoCABFQNBCACQQE6ABggAiAENwMgIAJBGGogAkEvakGEksCAABC/gICAACEDDAMLIARCgIAEVA0DIAJBAjoAGCACIAQ3AyAgAkEYaiACQS9qQYSSwIAAEL+AgIAAIQMMAgsgASACQS9qQYSSwIAAEJiAgIAAIQMgARCcgICAAAwBCyACQQM6ABggAiAENwMgIAJBGGogAkEvakGEksCAABCagICAACEDCyACIAM2AgggAkEANgIUIAJCgICAgBA3AgwgAkGom8CAADYCHCACQqCAgIAGNwIgIAIgAkEMajYCGCADIAJBGGoQwICAgAANAyAAIAIpAgw3AgAgAEEIaiACQQxqQQhqKAIANgIAIAJBCGoQpoCAgAAMAgsgBKchA0EBIQELIAAgAzsBBiAAIAE7AQQgAEGAgICAeDYCAAsgAkEwaiSAgICAAA8LQezdwIAAQTcgAkEvakHAm8CAAEGk3sCAABC6gICAAAAL1QMDAX8BfgF/I4CAgIAAQcAAayICJICAgIAAAkACQAJAAkACQAJAIAEtAABBAkcNACABKQMQIQMCQCABKAIIDgMEAAIECyADQn9VDQMgAkECOgAgIAIgAzcDKCACQSBqIAJBP2pB5JHAgAAQv4CAgAAhBAwCCyABIAJBP2pB5JHAgAAQmICAgAAhBCABEJyAgIAADAELIAJBAzoAICACIAM3AyggAkEgaiACQT9qQeSRwIAAEJqAgIAAIQQLIAIgBDYCACACQQA2AgwgAkKAgICAEDcCBCACQaibwIAANgIUIAJCoICAgAY3AhggAiACQQRqNgIQAkACQCAEKAIMDQAgBCACQRBqELiAgIAARQ0BDAQLIAJBhYCAgACtQiCGIgMgBEEQaq2ENwMwIAIgAyAEQQxqrYQ3AyggAkGHgICAAK1CIIYgBK2ENwMgIAJBBGpBqJvAgABB/4HAgAAgAkEgahC5gICAAA0DCyAAIAIpAgQ3AgQgAEEMaiACQQxqKAIANgIAIAIQpoCAgABBASEBDAELIAAgAzcDCEEAIQELIAAgATYCACACQcAAaiSAgICAAA8LQezdwIAA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akkNAQJAIAFFDQAgBSADQSdqSw0DCyAEEJaAgIAACyACLQAAQQZHDQMgAiACKAIEIgE2AhggAkEANgIkIAJCgICAgBA3AhwgAkKggICABjcCMCACQaibwIAANgIsIAIgAkEcajYCKAJAAkAgASgCDA0AIAEgAkEoahC4gICAAEUNAQwECyACQYWAgIAArUIghiIGIAFBEGqthDcDSCACIAYgAUEMaq2ENwNAIAJBh4CAgACtQiCGIAGthDcDOCACQRxqQaibwIAAQf+BwIAAIAJBOGoQuYCAgAANAwsgACACKQIcNwIEIABBDGogAkEkaigCADYCACACQRhqEKaAgIAAIABBBjoAAAwEC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALQezdwIAAQTcgAkE4akHAm8CAAEGk3sCAABC6gICAAAALIAAgAikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEIaiACQQhqKQMANwMACyACQdAAaiSAgICAAAudDgMGfwF+BX8jgICAgABB8ABrIgIkgICAgAAgAkEANgIcIAJBADYCFCACQYCAgIB4NgIIIAJBCGpBlpnAgABBBSABLQAwEMuAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBChCegICAACIDRQ0AIANBCGpBAC8Ao5nAgAA7AAAgA0EAKQCbmcCAADcAAAJAIAIoAggiBEGAgICAeHJBgICAgHhGDQAgAigCDCIFQXxqKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNAgJAIAZFDQAgByAEQSdqSw0ECyAFEJaAgIAACyACQQo2AhAgAiADNgIMIAJBgICAgHg2AgggAiACKQIMIgg3AkAgAkEKNgI8IAJByABqIAEQsoCAgAACQAJAAkACQAJAAkACQCACLQBIQQZGDQAgAkEgaiACQRRqIAJBPGogAkHIAGoQpYCAgAACQCACLQAgQQZGDQAgAkEgahCcgICAAAtBBxCegICAACIDRQ0MIANBA2pBACgAqJnAgAA2AAAgA0EAKAClmcCAADYAAAJAIAIoAggiBEGAgICAeHJBgICAgHhGDQAgAigCDCIFQXxqKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNDgJAIAZFDQAgByAEQSdqSw0Q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AiIMQYCAgIB4ckGAgICAeEYNACADKALsAiINQXxqKAIAIg5BeHEiD0EEQQggDkEDcSIOGyAMakkNEgJAIA5FDQAgDyAMQSdqSw0UCyANEJaAgIAACyADQQc2AvACIAMgCjYC7AIgA0GAgICAeDYC6AIgAyADKQLsAjcCDCADQQc2AghBGBCegICAACIKRQ0TIANBADYCmAMgAyAKNgKUAyADQQE2ApADIANBADYCvAIgA0EANgK0AiADQYCAgIB4NgKoAiADQagCakHtmMCAAEEEIAZBDhDTgICAACADQagCakHxmMCAAEELIAdBBBDTgICAACADQagCakH8mMCAAEEJIAhBCBDTgICAACADKQK4AiEQIAMoArQCIQYCQCADKAKoAiIHQYCAgIB4ckGAgICAeEYNACADKAKsAiIMQXxqKAIAIghBeHEiDkEEQQggCEEDcSIIGyAHakkNFQJAIAhFDQAgDiAHQSdqSw0XCyAMEJaAgIAACyAKIBA3AwggCiAGNgIEIApBBToAACADQQE2ApgDIANBATYCrAIgA0EEOgCoAiADIAMpApQDNwOwAiADQZADaiALIANBCGogA0GoAmoQpYCAgAACQCADLQCQA0EGRg0AIANBkANqEJyAgIAAC0EIEJ6AgIAAIgZFDRYgBkLmwrXLxq3asvMANwAAAkAgAygC6AIiCkGAgICAeHJBgICAgHhGDQAgAygC7AIiCEF8aigCACIHQXhxIgxBBEEIIAdBA3EiBxsgCmpJDRgCQCAHRQ0AIAwgCkEnaksNGgsgCBCWgICAAAsgA0EINgLwAiADIAY2AuwCIANBgICAgHg2AugCIAMgAykC7AI3AgwgA0EINgIIQRgQnoCAgAAiBkUNGSAGQgA3AwggBkECOgAAIAYgCTMBADcDECADIAY2ApQDIANBATYCmAMgA0EBNgKsAiADQQQ6AKgCIAMgAykClAM3A7ACIANBkANqIAsgA0EIaiADQagCahClgICAAAJAIAMtAJADQQZGDQAgA0GQA2oQnICAgAALQQUQnoCAgAAiBkUNGiAGQQRqQQAtAMOZwIAAOgAAIAZBACgAv5nAgAA2AAACQCADKALoAiIKQYCAgIB4ckGAgICAeEYNACADKALsAiIIQXxqKAIAIgdBeHEiDEEEQQggB0EDcSIHGyAKakkNHAJAIAdFDQAg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ASAFKAIIENWAgIAADAILQYyiwIAAEKuAgIAAAAsgA0EANgKYAyADQQA2ApADCyADQbQCaiADQZgDaigCADYCACADIAMpApADNwKsAiADQQU6AKgCCyADQZADaiADQagCahDCgICAACADKAKQA0UNBiADKAKUAyEFIAAgAykDmAM3AwggACAFNgIEIABBBjoAAAxSCyADQQhqQQhqIAUoAgA2AgAgAyADKQPoAjcDCAJAIAFBfWoOCgQDAAAAAAAAAAIACyADQZADakGfmsCAAEEHIAIQ2oCAgAAiBUGg3cCAACAFGxDbgICAACADQagCaiADQZADahDDgICAACADKAK0AiEFIAMoArACIgRBgICAgHhGDT4CQAJAAkACQAJAAkACQAJAAkAgAUF7ag4JAAECAwQFBggHCAsgA0GoAmogAygCEBDcgICAACADQaABaiIBIANBqAJqQQxqKAIANgIAIAMgAykCrAI3A5gBIAMoAqgCDQwgACADQZgBahDRgICAAAxCCyADQagCakGmmsCAAEEEIAIQ2oCAgAAiAUGg3cCAACABGxDbgICAACADQZADaiADQagCahC+gICAACADKAKUAyEBIAMoApgDIQYCQCADKAKQAyIKQYCAgIB4Rg0AIAAgBjYCDCAAIAE2AgggACAKNgIEIABBBjoAAAxACyADIAY2ApQCIAMgATYCkAIgA0GoAmpByZnAgABBBiACENqAgIAAIgZBoN3AgAAgBhsQ24CAgAAgA0HoAmogA0GoAmoQwYCAgAACQCADKALoAiIGQYCAgIB4Rg0AIAAgAykC7AI3AwggACAGNgIEIABBBjoAAAxACyADQZADaiADKAIMIAMoAhAgA0GQAmpBBGpBACABQQFxGxDdgICAACADQbABaiIBIANBkANqQQxqKAIANgIAIAMgAykClAM3A6gBAkAgAygCkANBAUcNACAAIAMpA6gBNwIEIABBBjoAACAAQQxqIAEoAgA2AgAMQAsgACADQagBahDMgICAAAxBCyADQagCakGqmsCAAEEIIAIQ2oCAgAAiAUGg3cCAACABGxDbgICAACADQegCaiADQagCahC7gICAACADKALsAiEBIAMoAvACIQYCQCADKALoAiIKQYCAgIB4Rg0AIAAgBjYCDCAAIAE2AgggACAKNgIEIABBBjoAAAw/CyADQZADaiADKAIMIAMoAhAgASAGEN6AgIAAIANBuAFqQQhqIANBkANqQQxqKAIANgIAIAMgAykClAM3A7gBAkAgAygCkANBAUcNACAAIAMpA7gBNwIEIABBBjoAACAAQQxqIANBwAFqKAIANgIADD8LIAAgA0G4AWoQyYCAgAAMQAsgAygCCCEKIAMoAgwhByADQagCakGymsCAAEEGIAIQ2oCAgAAiAUGg3cCAACABGxDbgICAACADQegCaiADQagCahDEgICAACADKALsAiEBIAMoAvACIQYCQCADKALoAiIJQYCAgIB4Rg0AIAAgBjYCDCAAIAE2AgggACAJNgIEIABBBjoAACAKRQ1BIAcgCkECdEEEEKKAgIAADEELIANBkANqIANBCGogASAGEN+AgIAAIANBmAJqIgEgA0GQA2pBDGooAgA2AgAgAyADKQKUAzcDkAIgAygCkAMiBkGAgICAeEcNQSAAIAMpA5ACNwIEIABBBjoAACAAQQxqIAEoAgA2AgAMQAsgAygCCCEBIAMoAgwhCSADQagCakG4msCAAEEIIAIQ2oCAgAAiBkGg3cCAACAGGxDbgICAACADQegCaiADQagCahDFgICAACADKALsAiEGAkAgAygC6AIiCkGAgICAeEYNACAAIAMoAvACNgIMIAAgBjYCCCAAIAo2AgQgAEEGOgAAIAFFDUAgCSABQQJ0QQQQooCAgAAMQAsgA0GoAmpBwpXAgABBBCACENqAgIAAIgpBoN3AgAAgChsQ24CAgAAgA0HoAmogA0GoAmoQwoCAgAAgAykD8AIhEAJAIAMoAugCQQFHDQAgAygC7AIhBiAAIBA3AwggACAGNgIEIABBBjoAACABRQ1AIAkgAUECdEEEEKKAgIAADEALIANBkANqIANBCGogBiAQEOCAgIAAIANBmAJqIgEgA0GQA2pBDGooAgA2AgAgAyADKQKUAzcDkAICQCADKAKQAyIGQYCAgIB4Rw0AIAAgAykDkAI3AgQgAEEGOgAAIABBDGogASgCADYCAAxACyADQdgBakEMaiABKAIANgIAIAMgBjYC2AEgAyADKQOQAjcC3AEgAyADKAKgAzYC6AEgACADQdgBahDQgICAAAxBCyADQagCakHAmsCAAEEFIAIQ2oCAgAAiAUGg3cCAACABGxDbgICAACADQZADaiADQagCahDFgICAACADKAKQAyIBQYCAgIB4Rg08IAMoApQDIQYgACADKAKYAzYCDCAAIAY2AgggACABNgIEIABBBjoAAAw7CyADQagCakHFmsCAAEEFIAIQ2oCAgAAiAUGg3cCAACABGxDbgICAACADQZADaiADQagCahC0gICAACADKAKUAyEBIAMoApgDIQYgAygCnAMhCiADKAKQAw05IANBqAJqQcCawIAAQQUgAhDagICAACIJQaDdwIAAIAkbENuAgIAAIANBkANqIANBqAJqEMWAgIAAIAMoApQDIQkCQCADKAKQAyIHQYCAgIB4Rg0AIAAgAygCmAM2AgwgACAJNgIIIAAgBzYCBCAAQQY6AAAMOQsgA0HoAmogAygCDCADKAIQIAYgCiAJEOGAgIAAIANBgAJqIgogA0HoAmpBDGooAgA2AgAgAyADKQLsAjcD+AECQCADKALoAkEBRw0AIAAgAykD+AE3AgQgAEEGOgAAIABBDGogCigCADYCAAw5CyAAIANB+AFqEMeAgIAAIAFFDTwgBiABQQJ0QQQQooCAgAAMPAsgA0GoAmpBxZrAgABBBSACENqAgIAAIgFBoN3AgAAgARsQ24CAgAAgA0GQA2ogA0GoAmoQtICAgAAgAygCmAMhBiADKAKUAyEBIAMoApADDTYgA0GoAmpBwJrAgABBBSACENqAgIAAIgpBoN3AgAAgChsQ24CAgAAgA0GQA2ogA0GoAmoQxYCAgAACQCADKAKQAyIKQYCAgIB4Rw0AIANBADYCjAIgA0KAgICAwAA3AoQCIAAgA0GEAmoQx4CAgAAgAUUNPCAGIAFBAnRBBBCigICAAAw8CyADKAKUAyEJIAAgAygCmAM2AgwgACAJNgIIIAAgCjYCBCAAQQY6AAAgAUUNOSAGIAFBAnRBBBCigICAAAw5CyADQagCahDigICAACAAQQY6AAAgAEEMaiADQbACaigCADYCACAAIAMpAqgCNwIEDDoLIAAgAykDkAI3AwAgAEEQaiADQZACakEQaikDADcDACAAQQhqIANBkAJqQQhqKQMANwMADFALIANBqAJqIAMoAgwgAygCEBDjgICAACADQZABaiIFIANBqAJqQQxqKAIANgIAIAMgAykCrAI3A4gBIAMoAqgCDTIgACADQYgBahDGgICAAAw9CyADQagCaiADKAIMIAMoAhAQ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NwMAIAMgAykDODcDmAECQAJAIAMoAowBIgEgAygCiAEiBU8NACADKAKEASEGA0AgBiABai0AAEF3aiICQRdLDQJBASACdEGTgIAEcUUNAiAFIAFBAWoiAUcNAAsgAyAFNgKMAQsgAygCeCIBRQ0EDAMLIAMgATYCjAEgA0EWNgIQIANBCGogBiAFIAFBAWoiASAFIAEgBUkbEI6AgIAAIAMgA0EQaiADKAIIIAMoAgwQj4CAgAA2AjwgA0EGOgA4IANBmAFqEJyAgIAAC0EGIQQgAygCeCIBDQEMAwtBAUEXEJ+AgIAAAAsgAygCfCIFQXxqKAIAIgJBeHEiBkEEQQggAkEDcSICGyABakkNBAJAIAJFDQAgBiABQSdqSw0GCyAFEJaAgIAACyAEQQZGDQAgAyADKQA5NwMoIAMgA0E4akEIaikAADcALyADKQNIIQcgA0H4AGpBCGogAykALzcAAEEALQDQ88GAACEBQQBBAToA0PPBgAAgAyADKQMoNwB5IAMgBzcDiAEgAyAEOgB4IAMgAToAmAEgAUEBRg0FIANBEGogACADQfgAahDSgICAAEEAQQA6ANDzwYAAIAMtABBBBkYNASADQQA2AlwgA0EANgJUQQIQnoCAgAAiAUUNCyABQe/WATsAACADQQI2AjAgAyABNgIsIANBAjYCKCADQYECOwF4IANBmAFqIANB1ABqIANBKGogA0H4AGoQpYCAgAACQCADLQCYAUEGRg0AIANBmAFqEJyAgIAAC0EGEJ6AgIAAIgFFDQwgAUEEakEALwCgosCAADsAACABQQAoAJyiwIAANgAAIANBBjYCMCADIAE2AiwgA0EGNgIoIANB+ABqIANBEGoQqICAgAAgAy0AeEEGRg0NIANBmAFqQRBqIANB+ABqQRBqKQMANwMAIANBmAFqQQhqIANB+ABqQQhqKQMANwMAIAMgAykDeDcDmAEgA0H4AGogA0HUAGogA0EoaiADQZgBahClgICAAAJAIAMtAHhBBkYNACADQfgAahCcgICAAAsgA0HEAGogA0HUAGpBCGooAgA2AgAgAyADKQJUNwI8IANBBToAOCADQRBqEJyAgIAADAILIAMgAygCPCIBNgJUIANBADYCGCADQoCAgIAQNwIQIANCoICAgAY3AqABIANBqJvAgAA2ApwBIAMgA0EQajYCmAECQAJAIAEoAgwNACABIANBmAFqELiAgIAARQ0BDBMLIANBhYCAgACtQiCGIgcgAUEQaq2ENwOIASADIAcgAUEMaq2ENwOAASADQYeAgIAArUIghiABrYQ3A3ggA0EQakGom8CAAEH/gcCAACADQfgAahC5gICAAA0SCyADQfgAakEIaiIBIANBEGpBCGooAgA2AgAgAyADKQIQNwN4IANB1ABqEKaAgIAAIANBHGogASgCADYCACADIAMpA3giBzcAKyADIAc3AhQLIAMoAhwhASADKAIYIQYgAygCFCEFIANBADYCXCADQQA2AlRBAhCegICAACICRQ0EIAJB79YBOwAAIANBAjYCMCADIAI2AiwgA0ECNgIoIANBATsBeCADQZgBaiADQdQAaiADQShqIANB+ABqEKWAgIAAAkAgAy0AmAFBBkYNACADQZgBahCcgICAAAtBBRCegICAACICRQ0FIAJBBGpBAC0Az6LAgAA6AAAgAkEAKADLosCAADYAACADQQU2AqABIAMgAjYCnAEgA0EFNgKYAQJAAkAgAQ0AQQEhAgwBCyABEJ6AgIAAIgJFDQcLAkAgAUUNACACIAYgAfwKAAALIAMgATYCbCADIAI2AmggAyABNgJkIANBAzoAYCADQfgAaiADQdQAaiADQZgBaiADQeAAahClgICAAAJAIAMtAHhBBkYNACADQfgAahCcgICAAAsgA0HEAGogA0HUAGpBCGooAgA2AgAgAyADKQJUNwI8IANBBToAOCAFRQ0AIAZBfGooAgAiAUF4cSICQQRBCCABQQNxIgEbIAVqSQ0HAkAgAUUNACACIAVBJ2pLDQkLIAYQloCAgAALQYABEJ6AgIAAIgFFDQsgA0H4AGpBCGoiAkEANgIAIAMgATYCfCADQYABNgJ4IAMgA0H4AGo2AiggA0E4aiADQShqEKyAgIAAIANBmAFqQQhqIAIoAgA2AgAgAyADKQJ4Igc3A5gBAkACQCAHpyIBQYCAgIB4Rw0AIANBmAFqQQRyEKaAgIAAQgAhBwwBCyADKAKcASECAkAgAygCoAEiBUH//79/akH//79/Sw0AQgAhByABRQ0BIAJBfGooAgAiBUF4cSIGQQRBCCAFQQNxIgUbIAFqSQ0OAkAgBUUNACAGIAFBJ2pLDRALIAIQloCAgAAMAQsCQCABIAVNDQAgAiABQQEgBRCGgYCAACICRQ0QCyACrUIghiAFrYQhBwsgA0E4ahCcgICAACADQbABaiSAgICAACAHDwtBpOrAgABBLkHU6sCAABCXgICAAAALQeTqwIAAQS5BlOvAgAAQl4CAgAAACyADQZgBahCMgYCAAAALQQFBAhCfgICAAAALQQFBBRCfgICAAAALQQEgARCfgICAAAALQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBAUECEJ+AgIAAAAtBAUEGEJ+AgIAAAAsgAyADKAJ8NgKYAUH8m8CAAEErIANBmAFqQaChwIAAQaSiwIAAELqAgIAAAAtBAUGAARCfgICAAAALQaTqwIAAQS5B1OrAgAAQl4CAgAAAC0Hk6sCAAEEuQZTrwIAAEJeAgIAAAAtBASAFEJ+AgIAAAAtB7N3AgABBNyADQfgAakHAm8CAAEGk3sCAABC6gICAAAALUAEBfyOAgICAAEEQayIBJICAgIAAIAFB45HAgAA2AgwgASAANgIIIAFBCGpBlOrAgAAgAUEMakGU6sCAAEH2msCAAEGYm8CAABCugYCAAAALfQECfwJAAkACQCAARQ0AIAFFDQAgAEF8aigCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQECQCACRQ0AIAMgAUEnaksNAwsgABCWgICAAAsPC0Gk6sCAAEEuQdTqwIAAEJeAgIAAAAtB5OrAgABBLkGU68CAABCXgICAAAALkgMBBH8gACgCDCECAkACQAJAAkAgAUGAAkkNACAAKAIYIQMCQAJAAkAgAiAARw0AIABBFEEQIAAoAhQiAhtqKAIAIgENAUEAIQIMAgsgACgCCCIBIAI2AgwgAiABNgIIDAELIABBFGogAEEQaiACGyEEA0AgBCEFIAEiAkEUaiACQRBqIAIoAhQiARshBCACQRRBECABG2ooAgAiAQ0ACyAFQQA2AgALIANFDQICQAJAIAAgACgCHEECdEHs88GAAGoiASgCAEYNACADKAIQIABGDQEgAyACNgIUIAINAwwECyABIAI2AgAgAkUNBAwCCyADIAI2AhAgAg0BDAILAkAgAiAAKAIIIgRGDQAgBCACNgIMIAIgBDYCCA8LQQBBACgChPfBgABBfiABQQN2d3E2AoT3wYAADwsgAiADNgIYAkAgACgCECIBRQ0AIAIgATYCECABIAI2AhgLIAAoAhQiAUUNACACIAE2AhQgASACNgIYDwsPC0EAQQAoAoj3wYAAQX4gACgCHHdxNgKI98GAAAvrBgEEfyAAIAFqIQICQAJAIAAoAgQiA0EBcQ0AIANBAnFFDQEgACgCACIDIAFqIQECQCAAIANrIgBBACgClPfBgABHDQAgAigCBEEDcUEDRw0BQQAgATYCjPfBgAAgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCACIAE2AgAPCyAAIAMQjoGAgAALAkACQAJAAkAgAigCBCIDQQJxDQAgAkEAKAKY98GAAEYNAiACQQAoApT3wYAARg0DIAIgA0F4cSIDEI6BgIAAIAAgAyABaiIBQQFyNgIEIAAgAWogATYCACAAQQAoApT3wYAARw0BQQAgATYCjPfBgAAPCyACIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsCQCABQYACSQ0AQR8hAgJAIAFB////B0sNACABQSYgAUEIdmciAmt2QQFxIAJBAXRrQT5qIQILIABCADcCECAAIAI2AhwgAkECdEHs88GAAGohAwJAQQAoAoj3wYAAQQEgAnQiBHENACADIAA2AgAgACADNgIYIAAgADYCDCAAIAA2AghBAEEAKAKI98GAACAEcjYCiPfBgAAPCwJAAkACQCADKAIAIgQoAgRBeHEgAUcNACAEIQIMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQMDQCAEIANBHXZBBHFqIgUoAhAiAkUNAiADQQF0IQMgAiEEIAIoAgRBeHEgAUcNAAsLIAIoAggiASAANgIMIAIgADYCCCAAQQA2AhggACACNgIMIAAgATYCCA8LIAVBEGogADYCACAAIAQ2AhggACAANgIMIAAgADYCCAwDCwJAAkBBACgChPfBgAAiAkEBIAFBA3Z0IgNxDQBBACACIANyNgKE98GAACABQfgBcUH89MGAAGoiASECDAELIAFB+AFxIgFB/PTBgABqIQIgAUGE9cGAAGooAgAhAQsgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBACAANgKY98GAAEEAQQAoApD3wYAAIAFqIgE2ApD3wYAAIAAgAUEBcjYCBCAAQQAoApT3wYAARw0BQQBBADYCjPfBgABBAEEANgKU98GAAA8LQQAg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IQEMEQsgAiAAKQMINwMoIAJBkICAgACtQiCGIAJBKGqthDcDECABIARB5pDAgAAgAkEQahC5gICAACEBDBALIAIgACkDCDcDKCACQZGAgIAArUIghiACQShqrYQ3AxAgASAEQeaQwIAAIAJBEGoQuYCAgAAhAQwPCyACIAAoAgQ2AiggAkGSgICAAK1CIIYgAkEoaq2ENwMQIAEgBEHWkMCAACACQRBqELmAgIAAIQEMDgsgAiAAKQIENwIoIAJBk4CAgACtQiCGIAJBKGqthDcDECABIARBhoPAgAAgAkEQahC5gICAACEBDA0LIAFBob3AgABBCiAEKAIMEYCAgIAAgICAgAAhAQwMCyABQau9wIAAQQwgBCgCDBGAgICAAICAgIAAIQEMCwsgAUG3vcCAAEEOIAQoAgwRgICAgACAgICAACEBDAoLIAFBxb3AgABBCCAEKAIMEYCAgIAAgICAgAAhAQwJCyABQc29wIAAQQMgBCgCDBGAgICAAICAgIAAIQEMCAsgAUHQvcCAAEEEIAQoAgwRgICAgACAgICAACEBDAcLIAFB1L3AgABBDCAEKAIMEYCAgIAAgICAgAAhAQwGCyABQeC9wIAAQQ8gBCgCDBGAgICAAICAgIAAIQEMBQsgAUHvvcCAAEENIAQoAgwRgICAgACAgICAACEBDAQLIAFB/L3AgABBDiAEKAIMEYCAgIAAgICAgAAhAQwDCyABIAAoAgQgACgCCCAEKAIMEYCAgIAAgICAgAAhAQwCCwJAAkAgACsDCCIFvSIGQv///////////wCDQv/////////3/wBVDQAgBSACQRBqEK6AgIAAIAJBEGprIQAgAkEQaiEDDAELQbjdwIAAQbvdwIAAIAZCf1UiABtBv93AgAAgBkL/////////B4NQIgQbIQNBA0EEIAAbQQMgBBshAAsgAiAANgIMIAIgAzYCCCACQYGAgIAArUIghiACQQhqrYQ3AyggASgCACABKAIEQbOQwIAAIAJBKGoQuYCAgAAhAQwBCyABKAIAQdDTwIAAQQQgASgCBCgCDBGAgICAAICAgIAAIQELIAJBMGokgICAgAAgAQuaBAMJfwF+Bn8CQCABKAIYIgcgBWsiCCADTw0AQQAgASgCDCIJayEKIAQgCWohCyAJIAUgCSAFSxsiDCAJayENIAEoAiAhDiAB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d2hlbiBzbGljaW5nIGDAAWDAAAtieXRlIGluZGV4IMAWIGlzIG91dCBvZiBib3VuZHMgb2YgYMABYMAAC2J5dGUgaW5kZXggwCYgaXMgbm90IGEgY2hhciBib3VuZGFyeTsgaXQgaXMgaW5zaWRlIMAIIChieXRlcyDABikgb2YgYMABYMAAFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwADACSBhdCBsaW5lIMAIIGNvbHVtbiDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAHc3RyaW5nIMAAD3Vua25vd24gZmllbGQgYMAMYCwgZXhwZWN0ZWQgwAAPaW52YWxpZCBsZW5ndGggwAssIGV4cGVjdGVkIMAAD2ludmFsaWQgdmFsdWU6IMALLCBleHBlY3RlZCDAAA5pbnZhbGlkIHR5cGU6IMALLCBleHBlY3RlZCDAABBhc3NlcnRpb24gYGxlZnQgwBcgcmlnaHRgIGZhaWxlZAogIGxlZnQ6IMAJCiByaWdodDogwAAQYXNzZXJ0aW9uIGBsZWZ0IMAQIHJpZ2h0YCBmYWlsZWQ6IMAJCiAgbGVmdDogwAkKIHJpZ2h0OiDAAMACOiDAAC9ydXN0Yy8yNTRiNTk2MDdkNDQxN2U5ZGZmYmMzMDcxMzhhZTVjODYyODBmZTRjL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL21hcC9lbnRyeS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvMjU0YjU5NjA3ZDQ0MTdlOWRmZmJjMzA3MTM4YWU1Yzg2MjgwZmU0Yy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL3J1c3RjLzI1NGI1OTYwN2Q0NDE3ZTlkZmZiYzMwNzEzOGFlNWM4NjI4MGZlNGMvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL211dGV4L25vX3RocmVhZHMucnMAQzpcVXNlcnNccm9ib3BcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxzZXJkZV9qc29uLTEuMC4xNTRcc3JjXGVycm9yLnJzAEM6XFVzZXJzXHJvYm9wXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Zcc2VyZGVfanNvbi0xLjAuMTU0XHNyY1x2YWx1ZVxzZXIucnMAL3J1c3RjLzI1NGI1OTYwN2Q0NDE3ZTlkZmZiYzMwNzEzOGFlNWM4NjI4MGZlNGMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbWFwLnJzAC9ydXN0Yy8yNTRiNTk2MDdkNDQxN2U5ZGZmYmMzMDcxMzhhZTVjODYyODBmZTRjL2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL3J1c3RjLzI1NGI1OTYwN2Q0NDE3ZTlkZmZiYzMwNzEzOGFlNWM4NjI4MGZlNGMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAC9ydXN0Yy8yNTRiNTk2MDdkNDQxN2U5ZGZmYmMzMDcxMzhhZTVjODYyODBmZTRjL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL25hdmlnYXRlLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAL3J1c3RjLzI1NGI1OTYwN2Q0NDE3ZTlkZmZiYzMwNzEzOGFlNWM4NjI4MGZlNGMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbm9kZS5ycwBDOlxVc2Vyc1xyb2JvcFwuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHNlcmRlX2NvcmUtMS4wLjIyOVxzcmNcZGVcbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwBDOlxVc2Vyc1xyb2JvcFwuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHNlcmRlX2pzb24tMS4wLjE1NFxzcmNccmVhZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMS9zcmMvZGxtYWxsb2MucnMAZXhhbXBsZXNccWFwXHNyY1xsaWIucnMAQzpcVXNlcnNccm9ib3BcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxpdG9hLTEuMC4xOFxzcmNcbGliLnJzABBmbG9hdGluZyBwb2ludCBgwAFgAAFgwAZgIG9yIGDAAWAAC2NoYXJhY3RlciBgwAFgAAlpbnRlZ2VyIGDAAWAACWJvb2xlYW4gYMABYAAPbWlzc2luZyBmaWVsZCBgwAFgABFkdXBsaWNhdGUgZmllbGQgYMABYAABYMABYADACyAob3MgZXJyb3IgwAEpAAZFcnJvcijACCwgbGluZTogwAosIGNvbHVtbjogwAEpAAAAAAAAAAAAAQAAABcAAAAAAAAAAAAAAAEAAAAYAAAAAAAAAAAAAAABAAAAGQAAAAAAAAAAAAAAAQAAABoAAABmZXdlciBlbGVtZW50cyBpbiBhcnJheQAkCRAAFwAAAAAAAAAIAAAABAAAABsAAABmZXdlciBlbGVtZW50cyBpbiBtYXAAAABUCRAAFQAAAAAAAAAAAAAAAQAAABwAAAAAAAAAAAAAAAEAAAAdAAAAAAAAAAAAAAABAAAAHgAAAAAAAAAAAAAAAQAAAB8AAAAAAAAAAAAAAAEAAAAgAAAAAAAAAAAAAAABAAAAIQAAAAAAAAAAAAAAAQAAACIAAABzdHJ1Y3QgU3dhcGxlZnRyaWdodHN0cnVjdCBTd2FwIHdpdGggMiBlbGVtZW50cwD4CRAAGwAAAHN0cnVjdCBJbnB1dGZsb3dkaXN0YW5jZXN0cnVjdCBJbnB1dCB3aXRoIDIgZWxlbWVudHM0ChAAHAAAAGl0ZXJhdGlvbnNldmFsdWF0aW9uc3N0cnVjdCBCdWRnZXQgd2l0aCAyIGVsZW1lbnRzAABtChAAHQAAAHJ1bkluZGV4aXRlcmF0aW9uY2FuZGlkYXRlSW5kZXhzdGFnbmF0aW9ucGhhc2VzZWVkc3RydWN0IENvbnRleHQgd2l0aCA2IGVsZW1lbnRzxgoQAB4AAADvCRAABAAAAPMJEAAFAAAAc3RydWN0IEFzc2lnbm1lbnRwZXJtdXRhdGlvbnN0cnVjdCBBc3NpZ25tZW50IHdpdGggMSBlbGVtZW50GAsQACAAAAAoChAABAAAACwKEAAIAAAAWAoQAAoAAABiChAACwAAAJQKEAAIAAAAnAoQAAkAAAClChAADgAAALMKEAAKAAAAvQoQAAUAAADCChAABAAAAGEgc2VxdWVuY2UAAA0LEAALAAAAwAcQABcAAAAqAAAALAAAAMAHEAAXAAAAKgAAAC8AAADABxAAFwAAACoAAABKAAAAwAcQABcAAAAqAAAAUAAAAMAHEAAXAAAAMQAAABoAAADABxAAFwAAADEAAAAgAAAAwAcQABcAAAAyAAAALwAAAMAHEAAXAAAAMgAAADIAAADABxAAFwAAADMAAAAzAAAAwAcQABcAAAAzAAAANgAAAGd1aWRhbmNlcmVwYWlycmVjb21iaW5lcGF0aFJlbGlua2ZlYXR1cmVzbmFtZW51bWVyaWNUeXBlZGlyZWN0aW9udmlvbGF0aW9uc21ldHJpY3N2YWxpZGFzc2Vzc21lbnRvdXRwdXRzYWJpVmVyc2lvbmlkdmVyc2lvbmhvb2tzdmFsdWVmYW1pbHlrZXlzdGF0ZXJlcG9ydGVkRXZhbHVhdGlvbnNyZXBvcnRlZEltcHJvdmVtZW50c1RoZSBhZGFwdGVyIGlzIG5vdCBib3VuZCB0byBkYXRhLmNvbnRleHRlZGdlbW92ZW1lbnRidWRnZXRzdHJlbmd0aGxpbWl0b3RoZXJVbnN1cHBvcnRlZCBhZGFwdGVyIG9wZXJhdGlvbi5jb3VudGRhdGFib3VuZGNhbm5vdCByZWN1cnNpdmVseSBhY3F1aXJlIG11dGV4AACOAxAAXAAAABMAAAAJAAAAIwAAAAwAAAAEAAAAJAAAACUAAAAmAAAAAAAAAAAAAAABAAAAJwAAAG1pZCA+IGxlbgAAABUDEABfAAAASgAAAB8AAAAVAxAAXwAAAEQAAAAXAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQDYBxAAWgAAALwAAAABAAAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuID4gMAAAADQGEABbAAAAbwEAAAkAAACEAhAAYAAAAKABAAAuAAAAYXNzZXJ0aW9uIGZhaWxlZDogaWR4IDwgQ0FQQUNJVFk0BhAAWwAAAJ4CAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogZWRnZS5oZWlnaHQgPT0gc2VsZi5oZWlnaHQgLSAxNAYQAFsAAAC2AgAACQAAADQGEABbAAAAugIAAAkAAAA0BhAAWwAAAPAAAABNAAAAYXNzZXJ0aW9uIGZhaWxlZDogc3JjLmxlbigpID09IGRzdC5sZW4oKTQGEABbAAAAVAcAAAUAAAA0BhAAWwAAANAEAAAjAAAANAYQAFsAAAATBQAAJAAAAGFzc2VydGlvbiBmYWlsZWQ6IG9sZF9sZWZ0X2xlbiA+PSBjb3VudAA0BhAAWwAAAAIGAAANAAAArgUQAF8AAAAWAgAALwAAAK4FEABfAAAAoQAAACQAAADABxAAFwAAANUAAAAfAAAAVXNlIHR3byBlcXVhbGx5IHNpemVkIHNxdWFyZSBpbnRlZ2VyIG1hdHJpY2VzIG9mIHNpemUgMi4uNjQgd2l0aCBlbnRyaWVzIHdpdGhpbiArLy0xZTkuAMAHEAAXAAAA7gAAACMAAABleGFtcGxlLnFhcDEuMC4wYXNzaWdubWVudENvc3RUaGUgc3RhdGUgaXMgbm90IGEgcGVybXV0YXRpb24gb2YgdGhlIGxvY2F0aW9ucy5hc3NpZ25tZW50wAcQABcAAAB8AAAAhgAAAGluZGV4QmFzZQAAACgAAAAEAAAABAAAACkAAAB2YWx1ZSBpcyBtaXNzaW5nc2VyaWFsaXplX3ZhbHVlIGNhbGxlZCBiZWZvcmUgc2VyaWFsaXplX2tleQBPBBAAZwAAAKoBAAAfAAAAtwQQAFoAAAANAQAAPwAAALcEEABaAAAAMgEAAC4AAAByZXN1bHQAAMAHEAAXAAAAEAEAAAEAAABJbnZhbGlkIHJlcXVlc3QgYnVmZmVyLmVycm9yKgAAAAwAAAAEAAAAKwAAACwAAAAtAAAAAAAAAAAAAAABAAAALgAAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHN0cmVhbSBkaWQgbm90AAB1AxAAGAAAAIoCAAAOAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAAARBxAAIAAAABwAAAAFAAAAAHAABwAtAQEBAgECAQFICzAVEAFlBwIGAgIBBCMBHhtbCzoJCQEYBAEJAQMBBSsDOwkqGAEgNwEBAQQIBAEDBwoCHQE6AQEBAgQIAQkBCgIaAQICOQEEAgQCAgMDAR4CAwELAjkBBAUBAgQBFAIWBgEBOgEBAgEECAEHAwoCHgE7AQEBDAEJASgBAwE3AQEDBQMBBAcCCwIdAToBAgIBAQMDAQQHAgsCHAI5AgEBAgQIAQkBCgIdAUgBBAECAwEBCAFRAQIHDAhiAQIJCwdJAhsBAQEBATcOAQUBAgULASQJAWYEAQYBAgICGQIEAxAEDQECAgYBDwEAAwAEHAMdAh4CQAIBBwgBAgsJAS0DAQF1AiIBdgMEAgkBBgPbAgIBOgEBBwEBAQECCAYKAgEwLgIMFAQwCgQDJgkMAiAEAgY4AQECAwEBBTgIAgKYAwENAQcEAQYBAwLGQAABwyEAA40BYCAABmkCAAQBCiACUAIAAQMBBAEZAgUBlwIaEg0BJggZCwEBLAMwAQIEAgICASQBQwYCAgICDAEIAS8BMwEBAwICBQIBASoCCAHuAQIBBAEAAQAQEBAAAgAB4gGVBQADAQIFBCgDBAGlAgAEQQUAAk0GRgsxBHsBNg8pAQICCgMxBAICBwE9AyQFAQg+AQwCNAkBAQgEAgFfAwIEBgECAZ0BAwgVAjkCAQEBAQwBCQEOBwMFQwECBgEBAgEBAwQDAQEOAlUIAgMBARcBUQECBgEBAgEBAgEC6wECBAYCAQIbAlUIAgEBAmoBAQECCGUBAQECBAEFAAkBAvUBCgQEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQLGAQEDAQHJBwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAxcBAAEGDwAMAwMABTsHAAE/BFEBCwIAAgAuAhcABQMGCAgCBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFZAGgBwABPQQABP4C8wECAQcCBQEAB20HAGCA8AAA9QYQABsAAAB+CwAAJgAAAPUGEAAbAAAAhwsAABoAAABmYWxzZXRydWUweDAx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ar5rKmRvXssC82s1PQs2fsMnbIIMjsNdtF1s0cc4mrqQkmzG+cZA6TTHbDe4+JAjAv1sI3ObOlYhMm3rT0LJq6lmbebjkrsWVJxtcM47NY600W0MworCsSEGbo9yLTMeqjtumWf831JKcW5/gfuX55ylbt9h+n0hBNtuLH287pTiEG92nGsqOhtFb5SDBrUIYnpvPRIkcUV9sG/MFm3Nlpzkb39cyIC8wxlwzzl90FUaUHBDiJxE6yCEcFSqwxUmKblw6ZQ0m29z73AR3QDBJagjcVYUQTEvklhxa1mR/bq2jnHj13reNDLDcdyNGRbC/vdxU/Gfm3L+LXLU9kOhB79icon0lInJbpdyqzH663tKzXILX3xzjU4Cc812W9Aw4jZzgVRyBL2abHPQdMcituChcwRSeavjWNZzhqZXlhzvC3QUyPbdcXVBdBh6dFXO0nV0npjR6oFHq3Rj/8IysQzhdDy/c3/dTxV1C69Q39SjSnVnbZILZaaAdcAId07+z7R18coU4v0D6nXW/kytfkIgdow+oFgeU1R2L07I7uVniXa7YXpq38G/dhV9jKIr2fN2Wpwvi3bPKHdwg/stVANfdyYyvZwUYpN3sH7sw5k6yHdcnuc0QEn+d/nCECHI7TJ4uPNUKTqpZ3ilMKqziJOdeGdeSnA1fNJ4AfZczEIbB3mCM3R/E+I8eTGgqC9MDXJ5PciSO5+QpnlNencKxzTceXCsimb8oBF6jFctgDsJRnpvrThgiot7emVsI3w2N7F6f0csGwSF5XpeWfchReYae9uXOjXrz1B70j2JAuYDhXtGjSuD30S6e0w4+7ELa/B7XwZ6ns6FJHz2hxhGQqdZfPpUz2uJCJB8OCrDxqsKxHzH9HO4Vg35fPjxkGasUC99O5cawGuSY30KPSGwBneYfUyMKVzIlM59sPeZOf0cA36cdQCIPOQ3fgOTAKpL3W1+4ltASk+qon7actAc41TXfpCPBOQbKg1/utmCblE6Qn8pkCPK5ch2fzN0rDwfe6x/oMjrhfPM4X9udWxs////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////zIHEABiAAAAzgEAABoAAAAyBxAAYgAAABsCAAATAAAAMgcQAGIAAAAkAgAAPgAAADIHEABiAAAAIAIAADMAAAAyBxAAYgAAACoCAAA6AAAAMgcQAGIAAADBAQAARQAAACBhdCBsaW5lIAAAAOsDEABjAAAA9wEAACEAAADrAxAAYwAAAPsBAAAMAAAA6wMQAGMAAAACAgAAIQAAAOsDEABjAAAACwIAACoAAADrAxAAYwAAAA8CAAAsAAAA6wMQAGMAAAAUAgAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGluZi1pbmZOYU4AACMAAAAMAAAABAAAAC8AAAAwAAAAMQAAAAAAAAAAAAAAAQAAACcAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AGIFEABLAAAASQsAAA4AAAASBRAATwAAADsGAAAUAAAAEgUQAE8AAAA7BgAAIQAAABIFEABPAAAALwYAABQAAAASBRAATwAAAC8GAAAhAAAARXJyb3IAAACuBRAAXwAAAMYAAAAnAAAArgUQAF8AAABYAgAAMAAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuaXNfY2hhcl9ib3VuZGFyeShuZXdfbGVuKUVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290IE5hTiBvciArLy1pbmYpbG9uZSBsZWFkaW5nIHN1cnJvZ2F0ZSBpbiBoZXggZXNjYXBldHJhaWxpbmcgY29tbWF0cmFpbGluZyBjaGFyYWN0ZXJzdW5leHBlY3RlZCBlbmQgb2YgaGV4IGVzY2FwZXJlY3Vyc2lvbiBsaW1pdCBleGNlZWRlZDIHEABiAAAAiQIAABkAAABlbnRpdHkgbm90IGZvdW5kcGVybWlzc2lvbiBkZW5pZWRjb25uZWN0aW9uIHJlZnVzZWRjb25uZWN0aW9uIHJlc2V0aG9zdCB1bnJlYWNoYWJsZW5ldHdvcmsgdW5yZWFjaGFibGVjb25uZWN0aW9uIGFib3J0ZWRub3QgY29ubmVjdGVkYWRkcmVzcyBpbiB1c2VhZGRyZXNzIG5vdCBhdmFpbGFibGVuZXR3b3JrIGRvd25icm9rZW4gcGlwZWVudGl0eSBhbHJlYWR5IGV4aXN0c29wZXJhdGlvbiB3b3VsZCBibG9ja25vdCBhIGRpcmVjdG9yeWlzIGEgZGlyZWN0b3J5ZGlyZWN0b3J5IG5vdCBlbXB0eXJlYWQtb25seSBmaWxlc3lzdGVtIG9yIHN0b3JhZ2UgbWVkaXVtZmlsZXN5c3RlbSBsb29wIG9yIGluZGlyZWN0aW9uIGxpbWl0IChlLmcuIHN5bWxpbmsgbG9vcClzdGFsZSBuZXR3b3JrIGZpbGUgaGFuZGxlaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJpbnZhbGlkIGRhdGF0aW1lZCBvdXR3cml0ZSB6ZXJvbm8gc3RvcmFnZSBzcGFjZXNlZWsgb24gdW5zZWVrYWJsZSBmaWxlcXVvdGEgZXhjZWVkZWRmaWxlIHRvbyBsYXJnZXJlc291cmNlIGJ1c3lleGVjdXRhYmxlIGZpbGUgYnVzeWRlYWRsb2NrY3Jvc3MtZGV2aWNlIGxpbmsgb3IgcmVuYW1ldG9vIG1hbnkgbGlua3NpbnZhbGlkIGZpbGVuYW1lYXJndW1lbnQgbGlzdCB0b28gbG9uZ29wZXJhdGlvbiBpbnRlcnJ1cHRlZHVuc3VwcG9ydGVkdW5leHBlY3RlZCBlbmQgb2YgZmlsZW91dCBvZiBtZW1vcnlpbiBwcm9ncmVzc290aGVyIGVycm9ydW5jYXRlZ29yaXplZCBlcnJvcm9wZXJhdGlvbiBzdWNjZXNzZnVsAAAAAAAAAAQAAAAEAAAAMgAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAJUHEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAACVBxAAKgAAALcEAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBgQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFBgQFBgMEBQYEBQYEBQYDBAUGBAUGBAUGAwQFBgQFZS0zMjQABQBlLTMyMwAFAGUtMzIyAAUAZS0zMjEABQBlLTMyMAAFAGUtMzE5AAUAZS0zMTgABQBlLTMxNwAFAGUtMzE2AAUAZS0zMTUABQBlLTMxNAAFAGUtMzEzAAUAZS0zMTIABQBlLTMxMQAFAGUtMzEwAAUAZS0zMDkABQBlLTMwOAAFAGUtMzA3AAUAZS0zMDYABQBlLTMwNQAFAGUtMzA0AAUAZS0zMDMABQBlLTMwMgAFAGUtMzAxAAUAZS0zMDAABQBlLTI5OQAFAGUtMjk4AAUAZS0yOTcABQBlLTI5NgAFAGUtMjk1AAUAZS0yOTQABQBlLTI5MwAFAGUtMjkyAAUAZS0yOTEABQBlLTI5MAAFAGUtMjg5AAUAZS0yODgABQBlLTI4NwAFAGUtMjg2AAUAZS0yODUABQBlLTI4NAAFAGUtMjgzAAUAZS0yODIABQBlLTI4MQAFAGUtMjgwAAUAZS0yNzkABQBlLTI3OAAFAGUtMjc3AAUAZS0yNzYABQBlLTI3NQAFAGUtMjc0AAUAZS0yNzMABQBlLTI3MgAFAGUtMjcxAAUAZS0yNzAABQBlLTI2OQAFAGUtMjY4AAUAZS0yNjcABQBlLTI2NgAFAGUtMjY1AAUAZS0yNjQABQBlLTI2MwAFAGUtMjYyAAUAZS0yNjEABQBlLTI2MAAFAGUtMjU5AAUAZS0yNTgABQBlLTI1NwAFAGUtMjU2AAUAZS0yNTUABQBlLTI1NAAFAGUtMjUzAAUAZS0yNTIABQBlLTI1MQAFAGUtMjUwAAUAZS0yNDkABQBlLTI0OAAFAGUtMjQ3AAUAZS0yNDYABQBlLTI0NQAFAGUtMjQ0AAUAZS0yNDMABQBlLTI0MgAFAGUtMjQxAAUAZS0yNDAABQBlLTIzOQAFAGUtMjM4AAUAZS0yMzcABQBlLTIzNgAFAGUtMjM1AAUAZS0yMzQABQBlLTIzMwAFAGUtMjMyAAUAZS0yMzEABQBlLTIzMAAFAGUtMjI5AAUAZS0yMjgABQBlLTIyNwAFAGUtMjI2AAUAZS0yMjUABQBlLTIyNAAFAGUtMjIzAAUAZS0yMjIABQBlLTIyMQAFAGUtMjIwAAUAZS0yMTkABQBlLTIxOAAFAGUtMjE3AAUAZS0yMTYABQBlLTIxNQAFAGUtMjE0AAUAZS0yMTMABQBlLTIxMgAFAGUtMjExAAUAZS0yMTAABQBlLTIwOQAFAGUtMjA4AAUAZS0yMDcABQBlLTIwNgAFAGUtMjA1AAUAZS0yMDQABQBlLTIwMwAFAGUtMjAyAAUAZS0yMDEABQBlLTIwMAAFAGUtMTk5AAUAZS0xOTgABQBlLTE5NwAFAGUtMTk2AAUAZS0xOTUABQBlLTE5NAAFAGUtMTkzAAUAZS0xOTIABQBlLTE5MQAFAGUtMTkwAAUAZS0xODkABQBlLTE4OAAFAGUtMTg3AAUAZS0xODYABQBlLTE4NQAFAGUtMTg0AAUAZS0xODMABQBlLTE4MgAFAGUtMTgxAAUAZS0xODAABQBlLTE3OQAFAGUtMTc4AAUAZS0xNzcABQBlLTE3NgAFAGUtMTc1AAUAZS0xNzQABQBlLTE3MwAFAGUtMTcyAAUAZS0xNzEABQBlLTE3MAAFAGUtMTY5AAUAZS0xNjgABQBlLTE2NwAFAGUtMTY2AAUAZS0xNjUABQBlLTE2NAAFAGUtMTYzAAUAZS0xNjIABQBlLTE2MQAFAGUtMTYwAAUAZS0xNTkABQBlLTE1OAAFAGUtMTU3AAUAZS0xNTYABQBlLTE1NQAFAGUtMTU0AAUAZS0xNTMABQBlLTE1MgAFAGUtMTUxAAUAZS0xNTAABQBlLTE0OQAFAGUtMTQ4AAUAZS0xNDcABQBlLTE0NgAFAGUtMTQ1AAUAZS0xNDQABQBlLTE0MwAFAGUtMTQyAAUAZS0xNDEABQBlLTE0MAAFAGUtMTM5AAUAZS0xMzgABQBlLTEzNwAFAGUtMTM2AAUAZS0xMzUABQBlLTEzNAAFAGUtMTMzAAUAZS0xMzIABQBlLTEzMQAFAGUtMTMwAAUAZS0xMjkABQBlLTEyOAAFAGUtMTI3AAUAZS0xMjYABQBlLTEyNQAFAGUtMTI0AAUAZS0xMjMABQBlLTEyMgAFAGUtMTIxAAUAZS0xMjAABQBlLTExOQAFAGUtMTE4AAUAZS0xMTcABQBlLTExNgAFAGUtMTE1AAUAZS0xMTQABQBlLTExMwAFAGUtMTEyAAUAZS0xMTEABQBlLTExMAAFAGUtMTA5AAUAZS0xMDgABQBlLTEwNwAFAGUtMTA2AAUAZS0xMDUABQBlLTEwNAAFAGUtMTAzAAUAZS0xMDIABQBlLTEwMQAFAGUtMTAwAAUAZS05OQAABABlLTk4AAAEAGUtOTcAAAQAZS05NgAABABlLTk1AAAEAGUtOTQAAAQAZS05MwAABABlLTkyAAAEAGUtOTEAAAQAZS05MAAABABlLTg5AAAEAGUtODgAAAQAZS04NwAABABlLTg2AAAEAGUtODUAAAQAZS04NAAABABlLTgzAAAEAGUtODIAAAQAZS04MQAABABlLTgwAAAEAGUtNzkAAAQAZS03OAAABABlLTc3AAAEAGUtNzYAAAQAZS03NQAABABlLTc0AAAEAGUtNzMAAAQAZS03MgAABABlLTcxAAAEAGUtNzAAAAQAZS02OQAABABlLTY4AAAEAGUtNjcAAAQAZS02NgAABABlLTY1AAAEAGUtNjQAAAQAZS02MwAABABlLTYyAAAEAGUtNjEAAAQAZS02MAAABABlLTU5AAAEAGUtNTgAAAQAZS01NwAABABlLTU2AAAEAGUtNTUAAAQAZS01NAAABABlLTUzAAAEAGUtNTIAAAQAZS01MQAABABlLTUwAAAEAGUtNDkAAAQAZS00OAAABABlLTQ3AAAEAGUtNDYAAAQAZS00NQAABABlLTQ0AAAEAGUtNDMAAAQAZS00MgAABABlLTQxAAAEAGUtNDAAAAQAZS0zOQAABABlLTM4AAAEAGUtMzcAAAQAZS0zNgAABABlLTM1AAAEAGUtMzQAAAQAZS0zMwAABABlLTMyAAAEAGUtMzEAAAQAZS0zMAAABABlLTI5AAAEAGUtMjgAAAQAZS0yNwAABABlLTI2AAAEAGUtMjUAAAQAZS0yNAAABABlLTIzAAAEAGUtMjIAAAQAZS0yMQAABABlLTIwAAAEAGUtMTkAAAQAZS0xOAAABABlLTE3AAAEAGUtMTYAAAQAZS0xNQAABABlLTE0AAAEAGUtMTMAAAQAZS0xMgAABABlLTExAAAEAGUtMTAAAAQAZS05AAAAAwBlLTgAAAADAGUtNwAAAAMAZS02AAAAAwBlLTUAAAADAGUtNAAAAAMAZS0zAAAAAwBlLTIAAAADAGUtMQAAAAMAZSswAAAAAwBlKzEAAAADAGUrMgAAAAMAZSszAAAAAwBlKzQAAAADAGUrNQAAAAMAZSs2AAAAAwBlKzcAAAADAGUrOAAAAAMAZSs5AAAAAwBlKzEwAAAEAGUrMTEAAAQAZSsxMgAABABlKzEzAAAEAGUrMTQAAAQAZSsxNQAABABlKzE2AAAEAGUrMTcAAAQAZSsxOAAABABlKzE5AAAEAGUrMjAAAAQAZSsyMQAABABlKzIyAAAEAGUrMjMAAAQAZSsyNAAABABlKzI1AAAEAGUrMjYAAAQAZSsyNwAABABlKzI4AAAEAGUrMjkAAAQAZSszMAAABABlKzMxAAAEAGUrMzIAAAQAZSszMwAABABlKzM0AAAEAGUrMzUAAAQAZSszNgAABABlKzM3AAAEAGUrMzgAAAQAZSszOQAABABlKzQwAAAEAGUrNDEAAAQAZSs0MgAABABlKzQzAAAEAGUrNDQAAAQAZSs0NQAABABlKzQ2AAAEAGUrNDcAAAQAZSs0OAAABABlKzQ5AAAEAGUrNTAAAAQAZSs1MQAABABlKzUyAAAEAGUrNTMAAAQAZSs1NAAABABlKzU1AAAEAGUrNTYAAAQAZSs1NwAABABlKzU4AAAEAGUrNTkAAAQAZSs2MAAABABlKzYxAAAEAGUrNjIAAAQAZSs2MwAABABlKzY0AAAEAGUrNjUAAAQAZSs2NgAABABlKzY3AAAEAGUrNjgAAAQAZSs2OQAABABlKzcwAAAEAGUrNzEAAAQAZSs3MgAABABlKzczAAAEAGUrNzQAAAQAZSs3NQAABABlKzc2AAAEAGUrNzcAAAQAZSs3OAAABABlKzc5AAAEAGUrODAAAAQAZSs4MQAABABlKzgyAAAEAGUrODMAAAQAZSs4NAAABABlKzg1AAAEAGUrODYAAAQAZSs4NwAABABlKzg4AAAEAGUrODkAAAQAZSs5MAAABABlKzkxAAAEAGUrOTIAAAQAZSs5MwAABABlKzk0AAAEAGUrOTUAAAQAZSs5NgAABABlKzk3AAAEAGUrOTgAAAQAZSs5OQAABABlKzEwMAAFAGUrMTAxAAUAZSsxMDIABQBlKzEwMwAFAGUrMTA0AAUAZSsxMDUABQBlKzEwNgAFAGUrMTA3AAUAZSsxMDgABQBlKzEwOQAFAGUrMTEwAAUAZSsxMTEABQBlKzExMgAFAGUrMTEzAAUAZSsxMTQABQBlKzExNQAFAGUrMTE2AAUAZSsxMTcABQBlKzExOAAFAGUrMTE5AAUAZSsxMjAABQBlKzEyMQAFAGUrMTIyAAUAZSsxMjMABQBlKzEyNAAFAGUrMTI1AAUAZSsxMjYABQBlKzEyNwAFAGUrMTI4AAUAZSsxMjkABQBlKzEzMAAFAGUrMTMxAAUAZSsxMzIABQBlKzEzMwAFAGUrMTM0AAUAZSsxMzUABQBlKzEzNgAFAGUrMTM3AAUAZSsxMzgABQBlKzEzOQAFAGUrMTQwAAUAZSsxNDEABQBlKzE0MgAFAGUrMTQzAAUAZSsxNDQABQBlKzE0NQAFAGUrMTQ2AAUAZSsxNDcABQBlKzE0OAAFAGUrMTQ5AAUAZSsxNTAABQBlKzE1MQAFAGUrMTUyAAUAZSsxNTMABQBlKzE1NAAFAGUrMTU1AAUAZSsxNTYABQBlKzE1NwAFAGUrMTU4AAUAZSsxNTkABQBlKzE2MAAFAGUrMTYxAAUAZSsxNjIABQBlKzE2MwAFAGUrMTY0AAUAZSsxNjUABQBlKzE2NgAFAGUrMTY3AAUAZSsxNjgABQBlKzE2OQAFAGUrMTcwAAUAZSsxNzEABQBlKzE3MgAFAGUrMTczAAUAZSsxNzQABQBlKzE3NQAFAGUrMTc2AAUAZSsxNzcABQBlKzE3OAAFAGUrMTc5AAUAZSsxODAABQBlKzE4MQAFAGUrMTgyAAUAZSsxODMABQBlKzE4NAAFAGUrMTg1AAUAZSsxODYABQBlKzE4NwAFAGUrMTg4AAUAZSsxODkABQBlKzE5MAAFAGUrMTkxAAUAZSsxOTIABQBlKzE5MwAFAGUrMTk0AAUAZSsxOTUABQBlKzE5NgAFAGUrMTk3AAUAZSsxOTgABQBlKzE5OQAFAGUrMjAwAAUAZSsyMDEABQBlKzIwMgAFAGUrMjAzAAUAZSsyMDQABQBlKzIwNQAFAGUrMjA2AAUAZSsyMDcABQBlKzIwOAAFAGUrMjA5AAUAZSsyMTAABQBlKzIxMQAFAGUrMjEyAAUAZSsyMTMABQBlKzIxNAAFAGUrMjE1AAUAZSsyMTYABQBlKzIxNwAFAGUrMjE4AAUAZSsyMTkABQBlKzIyMAAFAGUrMjIxAAUAZSsyMjIABQBlKzIyMwAFAGUrMjI0AAUAZSsyMjUABQBlKzIyNgAFAGUrMjI3AAUAZSsyMjgABQBlKzIyOQAFAGUrMjMwAAUAZSsyMzEABQBlKzIzMgAFAGUrMjMzAAUAZSsyMzQABQBlKzIzNQAFAGUrMjM2AAUAZSsyMzcABQBlKzIzOAAFAGUrMjM5AAUAZSsyNDAABQBlKzI0MQAFAGUrMjQyAAUAZSsyNDMABQBlKzI0NAAFAGUrMjQ1AAUAZSsyNDYABQBlKzI0NwAFAGUrMjQ4AAUAZSsyNDkABQBlKzI1MAAFAGUrMjUxAAUAZSsyNTIABQBlKzI1MwAFAGUrMjU0AAUAZSsyNTUABQBlKzI1NgAFAGUrMjU3AAUAZSsyNTgABQBlKzI1OQAFAGUrMjYwAAUAZSsyNjEABQBlKzI2MgAFAGUrMjYzAAUAZSsyNjQABQBlKzI2NQAFAGUrMjY2AAUAZSsyNjcABQBlKzI2OAAFAGUrMjY5AAUAZSsyNzAABQBlKzI3MQAFAGUrMjcyAAUAZSsyNzMABQBlKzI3NAAFAGUrMjc1AAUAZSsyNzYABQBlKzI3NwAFAGUrMjc4AAUAZSsyNzkABQBlKzI4MAAFAGUrMjgxAAUAZSsyODIABQBlKzI4MwAFAGUrMjg0AAUAZSsyODUABQBlKzI4NgAFAGUrMjg3AAUAZSsyODgABQBlKzI4OQAFAGUrMjkw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",
    "moduleDigest": "67aefa66cfd60121f487a3a81e5d188082a916e43e1699231b24999f1a2b16f1",
    "description": {
      "abiVersion": 1,
      "id": "example.qap",
      "version": "1.0.0",
      "metrics": [
        {
          "name": "assignmentCost",
          "numericType": "i128",
          "direction": "minimize"
        }
      ],
      "families": [
        1
      ],
      "hooks": {
        "guidance": true,
        "repair": false,
        "recombine": true,
        "pathRelink": false,
        "features": true
      }
    }
  },
  "inputSchema": {
    "type": "object",
    "required": [
      "flow",
      "distance"
    ],
    "additionalProperties": false,
    "properties": {
      "flow": {
        "type": "array"
      },
      "distance": {
        "type": "array"
      }
    }
  },
  "defaultData": {
    "flow": [
      [
        0,
        5,
        2,
        4
      ],
      [
        5,
        0,
        3,
        1
      ],
      [
        2,
        3,
        0,
        6
      ],
      [
        4,
        1,
        6,
        0
      ]
    ],
    "distance": [
      [
        0,
        7,
        1,
        4
      ],
      [
        7,
        0,
        3,
        2
      ],
      [
        1,
        3,
        0,
        6
      ],
      [
        4,
        2,
        6,
        0
      ]
    ]
  },
  "samples": [],
  "presentation": {
    "format": "refined.math.outputs",
    "schemaVersion": 1,
    "objective": {
      "label": {
        "en": "Assignment cost",
        "sk": "Náklady priradenia"
      },
      "unit": {
        "en": "cost units",
        "sk": "nákladové jednotky"
      }
    },
    "labels": {},
    "metrics": [],
    "charts": [],
    "tables": [
      {
        "id": "assignment",
        "label": {
          "en": "Facility to location assignment",
          "sk": "Priradenie objektov k miestam"
        },
        "source": [
          "get",
          "result",
          "outputs",
          "assignment"
        ],
        "columns": [
          {
            "id": "facility",
            "label": {
              "en": "Facility (from 1)",
              "sk": "Objekt (od 1)"
            },
            "type": "number",
            "value": [
              "add",
              [
                "rowIndex"
              ],
              1
            ]
          },
          {
            "id": "location",
            "label": {
              "en": "Location (from 1)",
              "sk": "Miesto (od 1)"
            },
            "type": "number",
            "value": [
              "row"
            ]
          }
        ]
      }
    ]
  },
  "sources": [
    {
      "name": "examples/qap/Cargo.toml",
      "content": "[package]\nname = \"refined_custom_qap\"\nversion = \"1.0.0\"\nedition = \"2021\"\npublish = false\n\n[lib]\ncrate-type = [\"cdylib\"]\n\n[features]\nfrozen-operators = []\n\n[dependencies]\nrefined_adapter_sdk = { path = \"../../sdk\" }\nserde = { version = \"1\", features = [\"derive\"] }\n"
    },
    {
      "name": "examples/qap/fixtures.json",
      "content": "{\n  \"format\": \"refined.math.adapter-fixtures\",\n  \"schemaVersion\": 1,\n  \"description\": {\n    \"abiVersion\": 1,\n    \"id\": \"example.qap\",\n    \"version\": \"1.0.0\",\n    \"metrics\": [{\"name\": \"assignmentCost\", \"numericType\": \"i128\", \"direction\": \"minimize\"}],\n    \"families\": [1],\n    \"hooks\": {\"guidance\": true, \"repair\": false, \"recombine\": true, \"pathRelink\": false, \"features\": true}\n  },\n  \"cases\": [\n    {\n      \"name\": \"Asymmetric matrices with nonzero diagonals\",\n      \"data\": {\"flow\": [[1, 2], [3, 4]], \"distance\": [[5, 6], [7, 8]]},\n      \"seed\": 42,\n      \"states\": [\n        {\n          \"name\": \"Identity assignment\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"70\"]},\n          \"valid\": true,\n          \"outputs\": {\"assignment\": [1, 2], \"assignmentCost\": \"70\", \"indexBase\": 1}\n        },\n        {\n          \"name\": \"Lower-cost swapped assignment\",\n          \"state\": {\"permutation\": [1, 0]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]},\n          \"valid\": true,\n          \"outputs\": {\"assignment\": [2, 1], \"assignmentCost\": \"60\", \"indexBase\": 1}\n        }\n      ],\n      \"moves\": [\n        {\n          \"name\": \"Swap both locations\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"movement\": {\"left\": 0, \"right\": 1},\n          \"expectedState\": {\"permutation\": [1, 0]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]}\n        },\n        {\n          \"name\": \"Reject identical swap positions\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"movement\": {\"left\": 0, \"right\": 0},\n          \"expectedState\": null\n        },\n        {\n          \"name\": \"Reject an out-of-range swap\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"movement\": {\"left\": 0, \"right\": 2},\n          \"expectedState\": null\n        }\n      ],\n      \"searches\": [\n        {\n          \"name\": \"One evaluated swap improves the initial assignment\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"budget\": {\"iterations\": 1, \"evaluations\": 1},\n          \"expectedState\": {\"permutation\": [1, 0]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]},\n          \"requireChange\": true\n        },\n        {\n          \"name\": \"An already optimal assignment remains unchanged\",\n          \"state\": {\"permutation\": [1, 0]},\n          \"budget\": {\"iterations\": 1, \"evaluations\": 1},\n          \"expectedState\": {\"permutation\": [1, 0]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]}\n        }\n      ],\n      \"invalidStates\": [{\"permutation\": [0, 0]}, {\"permutation\": [0]}, {\"permutation\": [0, 2]}]\n    },\n    {\n      \"name\": \"Changed distances reverse the improving swap\",\n      \"data\": {\"flow\": [[1, 2], [3, 4]], \"distance\": [[8, 7], [6, 5]]},\n      \"seed\": 42,\n      \"states\": [\n        {\n          \"name\": \"Identity now has the lower cost\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]},\n          \"valid\": true,\n          \"outputs\": {\"assignment\": [1, 2], \"assignmentCost\": \"60\", \"indexBase\": 1}\n        },\n        {\n          \"name\": \"Swapped assignment now has the higher cost\",\n          \"state\": {\"permutation\": [1, 0]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"70\"]},\n          \"valid\": true,\n          \"outputs\": {\"assignment\": [2, 1], \"assignmentCost\": \"70\", \"indexBase\": 1}\n        }\n      ],\n      \"moves\": [\n        {\n          \"name\": \"The same swap uses the replacement data\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"movement\": {\"left\": 0, \"right\": 1},\n          \"expectedState\": {\"permutation\": [1, 0]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"70\"]}\n        },\n        {\n          \"name\": \"Reject an out-of-range left position\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"movement\": {\"left\": 2, \"right\": 0},\n          \"expectedState\": null\n        }\n      ],\n      \"searches\": [\n        {\n          \"name\": \"Search returns to identity under the replacement distances\",\n          \"state\": {\"permutation\": [1, 0]},\n          \"budget\": {\"iterations\": 1, \"evaluations\": 1},\n          \"expectedState\": {\"permutation\": [0, 1]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]},\n          \"requireChange\": true\n        },\n        {\n          \"name\": \"Identity is stable under the replacement distances\",\n          \"state\": {\"permutation\": [0, 1]},\n          \"budget\": {\"iterations\": 1, \"evaluations\": 1},\n          \"expectedState\": {\"permutation\": [0, 1]},\n          \"assessment\": {\"violations\": 0, \"metrics\": [\"60\"]}\n        }\n      ],\n      \"invalidStates\": [{\"permutation\": [1, 1]}, {\"permutation\": []}, {\"permutation\": [2, 0]}]\n    }\n  ]\n}\n"
    },
    {
      "name": "examples/qap/manifest.json",
      "content": "{\n  \"name\": {\"en\":\"Editable Rust QAP\",\"sk\":\"Upraviteľný Rust QAP\"},\n  \"description\": {\"en\":\"Assign facilities to locations using your own swap deltas, local search and recombination.\",\"sk\":\"Priraďte objekty k miestam pomocou vlastných prepočtov výmen, lokálneho vyhľadávania a kombinovania riešení.\"},\n  \"descriptionContract\": {\"abiVersion\":1,\"id\":\"example.qap\",\"version\":\"1.0.0\",\"metrics\":[{\"name\":\"assignmentCost\",\"numericType\":\"i128\",\"direction\":\"minimize\"}],\"families\":[1],\"hooks\":{\"guidance\":true,\"repair\":false,\"recombine\":true,\"pathRelink\":false,\"features\":true}},\n  \"inputSchema\": {\"type\":\"object\",\"required\":[\"flow\",\"distance\"],\"additionalProperties\":false,\"properties\":{\"flow\":{\"type\":\"array\"},\"distance\":{\"type\":\"array\"}}},\n  \"defaultData\": {\"flow\":[[0,5,2,4],[5,0,3,1],[2,3,0,6],[4,1,6,0]],\"distance\":[[0,7,1,4],[7,0,3,2],[1,3,0,6],[4,2,6,0]]},\n  \"samples\": [],\n  \"presentation\": {\"format\":\"refined.math.outputs\",\"schemaVersion\":1,\"objective\":{\"label\":{\"en\":\"Assignment cost\",\"sk\":\"Náklady priradenia\"},\"unit\":{\"en\":\"cost units\",\"sk\":\"nákladové jednotky\"}},\"labels\":{},\"metrics\":[],\"charts\":[],\"tables\":[{\"id\":\"assignment\",\"label\":{\"en\":\"Facility to location assignment\",\"sk\":\"Priradenie objektov k miestam\"},\"source\":[\"get\",\"result\",\"outputs\",\"assignment\"],\"columns\":[{\"id\":\"facility\",\"label\":{\"en\":\"Facility (from 1)\",\"sk\":\"Objekt (od 1)\"},\"type\":\"number\",\"value\":[\"add\",[\"rowIndex\"],1]},{\"id\":\"location\",\"label\":{\"en\":\"Location (from 1)\",\"sk\":\"Miesto (od 1)\"},\"type\":\"number\",\"value\":[\"row\"]}]}]}\n}\n"
    },
    {
      "name": "examples/qap/src/lib.rs",
      "content": "//! Editable QAP example with exact swap deltas and adapter-owned local search.\nuse refined_adapter_sdk::*;\nuse serde::{Deserialize, Serialize};\n\n#[derive(Deserialize)]\n#[serde(deny_unknown_fields)]\nstruct Input {\n    flow: Vec<Vec<i64>>,\n    distance: Vec<Vec<i64>>,\n}\n#[derive(Clone, Serialize, Deserialize)]\n#[serde(deny_unknown_fields)]\npub struct Assignment {\n    pub permutation: Vec<usize>,\n}\n#[derive(Clone, Serialize, Deserialize)]\n#[serde(deny_unknown_fields)]\npub struct Swap {\n    pub left: usize,\n    pub right: usize,\n}\npub struct Qap {\n    flow: Vec<Vec<i64>>,\n    distance: Vec<Vec<i64>>,\n}\nimpl Qap {\n    fn valid(&self, state: &Assignment) -> bool {\n        let n = self.flow.len();\n        state.permutation.len() == n\n            && state\n                .permutation\n                .iter()\n                .copied()\n                .collect::<std::collections::BTreeSet<_>>()\n                == (0..n).collect()\n    }\n    fn cost(&self, state: &Assignment) -> i128 {\n        let p = &state.permutation;\n        (0..p.len())\n            .flat_map(|i| {\n                (0..p.len())\n                    .map(move |j| self.flow[i][j] as i128 * self.distance[p[i]][p[j]] as i128)\n            })\n            .sum()\n    }\n    /// Cost after swapping minus cost before swapping, including asymmetric terms.\n    fn delta(&self, state: &Assignment, a: usize, b: usize) -> i128 {\n        let p = &state.permutation;\n        let (pa, pb) = (p[a], p[b]);\n        let f = |i: usize, j: usize| self.flow[i][j] as i128;\n        let d = |i: usize, j: usize| self.distance[i][j] as i128;\n        let mut delta = (f(a, a) - f(b, b)) * (d(pb, pb) - d(pa, pa))\n            + (f(a, b) - f(b, a)) * (d(pb, pa) - d(pa, pb));\n        for k in 0..p.len() {\n            if k != a && k != b {\n                delta += (f(a, k) - f(b, k)) * (d(pb, p[k]) - d(pa, p[k]))\n                    + (f(k, a) - f(k, b)) * (d(p[k], pb) - d(p[k], pa));\n            }\n        }\n        delta\n    }\n}\nimpl Adapter for Qap {\n    type State = Assignment;\n    type Move = Swap;\n    type Edge = usize;\n    fn describe() -> Description {\n        Description {\n            abi_version: 1,\n            id: \"example.qap\".into(),\n            version: \"1.0.0\".into(),\n            metrics: vec![Metric {\n                name: \"assignmentCost\".into(),\n                numeric_type: \"i128\".into(),\n                direction: \"minimize\".into(),\n            }],\n            families: vec![1],\n            hooks: Hooks {\n                guidance: true,\n                recombine: true,\n                features: true,\n                ..Hooks::default()\n            },\n        }\n    }\n    fn bind(input: Value) -> Result<Self> {\n        let input: Input = serde_json::from_value(input).map_err(|e| e.to_string())?;\n        let n = input.flow.len();\n        if !(2..=64).contains(&n)\n            || input.distance.len() != n\n            || input.flow.iter().chain(&input.distance).any(|row| {\n                row.len() != n\n                    || row\n                        .iter()\n                        .any(|x| !(-1_000_000_000..=1_000_000_000).contains(x))\n            })\n        {\n            return Err(\"Use two equally sized square integer matrices of size 2..64 with entries within +/-1e9.\".into());\n        }\n        Ok(Self {\n            flow: input.flow,\n            distance: input.distance,\n        })\n    }\n    fn initialize(&mut self, _seed: u64, _count: usize) -> Result<Vec<Assignment>> {\n        // A fixed starting point makes operator edits directly observable.\n        Ok(vec![Assignment {\n            permutation: (0..self.flow.len()).collect(),\n        }])\n    }\n    fn evaluate(&mut self, state: &Assignment) -> Result<Assessment> {\n        if !self.valid(state) {\n            return Err(\"The state is not a permutation of the locations.\".into());\n        }\n        Ok(Assessment {\n            violations: 0,\n            metrics: vec![self.cost(state).to_string()],\n        })\n    }\n    fn validate(&mut self, state: &Assignment) -> Result<Validation> {\n        let assessment = self.evaluate(state)?;\n        Ok(Validation {\n            valid: true,\n            outputs: json!({\"assignment\":state.permutation.iter().map(|i|i+1).collect::<Vec<_>>(),\"assignmentCost\":assessment.metrics[0],\"indexBase\":1}),\n            assessment,\n        })\n    }\n    fn guidance(&mut self, state: &Assignment, _: &Context) -> Result<Vec<Hint<usize>>> {\n        Ok((0..state.permutation.len())\n            .map(|i| Hint {\n                value: i,\n                priority: 1,\n                family: 1,\n                key: i as u64,\n            })\n            .collect())\n    }\n    fn moves(\n        &mut self,\n        state: &Assignment,\n        edge: Option<&usize>,\n        _: Option<u16>,\n        _: &Context,\n    ) -> Result<Vec<Hint<Swap>>> {\n        if cfg!(feature = \"frozen-operators\") {\n            return Ok(Vec::new());\n        }\n        let mut out = Vec::new();\n        for a in 0..state.permutation.len() {\n            if edge.is_some_and(|i| *i != a) {\n                continue;\n            }\n            for b in a + 1..state.permutation.len() {\n                if out.len() == 256 {\n                    return Ok(out);\n                }\n                let delta = self.delta(state, a, b);\n                out.push(Hint {\n                    value: Swap { left: a, right: b },\n                    priority: (-delta).clamp(i64::MIN as i128, i64::MAX as i128) as i64,\n                    family: 1,\n                    key: ((a as u64) << 32) | b as u64,\n                });\n            }\n        }\n        Ok(out)\n    }\n    fn apply(\n        &mut self,\n        state: &Assignment,\n        movement: &Swap,\n        _: &Context,\n    ) -> Result<Option<Assignment>> {\n        if cfg!(feature = \"frozen-operators\")\n            || movement.left >= state.permutation.len()\n            || movement.right >= state.permutation.len()\n            || movement.left == movement.right\n        {\n            return Ok(None);\n        }\n        let mut next = state.clone();\n        next.permutation.swap(movement.left, movement.right);\n        Ok(Some(next))\n    }\n    fn local_search(\n        &mut self,\n        mut state: Assignment,\n        budget: &Budget,\n        _: &Context,\n    ) -> Result<SearchResult<Assignment>> {\n        if cfg!(feature = \"frozen-operators\") {\n            return Ok(SearchResult::unchanged(state));\n        }\n        let mut work = 0;\n        let mut improvements = 0;\n        for _ in 0..budget.iterations {\n            let mut best = None;\n            'pairs: for a in 0..state.permutation.len() {\n                for b in a + 1..state.permutation.len() {\n                    if work >= budget.evaluations {\n                        break 'pairs;\n                    }\n                    work += 1;\n                    let delta = self.delta(&state, a, b);\n                    if delta < 0 && best.is_none_or(|(_, _, value)| delta < value) {\n                        best = Some((a, b, delta));\n                    }\n                }\n            }\n            let Some((a, b, _)) = best else {\n                break;\n            };\n            state.permutation.swap(a, b);\n            improvements += 1;\n            if work >= budget.evaluations {\n                break;\n            }\n        }\n        Ok(SearchResult {\n            state,\n            reported_evaluations: work,\n            reported_improvements: improvements,\n        })\n    }\n    fn perturb(\n        &mut self,\n        mut state: Assignment,\n        strength: usize,\n        seed: u64,\n        _: &Context,\n    ) -> Result<SearchResult<Assignment>> {\n        if !cfg!(feature = \"frozen-operators\") {\n            let mut rng = Random(seed);\n            for _ in 0..strength.min(64) {\n                let n = state.permutation.len();\n                let a = rng.index(n);\n                let b = rng.index(n);\n                state.permutation.swap(a, b);\n            }\n        }\n        Ok(SearchResult::unchanged(state))\n    }\n    fn recombine(\n        &mut self,\n        left: &Assignment,\n        right: &Assignment,\n        limit: usize,\n        _: &Context,\n    ) -> Result<Vec<Assignment>> {\n        if limit == 0 || cfg!(feature = \"frozen-operators\") {\n            return Ok(Vec::new());\n        }\n        let n = left.permutation.len();\n        let split = n / 2;\n        let mut permutation = left.permutation[..split].to_vec();\n        for value in &right.permutation {\n            if !permutation.contains(value) {\n                permutation.push(*value);\n            }\n        }\n        Ok(vec![Assignment { permutation }])\n    }\n    fn features(&mut self, state: &Assignment) -> Result<Vec<u64>> {\n        Ok(state\n            .permutation\n            .iter()\n            .enumerate()\n            .map(|(i, p)| ((i as u64) << 32) | *p as u64)\n            .collect())\n    }\n}\nexport_adapter!(Qap);\n"
    },
    {
      "name": "sdk/Cargo.toml",
      "content": "[package]\nname = \"refined_adapter_sdk\"\nversion = \"1.0.0\"\nedition = \"2021\"\npublish = false\ndescription = \"Public author contract for isolated Refined Math adapter modules; contains no Refined core\"\n\n[dependencies]\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\n"
    },
    {
      "name": "sdk/src/lib.rs",
      "content": "//! Author-owned algorithms for the Refined Math module ABI.\n//! This crate contains serialization and an adapter interface, not the search core.\nuse serde::{de::DeserializeOwned, Deserialize, Serialize};\npub use serde_json::{json, Value};\n\npub const ABI_VERSION: i32 = 1;\npub type Result<T> = std::result::Result<T, String>;\n\n#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Metric {\n    pub name: String,\n    pub numeric_type: String,\n    pub direction: String,\n}\n\n#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Hooks {\n    #[serde(default)] pub guidance: bool,\n    #[serde(default)] pub repair: bool,\n    #[serde(default)] pub recombine: bool,\n    #[serde(default)] pub path_relink: bool,\n    #[serde(default)] pub features: bool,\n}\n\n#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Description {\n    pub abi_version: u32,\n    pub id: String,\n    pub version: String,\n    pub metrics: Vec<Metric>,\n    pub families: Vec<u16>,\n    pub hooks: Hooks,\n}\n\n#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Assessment {\n    pub violations: u64,\n    /// Exact integers or finite real values encoded as decimal strings.\n    pub metrics: Vec<String>,\n}\n\n#[derive(Clone, Debug, Serialize, Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Validation {\n    pub valid: bool,\n    pub assessment: Assessment,\n    pub outputs: Value,\n}\n\n#[derive(Clone, Debug, Default, Serialize, Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Context {\n    pub run_index: usize,\n    pub iteration: usize,\n    pub candidate_index: usize,\n    pub stagnation: usize,\n    pub phase: String,\n    pub seed: u64,\n}\n\n#[derive(Clone, Debug, Serialize, Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Budget {\n    pub iterations: usize,\n    /// A requested author-side bound. The host separately enforces Wasm fuel.\n    pub evaluations: usize,\n}\n\n#[derive(Clone, Debug, Serialize, Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Hint<T> {\n    pub value: T,\n    pub priority: i64,\n    pub family: u16,\n    /// Domain-specific learning identifier, independent of transient addresses.\n    pub key: u64,\n}\n\n#[derive(Clone, Debug, Serialize, Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct SearchResult<S> {\n    pub state: S,\n    /// Author-reported internal work, distinct from host-checked evaluations.\n    pub reported_evaluations: usize,\n    pub reported_improvements: usize,\n}\nimpl<S> SearchResult<S> {\n    pub fn unchanged(state: S) -> Self {\n        Self { state, reported_evaluations: 0, reported_improvements: 0 }\n    }\n}\n\n/// An adapter owns its representations, operators and complete local-search loop.\n/// Optional hooks are invoked only when declared by `describe`.\n/// Caches can live in `Self`; final validation is performed in a fresh instance.\npub trait Adapter: Sized + Send + 'static {\n    type State: Clone + Serialize + DeserializeOwned;\n    type Move: Clone + Serialize + DeserializeOwned;\n    type Edge: Clone + Serialize + DeserializeOwned;\n    fn describe() -> Description;\n    fn bind(input: Value) -> Result<Self>;\n    fn initialize(&mut self, seed: u64, count: usize) -> Result<Vec<Self::State>>;\n    fn evaluate(&mut self, state: &Self::State) -> Result<Assessment>;\n    fn validate(&mut self, state: &Self::State) -> Result<Validation>;\n    fn guidance(&mut self, _state: &Self::State, _context: &Context) -> Result<Vec<Hint<Self::Edge>>> { Ok(Vec::new()) }\n    fn moves(&mut self, state: &Self::State, edge: Option<&Self::Edge>, family: Option<u16>, context: &Context) -> Result<Vec<Hint<Self::Move>>>;\n    fn apply(&mut self, state: &Self::State, movement: &Self::Move, context: &Context) -> Result<Option<Self::State>>;\n    fn local_search(&mut self, state: Self::State, budget: &Budget, context: &Context) -> Result<SearchResult<Self::State>>;\n    fn perturb(&mut self, state: Self::State, strength: usize, seed: u64, context: &Context) -> Result<SearchResult<Self::State>>;\n    fn repair(&mut self, _state: &Self::State, _limit: usize, _context: &Context) -> Result<Vec<Self::State>> { Ok(Vec::new()) }\n    fn recombine(&mut self, _left: &Self::State, _right: &Self::State, _limit: usize, _context: &Context) -> Result<Vec<Self::State>> { Ok(Vec::new()) }\n    fn path_relink(&mut self, _left: &Self::State, _right: &Self::State, _limit: usize, _context: &Context) -> Result<Vec<Self::State>> { Ok(Vec::new()) }\n    fn features(&mut self, _state: &Self::State) -> Result<Vec<u64>> { Ok(Vec::new()) }\n}\n\nfn decode<T: DeserializeOwned>(value: Value) -> Result<T> { serde_json::from_value(value).map_err(|e| e.to_string()) }\nfn encode<T: Serialize>(value: T) -> Result<Value> { serde_json::to_value(value).map_err(|e| e.to_string()) }\n\n/// Shared protocol machinery, deliberately independent of the Refined engine.\npub fn dispatch<A: Adapter>(bound: &mut Option<A>, operation: u32, request: Value) -> Result<Value> {\n    if operation == 0 { return encode(A::describe()); }\n    if operation == 1 { *bound = Some(A::bind(request[\"data\"].clone())?); return Ok(json!({\"bound\":true})); }\n    let adapter = bound.as_mut().ok_or(\"The adapter is not bound to data.\")?;\n    if operation == 2 { return encode(adapter.initialize(decode(request[\"seed\"].clone())?, decode(request[\"count\"].clone())?)?); }\n    let state: A::State = decode(request[\"state\"].clone())?;\n    if operation == 3 { return encode(adapter.evaluate(&state)?); }\n    if operation == 4 { return encode(adapter.validate(&state)?); }\n    if operation == 12 { return encode(adapter.features(&state)?); }\n    let context: Context = decode(request[\"context\"].clone())?;\n    match operation {\n        5 => encode(adapter.guidance(&state, &context)?),\n        6 => {\n            let edge: Option<A::Edge> = decode(request[\"edge\"].clone())?;\n            encode(adapter.moves(&state, edge.as_ref(), decode(request[\"family\"].clone())?, &context)?)\n        }\n        7 => encode(adapter.apply(&state, &decode(request[\"movement\"].clone())?, &context)?),\n        8 => encode(adapter.local_search(state, &decode(request[\"budget\"].clone())?, &context)?),\n        9 => encode(adapter.perturb(state, decode(request[\"strength\"].clone())?, decode(request[\"seed\"].clone())?, &context)?),\n        10 => encode(adapter.repair(&state, decode(request[\"limit\"].clone())?, &context)?),\n        11 => encode(adapter.recombine(&state, &decode(request[\"other\"].clone())?, decode(request[\"limit\"].clone())?, &context)?),\n        13 => encode(adapter.path_relink(&state, &decode(request[\"other\"].clone())?, decode(request[\"limit\"].clone())?, &context)?),\n        _ => Err(\"Unsupported adapter operation.\".into()),\n    }\n}\n\n/// Export the bounded linear-memory ABI from one cdylib crate.\n/// The memory operations below run inside the guest's isolated memory only.\n#[macro_export]\nmacro_rules! export_adapter {\n    ($adapter:ty) => {\n        static ADAPTER: std::sync::Mutex<Option<$adapter>> = std::sync::Mutex::new(None);\n        #[no_mangle]\n        pub extern \"C\" fn refined_adapter_abi() -> i32 { $crate::ABI_VERSION }\n        #[no_mangle]\n        pub extern \"C\" fn refined_adapter_alloc(length: u32) -> u32 {\n            if length == 0 || length > 1_048_576 { return 0; }\n            Box::into_raw(vec![0u8; length as usize].into_boxed_slice()) as *mut u8 as u32\n        }\n        #[no_mangle]\n        pub unsafe extern \"C\" fn refined_adapter_free(pointer: u32, length: u32) {\n            if pointer != 0 && length != 0 {\n                drop(Box::from_raw(std::ptr::slice_from_raw_parts_mut(pointer as *mut u8, length as usize)));\n            }\n        }\n        #[no_mangle]\n        pub unsafe extern \"C\" fn refined_adapter_call(operation: u32, pointer: u32, length: u32) -> u64 {\n            let response = if pointer == 0 || length == 0 || length > 1_048_576 {\n                Err(\"Invalid request buffer.\".to_string())\n            } else {\n                let bytes = std::slice::from_raw_parts(pointer as *const u8, length as usize);\n                $crate::serde_json::from_slice(bytes).map_err(|e| e.to_string()).and_then(|request| {\n                    let mut bound = ADAPTER.lock().map_err(|_| \"Adapter state is unavailable.\".to_string())?;\n                    $crate::dispatch::<$adapter>(&mut *bound, operation, request)\n                })\n            };\n            let envelope = match response {\n                Ok(value) => $crate::json!({\"ok\":true,\"result\":value}),\n                Err(error) => $crate::json!({\"ok\":false,\"error\":error}),\n            };\n            let bytes = $crate::serde_json::to_vec(&envelope).unwrap_or_default();\n            if bytes.is_empty() || bytes.len() > 1_048_576 { return 0; }\n            let length = bytes.len() as u32;\n            let pointer = Box::into_raw(bytes.into_boxed_slice()) as *mut u8 as u32;\n            ((pointer as u64) << 32) | length as u64\n        }\n    };\n}\n\n#[doc(hidden)]\npub use serde_json;\n\n/// Public deterministic random stream for adapter-owned choices.\n/// This is a SplitMix64 utility, not the core's private learning/search policy.\npub struct Random(pub u64);\nimpl Random {\n    pub fn next_u64(&mut self) -> u64 {\n        self.0 = self.0.wrapping_add(0x9e3779b97f4a7c15);\n        let mut z = self.0;\n        z = (z ^ (z >> 30)).wrapping_mul(0xbf58476d1ce4e5b9);\n        z = (z ^ (z >> 27)).wrapping_mul(0x94d049bb133111eb);\n        z ^ (z >> 31)\n    }\n    pub fn index(&mut self, length: usize) -> usize { if length == 0 { 0 } else { (self.next_u64() % length as u64) as usize } }\n}\n"
    },
    {
      "name": "checker/Cargo.toml",
      "content": "[package]\nname = \"refined_adapter_checker\"\nversion = \"1.0.0\"\nedition = \"2021\"\npublish = false\ndescription = \"Portable, bounded author-fixture checks for compiled adapter modules; no Refined dependency\"\n\n[dependencies]\nrefined_adapter_sdk = { path = \"../sdk\" }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\nwasmi = \"=2.0.0\"\nsha2 = \"0.10\"\nbase64 = \"0.22\"\n\n[dev-dependencies]\nwat = \"1\"\n"
    },
    {
      "name": "checker/FIXTURES.md",
      "content": "# Author fixture contract\n\nThe portable checker runs the actual author-built Wasm module through the public adapter ABI. It has no Refined dependency. These fixtures check author evaluation, validation, moves and bounded local-search callbacks. They do not execute a Refined calculation, measure Refined search quality, or turn author validation into a mathematical proof.\n\nThe examples include [QAP fixtures](../examples/qap/fixtures.json) and [least-squares fixtures](../examples/weighted-fit/fixtures.json). Keep expected answers independently calculated from the declared mathematical problem. Do not obtain the only expected score by calling the same module that will be checked.\n\n## Document shape\n\n```json\n{\n  \"format\": \"refined.math.adapter-fixtures\",\n  \"schemaVersion\": 1,\n  \"description\": {\n    \"abiVersion\": 1,\n    \"id\": \"example.adapter\",\n    \"version\": \"1.0.0\",\n    \"metrics\": [{\"name\": \"cost\", \"numericType\": \"i128\", \"direction\": \"minimize\"}],\n    \"families\": [1],\n    \"hooks\": {\"guidance\": false, \"repair\": false, \"recombine\": false, \"pathRelink\": false, \"features\": false}\n  },\n  \"cases\": [{\n    \"name\": \"A named dataset\",\n    \"data\": {},\n    \"seed\": 42,\n    \"states\": [],\n    \"moves\": [],\n    \"searches\": [],\n    \"invalidStates\": []\n  }]\n}\n```\n\n`description` must match the executable description, including metric order, objective directions, operator families and declared optional hooks. It is the same contract as the example manifest's `descriptionContract`. Every case and each entry in `states`, `moves` and `searches` has a descriptive `name`. States, movements and data are ordinary JSON values for the author's representation; they contain no executable expressions or reference-language shortcuts. Unknown fixture fields are rejected.\n\n| Case field | Meaning |\n| --- | --- |\n| `name` | Identifies the dataset and appears in diagnostics. |\n| `data` | Complete input passed to the module's bind operation. |\n| `seed` | Deterministic author-callback seed; use integers representable exactly in the tools producing the JSON. |\n| `tolerance` | Optional finite nonnegative `absolute` and `relative` tolerances for real metrics and numeric values in expected states/outputs. |\n| `states` | Independently known evaluations and validation expectations. |\n| `moves` | Explicit operator transitions and expected accepted/rejected outcomes. |\n| `searches` | Bounded author local-search calls with expected final assessments. |\n| `invalidStates` | Raw JSON states that evaluation or validation must reject. These are not named wrapper records. |\n\nA state fixture has `name`, `state`, `assessment` and `valid`, plus an optional `outputs` object. An assessment has `violations` and a `metrics` array in description order. Expected outputs are a subset of the validation output object; include concrete arrays and values when the result has useful domain meaning.\n\n```json\n{\n  \"name\": \"Known assignment\",\n  \"state\": {\"permutation\": [0, 1]},\n  \"assessment\": {\"violations\": 0, \"metrics\": [\"70\"]},\n  \"valid\": true,\n  \"outputs\": {\"assignment\": [1, 2], \"assignmentCost\": \"70\", \"indexBase\": 1}\n}\n```\n\nA move fixture has `name`, `state`, `movement` and `expectedState`. Use `expectedState: null` only when the operation must reject the move. A valid move may legitimately return the same state. Optional `assessment` checks an accepted result's score against a known value.\n\nA search fixture has `name`, `state`, `budget` and `assessment`. `budget` contains the author's `iterations` and `evaluations` limits. Optional `expectedState` fixes the expected returned representation; optional `requireChange: true` also requires a changed state. Change detection compares numeric state values exactly, independently of reference tolerance: `0` versus `0.0` is not a change, while a genuine small real change still is. A positive improving search case exposes a frozen or replaced operator even when initialization and evaluation still work. A matching final score alone is insufficient when a particular transition is part of the intended algorithm.\n\nThe checker also inspects automatic initialization, generated moves and declared optional-hook results for bounded, well-formed states and compatible assessments. Only listed expected states, transitions and scores provide an independent answer for that behavior. Structural checks on arbitrary generated states do not supply a general mathematical oracle.\n\nInitialization requests three states and accepts one to three. The same seed must reproduce them in a fresh instance. Automatically returned candidates must pass fresh author validation; an explicit state fixture may instead require `valid: false`. Automatic operator probes use a validated initialization seed, so reordering reference states cannot feed an explicitly invalid state into those probes. Contexts use the runtime phase name `Scout`, the case seed and zeroed run/iteration/candidate/stagnation indices. Of at most 256 generated moves, the checker applies only the first eight. Guided-edge proposals are checked for their declared families and bounded shape. Optional candidate hooks are called with a limit of two and may return an empty batch. These sampled checks do not exhaust a neighborhood or establish operator quality. Every initial or repeated data bind must acknowledge exactly `{\"bound\":true}`.\n\nSuites contain 1..16 uniquely named cases. Each case has 1..32 state references, at most 32 move checks, eight local-search checks and eight invalid states. Names are 1..120 bytes; state/movement values are at most 64 KiB and case data at most 100,000 bytes. Local fixture budgets permit at most 1,000 iterations and 10,000 author evaluations. Default absolute and relative tolerances are both `1e-9`; each declared tolerance must lie in `0..0.001`. Exact integer metrics never use tolerance. Fixture files are limited to 1 MiB.\n\nThe standalone interpreter rejects start functions and host imports, limits linear memory to 32 MiB per instance, and meters setup, allocation, callbacks and cleanup. A call may consume at most 50 million fuel units; the complete suite has 500 million. Calls reserve their full allowance before entry, so a suite can finish with unused fuel when the remaining amount cannot fund another complete call. Fresh-instance setup reserves three call allowances. Reports count actual consumed fuel, including failed setup/bind attempts, rather than those reservations. `guestCalls` includes ABI-version, description and binding calls; allocation/free work consumes fuel within those calls.\n\n## Numeric meaning\n\nAll metric values are decimal strings, including `\"70\"` for an exact integer and `\"0.09375\"` for a real value. Use `i128` metrics for exact integer objectives; the checker compares them exactly without converting through a floating-point number. Real metric strings must decode to finite values. Approximate comparisons use the case's explicit tolerances; do not widen tolerances merely to conceal an incorrect algorithm. Nonmetric strings, object keys, array lengths, and Boolean values retain their ordinary JSON meaning. A numeric-looking output string is still a string, so write its expected representation as returned by the author module.\n\nState/metric checks are repeated and compared with validation in a newly instantiated module bound to the same data. Repeated, fresh and validator scores must agree exactly after parsing their numeric type, with signed zero normalized; fixture tolerance applies only to independent expected values. This detects scores that depend on stale guest state or previous callback order, including real-valued drift smaller than the reference tolerance. Separate datasets in one fixture document exercise reuse of the same executable with different input. A fresh instance checks cache independence; it does not make the author's own validator an independent verifier of arbitrary problem semantics.\n\nReported author evaluations describe internal work. They differ from checker evaluations and private host counters. A perturbation may change a state while reporting zero scored evaluations. Do not infer that a zero-work report means the returned state is unchanged.\n\n## Independent QAP calculation\n\nFor a zero-based permutation `p`, calculate the complete directed objective\n\n```text\nC(p) = sum_i sum_j flow[i][j] * distance[p[i]][p[j]].\n```\n\nInclude both directions and diagonal terms. The first fixture uses\n\n```text\nflow     = [[1, 2], [3, 4]]\ndistance = [[5, 6], [7, 8]]\nC([0,1]) = 1*5 + 2*6 + 3*7 + 4*8 = 70\nC([1,0]) = 1*8 + 2*7 + 3*6 + 4*5 = 60\n```\n\nThere are only two valid permutations, so this enumerates the full domain. One improving swap takes the initial identity to cost 60. Replacing distance with `[[8,7],[6,5]]` reverses the two costs: identity costs 60 and the swapped assignment costs 70. The same representation therefore has different checked scores under the two inputs. The author's exported assignment uses one-based locations, while its internal permutation is zero-based.\n\nThe example's `frozen-operators` feature keeps evaluation and initialization but disables moves, application, local search, perturbation and recombination. It must fail the active fixture's improving transition/search expectations. A different module digest or successful instantiation alone does not demonstrate a changed algorithm.\n\n## Independent least-squares calculation\n\nBoth datasets use\n\n```text\nA = [[1,0], [1,1], [0,1]], bounds [-10,10].\nr(x,y) = [x-t0, x+y-t1, y-t2]\nSSE(x,y) = (x-t0)^2 + (x+y-t1)^2 + (y-t2)^2.\n```\n\nThe example is ordinary squared-residual minimization; there is no separate row-weight input. The correlated columns exercise incremental residual maintenance across coordinate updates. For one coordinate sweep, first minimize in `x` holding `y` fixed, then minimize in `y` using the newly updated `x`:\n\n```text\nx_next = clamp((t0 + t1 - y) / 2, lower, upper)\ny_next = clamp((t1 + t2 - x_next) / 2, lower, upper).\n```\n\nEach complete sweep consumes two author evaluations for this two-column input. The fixture uses one sweep with budget `{iterations:1,evaluations:2}` and two sweeps with `{iterations:2,evaluations:4}`.\n\n| Targets | Initial state / SSE | First sweep / SSE | Second sweep / SSE | Exact zero-residual state |\n| --- | --- | --- | --- | --- |\n| `[1,3,2]` | `[0,0]` / 14 | `[2,1.5]` / 1.5 | `[1.25,1.875]` / 0.09375 | `[1,2]` |\n| `[2,1,-1]` | `[0,0]` / 6 | `[1.5,-0.75]` / 0.375 | `[1.875,-0.9375]` / 0.0234375 | `[2,-1]` |\n\nAll coordinates and scores in this table are dyadic and exactly representable in binary floating point. The explicit half-unit move from `[0,0]` to `[0.5,0]` has SSE 10.5 for the first dataset and 3.5 for the second. Clamping a move from `[9.5,0]` by `+1` returns `[10,0]`, with SSE 134 and 146 respectively. Bounds or dimension violations must be rejected even if a residual could otherwise be computed.\n\nThe independently calculated zero residual establishes these tiny examples' minimum because a sum of squares is nonnegative. The checker still reports author-module behavior and fixture checks; it does not report a private Refined optimum certificate or a general theorem about other datasets.\n"
    },
    {
      "name": "checker/src/guest.rs",
      "content": "//! Standalone execution of an author's compiled module through the public SDK ABI.\n//! This module has no dependency on the Refined engine or the application host.\n\nuse refined_adapter_sdk::Description;\nuse serde_json::{json, Value};\nuse sha2::{Digest, Sha256};\nuse std::collections::BTreeSet;\nuse wasmi::{Config, Engine, Linker, Memory, Store, StoreLimits, StoreLimitsBuilder, TypedFunc};\n\npub const MAX_MODULE_BYTES: usize = 512 * 1024;\npub const MAX_MESSAGE_BYTES: usize = 128 * 1024;\npub const MAX_CALL_FUEL: u64 = 50_000_000;\npub const MAX_GUEST_FUEL: u64 = 500_000_000;\nconst MAX_ERROR_CHARS: usize = 1000;\n\nfn message(text: impl AsRef<str>) -> String {\n    text.as_ref().chars().take(MAX_ERROR_CHARS).collect()\n}\n\nfn operation_error(operation: u32, stage: &str, error: impl std::fmt::Display) -> String {\n    message(format!(\"Operation {operation}: {stage}: {error}\"))\n}\n\nfn check_description(description: &Description) -> Result<(), String> {\n    let token = |text: &str, limit: usize| {\n        !text.is_empty()\n            && text.len() <= limit\n            && text.bytes().all(|byte| byte.is_ascii_alphanumeric() || b\"_.-\".contains(&byte))\n    };\n    if description.abi_version != 1 {\n        return Err(\"Description.abiVersion must be 1.\".into());\n    }\n    if !token(&description.id, 96) || !token(&description.version, 64) {\n        return Err(\"Description id/version must be bounded ASCII letters, digits, underscores, dots or hyphens.\".into());\n    }\n    if !(1..=8).contains(&description.metrics.len()) {\n        return Err(\"Description.metrics must contain one to eight objectives.\".into());\n    }\n    let mut names = BTreeSet::new();\n    for (index, metric) in description.metrics.iter().enumerate() {\n        if !token(&metric.name, 64) || !names.insert(&metric.name) {\n            return Err(format!(\"Description.metrics[{index}].name must be a unique bounded ASCII token.\"));\n        }\n        if !matches!(metric.numeric_type.as_str(), \"i128\" | \"f64\") {\n            return Err(format!(\"Description.metrics[{index}].numericType must be i128 or f64.\"));\n        }\n        if !matches!(metric.direction.as_str(), \"minimize\" | \"maximize\") {\n            return Err(format!(\"Description.metrics[{index}].direction must be minimize or maximize.\"));\n        }\n    }\n    if !(1..=32).contains(&description.families.len())\n        || description.families.iter().collect::<BTreeSet<_>>().len() != description.families.len()\n    {\n        return Err(\"Description.families must contain one to 32 distinct u16 identifiers.\".into());\n    }\n    Ok(())\n}\n\n/// The digest identifies the exact original bytes executed by this checker.\npub struct Module {\n    pub description: Description,\n    pub digest: String,\n    engine: Engine,\n    compiled: wasmi::Module,\n}\n\nimpl Module {\n    pub fn from_bytes(bytes: &[u8], expected: Description) -> Result<Self, String> {\n        check_description(&expected)?;\n        if bytes.len() > MAX_MODULE_BYTES || !bytes.starts_with(b\"\\0asm\\x01\\0\\0\\0\") {\n            return Err(\"Expected an unmodified WebAssembly v1 module of at most 512 KiB.\".into());\n        }\n        let mut configuration = Config::default();\n        configuration.consume_fuel(true).allow_start_fn(false);\n        let engine = Engine::new(&configuration);\n        let compiled = wasmi::Module::new(&engine, bytes)\n            .map_err(|error| message(format!(\"Cannot validate module (start functions are forbidden): {error}\")))?;\n        if compiled.imports().next().is_some() {\n            return Err(\"Module imports are forbidden, including WASI, filesystem and host services.\".into());\n        }\n        Ok(Self {\n            description: expected,\n            digest: format!(\"{:x}\", Sha256::digest(bytes)),\n            engine,\n            compiled,\n        })\n    }\n\n    /// Instantiate the original executable with fresh state and independent limits.\n    #[cfg(test)]\n    pub fn open(&self, data: &Value) -> Result<Guest, String> {\n        self.open_metered(data, &mut (0, 0))\n    }\n\n    /// Return actual setup/admission work even when no usable instance is returned.\n    /// Calls count ABI-version and protocol attempts; allocation/free consume fuel.\n    pub fn open_metered(&self, data: &Value, usage: &mut (u64, u64)) -> Result<Guest, String> {\n        *usage = (0, 0);\n        let limits = StoreLimitsBuilder::new()\n            .memory_size(32 * 1024 * 1024)\n            .table_elements(8192)\n            .memories(1)\n            .tables(1)\n            .instances(1)\n            .trap_on_grow_failure(true)\n            .build();\n        let mut store = Store::new(&self.engine, limits);\n        store.limiter(|limits| limits);\n        store.set_fuel(MAX_CALL_FUEL).map_err(|error| message(format!(\"Cannot meter module setup: {error}\")))?;\n        let mut setup_calls = 0;\n        let exports: Result<_, String> = (|| {\n            let linker = Linker::<StoreLimits>::new(&self.engine);\n            let instance = linker.instantiate_and_start(&mut store, &self.compiled)\n                .map_err(|error| message(format!(\"Cannot instantiate module within its memory/table limits: {error}\")))?;\n            let memory = instance.get_memory(&store, \"memory\")\n                .ok_or_else(|| \"The module must export its linear memory as memory.\".to_string())?;\n            let abi = instance.get_typed_func::<(), i32>(&store, \"refined_adapter_abi\")\n                .map_err(|error| message(format!(\"ABI export must have signature () -> i32: {error}\")))?;\n            setup_calls += 1;\n            let version = abi.call(&mut store, ())\n                .map_err(|error| message(format!(\"ABI version call failed within the setup allowance: {error}\")))?;\n            if version != 1 {\n                return Err(\"The executable ABI version must be 1.\".into());\n            }\n            let allocate = instance.get_typed_func::<i32, i32>(&store, \"refined_adapter_alloc\")\n                .map_err(|error| message(format!(\"Allocation export must have signature (i32) -> i32: {error}\")))?;\n            let release = instance.get_typed_func::<(i32, i32), ()>(&store, \"refined_adapter_free\")\n                .map_err(|error| message(format!(\"Release export must have signature (i32, i32) -> (): {error}\")))?;\n            let invoke = instance.get_typed_func::<(i32, i32, i32), i64>(&store, \"refined_adapter_call\")\n                .map_err(|error| message(format!(\"Call export must have signature (i32, i32, i32) -> i64: {error}\")))?;\n            Ok((memory, allocate, release, invoke))\n        })();\n        let setup_fuel = MAX_CALL_FUEL.saturating_sub(store.get_fuel().unwrap_or(0));\n        *usage = (setup_fuel, setup_calls);\n        let (memory, allocate, release, invoke) = exports?;\n        let mut guest = Guest {\n            store,\n            memory,\n            allocate,\n            release,\n            invoke,\n            fuel_used: setup_fuel,\n            calls: setup_calls,\n        };\n        let admission: Result<(), String> = (|| {\n            let actual: Description = serde_json::from_value(guest.call(0, &json!({}))?)\n                .map_err(|error| message(format!(\"Operation 0 returned an invalid executable description: {error}\")))?;\n            check_description(&actual)?;\n            if actual != self.description {\n                return Err(\"The executable description does not exactly match the fixture or package description.\".into());\n            }\n            let binding = guest.call(1, &json!({\"data\": data}))?;\n            if binding != json!({\"bound\": true}) {\n                return Err(\"Operation 1 must acknowledge data binding with {\\\"bound\\\":true}.\".into());\n            }\n            Ok(())\n        })();\n        *usage = (guest.fuel_used(), guest.calls());\n        admission?;\n        Ok(guest)\n    }\n}\n\n/// One isolated adapter instance. All guest calls, including cleanup, consume fuel.\npub struct Guest {\n    store: Store<StoreLimits>,\n    memory: Memory,\n    allocate: TypedFunc<i32, i32>,\n    release: TypedFunc<(i32, i32), ()>,\n    invoke: TypedFunc<(i32, i32, i32), i64>,\n    fuel_used: u64,\n    calls: u64,\n}\n\nimpl Guest {\n    pub fn fuel_used(&self) -> u64 { self.fuel_used }\n    pub fn calls(&self) -> u64 { self.calls }\n\n    pub fn call(&mut self, operation: u32, request: &Value) -> Result<Value, String> {\n        let bytes = serde_json::to_vec(request)\n            .map_err(|error| operation_error(operation, \"cannot serialize request\", error))?;\n        if bytes.is_empty() || bytes.len() > MAX_MESSAGE_BYTES {\n            return Err(format!(\"Operation {operation}: request exceeds the 128 KiB message limit.\"));\n        }\n        let allowance = MAX_CALL_FUEL.min(MAX_GUEST_FUEL.saturating_sub(self.fuel_used));\n        if allowance == 0 {\n            return Err(format!(\"Operation {operation}: the instance's 500 million fuel allowance is exhausted.\"));\n        }\n        self.store.set_fuel(allowance)\n            .map_err(|error| operation_error(operation, \"cannot set fuel allowance\", error))?;\n        self.calls += 1;\n        let result = self.exchange(operation, &bytes);\n        let remaining = self.store.get_fuel().unwrap_or(0);\n        self.fuel_used = self.fuel_used.saturating_add(allowance.saturating_sub(remaining));\n        result\n    }\n\n    fn exchange(&mut self, operation: u32, bytes: &[u8]) -> Result<Value, String> {\n        let pointer = self.allocate.call(&mut self.store, bytes.len() as i32)\n            .map_err(|error| operation_error(operation, \"allocation trapped or exhausted fuel\", error))?;\n        let start = pointer as u32 as usize;\n        let input_end = start.checked_add(bytes.len())\n            .filter(|end| start != 0 && *end <= self.memory.data(&self.store).len())\n            .ok_or_else(|| format!(\"Operation {operation}: allocator returned an invalid request span.\"))?;\n        let mut response_allocation = None;\n        let result = (|| {\n            self.memory.write(&mut self.store, start, bytes)\n                .map_err(|error| operation_error(operation, \"cannot write request memory\", error))?;\n            let packed = self.invoke.call(&mut self.store, (operation as i32, pointer, bytes.len() as i32))\n                .map_err(|error| operation_error(operation, \"guest call trapped or exhausted fuel\", error))? as u64;\n            let response_start = (packed >> 32) as usize;\n            let response_length = (packed & u64::from(u32::MAX)) as usize;\n            let response_end = response_start.checked_add(response_length)\n                .ok_or_else(|| format!(\"Operation {operation}: response address overflow.\"))?;\n            if response_start == 0 || response_length == 0 || response_length > MAX_MESSAGE_BYTES\n                || response_end > self.memory.data(&self.store).len()\n                || (response_start < input_end && start < response_end)\n            {\n                return Err(format!(\"Operation {operation}: response span is outside memory, overlaps its request or exceeds 128 KiB.\"));\n            }\n            response_allocation = Some((response_start as u32 as i32, response_length as i32));\n            let mut output = vec![0; response_length];\n            self.memory.read(&self.store, response_start, &mut output)\n                .map_err(|error| operation_error(operation, \"cannot read response memory\", error))?;\n            let envelope: Value = serde_json::from_slice(&output)\n                .map_err(|error| operation_error(operation, \"response is not valid UTF-8 JSON\", error))?;\n            let fields = envelope.as_object()\n                .ok_or_else(|| format!(\"Operation {operation}: response envelope must be an object.\"))?;\n            match fields.get(\"ok\") {\n                Some(Value::Bool(true)) if fields.len() == 2 && fields.contains_key(\"result\") => {\n                    Ok(fields[\"result\"].clone())\n                }\n                Some(Value::Bool(false)) if fields.len() == 2 && fields.get(\"error\").is_some_and(Value::is_string) => {\n                    Err(message(format!(\"AUTHOR_REJECTED: operation {operation}: {}\", fields[\"error\"].as_str().unwrap_or_default())))\n                }\n                _ => Err(format!(\"Operation {operation}: response must contain exactly ok/result or ok/error with a string error.\")),\n            }\n        })();\n        // Release only spans whose bounds and exclusive ownership were checked.\n        // A trap can prevent cleanup; dropping this isolated store releases its memory.\n        let response_cleanup = response_allocation.and_then(|span| self.release.call(&mut self.store, span).err());\n        let request_cleanup = self.release.call(&mut self.store, (pointer, bytes.len() as i32)).err();\n        if let Some(error) = response_cleanup.or(request_cleanup) {\n            // A cleanup trap must never masquerade as an expected author rejection.\n            return Err(operation_error(operation, \"buffer cleanup trapped or exhausted fuel\", error));\n        }\n        result\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    fn description() -> Description {\n        serde_json::from_value(json!({\n            \"abiVersion\": 1, \"id\": \"checker.fixture\", \"version\": \"1.0.0\",\n            \"metrics\": [{\"name\": \"cost\", \"numericType\": \"i128\", \"direction\": \"minimize\"}],\n            \"families\": [1], \"hooks\": {}\n        })).unwrap()\n    }\n\n    fn escaped(bytes: &[u8]) -> String {\n        bytes.iter().map(|byte| format!(\"\\\\{byte:02x}\")).collect()\n    }\n\n    fn module_with(response: &str, default_call: Option<&str>, free: &str, pages: usize) -> Vec<u8> {\n        let description = serde_json::to_vec(&json!({\"ok\": true, \"result\": description()})).unwrap();\n        let binding = br#\"{\"ok\":true,\"result\":{\"bound\":true}}\"#;\n        let result = ((4096_u64 << 32) | response.len() as u64).to_string();\n        let default_call = default_call.map(str::to_owned).unwrap_or_else(|| format!(\"i64.const {result}\"));\n        wat::parse_str(format!(r#\"(module\n            (memory (export \"memory\") {pages})\n            (data (i32.const 1024) \"{}\")\n            (data (i32.const 2048) \"{}\")\n            (data (i32.const 4096) \"{}\")\n            (func (export \"refined_adapter_abi\") (result i32) i32.const 1)\n            (func (export \"refined_adapter_alloc\") (param i32) (result i32) i32.const 64)\n            (func (export \"refined_adapter_free\") (param i32 i32) {free})\n            (func (export \"refined_adapter_call\") (param $operation i32) (param i32 i32) (result i64)\n                local.get $operation i32.eqz\n                if (result i64) i64.const {}\n                else local.get $operation i32.const 1 i32.eq\n                    if (result i64) i64.const {}\n                    else {default_call} end\n                end))\"#,\n            escaped(&description), escaped(binding), escaped(response.as_bytes()),\n            (1024_u64 << 32) | description.len() as u64,\n            (2048_u64 << 32) | binding.len() as u64,\n        )).unwrap()\n    }\n\n    fn module(response: &str) -> Module {\n        Module::from_bytes(&module_with(response, None, \"\", 1), description()).unwrap()\n    }\n\n    #[test]\n    fn executes_original_bytes_and_frees_both_buffers() {\n        let free = \"i32.const 16 i32.const 16 i32.load i32.const 1 i32.add i32.store\";\n        let bytes = module_with(r#\"{\"ok\":true,\"result\":{\"violations\":0,\"metrics\":[\"7\"]}}\"#, None, free, 1);\n        let compiled = Module::from_bytes(&bytes, description()).unwrap();\n        assert_eq!(compiled.digest, format!(\"{:x}\", Sha256::digest(&bytes)));\n        let mut guest = compiled.open(&json!({})).unwrap();\n        assert_eq!(guest.calls(), 3);\n        let setup_fuel = guest.fuel_used();\n        assert!(setup_fuel > 0);\n        assert_eq!(guest.call(3, &json!({\"state\": [0]})).unwrap(), json!({\"violations\": 0, \"metrics\": [\"7\"]}));\n        assert_eq!(guest.calls(), 4);\n        assert!(guest.fuel_used() > setup_fuel);\n        let mut released = [0; 4];\n        guest.memory.read(&guest.store, 16, &mut released).unwrap();\n        assert_eq!(u32::from_le_bytes(released), 6);\n    }\n\n    #[test]\n    fn distinguishes_author_rejection_from_protocol_failures() {\n        let mut rejected = module(r#\"{\"ok\":false,\"error\":\"Invalid permutation.\"}\"#).open(&json!({})).unwrap();\n        assert!(rejected.call(3, &json!({})).unwrap_err().starts_with(\"AUTHOR_REJECTED: \"));\n        for response in [r#\"{\"ok\":false,\"error\":7}\"#, r#\"{\"ok\":true,\"result\":0,\"extra\":0}\"#, \"invalid JSON\"] {\n            let mut guest = module(response).open(&json!({})).unwrap();\n            assert!(!guest.call(3, &json!({})).unwrap_err().starts_with(\"AUTHOR_REJECTED: \"));\n        }\n    }\n\n    #[test]\n    fn rejects_imports_start_functions_and_large_modules() {\n        for source in [\n            r#\"(module (import \"env\" \"read\" (func)))\"#,\n            r#\"(module (func $start) (start $start))\"#,\n        ] {\n            let bytes = wat::parse_str(source).unwrap();\n            assert!(Module::from_bytes(&bytes, description()).is_err());\n        }\n        assert!(Module::from_bytes(&vec![0; MAX_MODULE_BYTES + 1], description()).is_err());\n    }\n\n    #[test]\n    fn limits_memory_and_checks_exact_description() {\n        let too_large = Module::from_bytes(&module_with(r#\"{\"ok\":true,\"result\":0}\"#, None, \"\", 513), description()).unwrap();\n        assert!(too_large.open(&json!({})).is_err());\n        let mut different = description();\n        different.id = \"another.adapter\".into();\n        let bytes = module_with(r#\"{\"ok\":true,\"result\":0}\"#, None, \"\", 1);\n        let mismatch = Module::from_bytes(&bytes, different).unwrap();\n        assert!(mismatch.open(&json!({})).err().unwrap().contains(\"exactly match\"));\n    }\n\n    #[test]\n    fn rejects_overlapping_and_out_of_bounds_response_spans() {\n        for packed in [(64_u64 << 32) | 2, (65_530_u64 << 32) | 20, (4096_u64 << 32) | (MAX_MESSAGE_BYTES as u64 + 1)] {\n            let instruction = format!(\"i64.const {packed}\");\n            let compiled = Module::from_bytes(&module_with(\"{}\", Some(&instruction), \"\", 1), description()).unwrap();\n            let mut guest = compiled.open(&json!({})).unwrap();\n            assert!(guest.call(3, &json!({})).unwrap_err().contains(\"response span\"));\n        }\n    }\n\n    #[test]\n    fn bounds_instruction_exhaustion_and_aggregate_fuel() {\n        let forever = \"(loop $forever br $forever) i64.const 0\";\n        let compiled = Module::from_bytes(&module_with(\"{}\", Some(forever), \"\", 1), description()).unwrap();\n        let mut guest = compiled.open(&json!({})).unwrap();\n        let before = guest.fuel_used();\n        let error = guest.call(3, &json!({})).unwrap_err();\n        assert!(!error.starts_with(\"AUTHOR_REJECTED: \"));\n        assert!(guest.fuel_used() - before <= MAX_CALL_FUEL);\n        assert!(guest.fuel_used() > before);\n        guest.fuel_used = MAX_GUEST_FUEL - 4;\n        assert!(guest.call(3, &json!({})).is_err());\n        assert!(guest.fuel_used() <= MAX_GUEST_FUEL);\n    }\n\n    #[test]\n    fn rejects_invalid_description_and_oversized_requests() {\n        let bytes = module_with(r#\"{\"ok\":true,\"result\":0}\"#, None, \"\", 1);\n        let mut invalid = description();\n        invalid.metrics.push(invalid.metrics[0].clone());\n        assert!(Module::from_bytes(&bytes, invalid).is_err());\n        let mut guest = Module::from_bytes(&bytes, description()).unwrap().open(&json!({})).unwrap();\n        let calls = guest.calls();\n        assert!(guest.call(3, &json!({\"text\": \"x\".repeat(MAX_MESSAGE_BYTES)})).is_err());\n        assert_eq!(guest.calls(), calls);\n    }\n\n    #[test]\n    fn refuses_memory_growth_and_excessive_table_capacity() {\n        let growth = \"i32.const 512 memory.grow drop i64.const 0\";\n        let compiled = Module::from_bytes(&module_with(\"{}\", Some(growth), \"\", 1), description()).unwrap();\n        let mut guest = compiled.open(&json!({})).unwrap();\n        assert!(guest.call(3, &json!({})).is_err());\n        assert!(guest.memory.data(&guest.store).len() <= 32 * 1024 * 1024);\n        let oversized = wat::parse_str(r#\"(module (memory (export \"memory\") 1) (table 8193 funcref))\"#).unwrap();\n        let compiled = Module::from_bytes(&oversized, description()).unwrap();\n        assert!(compiled.open(&json!({})).err().unwrap().contains(\"limits\"));\n    }\n\n    #[test]\n    fn checks_abi_signature_and_meters_version_execution() {\n        for body in [\"(result i64) i64.const 1\", \"(result i32) (loop $forever br $forever) i32.const 1\"] {\n            let bytes = wat::parse_str(format!(r#\"(module\n                (memory (export \"memory\") 1)\n                (func (export \"refined_adapter_abi\") {body}))\"#)).unwrap();\n            let compiled = Module::from_bytes(&bytes, description()).unwrap();\n            assert!(compiled.open(&json!({})).is_err());\n        }\n    }\n\n    #[test]\n    fn cleanup_failure_is_not_an_expected_author_rejection() {\n        let free = \"local.get 0 i32.const 4096 i32.eq if unreachable end\";\n        let bytes = module_with(r#\"{\"ok\":false,\"error\":\"Invalid state.\"}\"#, None, free, 1);\n        let compiled = Module::from_bytes(&bytes, description()).unwrap();\n        let mut guest = compiled.open(&json!({})).unwrap();\n        let error = guest.call(3, &json!({})).unwrap_err();\n        assert!(error.contains(\"cleanup\"));\n        assert!(!error.starts_with(\"AUTHOR_REJECTED: \"));\n    }\n\n    #[test]\n    fn records_actual_usage_for_successful_and_failed_open() {\n        let compiled = module(r#\"{\"ok\":true,\"result\":0}\"#);\n        let mut usage = (u64::MAX, u64::MAX);\n        let guest = compiled.open_metered(&json!({}), &mut usage).unwrap();\n        assert_eq!(usage, (guest.fuel_used(), guest.calls()));\n        assert_eq!(usage.1, 3);\n        assert!(usage.0 > 0 && usage.0 < MAX_CALL_FUEL);\n\n        let mut different = description();\n        different.id = \"different.description\".into();\n        let bytes = module_with(r#\"{\"ok\":true,\"result\":0}\"#, None, \"\", 1);\n        let mismatch = Module::from_bytes(&bytes, different).unwrap();\n        assert!(mismatch.open_metered(&json!({}), &mut usage).is_err());\n        assert_eq!(usage.1, 2);\n        assert!(usage.0 > 0 && usage.0 < MAX_CALL_FUEL);\n\n        let bytes = wat::parse_str(r#\"(module\n            (memory (export \"memory\") 1)\n            (func (export \"refined_adapter_abi\") (result i32)\n                (loop $forever br $forever) i32.const 1))\"#).unwrap();\n        let trapping = Module::from_bytes(&bytes, description()).unwrap();\n        assert!(trapping.open_metered(&json!({}), &mut usage).is_err());\n        assert_eq!(usage.1, 1);\n        assert!(usage.0 > 0 && usage.0 <= MAX_CALL_FUEL);\n    }\n\n    #[test]\n    fn charges_failed_binding_without_treating_reservation_as_spent_fuel() {\n        let describe = serde_json::to_vec(&json!({\"ok\": true, \"result\": description()})).unwrap();\n        let rejection = br#\"{\"ok\":false,\"error\":\"The input is invalid.\"}\"#;\n        let bytes = wat::parse_str(format!(r#\"(module\n            (memory (export \"memory\") 1)\n            (data (i32.const 1024) \"{}\")\n            (data (i32.const 2048) \"{}\")\n            (func (export \"refined_adapter_abi\") (result i32) i32.const 1)\n            (func (export \"refined_adapter_alloc\") (param i32) (result i32) i32.const 64)\n            (func (export \"refined_adapter_free\") (param i32 i32))\n            (func (export \"refined_adapter_call\") (param $op i32) (param i32 i32) (result i64)\n                local.get $op i32.eqz\n                if (result i64) i64.const {}\n                else i64.const {} end))\"#,\n            escaped(&describe), escaped(rejection),\n            (1024_u64 << 32) | describe.len() as u64,\n            (2048_u64 << 32) | rejection.len() as u64,\n        )).unwrap();\n        let compiled = Module::from_bytes(&bytes, description()).unwrap();\n        let mut usage = (0, 0);\n        let error = compiled.open_metered(&json!({}), &mut usage).err().unwrap();\n        assert!(error.starts_with(\"AUTHOR_REJECTED: \"));\n        assert_eq!(usage.1, 3);\n        assert!(usage.0 > 0 && usage.0 < MAX_CALL_FUEL);\n    }\n}\n"
    },
    {
      "name": "checker/src/lib.rs",
      "content": "//! Bounded, declarative conformance fixtures. This is not a search engine.\nmod guest;\n\nuse guest::{Guest, Module};\nuse refined_adapter_sdk::{Assessment, Budget, Description, Hint, SearchResult, Validation};\nuse serde::{Deserialize, Serialize};\nuse serde_json::{json, Value};\nuse std::collections::BTreeSet;\n\nconst CALL_FUEL: u64 = 50_000_000;\nconst SUITE_FUEL: u64 = 500_000_000;\n\n#[derive(Clone, Copy, Deserialize)]\n#[serde(deny_unknown_fields)]\npub struct Tolerance { pub absolute: f64, pub relative: f64 }\nimpl Default for Tolerance {\n    fn default() -> Self { Self { absolute: 1e-9, relative: 1e-9 } }\n}\n\n#[derive(Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Suite {\n    pub format: String,\n    pub schema_version: u32,\n    pub description: Description,\n    pub cases: Vec<Case>,\n}\n\n#[derive(Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct Case {\n    pub name: String,\n    pub data: Value,\n    #[serde(default = \"default_seed\")] pub seed: u64,\n    #[serde(default)] pub tolerance: Tolerance,\n    pub states: Vec<StateFixture>,\n    #[serde(default)] pub moves: Vec<MoveFixture>,\n    #[serde(default)] pub searches: Vec<SearchFixture>,\n    #[serde(default)] pub invalid_states: Vec<Value>,\n}\nfn default_seed() -> u64 { 42 }\n\n#[derive(Deserialize)]\n#[serde(deny_unknown_fields)]\npub struct StateFixture {\n    pub name: String,\n    pub state: Value,\n    pub assessment: Assessment,\n    pub valid: bool,\n    #[serde(default)] pub outputs: Option<Value>,\n}\n\n#[derive(Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct MoveFixture {\n    pub name: String,\n    pub state: Value,\n    pub movement: Value,\n    pub expected_state: Value,\n    #[serde(default)] pub assessment: Option<Assessment>,\n}\n\n#[derive(Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\npub struct SearchFixture {\n    pub name: String,\n    pub state: Value,\n    pub budget: Budget,\n    #[serde(default)] pub expected_state: Option<Value>,\n    pub assessment: Assessment,\n    #[serde(default)] pub require_change: bool,\n}\n\n#[derive(Serialize)]\n#[serde(rename_all = \"camelCase\")]\npub struct CaseReport {\n    name: String,\n    ok: bool,\n    checks: usize,\n    #[serde(skip_serializing_if = \"Option::is_none\")] error: Option<String>,\n}\n\npub struct Report {\n    module_digest: String,\n    adapter_id: String,\n    cases: Vec<CaseReport>,\n    meter: Meter,\n}\nimpl Report {\n    pub fn to_json(&self) -> Value {\n        json!({\"format\":\"refined.math.adapter-check-report\", \"schemaVersion\":1,\n            \"ok\":self.cases.iter().all(|case| case.ok), \"coreUsed\":false,\n            \"evidence\":\"author_fixture_checks\", \"moduleDigest\":self.module_digest,\n            \"adapterId\":self.adapter_id, \"cases\":self.cases,\n            \"checks\":self.meter.checks, \"guestCalls\":self.meter.calls, \"fuelUsed\":self.meter.fuel,\n            \"limits\":{\"suiteFuel\":SUITE_FUEL,\"callFuel\":CALL_FUEL,\"memoryBytesPerInstance\":33_554_432},\n            \"note\":\"Fixture assertions and fresh author validation; no Refined search or independent mathematical proof.\"})\n    }\n}\n\n#[derive(Default)]\nstruct Meter { fuel: u64, calls: u64, checks: usize }\nimpl Meter {\n    fn reserve(&self, allowance: u64) -> Result<(), String> {\n        if self.fuel.saturating_add(allowance) > SUITE_FUEL {\n            Err(\"The bounded checker suite fuel allowance is exhausted; use fewer or smaller fixtures.\".into())\n        } else { Ok(()) }\n    }\n    fn open(&mut self, module: &Module, data: &Value) -> Result<Guest, String> {\n        // Opening includes the ABI, description and bind calls, before any fixture.\n        self.reserve(3 * CALL_FUEL)?;\n        let mut usage = (0, 0);\n        let result = module.open_metered(data, &mut usage);\n        self.fuel += usage.0;\n        self.calls += usage.1;\n        result\n    }\n    fn call(&mut self, guest: &mut Guest, operation: u32, request: Value) -> Result<Value, String> {\n        self.reserve(CALL_FUEL)?;\n        let before_fuel = guest.fuel_used();\n        let before_calls = guest.calls();\n        let result = guest.call(operation, &request);\n        self.fuel += guest.fuel_used().saturating_sub(before_fuel);\n        self.calls += guest.calls().saturating_sub(before_calls);\n        result.map_err(|error| format!(\"operation {operation}: {error}\"))\n    }\n}\n\nfn ensure(condition: bool, message: impl Into<String>) -> Result<(), String> {\n    if condition { Ok(()) } else { Err(message.into()) }\n}\n\nfn bounded(value: &Value, limit: usize, label: &str) -> Result<(), String> {\n    ensure(!value.is_null() && serde_json::to_vec(value).map_err(|e| e.to_string())?.len() <= limit,\n        format!(\"{label} must be non-null and at most {limit} bytes.\"))\n}\n\nfn validate_assessment(score: &Assessment, description: &Description) -> Result<(), String> {\n    ensure(score.violations <= 1_000_000_000 && score.metrics.len() == description.metrics.len(), \"Invalid violations or metric count.\")?;\n    for (value, metric) in score.metrics.iter().zip(&description.metrics) {\n        ensure(!value.is_empty() && value.len() <= 64, \"Metrics must be bounded decimal strings.\")?;\n        match metric.numeric_type.as_str() {\n            \"i128\" => { value.parse::<i128>().map_err(|_| format!(\"{} is not an exact i128 value: {value}\", metric.name))?; }\n            \"f64\" => { ensure(value.parse::<f64>().is_ok_and(|v| v.is_finite()), format!(\"{} is not finite: {value}\", metric.name))?; }\n            _ => return Err(\"Unknown metric numeric type.\".into()),\n        }\n    }\n    Ok(())\n}\n\nfn near(left: f64, right: f64, tolerance: Tolerance) -> bool {\n    left.is_finite() && right.is_finite()\n        && (left - right).abs() <= tolerance.absolute + tolerance.relative * left.abs().max(right.abs())\n}\n\nfn compare_score(actual: &Assessment, expected: &Assessment, description: &Description, tolerance: Tolerance) -> Result<(), String> {\n    validate_assessment(actual, description)?;\n    validate_assessment(expected, description)?;\n    ensure(actual.violations == expected.violations, format!(\"violations: expected {}, got {}\", expected.violations, actual.violations))?;\n    for ((left, right), metric) in actual.metrics.iter().zip(&expected.metrics).zip(&description.metrics) {\n        let equal = if metric.numeric_type == \"i128\" {\n            left.parse::<i128>().unwrap() == right.parse::<i128>().unwrap()\n        } else { near(left.parse().unwrap(), right.parse().unwrap(), tolerance) };\n        ensure(equal, format!(\"metric {}: expected {right}, got {left}\", metric.name))?;\n    }\n    Ok(())\n}\n\n/// Compare states exactly, except finite real numbers use the declared tolerance.\n/// Output objects can be asserted by subset; states never use subset matching.\nfn compare_value(actual: &Value, expected: &Value, tolerance: Tolerance, subset: bool) -> bool {\n    match (actual, expected) {\n        (Value::Number(a), Value::Number(b)) => {\n            if !a.is_f64() && !b.is_f64() { return a.to_string().parse::<i128>().ok() == b.to_string().parse::<i128>().ok(); }\n            if a.is_f64() != b.is_f64() {\n                let (integer, real) = if a.is_f64() { (b, a) } else { (a, b) };\n                let integer = integer.to_string().parse::<i128>().unwrap();\n                let real = real.as_f64().unwrap();\n                // Exact representable integers remain equal across JSON encodings,\n                // while a rounded neighboring large integer must never compare equal.\n                if real.is_finite() && real.fract() == 0.0 && real >= i128::MIN as f64 && real < i128::MAX as f64 && real as i128 == integer { return true; }\n                if integer.unsigned_abs() > 9_007_199_254_740_991 { return false; }\n            }\n            a.as_f64().zip(b.as_f64()).is_some_and(|(a,b)| near(a,b,tolerance))\n        }\n        (Value::Array(a), Value::Array(b)) => a.len() == b.len() && a.iter().zip(b).all(|(a,b)| compare_value(a,b,tolerance,subset)),\n        (Value::Object(a), Value::Object(b)) => (subset || a.len() == b.len()) && b.iter().all(|(key,b)| a.get(key).is_some_and(|a| compare_value(a,b,tolerance,subset))),\n        _ => actual == expected,\n    }\n}\n\nfn assessment(value: Value, description: &Description) -> Result<Assessment, String> {\n    let result: Assessment = serde_json::from_value(value).map_err(|e| format!(\"Invalid assessment: {e}\"))?;\n    validate_assessment(&result, description)?;\n    Ok(result)\n}\n\nfn candidate(module: &Module, guest: &mut Guest, case: &Case, state: &Value, expected: Option<&Assessment>, valid: Option<bool>, outputs: Option<&Value>, meter: &mut Meter) -> Result<(), String> {\n    bounded(state, 65_536, \"Decision state\")?;\n    let score = assessment(meter.call(guest, 3, json!({\"state\":state}))?, &module.description)?;\n    let repeated = assessment(meter.call(guest, 3, json!({\"state\":state}))?, &module.description)?;\n    // Tolerance belongs to independent references, never to an adapter's own\n    // repeated/fresh score consistency. Signed zero compares as normalized zero.\n    let consistency = Tolerance { absolute: 0.0, relative: 0.0 };\n    compare_score(&repeated, &score, &module.description, consistency)?;\n    if let Some(expected) = expected { compare_score(&score, expected, &module.description, case.tolerance)?; }\n    let mut fresh = meter.open(module, &case.data)?;\n    let recomputed = assessment(meter.call(&mut fresh, 3, json!({\"state\":state}))?, &module.description)?;\n    compare_score(&recomputed, &score, &module.description, consistency)?;\n    let validated: Validation = serde_json::from_value(meter.call(&mut fresh, 4, json!({\"state\":state}))?)\n        .map_err(|e| format!(\"Invalid validation response: {e}\"))?;\n    compare_score(&validated.assessment, &score, &module.description, consistency)?;\n    ensure(validated.outputs.is_object(), \"Validation outputs must be an object.\")?;\n    let expected_valid = valid.unwrap_or(true);\n    ensure(validated.valid == expected_valid, format!(\"author validity: expected {expected_valid}, got {}\", validated.valid))?;\n    if let Some(expected) = outputs {\n        ensure(compare_value(&validated.outputs, expected, case.tolerance, true), format!(\"validation outputs differ: expected {expected}, got {}\", validated.outputs))?;\n    }\n    meter.checks += 1;\n    Ok(())\n}\n\nfn hints(value: Value, description: &Description) -> Result<Vec<Hint<Value>>, String> {\n    let hints: Vec<Hint<Value>> = serde_json::from_value(value).map_err(|e| format!(\"Invalid hints: {e}\"))?;\n    ensure(hints.len() <= 256 && hints.iter().all(|h| description.families.contains(&h.family)), \"Hints exceed 256 entries or use an undeclared family.\")?;\n    Ok(hints)\n}\n\nfn run_case(module: &Module, case: &Case, meter: &mut Meter) -> Result<(), String> {\n    let mut guest = meter.open(module, &case.data)?;\n    let context = json!({\"runIndex\":0,\"iteration\":0,\"candidateIndex\":0,\"stagnation\":0,\"phase\":\"Scout\",\"seed\":case.seed});\n    let initialized = meter.call(&mut guest, 2, json!({\"seed\":case.seed,\"count\":3}))?;\n    let seeds = initialized.as_array().filter(|v| !v.is_empty() && v.len() <= 3).ok_or(\"Initialization must return 1..3 states.\")?;\n    let mut repeated = meter.open(module, &case.data)?;\n    let again = meter.call(&mut repeated, 2, json!({\"seed\":case.seed,\"count\":3}))?;\n    ensure(initialized == again, \"Initialization differs between fresh instances using the same seed.\")?;\n    drop(repeated);\n    for state in seeds { candidate(module, &mut guest, case, state, None, None, None, meter)?; }\n    for fixture in &case.states {\n        candidate(module, &mut guest, case, &fixture.state, Some(&fixture.assessment), Some(fixture.valid), fixture.outputs.as_ref(), meter)\n            .map_err(|e| format!(\"states/{}: {e}\", fixture.name))?;\n    }\n    for fixture in &case.moves {\n        let next = meter.call(&mut guest, 7, json!({\"state\":fixture.state,\"movement\":fixture.movement,\"context\":context}))?;\n        ensure(compare_value(&next, &fixture.expected_state, case.tolerance, false), format!(\"moves/{}: expected state {}, got {next}\", fixture.name, fixture.expected_state))?;\n        if !next.is_null() {\n            candidate(module, &mut guest, case, &next, fixture.assessment.as_ref(), None, None, meter).map_err(|e| format!(\"moves/{}: {e}\", fixture.name))?;\n        }\n        meter.checks += 1;\n    }\n    for fixture in &case.searches {\n        let result: SearchResult<Value> = serde_json::from_value(meter.call(&mut guest, 8, json!({\"state\":fixture.state,\"budget\":fixture.budget,\"context\":context}))?)\n            .map_err(|e| format!(\"searches/{}: invalid local-search result: {e}\", fixture.name))?;\n        ensure(result.reported_evaluations <= fixture.budget.evaluations && result.reported_improvements <= result.reported_evaluations,\n            format!(\"searches/{}: reported work exceeds the fixture budget or improvements exceed evaluations\", fixture.name))?;\n        if fixture.require_change {\n            let exact = Tolerance { absolute: 0.0, relative: 0.0 };\n            ensure(!compare_value(&result.state, &fixture.state, exact, false), format!(\"searches/{}: the required operator change did not occur\", fixture.name))?;\n        }\n        if let Some(expected) = &fixture.expected_state {\n            ensure(compare_value(&result.state, expected, case.tolerance, false), format!(\"searches/{}: expected state {expected}, got {}\", fixture.name, result.state))?;\n        }\n        candidate(module, &mut guest, case, &result.state, Some(&fixture.assessment), None, None, meter).map_err(|e| format!(\"searches/{}: {e}\", fixture.name))?;\n    }\n    // Automatic operators need a valid input, regardless of reference ordering.\n    // Every initialization seed has already passed fresh author validation.\n    let state = &seeds[0];\n    let offered = hints(meter.call(&mut guest, 6, json!({\"state\":state,\"edge\":null,\"family\":null,\"context\":context}))?, &module.description)?;\n    for hint in offered.iter().take(8) {\n        let next = meter.call(&mut guest, 7, json!({\"state\":state,\"movement\":hint.value,\"context\":context}))?;\n        if !next.is_null() { candidate(module, &mut guest, case, &next, None, None, None, meter)?; }\n    }\n    if module.description.hooks.guidance {\n        let guided = hints(meter.call(&mut guest, 5, json!({\"state\":state,\"context\":context}))?, &module.description)?;\n        if let Some(edge) = guided.first() {\n            hints(meter.call(&mut guest, 6, json!({\"state\":state,\"edge\":edge.value,\"family\":edge.family,\"context\":context}))?, &module.description)?;\n        }\n    }\n    if module.description.hooks.features {\n        let features: Vec<u64> = serde_json::from_value(meter.call(&mut guest, 12, json!({\"state\":state}))?).map_err(|e| format!(\"Invalid features: {e}\"))?;\n        ensure(features.len() <= 256, \"Too many stable features.\")?;\n        ensure(meter.call(&mut guest, 12, json!({\"state\":state}))? == json!(features), \"Stable features changed for the same state.\")?;\n    }\n    let perturbed: SearchResult<Value> = serde_json::from_value(meter.call(&mut guest, 9, json!({\"state\":state,\"strength\":1,\"seed\":case.seed,\"context\":context}))?)\n        .map_err(|e| format!(\"Invalid perturbation: {e}\"))?;\n    ensure(perturbed.reported_evaluations <= 1_000_000_000 && perturbed.reported_improvements <= perturbed.reported_evaluations, \"Invalid perturbation work counters.\")?;\n    candidate(module, &mut guest, case, &perturbed.state, None, None, None, meter)?;\n    for (operation, enabled) in [(10,module.description.hooks.repair),(11,module.description.hooks.recombine),(13,module.description.hooks.path_relink)] {\n        if !enabled { continue; }\n        let batch = meter.call(&mut guest, operation, json!({\"state\":state,\"other\":seeds[0],\"limit\":2,\"context\":context}))?;\n        let states = batch.as_array().filter(|v| v.len() <= 2).ok_or(\"Invalid optional-hook batch; requested at most two candidates.\")?;\n        for next in states { candidate(module, &mut guest, case, next, None, None, None, meter)?; }\n        meter.checks += 1;\n    }\n    for invalid in &case.invalid_states {\n        let evaluated = meter.call(&mut guest, 3, json!({\"state\":invalid}));\n        if let Err(error) = &evaluated {\n            ensure(error.contains(\": AUTHOR_REJECTED: \"), format!(\"Invalid state trapped instead of being rejected: {error}\"))?;\n        } else {\n            assessment(evaluated.unwrap(), &module.description)?;\n            match meter.call(&mut guest, 4, json!({\"state\":invalid})) {\n                Err(error) => ensure(error.contains(\": AUTHOR_REJECTED: \"), format!(\"Invalid-state validation trapped: {error}\"))?,\n                Ok(result) => {\n                    let checked: Validation = serde_json::from_value(result).map_err(|e| format!(\"Invalid rejection response: {e}\"))?;\n                    ensure(!checked.valid, \"An invalid-state fixture was accepted as valid.\")?;\n                }\n            }\n        }\n        meter.checks += 1;\n    }\n    // Revisit a known state after the other operations to detect cache pollution.\n    let first = &case.states[0];\n    candidate(module, &mut guest, case, &first.state, Some(&first.assessment), Some(first.valid), first.outputs.as_ref(), meter)?;\n    Ok(())\n}\n\nfn validate_suite(suite: &Suite) -> Result<(), String> {\n    ensure(suite.format == \"refined.math.adapter-fixtures\" && suite.schema_version == 1, \"Expected refined.math.adapter-fixtures v1.\")?;\n    ensure(!suite.cases.is_empty() && suite.cases.len() <= 16, \"A suite needs 1..16 small cases.\")?;\n    let mut names = BTreeSet::new();\n    for case in &suite.cases {\n        ensure(!case.name.is_empty() && case.name.len() <= 120 && names.insert(&case.name), \"Cases need unique names of 1..120 bytes.\")?;\n        ensure(!case.states.is_empty() && case.states.len() <= 32 && case.moves.len() <= 32 && case.searches.len() <= 8 && case.invalid_states.len() <= 8, \"Case fixture counts exceed their limits.\")?;\n        ensure([case.tolerance.absolute,case.tolerance.relative].iter().all(|v| v.is_finite() && (0.0..=0.001).contains(v)), \"Tolerances must be finite and within 0..0.001.\")?;\n        bounded(&case.data, 100_000, \"Case data\")?;\n        let mut labels = BTreeSet::new();\n        for (category, name) in case.states.iter().map(|f| (\"states\",&f.name)).chain(case.moves.iter().map(|f| (\"moves\",&f.name))).chain(case.searches.iter().map(|f| (\"searches\",&f.name))) {\n            ensure(!name.is_empty() && name.len() <= 120 && labels.insert((category,name)), \"Fixtures need unique names per category, each 1..120 bytes.\")?;\n        }\n        for fixture in &case.states {\n            bounded(&fixture.state,65_536,\"Fixture state\")?;\n            validate_assessment(&fixture.assessment,&suite.description)?;\n            if let Some(outputs) = &fixture.outputs { ensure(outputs.is_object(), \"Expected outputs must be an object subset.\")?; }\n        }\n        for fixture in &case.moves {\n            bounded(&fixture.state,65_536,\"Move input state\")?;\n            bounded(&fixture.movement,65_536,\"Movement\")?;\n            if !fixture.expected_state.is_null() { bounded(&fixture.expected_state,65_536,\"Expected move state\")?; }\n            ensure(!fixture.expected_state.is_null() || fixture.assessment.is_none(), \"A rejected move cannot have an expected assessment.\")?;\n            if let Some(score) = &fixture.assessment { validate_assessment(score,&suite.description)?; }\n        }\n        for fixture in &case.searches {\n            bounded(&fixture.state,65_536,\"Local-search input state\")?;\n            if let Some(expected) = &fixture.expected_state { bounded(expected,65_536,\"Expected local-search state\")?; }\n            ensure(fixture.budget.iterations <= 1_000 && fixture.budget.evaluations <= 10_000, \"Local fixture budgets are at most 1,000 iterations and 10,000 evaluations.\")?;\n            validate_assessment(&fixture.assessment,&suite.description)?;\n        }\n        for invalid in &case.invalid_states { bounded(invalid,65_536,\"Invalid-state fixture\")?; }\n    }\n    Ok(())\n}\n\npub fn check(bytes: &[u8], suite: &Suite) -> Result<Report, String> {\n    validate_suite(suite)?;\n    let module = Module::from_bytes(bytes, suite.description.clone())?;\n    let mut meter = Meter::default();\n    let mut cases = Vec::new();\n    for case in &suite.cases {\n        let before = meter.checks;\n        let result = run_case(&module, case, &mut meter);\n        cases.push(CaseReport { name:case.name.clone(), ok:result.is_ok(), checks:meter.checks-before, error:result.err().map(|error| error.chars().take(2000).collect()) });\n    }\n    let before = meter.checks;\n    let rebinding = (|| -> Result<(), String> {\n        let mut guest = meter.open(&module, &suite.cases[0].data)?;\n        for case in suite.cases.iter().chain(std::iter::once(&suite.cases[0])) {\n            let binding = meter.call(&mut guest,1,json!({\"data\":case.data}))?;\n            ensure(binding == json!({\"bound\":true}), \"Rebinding must acknowledge data binding with {\\\"bound\\\":true}.\")?;\n            let first = &case.states[0];\n            candidate(&module,&mut guest,case,&first.state,Some(&first.assessment),Some(first.valid),first.outputs.as_ref(),&mut meter)\n                .map_err(|e| format!(\"{}: {e}\",case.name))?;\n        }\n        Ok(())\n    })();\n    cases.push(CaseReport {name:\"data-rebinding\".into(),ok:rebinding.is_ok(),checks:meter.checks-before,error:rebinding.err().map(|error| error.chars().take(2000).collect())});\n    Ok(Report {module_digest:module.digest, adapter_id:module.description.id, cases, meter})\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    fn description(numeric_type: &str) -> Description {\n        serde_json::from_value(json!({\"abiVersion\":1,\"id\":\"test.example\",\"version\":\"1\",\"metrics\":[{\"name\":\"cost\",\"numericType\":numeric_type,\"direction\":\"minimize\"}],\"families\":[1],\"hooks\":{}})).unwrap()\n    }\n    fn score(value: &str) -> Assessment { Assessment {violations:0,metrics:vec![value.into()]} }\n    #[test]\n    fn integer_reference_checks_do_not_round_through_f64() {\n        let spec=description(\"i128\");\n        assert!(compare_score(&score(\"9007199254740993\"),&score(\"9007199254740992\"),&spec,Tolerance::default()).is_err());\n        assert!(compare_score(&score(&i128::MAX.to_string()),&score(&i128::MAX.to_string()),&spec,Tolerance::default()).is_ok());\n        assert!(validate_assessment(&score(\"170141183460469231731687303715884105728\"),&spec).is_err());\n    }\n    #[test]\n    fn real_checks_use_explicit_finite_tolerance() {\n        let spec=description(\"f64\");\n        assert!(compare_score(&score(\"0.0000000001\"),&score(\"0\"),&spec,Tolerance::default()).is_ok());\n        let consistency=Tolerance {absolute:0.0,relative:0.0};\n        assert!(compare_score(&score(\"0.0000000001\"),&score(\"0\"),&spec,consistency).is_err());\n        assert!(compare_score(&score(\"-0\"),&score(\"0\"),&spec,consistency).is_ok());\n        assert!(compare_score(&score(\"0.0001\"),&score(\"0\"),&spec,Tolerance::default()).is_err());\n        for value in [\"NaN\",\"inf\",\"-inf\",\"1e999\"] { assert!(validate_assessment(&score(value),&spec).is_err()); }\n    }\n    #[test]\n    fn output_subsets_do_not_weaken_state_assertions() {\n        let actual=json!({\"values\":[1.0,2.0],\"extra\":true});\n        let expected=json!({\"values\":[1,2]});\n        assert!(compare_value(&actual,&expected,Tolerance::default(),true));\n        assert!(!compare_value(&actual,&expected,Tolerance::default(),false));\n        assert!(!compare_value(&json!(9007199254740993u64),&json!(9007199254740992u64),Tolerance::default(),true));\n        assert!(compare_value(&json!(9007199254740992u64),&json!(9007199254740992.0f64),Tolerance::default(),false));\n        assert!(!compare_value(&json!(9007199254740993u64),&json!(9007199254740992.0f64),Tolerance::default(),false));\n    }\n    #[test]\n    fn malformed_and_empty_fixture_suites_are_rejected() {\n        let empty=Suite {format:\"refined.math.adapter-fixtures\".into(),schema_version:1,description:description(\"i128\"),cases:vec![]};\n        assert!(validate_suite(&empty).is_err());\n        assert!(serde_json::from_value::<Suite>(json!({\"format\":\"refined.math.adapter-fixtures\",\"schemaVersion\":1,\"description\":description(\"i128\"),\"cases\":[],\"script\":\"unavailable\"})).is_err());\n    }\n\n    #[derive(Default)]\n    struct ProbeBehavior {\n        reject_invalid_moves: bool,\n        floating_noop: bool,\n        tiny_change: bool,\n        invalid_rebinding: bool,\n        require_scout: bool,\n    }\n\n    /// A complete ABI guest with small known states. Its callbacks expose the\n    /// reviewed failures through actual guest requests, not private helpers.\n    fn probe_module(behavior: ProbeBehavior) -> Vec<u8> {\n        let mut segments = String::new();\n        let mut offset = 4096_u64;\n        let mut response = |value: Value| {\n            let bytes = serde_json::to_vec(&value).unwrap();\n            let escaped: String = bytes.iter().map(|byte| format!(\"\\\\{byte:02x}\")).collect();\n            segments.push_str(&format!(\"(data (i32.const {offset}) \\\"{escaped}\\\")\\n\"));\n            let instruction = format!(\"i64.const {}\", (offset << 32) | bytes.len() as u64);\n            offset += 1024;\n            instruction\n        };\n        let describe = response(json!({\"ok\":true,\"result\":description(\"i128\")}));\n        let bound = response(json!({\"ok\":true,\"result\":{\"bound\":true}}));\n        let unbound = response(json!({\"ok\":true,\"result\":{\"bound\":false}}));\n        let initial = response(json!({\"ok\":true,\"result\":[{\"x\":0}]}));\n        let zero_score = response(json!({\"ok\":true,\"result\":score(\"0\")}));\n        let one_score = response(json!({\"ok\":true,\"result\":score(\"1\")}));\n        let valid = response(json!({\"ok\":true,\"result\":{\"valid\":true,\"assessment\":score(\"0\"),\"outputs\":{}}}));\n        let invalid = response(json!({\"ok\":true,\"result\":{\"valid\":false,\"assessment\":score(\"1\"),\"outputs\":{}}}));\n        let moves = response(json!({\"ok\":true,\"result\":[{\"value\":0,\"priority\":1,\"family\":1,\"key\":1}]}));\n        let applied = response(json!({\"ok\":true,\"result\":{\"x\":0}}));\n        let unchanged = response(json!({\"ok\":true,\"result\":{\"state\":{\"x\":0},\"reportedEvaluations\":0,\"reportedImprovements\":0}}));\n        let search_state = if behavior.tiny_change { json!({\"x\":1e-10}) }\n            else if behavior.floating_noop { json!({\"x\":0.0}) } else { json!({\"x\":0}) };\n        let searched = response(json!({\"ok\":true,\"result\":{\"state\":search_state,\"reportedEvaluations\":0,\"reportedImprovements\":0}}));\n        let rejected = response(json!({\"ok\":false,\"error\":\"The callback input is invalid.\"}));\n        let binding = if behavior.invalid_rebinding {\n            format!(\"global.get $bindings i32.const 1 i32.gt_u if (result i64) {unbound} else {bound} end\")\n        } else { bound };\n        let invalid_move = if behavior.reject_invalid_moves {\n            format!(\"local.get $pointer local.get $length i32.const 60000 i32.const 6 call $contains if {rejected} return end\")\n        } else { String::new() };\n        let phase_check = if behavior.require_scout {\n            format!(\"local.get $pointer local.get $length i32.const 60016 i32.const 5 call $contains i32.eqz if {rejected} return end\")\n        } else { String::new() };\n        wat::parse_str(format!(r#\"(module\n            (memory (export \"memory\") 1)\n            (global $bindings (mut i32) (i32.const 0))\n            {segments}\n            (data (i32.const 60000) \"\\22x\\22:1}}\")\n            (data (i32.const 60016) \"Scout\")\n            (func $contains (param $start i32) (param $length i32) (param $needle i32) (param $size i32) (result i32)\n                (local $at i32) (local $matched i32)\n                (block $missing\n                    (loop $scan\n                        local.get $at local.get $size i32.add local.get $length i32.gt_u br_if $missing\n                        i32.const 0 local.set $matched\n                        (block $different\n                            (loop $bytes\n                                local.get $matched local.get $size i32.ge_u\n                                if i32.const 1 return end\n                                local.get $start local.get $at i32.add local.get $matched i32.add i32.load8_u\n                                local.get $needle local.get $matched i32.add i32.load8_u\n                                i32.ne br_if $different\n                                local.get $matched i32.const 1 i32.add local.set $matched\n                                br $bytes))\n                        local.get $at i32.const 1 i32.add local.set $at\n                        br $scan))\n                i32.const 0)\n            (func (export \"refined_adapter_abi\") (result i32) i32.const 1)\n            (func (export \"refined_adapter_alloc\") (param i32) (result i32) i32.const 64)\n            (func (export \"refined_adapter_free\") (param i32 i32))\n            (func (export \"refined_adapter_call\") (param $operation i32) (param $pointer i32) (param $length i32) (result i64)\n                local.get $operation i32.eqz if {describe} return end\n                local.get $operation i32.const 1 i32.eq\n                if\n                    global.get $bindings i32.const 1 i32.add global.set $bindings\n                    {binding} return\n                end\n                local.get $operation i32.const 2 i32.eq if {initial} return end\n                local.get $operation i32.const 3 i32.eq\n                if\n                    local.get $pointer local.get $length i32.const 60000 i32.const 6 call $contains\n                    if (result i64) {one_score} else {zero_score} end return\n                end\n                local.get $operation i32.const 4 i32.eq\n                if\n                    local.get $pointer local.get $length i32.const 60000 i32.const 6 call $contains\n                    if (result i64) {invalid} else {valid} end return\n                end\n                local.get $operation i32.const 6 i32.ge_u\n                local.get $operation i32.const 9 i32.le_u i32.and\n                if {phase_check} end\n                local.get $operation i32.const 6 i32.eq if {invalid_move} {moves} return end\n                local.get $operation i32.const 7 i32.eq if {applied} return end\n                local.get $operation i32.const 8 i32.eq if {searched} return end\n                local.get $operation i32.const 9 i32.eq if {unchanged} return end\n                {rejected}))\"#)).unwrap()\n    }\n\n    fn probe_suite() -> Suite {\n        serde_json::from_value(json!({\n            \"format\":\"refined.math.adapter-fixtures\",\"schemaVersion\":1,\n            \"description\":description(\"i128\"),\n            \"cases\":[{\"name\":\"probe\",\"data\":{},\"states\":[{\n                \"name\":\"valid zero\",\"state\":{\"x\":0},\"assessment\":score(\"0\"),\"valid\":true\n            }]}]\n        })).unwrap()\n    }\n\n    fn unchanged_search(require_change: bool) -> SearchFixture {\n        SearchFixture {\n            name:\"numeric change\".into(), state:json!({\"x\":0}),\n            budget:Budget {iterations:1,evaluations:1}, expected_state:None,\n            assessment:score(\"0\"), require_change,\n        }\n    }\n\n    #[test]\n    fn required_change_rejects_integer_to_float_serialization_of_a_noop() {\n        let mut suite = probe_suite();\n        suite.cases[0].searches.push(unchanged_search(true));\n        let bytes = probe_module(ProbeBehavior {floating_noop:true,..Default::default()});\n        let report = check(&bytes,&suite).unwrap().to_json();\n        assert_eq!(report[\"ok\"],false);\n        assert!(report[\"cases\"][0][\"error\"].as_str().unwrap().contains(\"required operator change did not occur\"));\n        assert_eq!(report[\"cases\"][1][\"ok\"],true);\n    }\n\n    #[test]\n    fn required_change_preserves_real_changes_smaller_than_reference_tolerance() {\n        let mut suite = probe_suite();\n        suite.cases[0].searches.push(unchanged_search(true));\n        let bytes = probe_module(ProbeBehavior {tiny_change:true,..Default::default()});\n        let report = check(&bytes,&suite).unwrap().to_json();\n        assert_eq!(report[\"ok\"],true,\"{report}\");\n    }\n\n    #[test]\n    fn automatic_operators_use_valid_seeds_when_an_invalid_reference_comes_first() {\n        let mut suite = probe_suite();\n        suite.cases[0].states.insert(0,StateFixture {\n            name:\"explicit invalid one\".into(),state:json!({\"x\":1}),assessment:score(\"1\"),\n            valid:false,outputs:None,\n        });\n        let bytes = probe_module(ProbeBehavior {reject_invalid_moves:true,..Default::default()});\n        let report = check(&bytes,&suite).unwrap().to_json();\n        assert_eq!(report[\"ok\"],true,\"{report}\");\n        assert!(report[\"cases\"].as_array().unwrap().iter().all(|case| case[\"checks\"].as_u64().unwrap() > 0));\n    }\n\n    #[test]\n    fn later_bindings_must_acknowledge_the_same_protocol_as_initial_binding() {\n        let bytes = probe_module(ProbeBehavior {invalid_rebinding:true,..Default::default()});\n        let report = check(&bytes,&probe_suite()).unwrap().to_json();\n        assert_eq!(report[\"cases\"][0][\"ok\"],true,\"{report}\");\n        assert_eq!(report[\"cases\"][1][\"name\"],\"data-rebinding\");\n        assert_eq!(report[\"cases\"][1][\"ok\"],false);\n        assert!(report[\"cases\"][1][\"error\"].as_str().unwrap().contains(\"Rebinding must acknowledge\"));\n        assert_eq!(report[\"ok\"],false);\n    }\n\n    #[test]\n    fn author_callbacks_receive_the_runtime_scout_phase() {\n        let mut suite = probe_suite();\n        suite.cases[0].searches.push(unchanged_search(false));\n        let bytes = probe_module(ProbeBehavior {require_scout:true,..Default::default()});\n        let report = check(&bytes,&suite).unwrap().to_json();\n        assert_eq!(report[\"ok\"],true,\"{report}\");\n    }\n}\n"
    },
    {
      "name": "checker/src/main.rs",
      "content": "//! Run author fixtures against an actual module, without loading the Refined core.\nuse base64::{engine::general_purpose::STANDARD, Engine};\nuse refined_adapter_checker::{check, Suite};\nuse refined_adapter_sdk::Description;\nuse serde::Deserialize;\nuse serde_json::{json, Value};\nuse sha2::{Digest, Sha256};\nuse std::{fs::File, io::{self, Read, Write}, path::Path};\n\n#[derive(Deserialize)]\n#[serde(rename_all = \"camelCase\", deny_unknown_fields)]\nstruct Executable {\n    module_base64: String,\n    module_digest: String,\n    description: Description,\n}\n\nfn read_bounded(path: &Path, limit: u64) -> Result<Vec<u8>, String> {\n    let mut bytes = Vec::new();\n    File::open(path).map_err(|e| format!(\"Cannot open {}: {e}\", path.display()))?\n        .take(limit + 1).read_to_end(&mut bytes).map_err(|e| e.to_string())?;\n    if bytes.len() as u64 > limit { return Err(format!(\"{} exceeds {limit} bytes.\", path.display())); }\n    Ok(bytes)\n}\n\nfn execute(arguments: &[String]) -> Result<Value, String> {\n    if arguments.len() != 2 {\n        return Err(\"Usage: refined_adapter_checker MODULE.wasm|PACKAGE.adapter.json FIXTURES.json\".into());\n    }\n    let fixtures = read_bounded(Path::new(&arguments[1]), 1_048_576)?;\n    let suite: Suite = serde_json::from_slice(&fixtures).map_err(|e| format!(\"Invalid fixture document: {e}\"))?;\n    let source = read_bounded(Path::new(&arguments[0]), 4 * 1024 * 1024)?;\n    let bytes = if source.starts_with(b\"\\0asm\\x01\\0\\0\\0\") {\n        source\n    } else {\n        let package: Value = serde_json::from_slice(&source).map_err(|e| format!(\"Expected a Wasm module or adapter package: {e}\"))?;\n        if package[\"format\"] != \"refined.math.wasm-adapter\" || package[\"schemaVersion\"] != 1 {\n            return Err(\"Expected a refined.math.wasm-adapter v1 package.\".into());\n        }\n        let executable: Executable = serde_json::from_value(package[\"executable\"].clone())\n            .map_err(|e| format!(\"Invalid executable metadata: {e}\"))?;\n        if executable.description != suite.description {\n            return Err(\"Package description differs from the fixture description.\".into());\n        }\n        if executable.module_base64.len() > 699_052 {\n            return Err(\"The module exceeds 512 KiB.\".into());\n        }\n        let bytes = STANDARD.decode(&executable.module_base64).map_err(|_| \"Invalid module base64.\".to_string())?;\n        if STANDARD.encode(&bytes) != executable.module_base64 {\n            return Err(\"Module base64 must be canonical.\".into());\n        }\n        if format!(\"{:x}\", Sha256::digest(&bytes)) != executable.module_digest {\n            return Err(\"Package module digest differs from its actual bytes.\".into());\n        }\n        bytes\n    };\n    check(&bytes, &suite).map(|report| report.to_json())\n}\n\nfn main() {\n    let arguments: Vec<String> = std::env::args().skip(1).collect();\n    if arguments.len() == 1 && [\"--help\", \"-h\"].contains(&arguments[0].as_str()) {\n        println!(\"Usage: refined_adapter_checker MODULE.wasm|PACKAGE.adapter.json FIXTURES.json\\nChecks author fixtures only. Does not run Refined or establish a mathematical proof.\\nSee checker/FIXTURES.md for the bounded fixture format.\");\n        return;\n    }\n    let result = execute(&arguments).unwrap_or_else(|error| json!({\n        \"format\":\"refined.math.adapter-check-report\", \"schemaVersion\":1,\n        \"ok\":false, \"coreUsed\":false, \"evidence\":\"author_fixture_checks\", \"error\":error\n    }));\n    let success = result[\"ok\"] == true;\n    let text = serde_json::to_string_pretty(&result).expect(\"The report is valid JSON.\");\n    if writeln!(io::stdout().lock(), \"{text}\").is_err() { std::process::exit(2); }\n    if !success { std::process::exit(1); }\n}\n"
    },
    {
      "name": "Cargo.toml",
      "content": "[workspace]\nmembers = [\"sdk\", \"checker\", \"examples/qap\"]\nresolver = \"2\"\n\n[profile.release]\nopt-level = 3\nlto = true\ncodegen-units = 1\nstrip = true\npanic = \"abort\"\n"
    },
    {
      "name": "Cargo.lock",
      "content": "# This file is automatically @generated by Cargo.\n# It is not intended for manual editing.\nversion = 4\n\n[[package]]\nname = \"base64\"\nversion = \"0.22.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\"\n\n[[package]]\nname = \"bitflags\"\nversion = \"2.13.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06\"\n\n[[package]]\nname = \"block-buffer\"\nversion = \"0.10.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\"\ndependencies = [\n \"generic-array\",\n]\n\n[[package]]\nname = \"bumpalo\"\nversion = \"3.20.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649\"\n\n[[package]]\nname = \"cfg-if\"\nversion = \"1.0.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600\"\n\n[[package]]\nname = \"cpufeatures\"\nversion = \"0.2.17\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\"\ndependencies = [\n \"libc\",\n]\n\n[[package]]\nname = \"crypto-common\"\nversion = \"0.1.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a\"\ndependencies = [\n \"generic-array\",\n \"typenum\",\n]\n\n[[package]]\nname = \"digest\"\nversion = \"0.10.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\"\ndependencies = [\n \"block-buffer\",\n \"crypto-common\",\n]\n\n[[package]]\nname = \"equivalent\"\nversion = \"1.0.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\"\n\n[[package]]\nname = \"foldhash\"\nversion = \"0.1.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2\"\n\n[[package]]\nname = \"generic-array\"\nversion = \"0.14.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\"\ndependencies = [\n \"typenum\",\n \"version_check\",\n]\n\n[[package]]\nname = \"hashbrown\"\nversion = \"0.15.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1\"\ndependencies = [\n \"foldhash\",\n]\n\n[[package]]\nname = \"hashbrown\"\nversion = \"0.17.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a\"\n\n[[package]]\nname = \"indexmap\"\nversion = \"2.14.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9\"\ndependencies = [\n \"equivalent\",\n \"hashbrown 0.17.1\",\n]\n\n[[package]]\nname = \"itoa\"\nversion = \"1.0.18\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682\"\n\n[[package]]\nname = \"leb128fmt\"\nversion = \"0.1.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2\"\n\n[[package]]\nname = \"libc\"\nversion = \"0.2.191\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a\"\n\n[[package]]\nname = \"libm\"\nversion = \"0.2.16\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981\"\n\n[[package]]\nname = \"memchr\"\nversion = \"2.8.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\"\n\n[[package]]\nname = \"proc-macro2\"\nversion = \"1.0.107\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9\"\ndependencies = [\n \"unicode-ident\",\n]\n\n[[package]]\nname = \"quote\"\nversion = \"1.0.47\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001\"\ndependencies = [\n \"proc-macro2\",\n]\n\n[[package]]\nname = \"refined_adapter_checker\"\nversion = \"1.0.0\"\ndependencies = [\n \"base64\",\n \"refined_adapter_sdk\",\n \"serde\",\n \"serde_json\",\n \"sha2\",\n \"wasmi\",\n \"wat\",\n]\n\n[[package]]\nname = \"refined_adapter_sdk\"\nversion = \"1.0.0\"\ndependencies = [\n \"serde\",\n \"serde_json\",\n]\n\n[[package]]\nname = \"refined_custom_qap\"\nversion = \"1.0.0\"\ndependencies = [\n \"refined_adapter_sdk\",\n \"serde\",\n]\n\n[[package]]\nname = \"refined_custom_weighted_fit\"\nversion = \"1.0.0\"\ndependencies = [\n \"refined_adapter_sdk\",\n \"serde\",\n]\n\n[[package]]\nname = \"semver\"\nversion = \"1.0.28\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd\"\n\n[[package]]\nname = \"serde\"\nversion = \"1.0.229\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba\"\ndependencies = [\n \"serde_core\",\n \"serde_derive\",\n]\n\n[[package]]\nname = \"serde_core\"\nversion = \"1.0.229\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48\"\ndependencies = [\n \"serde_derive\",\n]\n\n[[package]]\nname = \"serde_derive\"\nversion = \"1.0.229\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348\"\ndependencies = [\n \"proc-macro2\",\n \"quote\",\n \"syn\",\n]\n\n[[package]]\nname = \"serde_json\"\nversion = \"1.0.154\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6\"\ndependencies = [\n \"itoa\",\n \"memchr\",\n \"serde\",\n \"serde_core\",\n \"zmij\",\n]\n\n[[package]]\nname = \"sha2\"\nversion = \"0.10.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\"\ndependencies = [\n \"cfg-if\",\n \"cpufeatures\",\n \"digest\",\n]\n\n[[package]]\nname = \"spin\"\nversion = \"0.9.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e\"\n\n[[package]]\nname = \"string-interner\"\nversion = \"0.19.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"23de088478b31c349c9ba67816fa55d9355232d63c3afea8bf513e31f0f1d2c0\"\ndependencies = [\n \"hashbrown 0.15.5\",\n \"serde\",\n]\n\n[[package]]\nname = \"syn\"\nversion = \"3.0.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b\"\ndependencies = [\n \"proc-macro2\",\n \"quote\",\n \"unicode-ident\",\n]\n\n[[package]]\nname = \"typenum\"\nversion = \"1.20.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20\"\n\n[[package]]\nname = \"unicode-ident\"\nversion = \"1.0.27\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563\"\n\n[[package]]\nname = \"unicode-width\"\nversion = \"0.2.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254\"\n\n[[package]]\nname = \"version_check\"\nversion = \"0.9.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\"\n\n[[package]]\nname = \"wasm-encoder\"\nversion = \"0.262.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4495a6f85dd94c411c749303efcbc5defade0b0cbdbc0541495241ab917a9b5a\"\ndependencies = [\n \"leb128fmt\",\n \"wasmparser 0.262.0\",\n]\n\n[[package]]\nname = \"wasmi\"\nversion = \"2.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"78693fcdd618e0fc34af59c6b8efa9ac5d58c68df940beff4bedddb6acfe7c27\"\ndependencies = [\n \"spin\",\n \"wasmi_collections\",\n \"wasmi_core\",\n \"wasmi_ir\",\n \"wasmparser 0.228.0\",\n \"wat\",\n]\n\n[[package]]\nname = \"wasmi_collections\"\nversion = \"2.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8a8be2aa467cf2d29e96ff759472c36eeb44a3c81c67fc9cb76c9a24c519c557\"\ndependencies = [\n \"string-interner\",\n]\n\n[[package]]\nname = \"wasmi_core\"\nversion = \"2.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"69372d5fda3ea3d1e0aa6603c7888110e0187e88ea17cd8fc2e2df0a0e1f37fa\"\ndependencies = [\n \"libm\",\n]\n\n[[package]]\nname = \"wasmi_ir\"\nversion = \"2.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8f17b774caa13c618c7244f1ee51fe23c5e7b8538a471fa46d9949779758aed6\"\ndependencies = [\n \"wasmi_core\",\n]\n\n[[package]]\nname = \"wasmparser\"\nversion = \"0.228.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4abf1132c1fdf747d56bbc1bb52152400c70f336870f968b85e89ea422198ae3\"\ndependencies = [\n \"bitflags\",\n \"indexmap\",\n]\n\n[[package]]\nname = \"wasmparser\"\nversion = \"0.262.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"974d643b125b272607e2fff8012ea14a8328acd7621e4bafa7afb32500052b1b\"\ndependencies = [\n \"bitflags\",\n \"indexmap\",\n \"semver\",\n]\n\n[[package]]\nname = \"wast\"\nversion = \"262.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"30612a0c29249b5f185888a107e8a519d920226b7d07f9d351fd094e9f75eb23\"\ndependencies = [\n \"bumpalo\",\n \"leb128fmt\",\n \"memchr\",\n \"unicode-width\",\n \"wasm-encoder\",\n]\n\n[[package]]\nname = \"wat\"\nversion = \"1.262.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e228027f2b07bbaf946980ebbe2437fca73be6f54c40c2a8d4f42f277075f8d1\"\ndependencies = [\n \"wast\",\n]\n\n[[package]]\nname = \"zmij\"\nversion = \"1.0.23\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b\"\n"
    },
    {
      "name": "README.md",
      "content": "# Refined Math Rust adapter SDK v1\n\nUse this project to write and build your own executable adapter. The SDK contains the public data contracts, serialization helpers and example algorithms. The Refined search implementation is separate. After you import the resulting `*.adapter.json` package, the application executes its Wasm module in the calculation server's native worker and uses the supplied operators with Refined. With the local server, execution takes place on that computer.\n\n## Build, change and import\n\nInstall Rust and Node.js, then extract the project archive. Run the following commands from the extracted directory containing `Cargo.toml` and `package.mjs`. Rust 1.93.0 is the reference toolchain:\n\n```text\nrustup toolchain install 1.93.0 --profile minimal\nrustup target add wasm32-unknown-unknown --toolchain 1.93.0\ncargo +1.93.0 build --release --target wasm32-unknown-unknown -p refined_custom_qap\ncargo +1.93.0 run --locked --release -p refined_adapter_checker -- target/wasm32-unknown-unknown/release/refined_custom_qap.wasm examples/qap/fixtures.json\nnode package.mjs qap target/wasm32-unknown-unknown/release/refined_custom_qap.wasm qap.adapter.json\n```\n\nIn Refined Math, choose **Import adapter or task**, select `qap.adapter.json`, and wait for the executable checks to finish. The adapter appears in **My adapters**. Review or change its matrix data, choose **Validate input**, then **Calculate**. To change the algorithm, edit `examples/qap/src/lib.rs`, rebuild the module and package it under a new filename. Importing changed package content creates a new definition revision for the same author adapter ID. Earlier calculations keep their original package and module identities.\n\nThe second project uses real-valued states and incrementally updated residuals:\n\n```text\ncargo +1.93.0 build --release --target wasm32-unknown-unknown -p refined_custom_weighted_fit\ncargo +1.93.0 run --locked --release -p refined_adapter_checker -- target/wasm32-unknown-unknown/release/refined_custom_weighted_fit.wasm examples/weighted-fit/fixtures.json\nnode package.mjs weighted-fit target/wasm32-unknown-unknown/release/refined_custom_weighted_fit.wasm weighted-fit.adapter.json\n```\n\n`package.mjs` combines an already compiled binary, its source and its manifest into an importable document. Before writing, it uses the included `package-contract.cjs`, a copy of the application's public package validator, to check the package format, source paths, cumulative source size and bounded data. It does not compile or execute the module; server executable admission remains a separate step. Existing output files are not overwritten, so choose a new output filename for each changed package. Import the complete package rather than an individual `.rs` or `.wasm` file. Keep the executable package: exporting a definition or task that refers to its digest does not copy the executable to another installation.\n\n## Check your adapter before import\n\nThe source project includes a standalone native author checker under `checker/`, fixtures for both examples and the fixture contract in `checker/FIXTURES.md`. Build/run it from the extracted SDK workspace with the commands above. It needs no Refined Math server, account, private worker or Refined dependency. Cargo builds the public native checker; the checker then calls the supplied Wasm module with the trusted fixtures. It does not compile source or generate code from fixture text.\n\nThe first argument may also be the complete executable package:\n\n```text\ncargo +1.93.0 run --locked --release -p refined_adapter_checker -- qap.adapter.json examples/qap/fixtures.json\n```\n\nFixtures contain the expected executable `description`, matching the example manifest's `descriptionContract`, and explicit reference cases for the calls being checked. The description is read from the supplied module and compared with that contract. Keep fixtures under your control: write independently checked states, moves, scores and validation expectations for your problem, rather than treating the module's own output as its reference. Follow `checker/FIXTURES.md` when adapting the examples. Exact `i128` scores use decimal strings; finite `f64` scores use the fixture's declared tolerance.\n\nReference tolerance never permits the module's own score to drift: repeated evaluation, fresh-instance evaluation and author validation must agree exactly after numeric parsing, with signed zero normalized.\n\nThe checker reports actual callback checks as JSON on standard output and exits with a nonzero status when a check fails. Its report states `coreUsed:false`: this is a bounded interface/behavior check, not a Refined solve or an optimality proof. Passing trusted small cases does not establish that an arbitrary model represents the intended problem or that every input is correct. Import admission and an actual Refined Math calculation remain separate steps.\n\nChecker execution uses `wasmi`, rejects module imports and start functions, and bounds each instance to 32 MiB of linear memory. Calls allow at most 50 million fuel units and a suite allows at most 500 million. These are instruction/memory bounds, not a wall-time guarantee. The checker is a local author tool for trusted fixture files; it is not an application service for arbitrary uploaded workloads.\n\nBoth `source.zip` and the source attached to a new single-example executable package include the SDK, checker, fixture documentation and the matching example fixtures. The single-example workspace keeps `sdk`, `checker` and that example as members, so it can be rebuilt and checked independently. Dependencies must be available to Cargo; `--locked` preserves the supplied dependency resolution.\n\n## What the adapter controls\n\nImplement the `Adapter` trait in `sdk/src/lib.rs`. Your code supplies initialization, evaluation, validation, proposed moves, application, the entire local-search loop and perturbation. Optional hooks provide guidance, repair, recombination, path relinking and stable features. Rust structs, integer or real state, helper functions and private per-instance caches are supported. Cache contents must not change mathematical semantics: instances can be reused by different core threads and final validation starts fresh.\n\nScores prioritize nonnegative constraint violations, then up to eight declared lexicographic objectives. `i128` objectives are exact decimal integers; `f64` objectives must be finite decimal values. State, moves and data cross the boundary as bounded JSON. Inner local-search iterations stay inside the module; there is no browser or process callback per iteration.\n\nThe QAP example uses exact swap deltas, best-improvement local search and order-preserving recombination. Its `frozen-operators` Cargo feature exists for conformance testing: it disables changes while keeping the same starting state. The fit example keeps residuals inside its local search and updates them after coordinate changes. Both examples are standalone author implementations using this public contract; their package digests identify their own executable versions, not the built-in adapters' source versions.\n\n## Execution boundary and current profile limits\n\nSDK v1 uses a bounded CPU Wasm interpreter. Modules have no host imports or WASI access, so they cannot access the network, filesystem, processes or native libraries through the application. The application accepts compiled packages and does not compile user source. This execution profile is separate from installed native adapters and does not expose GPU services or every private core hook. Core learning can use supplied operator keys and stable features. CPU core parallelism uses at most four isolated module instances. Interpreter execution and serialization have different costs from specialized native adapters, so their performance may differ.\n\nCurrent ceilings: 512 KiB module, 4 MiB import package, 2 MiB accompanying source, 64 KiB decision state, 128 KiB request/response and 32 MiB memory per instance. A callback may return up to 256 guidance or move hints. Repair, recombination and path-relinking calls may return at most 24 candidate states, also bounded by the requested candidate limit. Execution allows 50 million fuel units per callback and 500 million across search instances. Initialization, allocation, cleanup and calls consume fuel. Fresh final validation has a separate bounded allowance. The outer native resource guard also enforces process memory and wall time. Limits are enforced independently of author-supplied counters.\n\nActual Wasm fuel, host-checked state evaluations and author-reported inner work are separate statistics. A fresh evaluation plus the author's validator checks consistency with the supplied algorithm; it does not independently prove that the author's model represents the intended mathematics. Imported modules cannot award themselves global-optimality certificates.\n\n## Source and identity\n\nThe package includes the module SHA-256 and its declared executable interface. Admission checks the binary and compares the module's actual interface to that declaration. The complete package receives a host-computed digest. Source files are author-supplied reference material; source-to-binary equivalence is not attested. The source viewer must not label supplied source as independently proven to match arbitrary uploaded binaries.\n\nKeep reusable code and separate data distinct. Export data from the workspace to reuse the same executable with other inputs. Use **Download executable package** in the source viewer to move the complete adapter to another installation.\n"
    },
    {
      "name": "package.mjs",
      "content": "// Build an import document from an already compiled module. This tool never compiles or executes customer code.\nimport {readFile,writeFile,readdir,lstat,realpath} from 'node:fs/promises';\nimport {fileURLToPath} from 'node:url';\nimport path from 'node:path';\nimport {createHash} from 'node:crypto';\nimport PackageContract from './package-contract.cjs';\nconst root=fileURLToPath(new URL('.',import.meta.url));\nconst [name,moduleFile,outputFile]=process.argv.slice(2);\nif(!name||!moduleFile||!outputFile||!/^[a-z0-9-]+$/.test(name))throw Error('Usage: node package.mjs EXAMPLE COMPILED_MODULE.wasm OUTPUT.adapter.json');\nconst example=path.join(root,'examples',name),manifest=JSON.parse(await readFile(path.join(example,'manifest.json'),'utf8'));\nconst moduleBytes=await readFile(path.resolve(moduleFile));\nif(moduleBytes.length>524288||!moduleBytes.subarray(0,8).equals(Buffer.from([0,97,115,109,1,0,0,0])))throw Error('Expected a Wasm binary of at most 512 KiB.');\nconst sources=[];\nasync function collect(directory,relative){\n  for(const entry of await readdir(directory,{withFileTypes:true})){\n    if(['target','.git'].includes(entry.name))continue;\n    const filename=path.join(directory,entry.name),local=path.posix.join(relative,entry.name),stat=await lstat(filename);\n    if(stat.isSymbolicLink())throw Error('Source symlinks are not supported.');\n    if(stat.isDirectory()){await collect(filename,local);continue;}\n    if(!/\\.(rs|toml|md|json|mjs|txt)$/.test(entry.name))continue;\n    if(!stat.isFile()||stat.size>524288||sources.length>=60)throw Error('Source package limit exceeded.');\n    const resolved=await realpath(filename);if(!resolved.toLowerCase().startsWith(path.resolve(root).toLowerCase()+path.sep))throw Error('Source path escaped the SDK project.');\n    sources.push({name:local,content:await readFile(filename,'utf8')});\n  }\n}\nawait collect(example,'examples/'+name);await collect(path.join(root,'sdk'),'sdk');await collect(path.join(root,'checker'),'checker');\nfor(const filename of ['Cargo.toml','Cargo.lock','README.md','package.mjs','package-contract.cjs'])sources.push({name:filename,content:await readFile(path.join(root,filename),'utf8')});\n// Keep the exported project independently buildable when it contains one example.\nconst cargo=sources.find(file=>file.name==='Cargo.toml');\nif(!/members\\s*=\\s*\\[[^\\]]+\\]/.test(cargo.content))throw Error('Expected an explicit SDK workspace member list.');\ncargo.content=cargo.content.replace(/members\\s*=\\s*\\[[^\\]]+\\]/,'members = [\"sdk\", \"checker\", \"examples/'+name+'\"]');\nconst packet={format:'refined.math.wasm-adapter',schemaVersion:1,name:manifest.name,description:manifest.description,executable:{moduleBase64:moduleBytes.toString('base64'),moduleDigest:createHash('sha256').update(moduleBytes).digest('hex'),description:manifest.descriptionContract},inputSchema:manifest.inputSchema,defaultData:manifest.defaultData,samples:manifest.samples||[],...(manifest.presentation?{presentation:manifest.presentation}:{}),sources};\nawait PackageContract.validate(packet);\nconst json=JSON.stringify(packet,null,2)+'\\n';if(Buffer.byteLength(json)>4*1024*1024)throw Error('The complete adapter package exceeds 4 MiB.');\nawait writeFile(path.resolve(outputFile),json,{flag:'wx'});\nconsole.log('Created '+path.resolve(outputFile)+'; module SHA-256 '+packet.executable.moduleDigest);\n"
    },
    {
      "name": "package-contract.cjs",
      "content": "(function(root,factory){const node=typeof module==='object'&&module.exports;const api=factory(node?require('node:crypto').webcrypto:root.crypto);if(node)module.exports=api;else root.WasmAdapterPackage=api;})(globalThis,function(crypto){\n  'use strict';\n  const FORMAT='refined.math.wasm-adapter',MAX_BYTES=4*1024*1024,MAX_MODULE_BYTES=524288;\n  const object=value=>value!==null&&typeof value==='object'&&!Array.isArray(value),clone=value=>JSON.parse(JSON.stringify(value));\n  const stable=value=>Array.isArray(value)?'['+value.map(stable).join(',')+']':object(value)?'{'+Object.keys(value).sort().map(key=>JSON.stringify(key)+':'+stable(value[key])).join(',')+'}':JSON.stringify(value);\n  const bytes=value=>new TextEncoder().encode(typeof value==='string'?value:JSON.stringify(value));\n  const fail=message=>{throw Object.assign(Error(message),{code:'INVALID_ADAPTER',field:'adapterPackage'});};\n  const keys=(value,allowed)=>{if(!object(value)||Object.keys(value).some(key=>!allowed.includes(key)))fail('Unexpected adapter package fields.');};\n  const token=(value,maximum=96)=>typeof value==='string'&&value.length>0&&value.length<=maximum&&/^[A-Za-z0-9_.-]+$/.test(value);\n  const digest=async value=>Array.from(new Uint8Array(await crypto.subtle.digest('SHA-256',value instanceof Uint8Array?value:bytes(stable(value)))),b=>b.toString(16).padStart(2,'0')).join('');\n  function safe(value,depth=0){if(depth>40)fail('The adapter package is nested too deeply.');if(value===null||['string','boolean'].includes(typeof value))return;if(typeof value==='number'){if(!Number.isFinite(value))fail('A value is not finite.');return;}if(Array.isArray(value)){if(value.length>4096)fail('An adapter data array is too long.');for(const item of value)safe(item,depth+1);return;}if(!object(value))fail('Expected JSON data.');for(const [key,item]of Object.entries(value)){if(['__proto__','constructor','prototype'].includes(key))fail('Reserved adapter field.');safe(item,depth+1);}}\n  function localized(value,maximum){if(!object(value)||typeof value.en!=='string'||!value.en.trim()||Object.keys(value).some(key=>!['en','sk'].includes(key))||Object.values(value).some(text=>typeof text!=='string'||!text.trim()||text.length>maximum))fail('Use bounded English/Slovak adapter labels.');}\n  function description(value){\n    keys(value,['abiVersion','id','version','metrics','families','hooks']);\n    if(value.abiVersion!==1||!token(value.id)||!token(value.version,64)||!Array.isArray(value.metrics)||value.metrics.length<1||value.metrics.length>8||!Array.isArray(value.families)||value.families.length<1||value.families.length>32||value.families.some(f=>!Number.isInteger(f)||f<0||f>65535)||new Set(value.families).size!==value.families.length)fail('Invalid executable ABI, identity, metrics or families.');\n    const names=new Set();for(const metric of value.metrics){keys(metric,['name','numericType','direction']);if(!token(metric.name,64)||names.has(metric.name)||!['i128','f64'].includes(metric.numericType)||!['minimize','maximize'].includes(metric.direction))fail('Invalid metric declaration.');names.add(metric.name);}\n    keys(value.hooks,['guidance','repair','recombine','pathRelink','features']);if(Object.values(value.hooks).some(v=>typeof v!=='boolean'))fail('Hook declarations must be boolean.');\n    return value;\n  }\n  function reference(value){keys(value,['packageDigest','moduleDigest','description']);if(!/^[a-f0-9]{64}$/.test(value.packageDigest)||!/^[a-f0-9]{64}$/.test(value.moduleDigest))fail('Invalid admitted adapter identity.');description(value.description);return value;}\n  async function validate(value){\n    if(bytes(value).length>MAX_BYTES)fail('The executable adapter package exceeds 4 MiB.');safe(value);\n    keys(value,['format','schemaVersion','name','description','executable','inputSchema','defaultData','samples','presentation','sources']);\n    if(value.format!==FORMAT||value.schemaVersion!==1)fail('Expected an executable Rust SDK v1 adapter package.');localized(value.name,120);localized(value.description,4000);\n    keys(value.executable,['moduleBase64','moduleDigest','description']);description(value.executable.description);\n    const encoded=value.executable.moduleBase64;if(typeof encoded!=='string'||encoded.length>Math.ceil(MAX_MODULE_BYTES/3)*4||encoded.length%4||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(encoded))fail('Invalid or oversized Wasm encoding.');\n    const raw=Uint8Array.from(atob(encoded),c=>c.charCodeAt(0));if(raw.length>MAX_MODULE_BYTES||[0,97,115,109,1,0,0,0].some((v,i)=>raw[i]!==v))fail('Expected a WebAssembly binary, not source text or a native executable.');\n    if(await digest(raw)!==value.executable.moduleDigest)fail('The executable digest does not match the supplied module.');\n    if(!object(value.inputSchema)||!object(value.defaultData)||bytes(value.defaultData).length>65536)fail('An adapter needs an input schema and bounded default data.');\n    if(value.samples!==undefined&&(!Array.isArray(value.samples)||value.samples.length>8||value.samples.some(sample=>!object(sample)||Object.keys(sample).some(k=>!['name','data'].includes(k))||!object(sample.data)||bytes(sample.data).length>65536)))fail('Invalid adapter examples.');\n    for(const sample of value.samples||[])localized(sample.name,120);\n    const sources=value.sources||[];if(!Array.isArray(sources)||sources.length>64)fail('Invalid source file list.');let sourceBytes=0;const paths=new Set();\n    for(const source of sources){keys(source,['name','content']);if(typeof source.name!=='string'||source.name.length>180||!source.name.split('/').every(part=>/^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)*$/.test(part))||! /\\.(rs|toml|md|json|mjs|cjs|txt|lock)$/.test(source.name)||paths.has(source.name.toLowerCase())||typeof source.content!=='string')fail('Invalid or duplicated source path.');paths.add(source.name.toLowerCase());sourceBytes+=bytes(source.content).length;}\n    if(sourceBytes>2*1024*1024)fail('The supplied source exceeds 2 MiB.');\n    return {package:clone(value),packageDigest:await digest(value),moduleDigest:value.executable.moduleDigest};\n  }\n  function profile(value,packageDigest,coreRevision){\n    const adapter={packageDigest,moduleDigest:value.executable.moduleDigest,description:clone(value.executable.description)};\n    const task=(name,data)=>({format:'refined.math.task',schemaVersion:1,adapterId:'customer-wasm',title:name.en,payload:{input:{adapter:clone(adapter),data:clone(data)}},options:{seed:42,timeLimitMs:3000,maxCandidateStates:20000},...(value.presentation?{presentation:clone(value.presentation)}:{})});\n    return {format:'refined.math.adapter',schemaVersion:1,adapterId:'customer-wasm',version:value.executable.description.version,name:{en:value.name.en,sk:value.name.sk||value.name.en},description:{en:value.description.en,sk:value.description.sk||value.description.en},help:{en:'Edit data and run your imported Rust adapter. Import a newly built package to change its algorithms.',sk:'Upravte dáta a spustite importovaný Rust adaptér. Algoritmus zmeníte importom nanovo zostaveného balíka.'},\n      runtime:{binding:'customer-wasm',coreRevision,inputKey:'input'},inputSchema:{type:'object',additionalProperties:false,required:['adapter','data'],properties:{adapter:{},data:clone(value.inputSchema)}},\n      contract:{state:{en:'An author-defined state, freshly evaluated through the imported module.',sk:'Stav definovaný autorom a znovu vyhodnotený importovaným modulom.'},score:{en:'Feasibility first, followed by the declared exact or real objectives.',sk:'Najprv splnenie podmienok, potom deklarované presné alebo reálne ciele.'},operators:{en:['The imported module owns moves, local search and perturbation.'],sk:['Importovaný modul určuje operátory, lokálne vyhľadávanie a perturbáciu.']},output:{en:'Author outputs, checked scores, actual core statistics and metered module work. No global proof is claimed.',sk:'Výstupy autora, skontrolované skóre, skutočné štatistiky jadra a meraná práca modulu. Výsledok nie je dôkaz globálneho optima.'}},\n      defaultTask:task(value.name,value.defaultData),samples:(value.samples||[]).map((sample,index)=>({id:'module-example-'+index,name:clone(sample.name),description:clone(value.description),expected:{en:'Checked best-found result from the imported module.',sk:'Skontrolovaný najlepší nájdený výsledok importovaného modulu.'},task:task(sample.name,sample.data)}))};\n  }\n  return {FORMAT,MAX_BYTES,MAX_MODULE_BYTES,stable,digest,safe,description,reference,validate,profile};\n});\n"
    }
  ]
}
