Senior Software Engineer
Hackajob
Software Engineering
Edinburgh, UK
Posted on Mar 10, 2026
hackajob is collaborating with Opencast Software to connect them with exceptional professionals for this role.
PGRpdj4KPGRpdj48c3Ryb25nPlJlYWR5IHRvIHdvcmsgc29tZXdoZXJlIHRoYXQgY2FyZXMgbW9yZSBhYm91dCBob3cgeW91IGJ1aWxkIHNvZnR3YXJlIHRoYW4gaG93IGZhc3QgeW91IGNhbiBzaGlwIGl0Pzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PkF0IE9wZW5jYXN0LCB3ZSBkb24mcnNxdW87dCBtZWFzdXJlIGRldmVsb3BlcnMgYnkgdGhlIG51bWJlciBvZiB0aWNrZXRzIHlvdSBjb21wbGV0ZS4gV2UgY2FyZSBhYm91dCBlbmdpbmVlcmluZyBjcmFmdCwgY2xlYW4gZGVzaWduIGFuZCB0aG91Z2h0ZnVsIHByb2JsZW0tc29sdmluZy4mbmJzcDs8L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5PcGVuY2FzdCBjb25zdWx0YW50cyBkZWxpdmVyIGluIGNvbXBsZXggZW52aXJvbm1lbnRzLCBwYWlyaW5nIG9mdGVuIGFuZCB3b3JraW5nIHdpdGggb3RoZXJzIHdobyB0YWtlIHByaWRlIGluIGRvaW5nIHRoaW5ncyBwcm9wZXJseTogVERELCBlbWVyZ2luZyBkZXNpZ24sIHJlZmFjdG9yaW5nIGFuZCBsZWF2aW5nIGNvZGUgYmV0dGVyIHRoYW4gdGhleSBmb3VuZCBpdC4gV2UgYnVpbGQgc29mdHdhcmUgd2UgYXJlIHByb3VkIG9mLCBhbmQgb3VyIGNsaWVudHMgdHJ1c3QgdXMgbm90IGp1c3QgdG8gY29kZSBidXQgdG8gdGhpbmssIGNoYWxsZW5nZSBhbmQgZ3VpZGUuIElmIHlvdSB2YWx1ZSBzaW1wbGUgYW5kIHJvYnVzdCBzb2x1dGlvbnMgYW5kIHdhbnQgYSByb2xlIHdoZXJlIHlvdXIganVkZ21lbnQgbWF0dGVycyBhcyBtdWNoIGFzIHlvdXIga2V5Ym9hcmQsIHlvdSB3aWxsIGZpdCByaWdodCBpbi48L2Rpdj4KPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5UaGUgcm9sZTwvc3Ryb25nPjwvZGl2Pgo8ZGl2PjxzdHJvbmc+Jm5ic3A7PC9zdHJvbmc+PC9kaXY+CjxkaXY+U29mdHdhcmUgZGV2ZWxvcGVycyBhdCBPcGVuY2FzdCBjYXJlIGFib3V0IGJ1aWxkaW5nIHByb2R1Y3RzIHJpZ2h0IGFuZCBjb21iaW5lIHRoZWlyIG93biBleHBlcmllbmNlIGFuZCBhcHByb2FjaCB3aXRoIG91ciBjb21wYW55IHZhbHVlcy4gVGhleSBhcmUgdGVjaCBhZ25vc3RpYywgaGF2ZSBleHBlcnRpc2UgaW4gYWdpbGUgbWV0aG9kb2xvZ2llcywgZXh0cmVtZSBwcm9ncmFtbWluZyBwcmFjdGljZXMgYW5kIHVzZSBpbmR1c3RyeS1sZWFkaW5nIHByb2dyYW1taW5nIGxhbmd1YWdlcyB0byBkZWxpdmVyIGFnaWxlIHRyYW5zZm9ybWF0aW9uLjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2Pk91ciBhcHByb2FjaCB0byBzb2Z0d2FyZSBkZXZlbG9wbWVudCBpcyBjb2xsYWJvcmF0aXZlLCBmb2N1c2VkIG9uIGtlZXBpbmcgdGhpbmdzIHNpbXBsZSwgYW5kIHdlIHVzZSB0ZXN0IGRyaXZlbiBkZXZlbG9wbWVudCBhbmQgcGFpciBwcm9ncmFtbWluZyBhcyBiZXN0IHByYWN0aWNlLjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2Pldvcmtpbmcgd2l0aCBjbGllbnRzIGFuZCBrZXkgc3Rha2Vob2xkZXJzIGlzIGEgY3J1Y2lhbCBwYXJ0IG9mIGEgY29uc3VsdGFuY3kgcm9sZS4gT3VyIGRldmVsb3BlcnMgYXJlIGluY2x1c2l2ZSB0ZWFtIHBsYXllcnMgdGhhdCBsaXN0ZW4sIGNvbGxhYm9yYXRlLCBjYW4gcG9zaXRpdmVseSBjaGFsbGVuZ2UgYW5kIG1hbmFnZSBleHBlY3RhdGlvbnMgd2hlbiBuZWVkZWQgYnV0IG1vc3Qgb2YgYWxsIGFyZSBhbHdheXMgd2lsbGluZyB0byB0ZWFjaCBhbmQgaGVscCBvdGhlcnMuIExlYXZpbmcgYSBjbGllbnQgd2l0aCBpbXByb3ZlZCB3YXlzIG9mIHdvcmtpbmcsIHdvcmtpbmcgdGVjaG5vbG9neSBhbmQgYSBnb29kIGV4cGVyaWVuY2UgZnJvbSBkaXNjb3ZlcnkgdGhyb3VnaCB0byBsaXZlIGlzIHRoZSBwcmlvcml0eS48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5UaGUgcm9sZSBpcyB2YXJpZWQsIHRlY2huaWNhbCwgbmV2ZXIgY29uZmluZWQgdG8gYW55IG9uZSBwcm92aWRlciBvciBzb2x1dGlvbiBhbmQgdGhlcmUgYXJlIGFsd2F5cyBvcHBvcnR1bml0aWVzIGZvciBsZWFybmluZyBhbmQgZGV2ZWxvcG1lbnQuPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5SZXF1aXJlbWVudHM8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5EdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGlzIHJvbGUsIGFwcGxpY2FudHMgbXVzdCBlaXRoZXIgY3VycmVudGx5IGhvbGQgYWN0aXZlIFNlY3VyaXR5IENoZWNrIChTQykgQ2xlYXJhbmNlIG9yIGJlIGVsaWdpYmxlIHRvIG9idGFpbiBpdC48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5FbGlnaWJpbGl0eSB0eXBpY2FsbHkgcmVxdWlyZXMgVUsgY2l0aXplbnNoaXAgYW5kIGNvbnRpbnVvdXMgcmVzaWRlbmNlIGluIHRoZSBVSyBmb3IgdGhlIHBhc3QgZml2ZSB5ZWFycywgd2l0aCBubyBzaW5nbGUgYWJzZW5jZSBleGNlZWRpbmcgMjggY29uc2VjdXRpdmUgZGF5cy48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5FeHBlcmllbmNlIGluIGRlbGl2ZXJpbmcgZGlnaXRhbCBzZXJ2aWNlcyBmb3IgdGhlIFVLIGdvdmVybm1lbnQgaXMgaGlnaGx5IHZhbHVhYmxlIGZvciBtYW55IG9mIG91ciBwcm9qZWN0cy4gVGhlcmVmb3JlLCBmYW1pbGlhcml0eSB3aXRoIHRoZSBHRFMgdG9vbGtpdCB3aWxsIGJlIGJlbmVmaWNpYWwuPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5UZWNobmljYWwgU2tpbGxzPC9zdHJvbmc+PC9kaXY+Cjx1bD4KPGxpPkV4cGVydGlzZSBpbiBKYXZhIG9yIFNjYWxhIGlzIHJlcXVpcmVkPC9saT4KPGxpPkV4cGVyaWVuY2UgaW4gb3RoZXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgS290bGluLCBSdWJ5IG9yIEphdmFzY3JpcHQgaXMgYWxzbyB2YWx1YWJsZTwvbGk+CjxsaT5EZWVwIHVuZGVyc3RhbmRpbmcgb2YgcHJvZ3JhbW1pbmcgcGFyYWRpZ20sIGNvZGUgZGVzaWduLCB0ZXN0aW5nLCBhY2Nlc3NpYmlsaXR5LCBwZXJmb3JtYW5jZSBhbmQgc2VjdXJpdHk8L2xpPgo8bGk+UHJvdmVuIGFiaWxpdHkgdG8gYXBwbHkgZGlmZmVyZW50IHRlc3RpbmcgdG9vbHMgYW5kIG1ldGhvZHMgaW4gcHJhY3RpY2U8L2xpPgo8bGk+S25vd2xlZGdlIG9yIGV4cGVyaWVuY2Ugb2YgZGVsaXZlcmluZyBjb21wbGV4IHNlcnZpY2VzIHRvIEdvdmVybm1lbnQgRGlnaXRhbCBTZXJ2aWNlIChHRFMpIHN0YW5kYXJkczwvbGk+CjxsaT5CZWluZyBjb21mb3J0YWJsZSB3aXRoIG5ldyB0ZWNobm9sb2d5LCB0LXNoYXBlZCBhbmQgY29tZm9ydGFibGUgd2l0aCBvbmdvaW5nIGxlYXJuaW5nIGFuZCBkZXZlbG9wbWVudCBpcyBrZXkgdG8gc3VjY2Vzcy48L2xpPgo8bGk+RXhwZXJpZW5jZSB3aXRoIGFnaWxlIG1ldGhvZG9sb2d5PC9saT4KPC91bD4KPGRpdj48c3Ryb25nPiZuYnNwOzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PjxzdHJvbmc+QSBzZW5pb3IgY29uc3VsdGFudCBpbiBzb2Z0d2FyZSBkZXZlbG9wbWVudCBhdCBPcGVuY2FzdCBpcyByZXNwb25zaWJsZSBmb3I6PC9zdHJvbmc+PC9kaXY+Cjx1bD4KPGxpPkRyaXZpbmcgdGhlIGVsYWJvcmF0aW9uIG9mIHRoZWlyIHRlYW0mcnNxdW87cyBiYWNrbG9nPC9saT4KPGxpPlNldHRpbmcgdGVzdGluZyBzdHJhdGVnaWVzIHRvIG1hdGNoIGluZHVzdHJ5IHN0YW5kYXJkczwvbGk+CjxsaT5CZWluZyBhIHRlY2huaWNhbCBleHBlcnQgaW4gdGhlaXIgdGVhbSAob3IgYWN0aW5nIGFzIHRoZSB0ZWFtIGxlYWQpPC9saT4KPGxpPkxlYWRpbmcgdGhlIHRlY2huaWNhbCByZXByZXNlbnRhdGlvbiBpbiBhIHByb2plY3QgZGlzY292ZXJ5PC9saT4KPGxpPk1lbnRvcmluZyBhbmQgY29hY2hpbmcgb3RoZXJzIHRvIGhlbHAgdGhlbSBhY2hpZXZlIHRoZWlyIGZ1bGwgcG90ZW50aWFsPC9saT4KPGxpPkRlbW9uc3RyYXRpbmcgbGVhZGVyc2hpcCB3aXRoaW4gT3BlbmNhc3QgY29tbXVuaXRpZXMgb2YgcHJhY3RpY2U8L2xpPgo8L3VsPgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PjxzdHJvbmc+U2FsYXJ5PC9zdHJvbmc+PC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+JnBvdW5kOzU5LDAwMSAtICZwb3VuZDs3MiwwMDA8L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj48c3Ryb25nPldoYXQgd2Ugb2ZmZXI8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5BIGNvbXBldGl0aXZlIHBhY2thZ2UgaW5jbHVkaW5nIGEgNyUgZW1wbG95ZXIgcGVuc2lvbiBjb250cmlidXRpb24sIHNoYXJlIG9wdGlvbnMgYW5kIGEgZGlzY3JldGlvbmFyeSBib251cy4gWW91JnJzcXVvO2xsIGFsc28gYmVuZWZpdCBmcm9tIGZsZXhpYmxlIHdvcmtpbmcgaG91cnMgKGFsaWduZWQgdG8gY2xpZW50IGNvbW1pdG1lbnRzKSwgMjUgZGF5cyZyc3F1bzsgaG9saWRheSwgYW5kIGFjY2VzcyB0byAzIGFubnVhbCAmbGRxdW87bGlmZSBoYXBwZW5zJnJkcXVvOyBkYXlzIHRvIHN1cHBvcnQgdW5leHBlY3RlZCBzaXR1YXRpb25zLiBXZSBhbHNvIG9mZmVyIHdlbGxiZWluZyBzdXBwb3J0LCBvbmdvaW5nIHByb2Zlc3Npb25hbCBkZXZlbG9wbWVudCwgdm9sdW50ZWVyaW5nIG9wcG9ydHVuaXRpZXMgYW5kIHRoZSBjaGFuY2UgdG8gYmUgcGFydCBvZiBhIGdlbnVpbmVseSBzdXBwb3J0aXZlIHRlYW0uJm5ic3A7PC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5XaGVyZSB5b3UmcnNxdW87bGwgd29yayZuYnNwOzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PlRoaXMgcm9sZSByZXF1aXJlcyByZWd1bGFyIG9uLXNpdGUgYXR0ZW5kYW5jZSBhY3Jvc3Mgb3VyIEhRLCBodWIgb2ZmaWNlcywgY2xpZW50IHNpdGVzIGFuZCBob21lLiBBcHBsaWNhbnRzIG11c3QgYmUgYWJsZSB0byBjb21tdXRlIHRvIG9mZmljZXMgYW5kIGNsaWVudCBzaXRlcyBhcyBwYXJ0IG9mIHRoZWlyIG5vcm1hbCB3b3JraW5nIGFycmFuZ2VtZW50cywgYXMgdHJhdmVsIGlzIGVzc2VudGlhbCB0byBmdWxmaWxsaW5nIHRoZSByZXNwb25zaWJpbGl0aWVzIG9mIHRoZSByb2xlLjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PjxzdHJvbmc+V2UgaW5jbHVkZSB5b3UmbmJzcDs8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5XZSB3ZWxjb21lIGNhbmRpZGF0ZXMgZnJvbSBhbGwgaWRlbnRpdGllcywgYXR0cmlidXRlcywgd2F5cyBvZiB0aGlua2luZyBhbmQgYmFja2dyb3VuZHMgdG8gdGhyaXZlIGluIGEgY2FyZWVyIGF0IE9wZW5jYXN0LiBPdXIgYWltIGlzIGZvciB0aGUgZGl2ZXJzaXR5IG9mIG91ciBwZW9wbGUgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBzb2x1dGlvbnMgd2UgZGVsaXZlciwgdG8gaGVscCBjcmVhdGUgYSBmYWlyZXIgc29jaWV0eSBmb3IgYWxsLiAmbmJzcDsmbmJzcDs8L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj48c3Ryb25nPkludGVydmlldyZuYnNwOzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PkludGVydmlld3Mgd2lsbCBiZSBjb25kdWN0ZWQgdmlhIE1pY3Jvc29mdCBUZWFtcy4gV2UmcnNxdW87cmUgaGFwcHkgdG8gbWFrZSBhZGp1c3RtZW50cyB0byBzdXBwb3J0IHlvdXIgbmVlZHMuPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5XYW50IHRvIGtub3cgbW9yZT8mbmJzcDsmbmJzcDs8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5WaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBkZXRhaWxzLjwvZGl2Pg==
PGRpdj4KPGRpdj48c3Ryb25nPlJlYWR5IHRvIHdvcmsgc29tZXdoZXJlIHRoYXQgY2FyZXMgbW9yZSBhYm91dCBob3cgeW91IGJ1aWxkIHNvZnR3YXJlIHRoYW4gaG93IGZhc3QgeW91IGNhbiBzaGlwIGl0Pzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PkF0IE9wZW5jYXN0LCB3ZSBkb24mcnNxdW87dCBtZWFzdXJlIGRldmVsb3BlcnMgYnkgdGhlIG51bWJlciBvZiB0aWNrZXRzIHlvdSBjb21wbGV0ZS4gV2UgY2FyZSBhYm91dCBlbmdpbmVlcmluZyBjcmFmdCwgY2xlYW4gZGVzaWduIGFuZCB0aG91Z2h0ZnVsIHByb2JsZW0tc29sdmluZy4mbmJzcDs8L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5PcGVuY2FzdCBjb25zdWx0YW50cyBkZWxpdmVyIGluIGNvbXBsZXggZW52aXJvbm1lbnRzLCBwYWlyaW5nIG9mdGVuIGFuZCB3b3JraW5nIHdpdGggb3RoZXJzIHdobyB0YWtlIHByaWRlIGluIGRvaW5nIHRoaW5ncyBwcm9wZXJseTogVERELCBlbWVyZ2luZyBkZXNpZ24sIHJlZmFjdG9yaW5nIGFuZCBsZWF2aW5nIGNvZGUgYmV0dGVyIHRoYW4gdGhleSBmb3VuZCBpdC4gV2UgYnVpbGQgc29mdHdhcmUgd2UgYXJlIHByb3VkIG9mLCBhbmQgb3VyIGNsaWVudHMgdHJ1c3QgdXMgbm90IGp1c3QgdG8gY29kZSBidXQgdG8gdGhpbmssIGNoYWxsZW5nZSBhbmQgZ3VpZGUuIElmIHlvdSB2YWx1ZSBzaW1wbGUgYW5kIHJvYnVzdCBzb2x1dGlvbnMgYW5kIHdhbnQgYSByb2xlIHdoZXJlIHlvdXIganVkZ21lbnQgbWF0dGVycyBhcyBtdWNoIGFzIHlvdXIga2V5Ym9hcmQsIHlvdSB3aWxsIGZpdCByaWdodCBpbi48L2Rpdj4KPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5UaGUgcm9sZTwvc3Ryb25nPjwvZGl2Pgo8ZGl2PjxzdHJvbmc+Jm5ic3A7PC9zdHJvbmc+PC9kaXY+CjxkaXY+U29mdHdhcmUgZGV2ZWxvcGVycyBhdCBPcGVuY2FzdCBjYXJlIGFib3V0IGJ1aWxkaW5nIHByb2R1Y3RzIHJpZ2h0IGFuZCBjb21iaW5lIHRoZWlyIG93biBleHBlcmllbmNlIGFuZCBhcHByb2FjaCB3aXRoIG91ciBjb21wYW55IHZhbHVlcy4gVGhleSBhcmUgdGVjaCBhZ25vc3RpYywgaGF2ZSBleHBlcnRpc2UgaW4gYWdpbGUgbWV0aG9kb2xvZ2llcywgZXh0cmVtZSBwcm9ncmFtbWluZyBwcmFjdGljZXMgYW5kIHVzZSBpbmR1c3RyeS1sZWFkaW5nIHByb2dyYW1taW5nIGxhbmd1YWdlcyB0byBkZWxpdmVyIGFnaWxlIHRyYW5zZm9ybWF0aW9uLjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2Pk91ciBhcHByb2FjaCB0byBzb2Z0d2FyZSBkZXZlbG9wbWVudCBpcyBjb2xsYWJvcmF0aXZlLCBmb2N1c2VkIG9uIGtlZXBpbmcgdGhpbmdzIHNpbXBsZSwgYW5kIHdlIHVzZSB0ZXN0IGRyaXZlbiBkZXZlbG9wbWVudCBhbmQgcGFpciBwcm9ncmFtbWluZyBhcyBiZXN0IHByYWN0aWNlLjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2Pldvcmtpbmcgd2l0aCBjbGllbnRzIGFuZCBrZXkgc3Rha2Vob2xkZXJzIGlzIGEgY3J1Y2lhbCBwYXJ0IG9mIGEgY29uc3VsdGFuY3kgcm9sZS4gT3VyIGRldmVsb3BlcnMgYXJlIGluY2x1c2l2ZSB0ZWFtIHBsYXllcnMgdGhhdCBsaXN0ZW4sIGNvbGxhYm9yYXRlLCBjYW4gcG9zaXRpdmVseSBjaGFsbGVuZ2UgYW5kIG1hbmFnZSBleHBlY3RhdGlvbnMgd2hlbiBuZWVkZWQgYnV0IG1vc3Qgb2YgYWxsIGFyZSBhbHdheXMgd2lsbGluZyB0byB0ZWFjaCBhbmQgaGVscCBvdGhlcnMuIExlYXZpbmcgYSBjbGllbnQgd2l0aCBpbXByb3ZlZCB3YXlzIG9mIHdvcmtpbmcsIHdvcmtpbmcgdGVjaG5vbG9neSBhbmQgYSBnb29kIGV4cGVyaWVuY2UgZnJvbSBkaXNjb3ZlcnkgdGhyb3VnaCB0byBsaXZlIGlzIHRoZSBwcmlvcml0eS48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5UaGUgcm9sZSBpcyB2YXJpZWQsIHRlY2huaWNhbCwgbmV2ZXIgY29uZmluZWQgdG8gYW55IG9uZSBwcm92aWRlciBvciBzb2x1dGlvbiBhbmQgdGhlcmUgYXJlIGFsd2F5cyBvcHBvcnR1bml0aWVzIGZvciBsZWFybmluZyBhbmQgZGV2ZWxvcG1lbnQuPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5SZXF1aXJlbWVudHM8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5EdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGlzIHJvbGUsIGFwcGxpY2FudHMgbXVzdCBlaXRoZXIgY3VycmVudGx5IGhvbGQgYWN0aXZlIFNlY3VyaXR5IENoZWNrIChTQykgQ2xlYXJhbmNlIG9yIGJlIGVsaWdpYmxlIHRvIG9idGFpbiBpdC48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5FbGlnaWJpbGl0eSB0eXBpY2FsbHkgcmVxdWlyZXMgVUsgY2l0aXplbnNoaXAgYW5kIGNvbnRpbnVvdXMgcmVzaWRlbmNlIGluIHRoZSBVSyBmb3IgdGhlIHBhc3QgZml2ZSB5ZWFycywgd2l0aCBubyBzaW5nbGUgYWJzZW5jZSBleGNlZWRpbmcgMjggY29uc2VjdXRpdmUgZGF5cy48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5FeHBlcmllbmNlIGluIGRlbGl2ZXJpbmcgZGlnaXRhbCBzZXJ2aWNlcyBmb3IgdGhlIFVLIGdvdmVybm1lbnQgaXMgaGlnaGx5IHZhbHVhYmxlIGZvciBtYW55IG9mIG91ciBwcm9qZWN0cy4gVGhlcmVmb3JlLCBmYW1pbGlhcml0eSB3aXRoIHRoZSBHRFMgdG9vbGtpdCB3aWxsIGJlIGJlbmVmaWNpYWwuPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5UZWNobmljYWwgU2tpbGxzPC9zdHJvbmc+PC9kaXY+Cjx1bD4KPGxpPkV4cGVydGlzZSBpbiBKYXZhIG9yIFNjYWxhIGlzIHJlcXVpcmVkPC9saT4KPGxpPkV4cGVyaWVuY2UgaW4gb3RoZXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgS290bGluLCBSdWJ5IG9yIEphdmFzY3JpcHQgaXMgYWxzbyB2YWx1YWJsZTwvbGk+CjxsaT5EZWVwIHVuZGVyc3RhbmRpbmcgb2YgcHJvZ3JhbW1pbmcgcGFyYWRpZ20sIGNvZGUgZGVzaWduLCB0ZXN0aW5nLCBhY2Nlc3NpYmlsaXR5LCBwZXJmb3JtYW5jZSBhbmQgc2VjdXJpdHk8L2xpPgo8bGk+UHJvdmVuIGFiaWxpdHkgdG8gYXBwbHkgZGlmZmVyZW50IHRlc3RpbmcgdG9vbHMgYW5kIG1ldGhvZHMgaW4gcHJhY3RpY2U8L2xpPgo8bGk+S25vd2xlZGdlIG9yIGV4cGVyaWVuY2Ugb2YgZGVsaXZlcmluZyBjb21wbGV4IHNlcnZpY2VzIHRvIEdvdmVybm1lbnQgRGlnaXRhbCBTZXJ2aWNlIChHRFMpIHN0YW5kYXJkczwvbGk+CjxsaT5CZWluZyBjb21mb3J0YWJsZSB3aXRoIG5ldyB0ZWNobm9sb2d5LCB0LXNoYXBlZCBhbmQgY29tZm9ydGFibGUgd2l0aCBvbmdvaW5nIGxlYXJuaW5nIGFuZCBkZXZlbG9wbWVudCBpcyBrZXkgdG8gc3VjY2Vzcy48L2xpPgo8bGk+RXhwZXJpZW5jZSB3aXRoIGFnaWxlIG1ldGhvZG9sb2d5PC9saT4KPC91bD4KPGRpdj48c3Ryb25nPiZuYnNwOzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PjxzdHJvbmc+QSBzZW5pb3IgY29uc3VsdGFudCBpbiBzb2Z0d2FyZSBkZXZlbG9wbWVudCBhdCBPcGVuY2FzdCBpcyByZXNwb25zaWJsZSBmb3I6PC9zdHJvbmc+PC9kaXY+Cjx1bD4KPGxpPkRyaXZpbmcgdGhlIGVsYWJvcmF0aW9uIG9mIHRoZWlyIHRlYW0mcnNxdW87cyBiYWNrbG9nPC9saT4KPGxpPlNldHRpbmcgdGVzdGluZyBzdHJhdGVnaWVzIHRvIG1hdGNoIGluZHVzdHJ5IHN0YW5kYXJkczwvbGk+CjxsaT5CZWluZyBhIHRlY2huaWNhbCBleHBlcnQgaW4gdGhlaXIgdGVhbSAob3IgYWN0aW5nIGFzIHRoZSB0ZWFtIGxlYWQpPC9saT4KPGxpPkxlYWRpbmcgdGhlIHRlY2huaWNhbCByZXByZXNlbnRhdGlvbiBpbiBhIHByb2plY3QgZGlzY292ZXJ5PC9saT4KPGxpPk1lbnRvcmluZyBhbmQgY29hY2hpbmcgb3RoZXJzIHRvIGhlbHAgdGhlbSBhY2hpZXZlIHRoZWlyIGZ1bGwgcG90ZW50aWFsPC9saT4KPGxpPkRlbW9uc3RyYXRpbmcgbGVhZGVyc2hpcCB3aXRoaW4gT3BlbmNhc3QgY29tbXVuaXRpZXMgb2YgcHJhY3RpY2U8L2xpPgo8L3VsPgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PjxzdHJvbmc+U2FsYXJ5PC9zdHJvbmc+PC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+JnBvdW5kOzU5LDAwMSAtICZwb3VuZDs3MiwwMDA8L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj48c3Ryb25nPldoYXQgd2Ugb2ZmZXI8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5BIGNvbXBldGl0aXZlIHBhY2thZ2UgaW5jbHVkaW5nIGEgNyUgZW1wbG95ZXIgcGVuc2lvbiBjb250cmlidXRpb24sIHNoYXJlIG9wdGlvbnMgYW5kIGEgZGlzY3JldGlvbmFyeSBib251cy4gWW91JnJzcXVvO2xsIGFsc28gYmVuZWZpdCBmcm9tIGZsZXhpYmxlIHdvcmtpbmcgaG91cnMgKGFsaWduZWQgdG8gY2xpZW50IGNvbW1pdG1lbnRzKSwgMjUgZGF5cyZyc3F1bzsgaG9saWRheSwgYW5kIGFjY2VzcyB0byAzIGFubnVhbCAmbGRxdW87bGlmZSBoYXBwZW5zJnJkcXVvOyBkYXlzIHRvIHN1cHBvcnQgdW5leHBlY3RlZCBzaXR1YXRpb25zLiBXZSBhbHNvIG9mZmVyIHdlbGxiZWluZyBzdXBwb3J0LCBvbmdvaW5nIHByb2Zlc3Npb25hbCBkZXZlbG9wbWVudCwgdm9sdW50ZWVyaW5nIG9wcG9ydHVuaXRpZXMgYW5kIHRoZSBjaGFuY2UgdG8gYmUgcGFydCBvZiBhIGdlbnVpbmVseSBzdXBwb3J0aXZlIHRlYW0uJm5ic3A7PC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5XaGVyZSB5b3UmcnNxdW87bGwgd29yayZuYnNwOzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PlRoaXMgcm9sZSByZXF1aXJlcyByZWd1bGFyIG9uLXNpdGUgYXR0ZW5kYW5jZSBhY3Jvc3Mgb3VyIEhRLCBodWIgb2ZmaWNlcywgY2xpZW50IHNpdGVzIGFuZCBob21lLiBBcHBsaWNhbnRzIG11c3QgYmUgYWJsZSB0byBjb21tdXRlIHRvIG9mZmljZXMgYW5kIGNsaWVudCBzaXRlcyBhcyBwYXJ0IG9mIHRoZWlyIG5vcm1hbCB3b3JraW5nIGFycmFuZ2VtZW50cywgYXMgdHJhdmVsIGlzIGVzc2VudGlhbCB0byBmdWxmaWxsaW5nIHRoZSByZXNwb25zaWJpbGl0aWVzIG9mIHRoZSByb2xlLjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PjxzdHJvbmc+V2UgaW5jbHVkZSB5b3UmbmJzcDs8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5XZSB3ZWxjb21lIGNhbmRpZGF0ZXMgZnJvbSBhbGwgaWRlbnRpdGllcywgYXR0cmlidXRlcywgd2F5cyBvZiB0aGlua2luZyBhbmQgYmFja2dyb3VuZHMgdG8gdGhyaXZlIGluIGEgY2FyZWVyIGF0IE9wZW5jYXN0LiBPdXIgYWltIGlzIGZvciB0aGUgZGl2ZXJzaXR5IG9mIG91ciBwZW9wbGUgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBzb2x1dGlvbnMgd2UgZGVsaXZlciwgdG8gaGVscCBjcmVhdGUgYSBmYWlyZXIgc29jaWV0eSBmb3IgYWxsLiAmbmJzcDsmbmJzcDs8L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj48c3Ryb25nPkludGVydmlldyZuYnNwOzwvc3Ryb25nPjwvZGl2Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8ZGl2PkludGVydmlld3Mgd2lsbCBiZSBjb25kdWN0ZWQgdmlhIE1pY3Jvc29mdCBUZWFtcy4gV2UmcnNxdW87cmUgaGFwcHkgdG8gbWFrZSBhZGp1c3RtZW50cyB0byBzdXBwb3J0IHlvdXIgbmVlZHMuPC9kaXY+CjxkaXY+Jm5ic3A7PC9kaXY+CjxkaXY+PHN0cm9uZz5XYW50IHRvIGtub3cgbW9yZT8mbmJzcDsmbmJzcDs8L3N0cm9uZz48L2Rpdj4KPGRpdj4mbmJzcDs8L2Rpdj4KPGRpdj5WaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBkZXRhaWxzLjwvZGl2Pg==