
In 1975, the sci-fi movies Death Race 2000 and Rollerball depicted 21st century futures that still feel relevant 50 years later. In the middle of the 1970s, a group of filmmakers peered into the future and saw a hellscape of cruelty and violence. Released within months of each other in 1975, Death Race 2000 and ... Death Race 2000 and Rollerball | What they got right about the 21st century
CjxwPjxzdHJvbmc+SW4gMTk3NSwgdGhlIHNjaS1maSBtb3ZpZXMgRGVhdGggUmFjZSAyMDAwIGFuZCBSb2xsZXJiYWxsIGRlcGljdGVkIDIxc3QgY2VudHVyeSBmdXR1cmVzIHRoYXQgc3RpbGwgZmVlbCByZWxldmFudCA1MCB5ZWFycyBsYXRlci48L3N0cm9uZz48L3A+CgoKCjxociBjbGFzcz0id3AtYmxvY2stc2VwYXJhdG9yIGhhcy1hbHBoYS1jaGFubmVsLW9wYWNpdHkiLz4KCgoKPHA+SW4gdGhlIG1pZGRsZSBvZiB0aGUgMTk3MHMsIGEgZ3JvdXAgb2YgZmlsbW1ha2VycyBwZWVyZWQgaW50byB0aGUgZnV0dXJlIGFuZCBzYXcgYSBoZWxsc2NhcGUgb2YgY3J1ZWx0eSBhbmQgdmlvbGVuY2UuIFJlbGVhc2VkIHdpdGhpbiBtb250aHMgb2YgZWFjaCBvdGhlciBpbiAxOTc1LDxlbT4gRGVhdGggUmFjZSAyMDAwPC9lbT4gYW5kIDxlbT5Sb2xsZXJiYWxsIDwvZW0+aW1hZ2luZSAyMXN0IGNlbnR1cnkgZHlzdG9waWFzIHdoZXJlIGJsb29kdGhpcnN0eSBjb21wZXRpdGlvbnMgcGxheSBvdXQgb24gVFYuJm5ic3A7PC9wPgoKCgo8cD5UaGUgZmlsbXMgYXJlIHNpbWlsYXIgaW4gZ2VucmUgYW5kIHRoZW1lLCBidXQgc3R5bGlzdGljYWxseSBwb2xlcyBhcGFydDsgb25lIGlzIGJsYWNrbHkgY29taWMsIHRoZSBvdGhlciBncmltLWZhY2VkOyBvbmUgaXMgcGx1Y2tpbHkgbG93LWJ1ZGdldCwgdGhlIG90aGVyIGdyYW5kIGFuZCBleHBlbnNpdmUtbG9va2luZy4gQWxsIHRoZSBzYW1lLCA8ZW0+RGVhdGggUmFjZSAyMDAwPC9lbT4gYW5kIDxlbT5Sb2xsZXJiYWxsIDwvZW0+Ym90aCBvZmZlciBhIGZhc2NpbmF0aW5nIGdsaW1wc2Ugb2YgdGhlIDIxc3QgY2VudHVyeSB0aGF0LCBmb3IgYWxsIHRoZSA3MHMgaGFpcnN0eWxlcyBhbmQgY2xvdGhpbmcsIGxvb2tzIHN0cmFuZ2VseSByZWNvZ25pc2FibGUuPC9wPgoKCgo8cD48ZW0+RGVhdGggUmFjZSAyMDAwPC9lbT4gY2FtZSBvdXQgZmlyc3QsIGJ1dCB0aGF0IHdhcyBiZWNhdXNlIHByb2R1Y2VyIFJvZ2VyIENvcm1hbiwgdGhlIHdpbHkgb2xkIHJhc2NhbCwgY2F1Z2h0IHdpbmQgb2YgPGVtPlJvbGxlcmJhbGwgPC9lbT5iZWluZyBpbiBwcm9kdWN0aW9uIGFuZCBodXJyaWVkbHkgY29tbWlzc2lvbmVkIGEgZHlzdG9waWFuIHNwb3J0cyBmaWxtIG9mIGhpcyBvd24uIERpcmVjdGVkIGJ5IFBhdWwgQmFydGVsLCBEZWF0aCA8ZW0+UmFjZSAyMDAwPC9lbT4gd2FzIG1hZGUgZm9yIGFib3V0ICQzMDAsMDAwIGFuZCByZWxlYXNlZCBpbiBBcHJpbCAxOTc1ICYjODIxMTsgYmVhdGluZyBOb3JtYW4gSmV3aXNvbuKAmXMgJDVtIDxlbT5Sb2xsZXJiYWxsIDwvZW0+dG8gY2luZW1hcyBieSByb3VnaGx5IHR3byBtb250aHMuIEJvdGggYmVjYW1lIHNpemVhYmxlIGhpdHMuPC9wPgoKCgo8cD5FYWNoIGZpbG0gaXMgc2V0IGluIGEgbmVhci1mdXR1cmUgVVNBIGluIHdoaWNoIHRvdGFsaXRhcmlhbmlzbSBoYXMgc2V0IGluIGFuZCB0aGUgcG9wdWxhY2UgaXMga2VwdCBhbXVzZWQgd2l0aCB2aW9sZW50LCB0ZWxldmlzZWQgY29tcGV0aXRpb25zLiBJbiA8ZW0+RGVhdGggUmFjZSAyMDAwLDwvZW0+IGl04oCZcyBhIHBhbi1BbWVyaWNhbiByYWNlIGZyb20gTmV3IFlvcmsgdG8gdGhlIHdlc3QgY29hc3QsIHdpdGggZHJpdmVycyBlYXJuaW5nIHBvaW50cyBmb3IgdGhlIHBlZGVzdHJpYW5zIHRoZXkgZmF0YWxseSBydW4gb3ZlciBvbiB0aGUgd2F5LiBJdHMgbm9taW5hbCBoZXJvIGlzIEZyYW5rZW5zdGVpbiAoYSBzb21ld2hhdCBsZWFkZW4gRGF2aWQgQ2FycmFkaW5lKSwgYSBtYXNrZWQgZHJpdmVyIHdob3NlIG5hdmlnYXRvciwgQW5uaWUgKFNpbW9uZSBHcmlmZmV0aCkgaXMgc2VjcmV0bHkgdGhlIGdyYW5kZGF1Z2h0ZXIgb2YgYSByZXNpc3RhbmNlIGdyb3VwIHdoaWNoIGFpbXMgdG8gc2Fib3RhZ2UgdGhlIGdhbWUuJm5ic3A7PC9wPgoKCgo8cD5BbW9uZyB0aGUgY29tcGV0aW5nIHJhY2VycyBpcyBhbiBlYXJseS1jYXJlZXIgU3lsdmVzdGVyIFN0YWxsb25lIGFzIEpvZSDigJhNYWNoaW5lIEd1buKAmSBWaXRlcmJvLCBhIHByZWVuaW5nIGhvdGhlYWQgd2hvIGhhcyBhIHRlbmRlbmN5IHRvIGZpcmUgaGlzIFRvbW15IGd1biBhdCBzcGVjdGF0b3JzLiAoU3RhbGxvbmUgcmV3cm90ZSBtdWNoIG9mIGhpcyBvd24gZGlhbG9ndWU7IG9uZSBsaW5lLCDigJxIb3cgZG9lcyBpdCBmZWVsIHRvIGtub3cgeW91JiM4MjE3O3JlIGdvbm5hIHNwZW5kIHRoZSByZXN0IG9mIHlvdXIgbGlmZSBpbiBwYWluPyBUaGUgcmVzdCBvZiB5b3VyIGxpZmUgaXMgYWJvdXQgYSBtaW51dGUgYW5kIGEgaGFsZizigJ0gc291bmRzIGxpa2UgYSBkcnkgcnVuIGZvciBhIHNpbWlsYXIgcXVpcCBpbiBTbHnigJlzPGVtPiBEZW1vbGl0aW9uIE1hbjwvZW0+OiDigJxZb3XigJlsbCByZWdyZXQgdGhpcyBmb3IgdGhlIHJlc3Qgb2YgeW91ciBsaWZlLiBCb3RoIHNlY29uZHMgb2YgaXTigKbigJ0pPC9wPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1lbWJlZCBpcy10eXBlLXZpZGVvIGlzLXByb3ZpZGVyLXlvdXR1YmUgd3AtYmxvY2stZW1iZWQteW91dHViZSB3cC1lbWJlZC1hc3BlY3QtNC0zIHdwLWhhcy1hc3BlY3QtcmF0aW8iPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KPGlmcmFtZSB0aXRsZT0iREVBVEggUkFDRSAyMDAwICgxOTc1KSBPZmZpY2lhbCBUcmFpbGVyIiB3aWR0aD0iMTMzMyIgaGVpZ2h0PSIxMDAwIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL0YyR0VLVjFkT2dZP2ZlYXR1cmU9b2VtYmVkIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSIgcmVmZXJyZXJwb2xpY3k9InN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KPC9kaXY+PC9maWd1cmU+CgoKCjxwPjxlbT5Sb2xsZXJiYWxsPC9lbT4sIG1lYW53aGlsZSwgc3RhcnMgSmFtZXMgQ2FhbiBhcyBKb25hdGhhbiBFLCB0aGUgc2Vhc29uZWQgdmV0ZXJhbiBvZiB0aGUgdGl0bGUgc3BvcnQgJiM4MjExOyBhIGJsdWRnZW9uaW5nIGJhbGxnYW1lIHRoYXQgdGFrZXMgcGxhY2Ugb24gYW4gb3ZhbCByb2xsZXIgZGVyYnkgcmluay4gQ29tcGV0aXRvcnMgaHVydGxlIHJvdW5kIHRoZSB0cmFjaywgaGFzdGVuaW5nIHRoZWlyIHNwZWVkIGJ5IG9jY2FzaW9uYWxseSBjbGluZ2luZyB0byB0aGUgYmFjayBvZiBhIG1vdG9yY3ljbGUgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcG91bmQgYSBtZXRhbCBiYWxsIGludG8gYSBnb2FsLiBJdOKAmXMgdGhlIHllYXIgMjAxOCwgYW5kIGEgc2VyaWVzIG9mIGNyaXNlcyBhbmQgd2FycyBoYXZlIHJlcGxhY2VkIGdvdmVybm1lbnRzIHdpdGggY29ycG9yYXRpb25zLiBTb2NpZXR5IGhhcyBkcmlmdGVkIGludG8gYSA8ZW0+QnJhdmUgTmV3IFdvcmxkPC9lbT4tbGlrZSBlcmEgb2YgZHJ1ZyBhbmQgZW50ZXJ0YWlubWVudC1mdWVsZWQgZGVjYWRlbmNlLCB3aXRoIDxlbT5Sb2xsZXJiYWxsIDwvZW0+YmVpbmcgb25lIG9mIHRoZSBtb3N0LXdhdGNoZWQgc3BvcnRzIG9uIFRWLiZuYnNwOzwvcD4KCgoKPHA+VGhlIHN0YXIgcGxheWVyIG9mIEhvdXN0b27igJlzIHRlYW0sIEpvbmF0aGFuIEUgaXMgYSBjZWxlYnJpdHkgaW4gYSBnYW1lIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgYSBtZXRhcGhvciBmb3IgdGhlIGluc2lnbmlmaWNhbmNlIG9mIHRoZSBpbmRpdmlkdWFsLiBJcmtlZCBhdCBKb25hdGhhbuKAmXMgZmFtZSBhbmQgcmVmdXNhbCB0byByZXRpcmUgb3IgYXQgbGVhc3QgZGllIGluIHRoZSBhcmVuYSwgdGhlIGNvcnBvcmF0aW9uICYjODIxMTsgcmVwcmVzZW50ZWQgYnkgSm9obiBIb3VzZW1hbuKAmXMgZ2xvd2VyaW5nIEJhcnRob2xvbWV3ICYjODIxMTsgdHJpZXMgdG8gcHJlc3N1cmUgaGltIGludG8gcXVpdHRpbmcuIFdoZW4gdGhhdCBkb2VzbuKAmXQgd29yaywgdGhleSBzdGFydCB0aW5rZXJpbmcgd2l0aCB0aGUgcnVsZXMgb2YgdGhlIGdhbWUsIHR1cm5pbmcgYW4gYWxyZWFkeSBnbGFkaWF0b3JpYWwgc3BvcnQgaW50byBhbiBvdXRyaWdodCBibG9vZGJhdGjigKY8L3A+CgoKCjxwPjxlbT5EZWF0aCBSYWNlIDIwMDA8L2VtPiBhbmQgPGVtPlJvbGxlcmJhbGwgPC9lbT53ZXJlIGJhc2VkIG9uIHNob3J0IHN0b3JpZXMsIHdyaXR0ZW4gYnkgSWIgTWVsY2hpb3IgYW5kIFdpbGxpYW0gSGFycmlzb24gcmVzcGVjdGl2ZWx5LiBUaGV5IHdlcmUgYm90aCBpbnNwaXJlZCBieSByZWFsLXdvcmxkIHNwb3J0cyBhbmQgdGhlIGJlaGF2aW91ciB0aGV5IG9ic2VydmVkIGFyb3VuZCB0aGVtLiBNZWxjaGlvciB3YXMgc3RydWNrIGJ5IHRoZSBnaG91bGlzaCByZWFjdGlvbiB0byB0aGUgZGVhdGggb2YgYSBjb21wZXRpdG9yIGR1cmluZyBhbiBJbmR5IDUwMCByYWNlLCBhbmQgd2VudCBvbiB0byB3cml0ZSA8ZW0+VGhlIFJhY2VyLDwvZW0+IGZpcnN0IHB1Ymxpc2hlZCBpbiAxOTU2LiBIYXJyaXNvbiBzYXcgdmlvbGVuY2UgdW5mb2xkIGR1cmluZyBhIGJhc2tldGJhbGwgZ2FtZSBhbmQgd2FzIG1vdmVkIHRvIHdyaXRlIDxlbT5UaGUgUm9sbGVyYmFsbCBNdXJkZXIsPC9lbT4gcHVibGlzaGVkIGluIDE5NzMuIChIYXJyaXNvbiB3YXMgYWxzbyBoaXJlZCB0byB3cml0ZSB0aGUgZmlsbSBhZGFwdGF0aW9u4oCZcyBzY3JpcHQuKTwvcD4KCgoKPHAgY2xhc3M9Imhhcy10ZXh0LWFsaWduLWNlbnRlciI+PHN0cm9uZz5SZWFkIG1vcmU6IDxhIGhyZWY9Imh0dHBzOi8vc3RhZ2luZy5maWxtc3Rvcmllcy5jby51ay9uZXdzL3RoZS1ydW5uaW5nLW1hbi13aGF0LW1pZ2h0LWVkZ2FyLXdyaWdodHMtbmV3LWFkYXB0YXRpb24tb2Ytc3RlcGhlbi1raW5ncy1ub3ZlbC1sb29rLWxpa2UvIj5UaGUgUnVubmluZyBNYW4gfCBXaGF0IG1pZ2h0IEVkZ2FyIFdyaWdodCYjODIxNztzIG5ldyBhZGFwdGF0aW9uIG9mIFN0ZXBoZW4gS2luZyYjODIxNztzIG5vdmVsIGxvb2sgbGlrZT88L2E+PC9zdHJvbmc+PC9wPgoKCgo8cD5JdOKAmXMgbm8gY29pbmNpZGVuY2UgdGhhdCB0aGUgcmVzdWx0aW5nIG1vdmllcyBlbWVyZ2VkIGluIHRoZSB3YWtlIG9mIHRoZSBXYXRlcmdhdGUgc2NhbmRhbCwgYW5kIGFzIEFtZXJpY2EgcmVlbGVkIGZyb20gdGhlIGxvbmcgYW5kIGJsb29keSBWaWV0bmFtIHdhciwgd2hpY2ggc2h1ZGRlcmVkIHRvIGFuIGVuZCBqdXN0IGFzIDxlbT5EZWF0aCBSYWNlIDIwMDA8L2VtPiBlbWVyZ2VkIGluIEFwcmlsIDE5NzUuIFRob3NlIGV2ZW50cyAmIzgyMTE7IHBsdXMgdGhlIDE5NzBzIG9pbCBjcmlzaXMgYW5kIG90aGVycyAmIzgyMTE7IGJyZWQgYSBuZXcgc2Vuc2Ugb2YgY3luaWNpc20gYW5kIGRpc2lsbHVzaW9ubWVudCB0aGF0IGJsZWQgaW50byBUViBhbmQgZmlsbS4mbmJzcDtKdXN0IGFzIHRoZSBjb25zcGlyYWN5IHRocmlsbGVycyBvZiB0aGUgZXJhIHNwb2tlIHRvIGEgZ3Jvd2luZyBzZW5zZSBvZiBkaXN0cnVzdCBvZiBpbnN0aXR1dGlvbnMsIHNvIDxlbT5EZWF0aCBSYWNlIDIwMDAgPC9lbT5hbmQgPGVtPlJvbGxlcmJhbGwgPC9lbT5pbWFnaW5lZCB0aGF0IHRoZSBVUyBtaWdodCBvbmx5IGJlIGEgY29uZmxpY3Qgb3IgYSBjcmlzaXMgYXdheSBmcm9tIGRyaWZ0aW5nIGludG8gdG90YWxpdGFyaWFuaXNtLiBFYWNoIGltYWdpbmVzIHRoZSBwYXJ0IHRoYXQgdGhlIG1lZGlhIHdvdWxkIGxpa2VseSBwbGF5IGluIGJvdGggc2hvcmluZyB1cCBhIHJlZ2ltZeKAmXMgcG93ZXIgYW5kIGtlZXBpbmcgdGhlIGJyb2FkZXIgcG9wdWxhdGlvbiBpbiBpdHMgcGxhY2UuJm5ic3A7PC9wPgoKCgo8cD5JbiA8ZW0+RGVhdGggUmFjZSAyMDAwLCA8L2VtPnJhY2VzIGFyZSBlYWdlcmx5IHJlcG9ydGVkIG9uIGJ5IGxlZXJpbmcgbmV3cyBhbmNob3JzIHdobyBjaGVlciBhdCBldmVyeSBkZWF0aCBhbmQgbWluaW1pc2UgYWxsIG1pc2hhcHMgYXMgYmVpbmcgaW50ZW50aW9uYWwgb3IgdGhlIHdvcmsgb2YgRnJlbmNoIHNhYm90ZXVycy4gTXVjaCBsaWtlIGEgY2VydGFpbiBVUyBsZWFkZXIgdG9kYXksIHRoZSBQcmVzaWRlbnQgaW4gPGVtPkRlYXRoIFJhY2UgMjAwMDwvZW0+IChwbGF5ZWQgYnkgU2FuZHkgTWNDYWxsdW0pIGlzIGEgdm9jYWwgaGF0ZXIgb2YgdGhlIEV1cm9wZWFuIFVuaW9uLCBhIGJsb2MgaGUgc2F5cyB3YXMgYnJvdWdodCBhYm91dCB0byDigJxzY3JldyBBbWVyaWNh4oCdLiZuYnNwOzwvcD4KCgoKPHA+VGVsZXZpc2lvbiBwbGF5cyBhIHNpbWlsYXJseSB1bnF1ZXN0aW9uaW5nIHBhcnQgaW4gPGVtPlJvbGxlcmJhbGw8L2VtPiAmIzgyMTE7IHNlZW1pbmdseSwgdGhlIG9ubHkgdGhpbmcgcGxheWluZyBvbiB0aGUgd29ybGTigJlzIHNjcmVlbnMgaXMgdGhlIHNwb3J0IGl0c2VsZiwgYWxvbmcgd2l0aCBib2d1cyBkb2N1bWVudGFyaWVzIGFib3V0IGl0cyBwbGF5ZXJzIHRoYXQgbWVyZWx5IHNlcnZlIHRvIGZ1cnRoZXIgdGhlIGNvcnBvcmF0aW9u4oCZcyBhZ2VuZGEuIEluIHRoZSB3b3JsZHMgb2Y8ZW0+IERlYXRoIFJhY2UgMjAwMDwvZW0+IGFuZCA8ZW0+Um9sbGVyYmFsbDwvZW0+LCB0aGUgam91cm5hbGlzdHMgdGhhdCBkaXNydXB0ZWQgdGhlIHNjaGVtZXMgb2YgUmljaGFyZCBOaXhvbiBoYXZlIGxvbmcgc2luY2UgZGllZCBvdXQuJm5ic3A7PC9wPgoKCgo8cD5BbWlkIHRoZSBnb3JlIGFuZCBmdXJ5IG9mIHRoZSBzcG9ydCBpdHNlbGYsIDxlbT5Sb2xsZXJiYWxs4oCZPC9lbT5zIG1ham9yIHRoZW1lIGlzIHRoZSBjb250cm9sIG9mIGluZm9ybWF0aW9uLiBJbiBvbmUgc2NlbmUsIEpvbmF0aGFuIEUgZ29lcyB0byBhIGxpYnJhcnkgdG8gZW5xdWlyZSBhYm91dCBzb21lIGJvb2tzIGhl4oCZcyB0cmllZCB0byBib3Jyb3c7IHRoZXJlLCBoZeKAmXMgdG9sZCB0aGF0IHRoZSB2b2x1bWVzIGFyZSBjbGFzc2lmaWVkLiBNb3JlIGNoaWxsaW5nbHksIGl04oCZcyBpbXBsaWVkIHRoYXQgcGh5c2ljYWwgYm9va3MgaGF2ZSBiZWVuIHRha2VuIG91dCBvZiBjaXJjdWxhdGlvbjsgdGhlaXIgY29udGVudHMgaGF2ZSBiZWVuIHNjYW5uZWQgaW50byBhIHN1cGVyY29tcHV0ZXIsIHdoaWNoIHdlIGxhdGVyIGxlYXJuIGlzIGNhbGxlZCBaZXJvLiBJdCBzZWVtcyB0aGF0IEpvbmF0aGFuIGlzbuKAmXQgYWxsb3dlZCB0byByZWFkIGEgYm9vayBkaXJlY3RseSwgZWl0aGVyOyBpbnN0ZWFkLCBoZeKAmWxsIGhhdmUgaXQg4oCYc3VtbWFyaXNlZOKAmSBmb3IgaGltIGJ5IHRoZSBjb21wdXRlci48L3A+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWVtYmVkIGlzLXR5cGUtdmlkZW8gaXMtcHJvdmlkZXIteW91dHViZSB3cC1ibG9jay1lbWJlZC15b3V0dWJlIHdwLWVtYmVkLWFzcGVjdC0xNi05IHdwLWhhcy1hc3BlY3QtcmF0aW8iPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KPGlmcmFtZSB0aXRsZT0iUk9MTEVSQkFMTCAoMTk3NSkgfCBPZmZpY2lhbCBUcmFpbGVyIHwgTUdNIiB3aWR0aD0iMTc3OCIgaGVpZ2h0PSIxMDAwIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3lrdTJDWHVLS2lVP2ZlYXR1cmU9b2VtYmVkIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSIgcmVmZXJyZXJwb2xpY3k9InN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KPC9kaXY+PC9maWd1cmU+CgoKCjxwPkxhdGVyIGluIHRoZSBmaWxtLDxlbT4gUm9sbGVyYmFsbOKAmTwvZW0+cyB0b25lIHNoaWZ0cyBzdWJ0bHkgdG8gaW5jb3Jwb3JhdGUgYSBiaXQgb2Y8ZW0+IERlYXRoIFJhY2UgMjAwMDwvZW0+4oCZcyBicm9hZCBzYXRpcmUuIEpvbmF0aGFuLCBkb2dnZWQgdG8gdGhlIGxhc3QsIHdhbnRzIHRvIGZpbmQgb3V0IHdobyBleGFjdGx5IG1ha2VzIGRlY2lzaW9ucyBpbiB0aGUgY29ycG9yYXRpb24gdGhhdCBjb250cm9scyBldmVyeXRoaW5nLiBIZWFkaW5nIHRvIEdlbmV2YSwgaGUgbWVldHMgYW4gZWNjZW50cmljIGxpYnJhcmlhbiAoUmFscGggUmljaGFyZHNvbikgd2hvIGxvb2tzIGFmdGVyIHRoZSBhZm9yZW1lbnRpb25lZCBaZXJvIHN1cGVyY29tcHV0ZXIuJm5ic3A7PC9wPgoKCgo8cD5JdOKAmXMgdGhlbiByZXZlYWxlZCB0aGF0IHRoZSBzbGVlaywgY29ycG9yYXRlIGZ1dHVyZSBzZWVuIGVsc2V3aGVyZSBpbiB0aGUgZmlsbSBpcyBsaXR0bGUgbW9yZSB0aGFuIGEgZmFjYWRlLiBEZXNjcmliZWQgYXMgdGhlIHdvcmxk4oCZcyDigJhmaWxpbmcgY2FiaW5ldOKAmSwgWmVybyBoYXMgbWFuYWdlZCB0byBtaXNsYXkgZXZlcnkgcGllY2Ugb2YgaW5mb3JtYXRpb24gcGVydGFpbmluZyB0byB0aGUgMTN0aCBjZW50dXJ5LiDigJxOb3QgbXVjaCBpbiB0aGUgY2VudHVyeSzigJ0gdGhlIGxpYnJhcmlhbiBzYXlzLCBhaXJpbHksIOKAnGp1c3QgRGFudGUgYW5kIGEgZmV3IGNvcnJ1cHQgcG9wZXMuIEJ1dCBpdOKAmXMgc28gZGlzdHJhY3RpbmcgYW5kIGFubm95aW5n4oCm4oCdPC9wPgoKCgo8cD5Kb25hdGhhbiB0aGVuIGdldHMgdG8gYXNrIHRoZSBxdWVzdGlvbiB0aGF04oCZcyBidWdnZWQgaGltIGZvciBzb21lIHRpbWU6IOKAnEnigJlkIGxpa2Ugc29tZSBpbmZvcm1hdGlvbiBhYm91dCBjb3Jwb3JhdGUgZGVjaXNpb25zLiBIb3cgdGhleeKAmXJlIG1hZGUgYW5kIHdobyBtYWtlcyB0aGVtLuKAnTwvcD4KCgoKPHA+WmVybyByZWZ1c2VzIHRvIGFuc3dlciwgaW5mdXJpYXRpbmcgdGhlIGxpYnJhcmlhbiB0byBzdWNoIGEgZGVncmVlIHRoYXQgaGUgZXZlbnR1YWxseSBsb3NlcyBoaXMgdGVtcGVyLiZuYnNwOzwvcD4KCgoKPHA+RGlkIFplcm8gcmVhbGx5IG1pc2xheSB0aGUgMTN0aCBjZW50dXJ5LCBvciB3YXMgdGhlIGRlbGV0aW9uIGRlbGliZXJhdGUgJiM4MjExOyBwYXJ0IG9mIGEgd2lkZXIgY29ycG9yYXRlIGNhbXBhaWduIHRvIHF1aWV0bHkgZHJhaW4gdGhlIHdvcmxkIG9mIGl0cyBrbm93bGVkZ2U/IFdhcyB0aGUgY29tcHV0ZXIgZm9yYmlkZGVuIHRvIGFuc3dlciBKb25hdGhhbuKAmXMgcXVlc3Rpb24gYnkgYSBodW1hbiwgb3Igd2FzIGl0IGJlaW5nIHdpbGZ1bGx5IGNveSBiZWNhdXNlIGl04oCZcyB0aGUgb25lIG1ha2luZyBkZWNpc2lvbnMsIGFuZCBub3QgaXRzIGNyZWF0b3JzPzwvcD4KCgoKPHA+SW4gc29tZSByZXNwZWN0cywgdGhlIGFuc3dlciB0byB0aG9zZSBxdWVzdGlvbnMgaXMgbGVzcyBpbXBvcnRhbnQgdGhhbiB0aGUgaW1wbGllZCB3YXJuaW5nIG9mIGhvdyB0ZWNobm9sb2d5LCBrbm93bGVkZ2UgYW5kIGVudGVydGFpbm1lbnQgY2FuIGJlIHVzZWQgYXMgYSBtZWFucyBvZiBjb250cm9sLiBBcyBOb3JtYW4gSmV3aXNvbiBwdXQgaXQgaW4gaGlzIGRpcmVjdG9y4oCZcyBjb21tZW50YXJ5IChhcyB0cmFuc2NyaWJlZCBieSA8YSBocmVmPSJodHRwczovL3JlZWwtbGlicmFyaWFucy5jb20vMjAxNy8wMi8wMS9yZWVsLWxpYnJhcmlhbnMtaW4tcm9sbGVyYmFsbC8iPlJlZWwtTGlicmFyaWFuczwvYT4pLCDigJxXZSBjYW1lIHVwIHdpdGggdGhlIG5hbWUgb2YgWmVybyBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbXB1dGVyLCBiZWNhdXNlIHdlIGZlbHQgdGhhdCBzb21laG93IHplcm8gd2FzIHRoZSBiZWdpbm5pbmcgYW5kIHRoZSBlbmQgb2YgZXZlcnl0aGluZyBbJiM4MjMwO10gdGhpcyBpcyB3aGVyZSBKb25hdGhhbiByZWFsaXNlcyB0aGF0IGV2ZW4gdGhlIGNvbXB1dGVyIHdpbGwgbm90IHJldmVhbCBjZXJ0YWluIHRydXRocyB0aGF0IGhlIHdhbnRzIGFib3V0IHdob+KAmXMgaW4gY2hhcmdlLiBTbyB3ZSBoYXZlIGEgc29jaWV0eSBpbiB3aGljaCBub2JvZHkga25vd3Mgd2hv4oCZcyBjYWxsaW5nIHRoZSBzaG90cy7igJ08L3A+CgoKCjxwPkZyb20gYSAyMDI1IHBlcnNwZWN0aXZlLDxlbT4gUm9sbGVyYmFsbOKAmTwvZW0+cyBpZGVhIG9mIGJvb2tzIOKAmHN1bW1hcmlzZWTigJkgYnkgQUkgYW5kIGluZm9ybWF0aW9uIHRpZ2h0bHkgY29udHJvbGxlZCBieSBjb3Jwb3JhdGlvbnMgc291bmRzIGVlcmlseSBwcmVzY2llbnQuIEl0IGNvdWxkIGJlIHNhaWQgdGhhdCA8ZW0+RGVhdGggUmFjZSAyMDAwPC9lbT7igJlzIGRlcGljdGlvbiBvZiBhbiBBbWVyaWNhIHJ1bGVkIGJ5IGEgdmFpbiwgcG9wdWxpc3QgZGljdGF0b3IgYWxzbyBzb3VuZHMgcmF0aGVyIGZhbWlsaWFyLiZuYnNwOzwvcD4KCgoKPHA+VGhvc2UgcGFyYWxsZWxzIGFzaWRlLCB0aGVzZSAxOTcwcyBtb3ZpZXMgYWxzbyBoYXZlIHNvbWV0aGluZyB1c2VmdWwgdG8gc2F5IGFib3V0IGNydWVsdHksIGFuZCBob3cgdGhvc2UgaW4gcG93ZXIgY2FuIGFwcGVhbCB0byB0aGUgZGFya2VzdCBhc3BlY3RzIG9mIGh1bWFuIG5hdHVyZSBpbiBvcmRlciB0byBjb250cm9sIHVzLiBFbG9uIE11c2ssIGEgYmlsbGlvbmFpcmUgaW5kdXN0cmlhbGlzdCB3aG/igJlzIGN1cnJlbnRseSBoYWNraW5nIGhpcyB3YXkgdGhyb3VnaCBnb3Zlcm5tZW50IGluc3RpdHV0aW9ucywgPGEgaHJlZj0iaHR0cHM6Ly9lZGl0aW9uLmNubi5jb20vMjAyNS8wMy8wNS9wb2xpdGljcy9lbG9uLW11c2stcm9nYW4taW50ZXJ2aWV3LWVtcGF0aHktZG9nZS9pbmRleC5odG1sIj5yZWNlbnRseSBzYWlkIDwvYT50aGF0IOKAnFRoZSBmdW5kYW1lbnRhbCB3ZWFrbmVzcyBvZiBXZXN0ZXJuIGNpdmlsaXNhdGlvbiBpcyBlbXBhdGh5LuKAnTwvcD4KCgoKPHA+PGVtPkRlYXRoIFJhY2UgMjAwMCA8L2VtPmFuZCA8ZW0+Um9sbGVyYmFsbDwvZW0+LCBieSBjb250cmFzdCwgc2hvdyB3aGVyZSBhIHNvY2lldHkgdGhhdCBsYWNrcyBlbXBhdGh5IGNvdWxkIHdpbmQgdXAuIEl0IGlzIGZhciBmcm9tIGEgcHJldHR5IHNpZ2h0LiZuYnNwOzwvcD4KCgoKCgoKJiM4MjEyOwo8UD4KPHN0cm9uZz5UaGFuayB5b3UgZm9yIHZpc2l0aW5nIcKgSWYgeW91JiM4MjE3O2QgbGlrZSB0byBzdXBwb3J0IG91ciBhdHRlbXB0cyB0byBtYWtlIGEgbm9uLWNsaWNrYmFpdHkgbW92aWUgd2Vic2l0ZTo8L3N0cm9uZz4KPFA+CjxQPgo8ZW0+Rm9sbG93IEZpbG0gU3RvcmllcyBvbiBUd2l0dGVywqA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2ZpbG1zdG9yaWVzcG9kIj5oZXJlPC9hPiwgYW5kIG9uIEZhY2Vib29rwqA8YSBocmVmPSJodHRwczovL2ZhY2Vib29rLmNvbS9maWxtc3Rvcmllc29ubGluZSI+aGVyZTwvYT4uPC9lbT4KPFA+CjxlbT5CdXkgb3VyIEZpbG0gU3RvcmllcyBhbmQgRmlsbSBKdW5pb3IgcHJpbnQgbWFnYXppbmVzwqA8YSBocmVmPSJodHRwczovL2ZpbG0tc3Rvcmllcy5teXNob3BpZnkuY29tLyI+aGVyZTwvYT4uPC9lbT4KPFA+CjxlbT5CZWNvbWUgYSBQYXRyb24gPGEgaHJlZj0iaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vc2ltb25icmV3Ij5oZXJlPC9hPi48L2VtPgo8UD4KPGRpdiBpZD0iY29sbGVjdGlvbi1jb21wb25lbnQtMTU3MDA1MTE2NjgwNyI+PC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyo8IVtDREFUQVsqLyAoZnVuY3Rpb24gKCkgeyB2YXIgc2NyaXB0VVJMID0gJ2h0dHBzOi8vc2Rrcy5zaG9waWZ5Y2RuLmNvbS9idXktYnV0dG9uL2xhdGVzdC9idXktYnV0dG9uLXN0b3JlZnJvbnQubWluLmpzJzsgaWYgKHdpbmRvdy5TaG9waWZ5QnV5KSB7IGlmICh3aW5kb3cuU2hvcGlmeUJ1eS5VSSkgeyBTaG9waWZ5QnV5SW5pdCgpOyB9IGVsc2UgeyBsb2FkU2NyaXB0KCk7IH0gfSBlbHNlIHsgbG9hZFNjcmlwdCgpOyB9IGZ1bmN0aW9uIGxvYWRTY3JpcHQoKSB7IHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgc2NyaXB0LmFzeW5jID0gdHJ1ZTsgc2NyaXB0LnNyYyA9IHNjcmlwdFVSTDsgKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsgc2NyaXB0Lm9ubG9hZCA9IFNob3BpZnlCdXlJbml0OyB9IGZ1bmN0aW9uIFNob3BpZnlCdXlJbml0KCkgeyB2YXIgY2xpZW50ID0gU2hvcGlmeUJ1eS5idWlsZENsaWVudCh7IGRvbWFpbjogJ2ZpbG0tc3Rvcmllcy5teXNob3BpZnkuY29tJywgc3RvcmVmcm9udEFjY2Vzc1Rva2VuOiAnYzdhYWVjMmFlNzk0OTIzNjZmMDRlNjY3NjI4ODlmNzMnLCB9KTsgU2hvcGlmeUJ1eS5VSS5vblJlYWR5KGNsaWVudCkudGhlbihmdW5jdGlvbiAodWkpIHsgdWkuY3JlYXRlQ29tcG9uZW50KCdjb2xsZWN0aW9uJywgeyBpZDogJzE1MDg2OTExNDkxNScsIG5vZGU6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2xsZWN0aW9uLWNvbXBvbmVudC0xNTcwMDUxMTY2ODA3JyksIG1vbmV5Rm9ybWF0OiAnJUMyJUEzJTdCJTdCYW1vdW50JTdEJTdEJywgb3B0aW9uczogeyAicHJvZHVjdCI6IHsgInN0eWxlcyI6IHsgInByb2R1Y3QiOiB7ICJAbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIjogeyAibWF4LXdpZHRoIjogImNhbGMoMjUlIC0gMjBweCkiLCAibWFyZ2luLWxlZnQiOiAiMjBweCIsICJtYXJnaW4tYm90dG9tIjogIjUwcHgiLCAid2lkdGgiOiAiY2FsYygyNSUgLSAyMHB4KSIgfSwgImltZyI6IHsgImhlaWdodCI6ICJjYWxjKDEwMCUgLSAxNXB4KSIsICJwb3NpdGlvbiI6ICJhYnNvbHV0ZSIsICJsZWZ0IjogIjAiLCAicmlnaHQiOiAiMCIsICJ0b3AiOiAiMCIgfSwgImltZ1dyYXBwZXIiOiB7ICJwYWRkaW5nLXRvcCI6ICJjYWxjKDc1JSArIDE1cHgpIiwgInBvc2l0aW9uIjogInJlbGF0aXZlIiwgImhlaWdodCI6ICIwIiB9IH0sICJidXR0b24iOiB7ICJmb250LXNpemUiOiAiMTZweCIsICJwYWRkaW5nLXRvcCI6ICIxNnB4IiwgInBhZGRpbmctYm90dG9tIjogIjE2cHgiIH0sICJxdWFudGl0eUlucHV0IjogeyAiZm9udC1zaXplIjogIjE2cHgiLCAicGFkZGluZy10b3AiOiAiMTZweCIsICJwYWRkaW5nLWJvdHRvbSI6ICIxNnB4IiB9IH0sICJ0ZXh0IjogeyAiYnV0dG9uIjogIkFkZCB0byBjYXJ0IiB9IH0sICJwcm9kdWN0U2V0IjogeyAic3R5bGVzIjogeyAicHJvZHVjdHMiOiB7ICJAbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIjogeyAibWFyZ2luLWxlZnQiOiAiLTIwcHgiIH0gfSB9IH0sICJtb2RhbFByb2R1Y3QiOiB7ICJjb250ZW50cyI6IHsgImltZyI6IGZhbHNlLCAiaW1nV2l0aENhcm91c2VsIjogdHJ1ZSwgImJ1dHRvbiI6IGZhbHNlLCAiYnV0dG9uV2l0aFF1YW50aXR5IjogdHJ1ZSB9LCAic3R5bGVzIjogeyAicHJvZHVjdCI6IHsgIkBtZWRpYSAobWluLXdpZHRoOiA2MDFweCkiOiB7ICJtYXgtd2lkdGgiOiAiMTAwJSIsICJtYXJnaW4tbGVmdCI6ICIwcHgiLCAibWFyZ2luLWJvdHRvbSI6ICIwcHgiIH0gfSwgImJ1dHRvbiI6IHsgImZvbnQtc2l6ZSI6ICIxNnB4IiwgInBhZGRpbmctdG9wIjogIjE2cHgiLCAicGFkZGluZy1ib3R0b20iOiAiMTZweCIgfSwgInF1YW50aXR5SW5wdXQiOiB7ICJmb250LXNpemUiOiAiMTZweCIsICJwYWRkaW5nLXRvcCI6ICIxNnB4IiwgInBhZGRpbmctYm90dG9tIjogIjE2cHgiIH0gfSB9LCAiY2FydCI6IHsgInN0eWxlcyI6IHsgImJ1dHRvbiI6IHsgImZvbnQtc2l6ZSI6ICIxNnB4IiwgInBhZGRpbmctdG9wIjogIjE2cHgiLCAicGFkZGluZy1ib3R0b20iOiAiMTZweCIgfSwgInRpdGxlIjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgImhlYWRlciI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJsaW5lSXRlbXMiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAic3VidG90YWxUZXh0IjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgInN1YnRvdGFsIjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgIm5vdGljZSI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJjdXJyZW5jeSI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJjbG9zZSI6IHsgImNvbG9yIjogIiM0YzRjNGMiLCAiOmhvdmVyIjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSB9LCAiZW1wdHkiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAibm90ZURlc2NyaXB0aW9uIjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgImRpc2NvdW50VGV4dCI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJkaXNjb3VudEljb24iOiB7ICJmaWxsIjogIiM0YzRjNGMiIH0sICJkaXNjb3VudEFtb3VudCI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0gfSB9LCAidG9nZ2xlIjogeyAic3R5bGVzIjogeyAiY291bnQiOiB7ICJmb250LXNpemUiOiAiMTZweCIgfSB9IH0sICJsaW5lSXRlbSI6IHsgInN0eWxlcyI6IHsgInZhcmlhbnRUaXRsZSI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJ0aXRsZSI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJwcmljZSI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJmdWxsUHJpY2UiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAiZGlzY291bnQiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAiZGlzY291bnRJY29uIjogeyAiZmlsbCI6ICIjNGM0YzRjIiB9LCAicXVhbnRpdHkiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAicXVhbnRpdHlJbmNyZW1lbnQiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiwgImJvcmRlci1jb2xvciI6ICIjNGM0YzRjIiB9LCAicXVhbnRpdHlEZWNyZW1lbnQiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiwgImJvcmRlci1jb2xvciI6ICIjNGM0YzRjIiB9LCAicXVhbnRpdHlJbnB1dCI6IHsgImNvbG9yIjogIiM0YzRjNGMiLCAiYm9yZGVyLWNvbG9yIjogIiM0YzRjNGMiIH0gfSB9IH0sIH0pOyB9KTsgfSB9KSgpOyAvKl1dPiovCjwvc2NyaXB0PgoKCgoK