Working with domain events. Referencing leaf / sub-entity of aggregate
| Newsgroups | gmane.comp.programming.domain-driven-design |
|---|---|
| Message-ID | <[email protected]> |
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" SGVsbG8gZXZlcnlvbmUsDQogDQoNCiBJIGtub3cgbXkgdG9waWMgaXMgbm90IG5ldyBhbmQgd2Fz IGRpc2N1c3NlZCBtYW55IHRpbWVzIGJlZm9yZS4gSSByZWFkIGEgbG90IGJ1dCBub3Qgc3VyZSB3 aGV0aGVyIEkgYW0gZ29pbmcgdGhlIGJlc3QgcGF0aC4gU28gSSB3aWxsIHBsYWNlIHRoaXMgdG9w aWMgaGVyZSBhZ2FpbiB3aXRoIGFub3RoZXIgY29uY3JldGUgZXhhbXBsZS4NCiANCg0KIEluIHRo ZSBzYWxlcyBkZXBhcnRtZW50IHdlIHdvcmsgd2l0aCBvcmRlcnMuIE9idmlvdXNseSB0aGlzIGlz LCB3aGF0IGEgY3VzdG9tZXIgb3JkZXJzLiANCiANCg0KIEEpIFVuZGVyc3RhbmRpbmcgYW4gb3Jk ZXIgd2l0aCBpdHMgaXRlbXM6DQogT3VyIHN0YWtlaG9sZGVyIG9mdGVuIGZhbGwgYmFjayBhbmQg c2F5OiBXZSBuZWVkIGFuIG9yZGVyIGFuZCBvcmRlciBpdGVtcy4gQnV0IHRoaXMgaXMgb25seSBi ZWNhdXNlIG9mIGdpdmluZyB0aGUg4oCcdGhpbmfigJ0gYW4gb3JkZXIgbnVtYmVyIHRvIHRhbGsg YWJvdXQuIExpa2UgYnJhY2tldHMgYXJvdW5kIGFsbCBvcmRlciBpdGVtcy4gU28gb3VyIHVuZGVy c3RhbmRpbmcgaW4gdGhlIGRldi1UZWFtIGlzLCB0aGUgb3JkZXIgaXRlbXMgYXJlIGFnZ3JlZ2F0 ZXMgYW5kIHdlIHdpbGwgZG8gc29tZXRoaW5nIHRvIGdyb3VwIHRoZW4gYnkgYW4gb3JkZXIgbnVt YmVyLg0KIA0KIFdlIHRoaW5rIG9mIG9yZGVyIGl0ZW1zIGFzIGFnZ3JlZ2F0ZXMsIGJlY2F1c2Ug YSBjdXN0b21lciB3aWxsIG5ldmVyIHJlcXVlc3QgYW4gb3JkZXIgd2l0aCB0aHJlZSBpdGVtcyBp biBpdC4gRnVydGhlcm1vcmUgaGUgd2lsbCBvcmRlciB0aHJlZSBhcnRpY2xlcyB3aXRoIGEgc3Bl Y2lmaWMgbnVtYmVyLiBJdCBpcyBvbmx5IGZvciBjb21tdW5pY2F0aW9uIHJlYXNvbnMgdGhhdCBh IG51bWJlciBmb3IgdGhlc2UgdGhyZWUgaXRlbXMgbWFrZXMgaXQgZWFzaWVyLiBXaGF0IGRvIHlv dSB0aGluayBhYm91dCB0aGF0Pw0KIA0KDQogQikgQ29uZmxpY3Qgd2l0aCBzdWItZW50aXR5IHdp dGhpbiBvcmRlci1pdGVtLWFnZ3JlZ2F0ZQ0KIFRoaW5rIG9mIG9yZGVyIGl0ZW0uIFRoaXMgaXMg YW4gYXJ0aWNsZSBpbiBhIHNwZWNpZmljIHF1YW50aXR5IGEgY3VzdG9tZXIgd291bGQgbGlrZSB0 byBoYXZlLiBPcmRlciBpdGVtIGlzIGFuIGFnZ3JlZ2F0ZS4gQXNzaWduZWQgdG8gdGhlIG9yZGVy IGl0ZW0gdGhlcmUgYXJlIG11bHRpcGxlIOKAnGNhbGwgb2Zm4oCdLiBBIGNhbGwgb2ZmIGRlc2Ny aWJlcyB3aGVuIHRoZSBjdXN0b21lciByZXF1ZXN0cyBhIGNlcnRhaW4gcXVhbnRpdHkgYW5kIHdo ZXRoZXIgaXQgbXVzdCBiZSBkZWxpdmVyZWQgKEREUCkgb3Igd2hldGhlciBpdCB3aWxsIGJlIGZl dGNoZWQgKOKAnGV4IHdvcmtz4oCdKS4gQWN0dWFsbHkgY2FsbCBvZmYgaXMgYW4gYWdncmVnYXRl IG9uIGl0cyBvd24uIEhlcmUgaXMgb3VyIGNvbmZsaWN0Og0KIDEuIFN1bSBvZiBxdWFudGl0aWVz IGZvciBhbGwgY2FsbCBvZmYgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gb3JkZXIgaXRl bSBxdWFudGl0eS4gU28gbWFraW5nIGNhbGwgb2ZmIGFuIHN1YiBlbnRpdHkgb2Ygb3JkZXIgaXRl bSBzZWVtcyB0byBiZSB0aGUgYmVzdCBjaG9pY2UsIHRoYW4gbWFraW5nIGl0IGFuIG93biBhZ2dy ZWdhdGUuDQogMi4gT24gdGhlIG90aGVyIHNpZGUgY2FsbCBvZmYgd2lsbCBiZSByZWZlcmVuY2Vk IGluIHRoZSBkaXNwYXRjaCBkZXBhcnRtZW50LiBUaGlzIGlzLCBiZWNhdXNlIGV2ZXJ5IGNhbGwg b2ZmIGxlYWRzIGF0IGxlYXN0IHRvIGFuIOKAnGdvb2RzIGlzc3VlIHJlcXVlc3TigJ0gaW4gdGhl IGRpc3BhdGNoIGRlcGFydG1lbnQuIEJ1dCByZWZlcmluZyB0byBib29rIGZyb20gRXJpYyBFdmFu cyBpdCBpcyBhYnNvbHV0ZWx5IG5vdCBhbGxvd2VkIHRvIHJlZmVyZW5jZSBhIHN1Yi1lbnRpdHkg LSBleGNlcHQgZm9yIGEgc2luZ2xlIG9wZXJhdGlvbi4gSXQgaXMgb25seSBhbGxvd2VkIHRvIHJl ZmVyZW5jZSBhZ2dyZWdhdGVzLg0KIFdlIGFyZSBhZnJhaWQgb2YgaGF2aW5nIDkwJSBvdXIgb2Jq ZWN0cyBiZWluZyBhbiBhZ2dyZWdhdGUgYW5kIHBsYWNpbmcgZG9tYWluIGxvZ2ljIG5vdCB3aXRo aW4gdGhlIGFnZ3JlZ2F0ZXMgYnV0IHdpdGhpbiBzZXJ2aWNlcyBhcm91bmQgdHdvIG9yIG1vcmUg YWdncmVnYXRlcy4NCiANCg0KIEZyb20gd2hhdCBJIGhhdmUgYWxyZWFkeSByZWFkIGFuZCBnb3Qg YXMgcmVzcG9uc2VzIGZyb20gZXhwZXJ0cyBsaWtlIFBhdWwgUmF5bmVyIEkgc2hvdWxkIHN0YXJ0 IHRvIHRoaW5rIGFib3V0ICJjYWxsIG9mZiIgYXMgYW4gImRvbWFpbiBldmVudCIuIE9rYXksIGl0 J3Mgbm8gcHJvYmxlbSB0byBpbWFnaW5lIHRoYXQgb3JkZXIgaXRlbSB3aWxsIGhhdmUgYW4gImN1 c3RvbWVyIHJlcXVlc3RlZCBxdWFudGl0eSItRXZlbnQgb3Igc29tZXRoaW5nIGxpa2UgdGhpcy4N CiANCg0KIFByb2JsZW0gaXMgd2hlbiBsZWF2aW5nIGJvdW5kZWQgY29udGV4dCBvZiBsZXQncyBz YXkgImN1c3RvbWVyIGNhcmUiLiBJbiBkaXNwYXRjaCBkZXBhcnRtZW50IGl0IGlzIG5vIHByb2Js ZW0gdG8gaW1hZ2luZSB0aGF0IHRoaXMgZG9tYWluIGV2ZW50IGNhbiBsZWFkIHRvIGFuIGFjdGlv biBhbmQgbmV3IGFnZ3JlZ2F0ZSB0aGVyZS4gQXQgdGhpcyBwb2ludCBJIGRvIG5vdCBuZWVkIGEg cmVmZXJlbmNlIHRvIHRoZSAiY2FsbCBvZmYiL2RvbWFpbiBldmVudC4gQnV0IHdoZW4gZGlzcGF0 Y2ggaGFzIHByb2JsZW1zIG9yIHdvcmsgaXMgZG9uZSwgc2FsZXMgZGVwYXJ0bWVudCBuZWVkcyB0 byBiZSBpbmZvcm1lZCB0aGF0ICJjYWxsIG9mZiIgbmVlZHMgYXR0ZW50aW9uIG9yIGlzIGRvbmUg YW5kIHBvc3NpYmx5IG9yZGVyIGl0ZW0gY2FuIGJlIGdpdmVuIHRvICJpbnZvY2VtZW50Ii1ib3Vu ZGVkLWNvbnRleHQ/DQogDQoNCiBJcyBpdCBva2F5LCB3aGVuIGFnZ3JlZ2F0ZSBpbiBkaXNwYXRj aCBob2xkcyBjb21wb3NlZCBrZXkgb24gb3JkZXIgaXRlbSBhbmQgc3ViLWVudGl0eSAvIGFnZ3Jl Z2F0ZSBsZWFmPyBXaGF0IG90aGVyIHBvc3NpYmlsaXRpdGVzIGRvIHlvdSBzZWU/IE11c3QgImNh bGwgb2ZmIiBiZSBhbiBhZ2dyZWdhdGUgYW5kIGEgZG9tYWluLXNlcnZpY2UgbXVzdCBjaGVjayBz dW0gb2YgY2FsbCBvZmYgcXVhbnRpdGllcyBhZ2FpbnMgb3JkZXIgaXRlbT8gSXMgdGhpcyBzb21l dGhpbmcgZm9yIHRoZSAiUHJvY2VzcyBNYW5hZ2VyIiBwcmVzZW50ZWQgdG8gbWUgdGhlIGZpcnN0 IHRpbWUgYXQgdGhlIERERCBFdXJvcGUgaW4gQmVsZ2l1bSBieSBNYXRoaWFzIFZlcnJhZXM/DQog DQoNCiBJIHdpbGwgYmUgdmVyeSBoYXBweSBnZXR0aW5nIGEgbG90IG9mIGlkZWFzIGFuZCByZXNw b25zZXMuIFRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIHJlYWRpbmcgbXkgc3RvcnkgOi0pLg0KIA0K DQogDQoNCiANCg0K --9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 CgoKCjxoZWFkPgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPCEtLQoKLyogc3RhcnQgb2Yg YXR0YWNobWVudCBzdHlsZSAqLwogICAgICAgLnlncnAtcGhvdG8tdGl0bGV7CiAgICAgICAg IGNsZWFyOiBib3RoOwogICAgICAgICBmb250LXNpemU6IHNtYWxsZXI7CiAgICAgICAgIGhl aWdodDogMTVweDsKICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgdGV4dC1h bGlnbjogY2VudGVyOwogICAgICAgICB3aWR0aDogNzVweDsKICAgICAgIH0KICAgICAgIGRp di55Z3JwLXBob3RvewogICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAg ICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICAgICAgIGJhY2tncm91 bmQtY29sb3I6IHdoaXRlOwogICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAg ICAgICAgaGVpZ2h0OiA2MnB4OwogICAgICAgICB3aWR0aDogNjJweDsKICAgICAgIH0KCiAg ICAgICBkaXYucGhvdG8tdGl0bGUgCiAgICAgICAgIGEsCiAgICAgICAgIGRpdi5waG90by10 aXRsZSBhOmFjdGl2ZSwKICAgICAgICAgZGl2LnBob3RvLXRpdGxlIGE6aG92ZXIsCiAgICAg ICAgIGRpdi5waG90by10aXRsZSBhOnZpc2l0ZWQgewogICAgICAgICAgIHRleHQtZGVjb3Jh dGlvbjogbm9uZTsgCiAgICAgICB9CgogICAgICAgZGl2LmF0dGFjaC10YWJsZSBkaXYuYXR0 YWNoLXJvdyB7CiAgICAgICAgIGNsZWFyOiBib3RoOwogICAgICAgfQoKICAgICAgIGRpdi5h dHRhY2gtdGFibGUgZGl2LmF0dGFjaC1yb3cgZGl2IHsKICAgICAgICAgZmxvYXQ6IGxlZnQ7 CiAgICAgICAgIC8qIG1hcmdpbjogMnB4OyovCiAgICAgICB9CgogICAgICAgcCB7CiAgICAg ICAgIGNsZWFyOiBib3RoOwogICAgICAgICBwYWRkaW5nOiAxNXB4IDAgM3B4IDA7Cgkgb3Zl cmZsb3c6IGhpZGRlbjsKICAgICAgIH0KCiAgICAgICBkaXYueWdycC1maWxlIHsKICAgICAg ICAgd2lkdGg6IDMwcHg7CiAgICAgICAgIHZhbGlnbjogbWlkZGxlOwogICAgICAgfQogICAg ICAgZGl2LmF0dGFjaC10YWJsZSBkaXYuYXR0YWNoLXJvdyBkaXYgZGl2IGEgewogICAgICAg ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICB9CgogICAgICAgZGl2LmF0dGFjaC10 YWJsZSBkaXYuYXR0YWNoLXJvdyBkaXYgZGl2IHNwYW4gewogICAgICAgICBmb250LXdlaWdo dDogbm9ybWFsOwogICAgICAgfQoKICAgICAgIGRpdi55Z3JwLWZpbGUtdGl0bGUgewogICAg ICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgIH0KIC8qIGVuZCBvZiBhdHRhY2htZW50 IHN0eWxlICovCiAgICAgICAgLS0+CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8L2hlYWQ+ CjxodG1sPgo8aGVhZD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPCEtLQojeWdycC1ta3Ag ewogIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7CiAgZm9udC1mYW1pbHk6IEFyaWFsOwog IG1hcmdpbjogMTBweCAwOwogIHBhZGRpbmc6IDAgMTBweDsKfQoKI3lncnAtbWtwIGhyIHsK ICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4Owp9CgojeWdycC1ta3AgI2hkIHsKICBjb2xv cjogIzYyOGMyYTsKICBmb250LXNpemU6IDg1JTsKICBmb250LXdlaWdodDogNzAwOwogIGxp bmUtaGVpZ2h0OiAxMjIlOwogIG1hcmdpbjogMTBweCAwOwp9CgojeWdycC1ta3AgI2FkcyB7 CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKI3lncnAtbWtwIC5hZCB7CiAgcGFkZGluZzog MCAwOwp9CgojeWdycC1ta3AgLmFkIHAgewogIG1hcmdpbjogMDsKfQoKI3lncnAtbWtwIC5h ZCBhIHsKICBjb2xvcjogIzAwMDBmZjsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLS0+ Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CgoKCjwhLS0gfCoqfGJlZ2luIGVncCBodG1sIGJh bm5lcnwqKnwgLS0+Cgo8YnI+PGJyPgoKPCEtLSB8Kip8ZW5kIGVncCBodG1sIGJhbm5lcnwq KnwgLS0+CgoKPHA+PHNwYW4+SGVsbG8gZXZlcnlvbmUsPC9zcGFuPjwvcD48cD48c3Bhbj48 YnI+PC9zcGFuPjwvcD48cD48c3Bhbj5JIGtub3cgbXkgdG9waWMgaXMgbm90IG5ldyBhbmQg d2FzIGRpc2N1c3NlZCBtYW55IHRpbWVzIGJlZm9yZS4gSSByZWFkIGEgbG90IGJ1dCBub3Qg c3VyZSB3aGV0aGVyIEkgYW0gZ29pbmcgdGhlIGJlc3QgcGF0aC4gU28gSSB3aWxsIHBsYWNl IHRoaXMgdG9waWMgaGVyZSBhZ2FpbiB3aXRoIGFub3RoZXIgY29uY3JldGUgZXhhbXBsZS48 L3NwYW4+PC9wPjxwPjxzcGFuPjxicj48L3NwYW4+PC9wPjxwPkluIHRoZSBzYWxlcyBkZXBh cnRtZW50IHdlIHdvcmsgd2l0aCBvcmRlcnMuIE9idmlvdXNseSB0aGlzIGlzLCB3aGF0IGEg Y3VzdG9tZXIgb3JkZXJzLiZuYnNwOzwvcD48cD48YnI+PC9wPjxwPkEpIFVuZGVyc3RhbmRp bmcgYW4gb3JkZXIgd2l0aCBpdHMgaXRlbXM6PC9wPjxwPk91ciBzdGFrZWhvbGRlciBvZnRl biBmYWxsIGJhY2sgYW5kIHNheTogV2UgbmVlZCBhbiBvcmRlciBhbmQgb3JkZXIgaXRlbXMu IEJ1dCB0aGlzIGlzIG9ubHkgYmVjYXVzZSBvZiBnaXZpbmcgdGhlIOKAnHRoaW5n4oCdIGFu IG9yZGVyIG51bWJlciB0byB0YWxrIGFib3V0LiBMaWtlIGJyYWNrZXRzIGFyb3VuZCBhbGwg b3JkZXIgaXRlbXMuIFNvIG91ciB1bmRlcnN0YW5kaW5nIGluIHRoZSBkZXYtVGVhbSBpcywg dGhlIG9yZGVyIGl0ZW1zIGFyZSBhZ2dyZWdhdGVzIGFuZCB3ZSB3aWxsIGRvIHNvbWV0aGlu ZyB0byBncm91cCB0aGVuIGJ5IGFuIG9yZGVyIG51bWJlci48L3A+PHA+PHNwYW4+PC9zcGFu PjwvcD48cD5XZSB0aGluayBvZiBvcmRlciBpdGVtcyBhcyBhZ2dyZWdhdGVzLCBiZWNhdXNl IGEgY3VzdG9tZXIgd2lsbCBuZXZlciByZXF1ZXN0IGFuIG9yZGVyIHdpdGggdGhyZWUgaXRl bXMgaW4gaXQuIEZ1cnRoZXJtb3JlIGhlIHdpbGwgb3JkZXIgdGhyZWUgYXJ0aWNsZXMgd2l0 aCBhIHNwZWNpZmljIG51bWJlci4gSXQgaXMgb25seSBmb3IgY29tbXVuaWNhdGlvbiByZWFz b25zIHRoYXQgYSBudW1iZXIgZm9yIHRoZXNlIHRocmVlIGl0ZW1zIG1ha2VzIGl0IGVhc2ll ci4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhhdD88L3A+PHA+PGJyPjwvcD48cD5CKSBD b25mbGljdCB3aXRoIHN1Yi1lbnRpdHkgd2l0aGluIG9yZGVyLWl0ZW0tYWdncmVnYXRlPC9w PjxwPlRoaW5rIG9mIG9yZGVyIGl0ZW0uIFRoaXMgaXMgYW4gYXJ0aWNsZSBpbiBhIHNwZWNp ZmljIHF1YW50aXR5IGEgY3VzdG9tZXIgd291bGQgbGlrZSB0byBoYXZlLiBPcmRlciBpdGVt IGlzIGFuIGFnZ3JlZ2F0ZS4gQXNzaWduZWQgdG8gdGhlIG9yZGVyIGl0ZW0gdGhlcmUgYXJl IDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+bXVsdGlwbGUgPC9z cGFuPuKAnGNhbGwgb2Zm4oCdLiBBIGNhbGwgb2ZmIGRlc2NyaWJlcyB3aGVuIHRoZSBjdXN0 b21lciByZXF1ZXN0cyBhIGNlcnRhaW4gcXVhbnRpdHkgYW5kIHdoZXRoZXIgaXQgbXVzdCBi ZSBkZWxpdmVyZWQgKEREUCkgb3Igd2hldGhlciBpdCB3aWxsIGJlIGZldGNoZWQgKOKAnGV4 IHdvcmtz4oCdKS4gQWN0dWFsbHkgY2FsbCBvZmYgaXMgYW4gYWdncmVnYXRlIG9uIGl0cyBv d24uIEhlcmUgaXMgb3VyIGNvbmZsaWN0OjwvcD48cD4xLjxzcGFuIGNsYXNzPSJBcHBsZS10 YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZTsiPgk8L3NwYW4+U3VtIG9mIHF1YW50 aXRpZXMgZm9yIDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+YWxs IDwvc3Bhbj5jYWxsIG9mZiBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBvcmRlciBp dGVtIHF1YW50aXR5LiBTbyBtYWtpbmcgY2FsbCBvZmYgYW4gc3ViIGVudGl0eSBvZiBvcmRl ciBpdGVtIHNlZW1zIHRvIGJlIHRoZSBiZXN0IGNob2ljZSwgdGhhbiBtYWtpbmcgaXQgYW4g b3duIGFnZ3JlZ2F0ZS48L3A+PHA+Mi48c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmU7Ij4JPC9zcGFuPk9uIHRoZSBvdGhlciBzaWRlIGNhbGwg b2ZmIHdpbGwgYmUgcmVmZXJlbmNlZCBpbiB0aGUgZGlzcGF0Y2ggZGVwYXJ0bWVudC4gVGhp cyBpcywgYmVjYXVzZSBldmVyeSBjYWxsIG9mZiBsZWFkcyBhdCBsZWFzdCB0byBhbiDigJxn b29kcyBpc3N1ZSByZXF1ZXN04oCdIGluIHRoZSBkaXNwYXRjaCBkZXBhcnRtZW50LiBCdXQg cmVmZXJpbmcgdG8gYm9vayBmcm9tIEVyaWMgRXZhbnMgaXQgaXMgYWJzb2x1dGVseSBub3Qg YWxsb3dlZCB0byByZWZlcmVuY2UgYSBzdWItZW50aXR5IC0gZXhjZXB0IGZvciBhIHNpbmds ZSBvcGVyYXRpb24uIEl0IGlzIG9ubHkgYWxsb3dlZCB0byByZWZlcmVuY2UgYWdncmVnYXRl cy48L3A+PHA+V2UgYXJlIGFmcmFpZCBvZiBoYXZpbmcgOTAlIG91ciBvYmplY3RzIGJlaW5n IGFuIGFnZ3JlZ2F0ZSBhbmQgcGxhY2luZyBkb21haW4gbG9naWMgbm90IHdpdGhpbiB0aGUg YWdncmVnYXRlcyBidXQgd2l0aGluIHNlcnZpY2VzIGFyb3VuZCB0d28gb3IgbW9yZSBhZ2dy ZWdhdGVzLjwvcD48cD48YnI+PC9wPjxwPkZyb20gd2hhdCBJIGhhdmUgYWxyZWFkeSByZWFk IGFuZCBnb3QgYXMgcmVzcG9uc2VzIGZyb20gZXhwZXJ0cyBsaWtlIFBhdWwgUmF5bmVyIEkg c2hvdWxkIHN0YXJ0IHRvIHRoaW5rIGFib3V0ICZxdW90O2NhbGwgb2ZmJnF1b3Q7IGFzIGFu ICZxdW90O2RvbWFpbiBldmVudCZxdW90Oy4gT2theSwgaXQmIzM5O3Mgbm8gcHJvYmxlbSB0 byBpbWFnaW5lIHRoYXQgb3JkZXIgaXRlbSB3aWxsIGhhdmUgYW4gJnF1b3Q7Y3VzdG9tZXIg cmVxdWVzdGVkIHF1YW50aXR5JnF1b3Q7LUV2ZW50IG9yIHNvbWV0aGluZyBsaWtlIHRoaXMu PC9wPjxwPjxicj48L3A+PHA+UHJvYmxlbSBpcyB3aGVuIGxlYXZpbmcgYm91bmRlZCBjb250 ZXh0IG9mIGxldCYjMzk7cyBzYXkgJnF1b3Q7Y3VzdG9tZXIgY2FyZSZxdW90Oy4gSW4gZGlz cGF0Y2ggZGVwYXJ0bWVudCBpdCBpcyBubyBwcm9ibGVtIHRvIGltYWdpbmUgdGhhdCB0aGlz IGRvbWFpbiBldmVudCBjYW4gbGVhZCB0byBhbiBhY3Rpb24gYW5kIG5ldyBhZ2dyZWdhdGUg dGhlcmUuIEF0IHRoaXMgcG9pbnQgSSBkbyBub3QgbmVlZCBhIHJlZmVyZW5jZSB0byB0aGUg JnF1b3Q7Y2FsbCBvZmYmcXVvdDsvZG9tYWluIGV2ZW50LiBCdXQgd2hlbiBkaXNwYXRjaCBo YXMgcHJvYmxlbXMgb3Igd29yayBpcyBkb25lLCBzYWxlcyBkZXBhcnRtZW50IG5lZWRzIHRv IGJlIGluZm9ybWVkIHRoYXQgJnF1b3Q7Y2FsbCBvZmYmcXVvdDsgbmVlZHMgYXR0ZW50aW9u IG9yIGlzIGRvbmUgYW5kIHBvc3NpYmx5IG9yZGVyIGl0ZW0gY2FuIGJlIGdpdmVuIHRvICZx dW90O2ludm9jZW1lbnQmcXVvdDstYm91bmRlZC1jb250ZXh0PzwvcD48cD48YnI+PC9wPjxw PklzIGl0IG9rYXksIHdoZW4gYWdncmVnYXRlIGluIGRpc3BhdGNoIGhvbGRzIGNvbXBvc2Vk IGtleSBvbiBvcmRlciBpdGVtIGFuZCBzdWItZW50aXR5IC8gYWdncmVnYXRlIGxlYWY/IFdo YXQgb3RoZXIgcG9zc2liaWxpdGl0ZXMgZG8geW91IHNlZT8gTXVzdCAmcXVvdDtjYWxsIG9m ZiZxdW90OyBiZSBhbiBhZ2dyZWdhdGUgYW5kIGEgZG9tYWluLXNlcnZpY2UgbXVzdCBjaGVj ayBzdW0gb2YgY2FsbCBvZmYgcXVhbnRpdGllcyBhZ2FpbnMgb3JkZXIgaXRlbT8gSXMgdGhp cyBzb21ldGhpbmcgZm9yIHRoZSAmcXVvdDtQcm9jZXNzIE1hbmFnZXImcXVvdDsgcHJlc2Vu dGVkIHRvIG1lIHRoZSBmaXJzdCB0aW1lIGF0IHRoZSBEREQgRXVyb3BlIGluIEJlbGdpdW0g YnkgTWF0aGlhcyBWZXJyYWVzPzwvcD48cD48YnI+PC9wPjxwPkkgd2lsbCBiZSB2ZXJ5IGhh cHB5IGdldHRpbmcgYSBsb3Qgb2YgaWRlYXMgYW5kIHJlc3BvbnNlcy4gVGhhbmsgeW91IHZl cnkgbXVjaCBmb3IgcmVhZGluZyBteSBzdG9yeSA6LSkuPC9wPjxwPjxicj48L3A+PGRpdj48 YnI+PC9kaXY+PHA+PHNwYW4+PGJyPjwvc3Bhbj48L3A+CgoKCjwhLS0gfCoqfGJlZ2luIGVn cCBodG1sIGJhbm5lcnwqKnwgLS0+Cgo8YnI+CgoKPGJyPgoKPCEtLSB8Kip8ZW5kIGVncCBo dG1sIGJhbm5lcnwqKnwgLS0+CgoKPGRpdiB3aWR0aD0iMSIgc3R5bGU9ImNvbG9yOiB3aGl0 ZTsgY2xlYXI6IGJvdGg7Ii8+X18uXyxfLl9fXzwvZGl2PgoKICAgICAgCiAgCgogICAgCiAg ICA8ZGl2IGlkPSJmcm9tRE1BUkMiIHN0eWxlPSJjbGVhcjpib3RoOyBtYXJnaW4tdG9wOiAx MHB4OyI+CiAgICAgICAgIDxociBzdHlsZT0iaGVpZ2h0OjJweCA7IGJvcmRlci13aWR0aDow OyBjb2xvcjojRTNFM0UzOyBiYWNrZ3JvdW5kLWNvbG9yOiNFM0UzRTM7Ij4KICAgICAgICAg UG9zdGVkIGJ5OiB0aGllbF9mbG9yaWFuQHdlYi5kZSAgICAgICAgIDxociBzdHlsZT0iaGVp Z2h0OjJweCA7IGJvcmRlci13aWR0aDowOyBjb2xvcjojRTNFM0UzOyBiYWNrZ3JvdW5kLWNv bG9yOiNFM0UzRTM7Ij4KICAgIDwvZGl2Pgo8IS0tIFN0YXJ0IFJlY29tbWVuZGF0aW9ucyAt LT4KPCEtLSBFbmQgUmVjb21tZW5kYXRpb25zIC0tPgoKCgo8IS0tIHwqKnxiZWdpbiBlZ3Ag aHRtbCBiYW5uZXJ8Kip8IC0tPgoKICA8aW1nIHNyYz0iaHR0cDovL2dlby55YWhvby5jb20v c2Vydj9zPTk3NDc2NTkwL2dycElkPTgxMTY5MjMvZ3Jwc3BJZD0xNzA1MDA3MTgxL21zZ0lk PTI0NzQ5L3N0aW1lPTE0NjMwNzI0NTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPiA8YnI+Cgo8 IS0tIHwqKnxlbmQgZWdwIGh0bWwgYmFubmVyfCoqfCAtLT4KCiAgCjwhLS0gfCoqfGJlZ2lu IGVncCBodG1sIGJhbm5lcnwqKnwgLS0+Cgo8YnI+CgoKCiAgIAogICAgIAogCiAgICAgICAg PCEtLSB8Kip8YmVnaW4gZWdwIGh0bWwgYmFubmVyfCoqfCAtLT4KICAgICAgICA8ZGl2IGlk PSJ5Z3JwLXZpdGFsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgZm9udC1m YW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsg cGFkZGluZzogMTBweDsiPgoKICAgICAgICA8c3BhbiBpZD0idml0aGQiIHN0eWxlPSJmb250 LXdlaWdodDogYm9sZDsgY29sb3I6ICMzMzM7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7 ICI+PGEgaHJlZj0iaHR0cHM6Ly9ncm91cHMueWFob28uY29tL25lby9ncm91cHMvZG9tYWlu ZHJpdmVuZGVzaWduL2luZm87X3lsYz1YM29ETVRKbFoybzBZM0F3QkY5VEF6azNNelU1TnpF MEJHZHljRWxrQXpneE1UWTVNak1FWjNKd2MzQkpaQU14TnpBMU1EQTNNVGd4QkhObFl3TjJk R3dFYzJ4ckEzWm5hSEFFYzNScGJXVURNVFEyTXpBM01qUTFOUS0tIiBzdHlsZT0idGV4dC1k ZWNvcmF0aW9uOiBub25lOyI+VmlzaXQgWW91ciBHcm91cDwvYT48L3NwYW4+CgogICAgIDx1 bCBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7 IGRpc3BsYXk6IGlubGluZTsiPgogICAgICAgICAgICA8bGkgc3R5bGU9ImJvcmRlci1yaWdo dDogMXB4IHNvbGlkICMwMDA7IGZvbnQtd2VpZ2h0OiA3MDA7IGRpc3BsYXk6IGlubGluZTsg cGFkZGluZzogMCA1cHg7IG1hcmdpbi1sZWZ0OiAwOyI+CiAgICAgIDxzcGFuIGNsYXNzPSJj YXQiPjxhIGhyZWY9Imh0dHBzOi8vZ3JvdXBzLnlhaG9vLmNvbS9uZW8vZ3JvdXBzL2RvbWFp bmRyaXZlbmRlc2lnbi9tZW1iZXJzL2FsbDtfeWxjPVgzb0RNVEptTURoME1qUm1CRjlUQXpr M016VTVOekUwQkdkeWNFbGtBemd4TVRZNU1qTUVaM0p3YzNCSlpBTXhOekExTURBM01UZ3hC SE5sWXdOMmRHd0VjMnhyQTNadFluSnpCSE4wYVcxbEF6RTBOak13TnpJME5UVS0iIHN0eWxl PSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij5OZXcgTWVtYmVyczwvYT48L3NwYW4+CiAgICAg IDxzcGFuIGNsYXNzPSJjdCIgc3R5bGU9ImNvbG9yOiAjZmY3OTAwOyI+MTwvc3Bhbj4KICAg IDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L3VsPgogIDwvZGl2PgoKCjxkaXYgaWQ9ImZ0IiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFs OyBmb250LXNpemU6IDExcHg7IG1hcmdpbi10b3A6IDVweDsgcGFkZGluZzogMCAycHggMCAw OyBjbGVhcjogYm90aDsiPgogIDxhIGhyZWY9Imh0dHBzOi8vZ3JvdXBzLnlhaG9vLmNvbS9u ZW87X3lsYz1YM29ETVRKa2JtcHJjV2QyQkY5VEF6azNORGMyTlRrd0JHZHljRWxrQXpneE1U WTVNak1FWjNKd2MzQkpaQU14TnpBMU1EQTNNVGd4QkhObFl3Tm1kSElFYzJ4ckEyZG1jQVJ6 ZEdsdFpRTXhORFl6TURjeU5EVTIiIHN0eWxlPSJmbG9hdDogbGVmdDsiPjxpbWcgc3JjPSJo dHRwOi8vbC55aW1nLmNvbS9ydS9zdGF0aWMvaW1hZ2VzL3lnL2ltZy9lbWFpbC9uZXdfbG9n by9sb2dvLWdyb3Vwcy0xMzd4MTUucG5nIiBoZWlnaHQ9IjE1IiB3aWR0aD0iMTM3IiBhbHQ9 IllhaG9vISBHcm91cHMiIHN0eWxlPSJib3JkZXI6IDA7Ii8+PC9hPgogIDxkaXYgc3R5bGU9 ImNvbG9yOiAjNzQ3NTc1OyBmbG9hdDogcmlnaHQ7Ij4gJmJ1bGw7IDxhIGhyZWY9Imh0dHBz Oi8vaW5mby55YWhvby5jb20vcHJpdmFjeS91cy95YWhvby9ncm91cHMvZGV0YWlscy5odG1s IiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyI+UHJpdmFjeTwvYT4gJmJ1bGw7IDxh IGhyZWY9Im1haWx0bzpkb21haW5kcml2ZW5kZXNpZ24tdW5zdWJzY3JpYmVAeWFob29ncm91 cHMuY29tP3N1YmplY3Q9VW5zdWJzY3JpYmUiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5v bmU7Ij5VbnN1YnNjcmliZTwvYT4gJmJ1bGw7IDxhIGhyZWY9Imh0dHBzOi8vaW5mby55YWhv by5jb20vbGVnYWwvdXMveWFob28vdXRvcy90ZXJtcy8iIHN0eWxlPSJ0ZXh0LWRlY29yYXRp b246IG5vbmU7Ij5UZXJtcyBvZiBVc2U8L2E+IDwvZGl2Pgo8L2Rpdj4KCjwhLS0gfCoqfGVu ZCBlZ3AgaHRtbCBiYW5uZXJ8Kip8IC0tPgoKICA8L2Rpdj4gPCEtLSB5Z3JwLW1zZyAtLT4K CiAgIAoKCiAgPGJyPgoKPCEtLSB8Kip8ZW5kIGVncCBodG1sIGJhbm5lcnwqKnwgLS0+CgoK PGRpdiBzdHlsZT0iY29sb3I6IHdoaXRlOyBjbGVhcjogYm90aDsiLz5fXyxfLl8sX19fPC9k aXY+CjwvYm9keT4KCjwvaHRtbD4K --9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV--