package Ġcom . line corp . abc . analytics . triggers Ċ Ċ import Ġkotlinx . c interop . address Of Ċ import Ġkotlinx . c interop . use Pin ned Ċ import Ġplatform . objc . OBJ C _ ASS OCI ATION _ RE TAIN _ NON ATOMIC Ċ import Ġplatform . objc . objc _ get Associated Object Ċ import Ġplatform . objc . objc _ set Associated Object Ċ Ċ open Ġclass ĠAT Event Trigger Factory Ġ{ ĊĠĠĠ Ġ@ Thread Local ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġevent Trigger Key Ġ= Ġ" event Trigger ". use Pin ned Ġ{ Ġit . address Of ( 0 ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( owner : ĠAT Event Trigger Compatible ): ĠAT Event Trigger < AT Event Trigger Compatible > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Event Trigger ( owner ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( owner : ĠAT Event Trigger UI Compatible ): ĠAT Event Trigger < AT Event Trigger UI Compatible > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Event Trigger ( owner ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġ< T : ĠAT Event Trigger Compatible > Ġcreate Event Trigger ( owner : ĠT ): ĠAT Event Trigger < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġobj c _ get Associated Object ( owner , Ġevent Trigger Key ) Ġas ? ĠAT Event Trigger < T > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠAT Event Trigger < T >( owner ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj c _ set Associated Object ( owner , Ġevent Trigger Key , Ġvalue , ĠOB JC _ ASS OCI ATION _ RE TAIN _ NON ATOMIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }