#include "run-time.h"

/* Typedefs for referenced classes */

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLclassGVKd;

#define  define__KLmm_wrapperGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D mm_wrapper_implementation_class_; \
    D mm_wrapper_subtype_mask_; \
    DWORD mm_wrapper_fixed_part_; \
    DWORD mm_wrapper_variable_part_; \
    D mm_wrapper_number_patterns_; \
    DWORD mm_wrapper_pattern_element_[nrepeated+1]; \
  } _KLmm_wrapperGVKi_##nrepeated;
define__KLmm_wrapperGVKi(1);
define__KLmm_wrapperGVKi(0);

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
  D incremental_gf_module_;
  D incremental_gf_domain_info_;
  D incremental_gf_method_libraries_;
  D incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLfunction_classGVKi;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLempty_listGVKd;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
} _KLabsent_engine_nodeGVKg;

typedef struct {
  D wrapper;
  D namespace_name_;
  D home_library_;
} _KLmoduleGVKe;

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    D vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(3);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(4);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(16);
define__KLsimple_object_vectorGVKd(0);

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(8);
define__KLbyte_stringGVKd(51);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(31);
define__KLbyte_stringGVKd(40);
define__KLbyte_stringGVKd(37);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(21);
define__KLbyte_stringGVKd(33);
define__KLbyte_stringGVKd(32);
define__KLbyte_stringGVKd(28);
define__KLbyte_stringGVKd(25);
define__KLbyte_stringGVKd(18);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(27);
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(24);
define__KLbyte_stringGVKd(12);

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_values_;
} _KLsignatureAvaluesGVKi;

typedef struct {
  D wrapper;
} _KLserverGVenvironment_protocols;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLpairGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
} _KLsimple_methodGVKe;

typedef struct {
  D wrapper;
  D Pprimitive_name_;
  D project_proxy_;
  D project_application_;
  D project_compiler_database_;
  D project_next_numeric_id_;
  D project_object_table_;
  D project_query_database_;
  D project_server_path_;
  D environment_object_breakpoints_;
  D source_location_breakpoints_;
  D project_properties_;
  D project_profile_state_;
} _KLproject_objectGVenvironment_protocols;

typedef struct {
  D wrapper;
  D class_properties_;
  D iclass_class_;
  D class_mm_wrapper_;
  D repeated_slot_descriptor_;
  D instance_slot_descriptors_;
  D iclass_dispatch_key_;
  D class_constructor_;
  D direct_superclasses_;
  D class_rcpl_vector_;
  D class_rcpl_position_;
  D class_rcpl_other_positions_;
  D class_known_joint_;
  D iclass_dependent_generics_;
  D iclass_subclass_dependent_generics_;
  D direct_subclasses_;
  D direct_methods_;
  D direct_slot_descriptors_;
  D slot_descriptors_;
  D direct_inherited_slot_descriptors_;
  D direct_initialization_argument_descriptors_;
  D class_slot_descriptors_;
  D defaulted_initialization_arguments_slot_;
  D class_slot_storage_;
} _KLimplementation_classGVKe;

typedef struct {
  D wrapper;
  D slot_descriptor_properties_;
  D init_data_slot_;
  D slot_owner_;
  D init_keyword_;
  D slot_getter_;
  D slot_setter_;
  D slot_type_;
} _KLinstance_slot_descriptorGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
} _KLsealed_generic_functionGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLobject_signatureGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D method_slot_descriptor_;
} _KLsetter_methodGVKi;

typedef struct {
  D wrapper;
  D xep_;
  D method_slot_descriptor_;
} _KLgetter_methodGVKi;

typedef struct {
  D wrapper;
  D symbol_name_;
} _KLsymbolGVKd;

typedef struct {
  D wrapper;
  D Pprimitive_name_;
} _KLenvironment_objectGVenvironment_protocols;

typedef struct {
  D wrapper;
  D Pprimitive_name_;
  D application_object_proxy_;
} _KLapplication_objectGVenvironment_protocols;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D union_type1_;
  D union_type2_;
} _KLunionGVKe;

typedef struct {
  D wrapper;
} _KLstringGVKd;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D singleton_object_;
} _KLsingletonGVKd;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
  D signature_values_;
} _KLkeyword_signatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
} _KLkeyword_signatureGVKe;

typedef struct {
  D wrapper;
  D Pprimitive_name_;
  D server_project_;
  D application_object_table_;
  D application_client_;
  D application_machine_;
  D application_filename_;
  D application_arguments_;
  D application_state_;
  D application_temporary_stopQ_;
} _KLapplicationGVenvironment_protocols;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
} _KLclosed_server_errorGVenvironment_protocols;

typedef struct {
  D wrapper;
  D Pprimitive_name_;
  D application_object_proxy_;
  D next_frame_cache_slot_;
  D previous_frame_cache_slot_;
  D local_variables_cache_slot_;
  D function_cache_slot_;
  D thread_cache_slot_;
  D stack_frame_topQ_;
  D stack_frame_bottomQ_;
  D source_location_cache_slot_;
} _KLstack_frame_objectGVenvironment_protocols;


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D Pprimitive_name_;
  D application_object_proxy_;
  D thread_runtime_state_;
  D thread_suspendedQ_;
} _KLthread_objectGVenvironment_protocols;


/* Referenced object declarations */

extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLmoduleGVKe Kenvironment_protocols_moduleYdylan_userVenvironment_protocols;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LintegerG_typesVKi;
extern _KLclassGVKd KLserverGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLserverGVenvironment_protocolsW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
D Kchoose_serverVenvironment_protocolsMM0I (D, D, D, D, D);
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLproject_objectGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLproject_objectGVenvironment_protocolsW;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLclassGVKd KLsetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsetter_methodGVKiW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLenvironment_objectGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLenvironment_objectGVenvironment_protocolsW;
extern _KLclassGVKd KLapplication_objectGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLapplication_objectGVenvironment_protocolsW;
extern _KLkeyword_methodGVKe KinitializeVKdMenvironment_protocolsM0;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLkeyword_methodGVKe KinitializeVKdMM1;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
D Kunion_instanceQVKiI (D, D);
extern _KLclassGVKd KLstringGVKd;
extern _KLmm_wrapperGVKi_0 KLstringGVKdW;
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
D Ksingleton_pointer_idQ_instanceQVKiI (D, D);
extern _KLsymbolGVKd KJname_;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLinstance_slot_descriptorGVKe KPprimitive_nameVenvironment_protocolsHLenvironment_objectG;
extern _KLinstance_slot_descriptorGVKe Kapplication_object_proxyVenvironment_protocolsHLapplication_objectG;
D Kclass_instanceQ_initialVKiI (D, D);
extern _KLsimple_object_vectorGVKd_2 KDsignature_LstringG_typesVKi;
extern _KLincremental_generic_functionGVKe Kget_environment_object_primitive_nameVenvironment_protocols;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LsequenceG_typesVKi;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLclassGVKd KLapplicationGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLapplicationGVenvironment_protocolsW;
extern _KLsymbolGVKd KJformat_string_;
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLclassGVKd KLclosed_server_errorGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLclosed_server_errorGVenvironment_protocolsW;
D KerrorVKdMM0I (D, D);
extern _KLincremental_generic_functionGVKe KsizeVKd;
extern _KLincremental_generic_functionGVKe K_VKd;
extern _KLincremental_generic_functionGVKe KelementVKd;
extern _KLsealed_generic_functionGVKe Kstack_frame_topQ_setterVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Kstack_frame_bottomQ_setterVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Kstack_frame_bottomQVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Kprevious_frame_cache_slot_setterVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Kstack_frame_topQVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Knext_frame_cache_slot_setterVenvironment_protocols;
extern _KLincremental_generic_functionGVKe KLVKd;
extern _KLclassGVKd KLstack_frame_objectGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLstack_frame_objectGVenvironment_protocolsW;

/* Defined object declarations */

extern _KLsimple_methodGVKe Kenvironment_object_primitive_nameVenvironment_protocolsMM3;
D Kenvironment_object_primitive_nameVenvironment_protocolsMM3I (D, D);
extern _KLsimple_methodGVKe Kenvironment_object_type_nameVenvironment_protocolsMM21;
D Kenvironment_object_type_nameVenvironment_protocolsMM21I (D);
extern _KLclassGVKd KLthread_objectGVenvironment_protocols;
extern _KLmm_wrapperGVKi_0 KLthread_objectGVenvironment_protocolsW;
extern _KLincremental_generic_functionGVKe Kthread_indexVenvironment_protocols;
extern _KLsimple_methodGVKe Kthread_indexVenvironment_protocolsMM0;
D Kthread_indexVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K9;
static _KLsignatureAvaluesGVKi K10;
static _KLbyte_stringGVKd_12 K11;
static _KLsimple_object_vectorGVKd_2 K12;
static _KLsignatureAvaluesGVKi K13;
static _KLsimple_object_vectorGVKd_2 K14;
static _KLimplementation_classGVKe K15;
static _KLsimple_object_vectorGVKd_4 K16;
extern _KLkeyword_methodGVKe KLthread_objectGZ32ZconstructorVenvironment_protocolsMM0;
D KLthread_objectGZ32ZconstructorVenvironment_protocolsMM0I (D, D, D, D);
static _KLsimple_object_vectorGVKd_1 K19;
static _KLsimple_object_vectorGVKd_6 K20;
static _KLsimple_object_vectorGVKd_2 K21;
extern _KLinstance_slot_descriptorGVKe Kthread_runtime_stateVenvironment_protocolsHLthread_objectG;
extern _KLinstance_slot_descriptorGVKe Kthread_suspendedQVenvironment_protocolsHLthread_objectG;
extern _KLsealed_generic_functionGVKe Kthread_suspendedQVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Kthread_suspendedQ_setterVenvironment_protocols;
extern _KLsetter_methodGVKi Kthread_suspendedQ_setterVenvironment_protocolsMM0;
static _KLpairGVKd K27;
static _KLbyte_stringGVKd_24 K28;
extern _KLgetter_methodGVKi Kthread_suspendedQVenvironment_protocolsMM0;
static _KLpairGVKd K30;
static _KLbyte_stringGVKd_17 K31;
static _KLsymbolGVKd KJrunning_;
extern _KLsealed_generic_functionGVKe Kthread_runtime_stateVenvironment_protocols;
extern _KLsealed_generic_functionGVKe Kthread_runtime_state_setterVenvironment_protocols;
extern _KLsetter_methodGVKi Kthread_runtime_state_setterVenvironment_protocolsMM0;
static _KLpairGVKd K36;
static _KLbyte_stringGVKd_27 K37;
extern _KLgetter_methodGVKi Kthread_runtime_stateVenvironment_protocolsMM0;
static _KLpairGVKd K39;
static _KLbyte_stringGVKd_20 K40;
static _KLbyte_stringGVKd_7 K41;
static _KLunionGVKe K42;
static _KLpairGVKd K43;
static _KLsingletonGVKd K44;
static _KLkeyword_signatureAvaluesGVKi K45;
static _KLsimple_object_vectorGVKd_4 K46;
static _KLsymbolGVKd KJapplication_object_proxy_;
static _KLbyte_stringGVKd_24 K48;
static _KLsimple_object_vectorGVKd_2 K49;
static _KLsimple_object_vectorGVKd_1 K50;
static _KLbyte_stringGVKd_15 K51;
static _KLbyte_stringGVKd_18 K52;
static _KLsignatureAvaluesGVKi K53;
static _KLsignatureAvaluesGVKi K54;
extern _KLincremental_generic_functionGVKe Kcurrent_stop_breakpointsVenvironment_protocols;
extern _KLsimple_methodGVKe Kcurrent_stop_breakpointsVenvironment_protocolsMM0;
D Kcurrent_stop_breakpointsVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K58;
static _KLsignatureAvaluesGVKi K59;
static _KLbyte_stringGVKd_24 K60;
static _KLsignatureAvaluesGVKi K61;
extern _KLincremental_generic_functionGVKe Kapplication_just_steppedQVenvironment_protocols;
extern _KLsimple_methodGVKe Kapplication_just_steppedQVenvironment_protocolsMM0;
D Kapplication_just_steppedQVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K65;
static _KLsignatureAvaluesGVKi K66;
static _KLbyte_stringGVKd_25 K67;
static _KLsignatureAvaluesGVKi K68;
extern _KLincremental_generic_functionGVKe Kapplication_just_interactedQVenvironment_protocols;
extern _KLsimple_methodGVKe Kapplication_just_interactedQVenvironment_protocolsMM0;
D Kapplication_just_interactedQVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K72;
static _KLbyte_stringGVKd_28 K73;
extern _KLincremental_generic_functionGVKe Kapplication_just_hit_breakpointQVenvironment_protocols;
extern _KLsimple_methodGVKe Kapplication_just_hit_breakpointQVenvironment_protocolsMM0;
D Kapplication_just_hit_breakpointQVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K77;
static _KLbyte_stringGVKd_32 K78;
extern _KLincremental_generic_functionGVKe Kapplication_just_hit_errorQVenvironment_protocols;
extern _KLsimple_methodGVKe Kapplication_just_hit_errorQVenvironment_protocolsMM0;
D Kapplication_just_hit_errorQVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K82;
static _KLbyte_stringGVKd_27 K83;
extern _KLincremental_generic_functionGVKe Kapplication_just_hit_dylan_errorQVenvironment_protocols;
extern _KLsimple_methodGVKe Kapplication_just_hit_dylan_errorQVenvironment_protocolsMM0;
D Kapplication_just_hit_dylan_errorQVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K87;
static _KLbyte_stringGVKd_33 K88;
extern _KLincremental_generic_functionGVKe Kstep_application_intoVenvironment_protocols;
extern _KLsimple_methodGVKe Kstep_application_intoVenvironment_protocolsMM0;
D Kstep_application_intoVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K92;
static _KLsignatureGVKe K93;
static _KLbyte_stringGVKd_21 K94;
static _KLsignatureGVKe K95;
extern _KLincremental_generic_functionGVKe Kstep_application_overVenvironment_protocols;
extern _KLkeyword_methodGVKe Kstep_application_overVenvironment_protocolsMM0;
D Kstep_application_overVenvironment_protocolsMM0I (D, D, D, D);
static _KLpairGVKd K99;
static _KLkeyword_signatureGVKe K100;
static _KLbyte_stringGVKd_21 K101;
static _KLsimple_object_vectorGVKd_1 K102;
static _KLsymbolGVKd KJstack_frame_;
static _KLbyte_stringGVKd_11 K104;
static _KLkeyword_signatureGVKe K105;
static _KLsimple_object_vectorGVKd_2 K106;
extern _KLincremental_generic_functionGVKe Kstep_application_outVenvironment_protocols;
extern _KLkeyword_methodGVKe Kstep_application_outVenvironment_protocolsMM0;
D Kstep_application_outVenvironment_protocolsMM0I (D, D, D, D);
static _KLpairGVKd K110;
static _KLbyte_stringGVKd_20 K111;
extern _KLincremental_generic_functionGVKe Kapplication_default_interactor_threadVenvironment_protocols;
extern _KLsimple_methodGVKe Kapplication_default_interactor_threadVenvironment_protocolsMM0;
D Kapplication_default_interactor_threadVenvironment_protocolsMM0I (D);
static _KLpairGVKd K115;
static _KLsignatureAvaluesGVKi K116;
static _KLbyte_stringGVKd_37 K117;
static _KLsimple_object_vectorGVKd_1 K118;
static _KLsimple_object_vectorGVKd_1 K119;
static _KLunionGVKe K120;
static _KLsignatureAvaluesGVKi K121;
static _KLsimple_object_vectorGVKd_1 K122;
extern _KLincremental_generic_functionGVKe Kadd_application_object_to_thread_historyVenvironment_protocols;
extern _KLsimple_methodGVKe Kadd_application_object_to_thread_historyVenvironment_protocolsMM0;
D Kadd_application_object_to_thread_historyVenvironment_protocolsMM0I (D, D, D);
static _KLpairGVKd K126;
static _KLsignatureAvaluesGVKi K127;
static _KLbyte_stringGVKd_40 K128;
static _KLsimple_object_vectorGVKd_3 K129;
static _KLsimple_object_vectorGVKd_1 K130;
static _KLsignatureAvaluesGVKi K131;
static _KLsimple_object_vectorGVKd_3 K132;
extern _KLincremental_generic_functionGVKe Kthread_current_interactor_levelVenvironment_protocols;
extern _KLsimple_methodGVKe Kthread_current_interactor_levelVenvironment_protocolsMM0;
D Kthread_current_interactor_levelVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K136;
static _KLbyte_stringGVKd_31 K137;
extern _KLincremental_generic_functionGVKe Kresume_application_threadVenvironment_protocols;
extern _KLsimple_methodGVKe Kresume_application_threadVenvironment_protocolsMM0;
D Kresume_application_threadVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K141;
static _KLbyte_stringGVKd_25 K142;
extern _KLincremental_generic_functionGVKe Ksuspend_application_threadVenvironment_protocols;
extern _KLsimple_methodGVKe Ksuspend_application_threadVenvironment_protocolsMM0;
D Ksuspend_application_threadVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K146;
static _KLbyte_stringGVKd_26 K147;
extern _KLincremental_generic_functionGVKe Kcreate_application_threadVenvironment_protocols;
extern _KLsimple_methodGVKe Kcreate_application_threadVenvironment_protocolsMM0;
D Kcreate_application_threadVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K151;
static _KLsignatureAvaluesGVKi K152;
static _KLbyte_stringGVKd_25 K153;
static _KLsimple_object_vectorGVKd_2 K154;
static _KLbyte_stringGVKd_51 K155;
static _KLsignatureAvaluesGVKi K156;
static _KLsimple_object_vectorGVKd_2 K157;
extern _KLincremental_generic_functionGVKe Kthread_stateVenvironment_protocols;
extern _KLsimple_methodGVKe Kthread_stateVenvironment_protocolsMM0;
D Kthread_stateVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K161;
static _KLsignatureAvaluesGVKi K162;
static _KLbyte_stringGVKd_12 K163;
static _KLsimple_object_vectorGVKd_1 K164;
static _KLsymbolGVKd KJobsolete_;
static _KLbyte_stringGVKd_8 K166;
static _KLsignatureAvaluesGVKi K167;
extern _KLincremental_generic_functionGVKe Kthread_complete_stack_traceVenvironment_protocols;
extern _KLsimple_methodGVKe Kthread_complete_stack_traceVenvironment_protocolsMM0;
D Kthread_complete_stack_traceVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K171;
static _KLbyte_stringGVKd_27 K172;
extern _KLincremental_generic_functionGVKe Kthread_stack_traceVenvironment_protocols;
extern _KLsimple_methodGVKe Kthread_stack_traceVenvironment_protocolsMM0;
D Kthread_stack_traceVenvironment_protocolsMM0I (D, D);
static _KLpairGVKd K176;
static _KLsignatureAvaluesGVKi K177;
static _KLbyte_stringGVKd_18 K178;
static _KLsimple_object_vectorGVKd_1 K179;
static _KLsignatureAvaluesGVKi K180;

/* Indirection variables */

static D IKJrunning_ = &KJrunning_;
static D IKJapplication_object_proxy_ = &KJapplication_object_proxy_;
static D IKJstack_frame_ = &KJstack_frame_;
static D IKJobsolete_ = &KJobsolete_;

/* Variables */

D thread_runtime_stateVenvironment_protocols = &Kthread_runtime_stateVenvironment_protocols;
D thread_runtime_state_setterVenvironment_protocols = &Kthread_runtime_state_setterVenvironment_protocols;
D thread_suspendedQVenvironment_protocols = &Kthread_suspendedQVenvironment_protocols;
D thread_suspendedQ_setterVenvironment_protocols = &Kthread_suspendedQ_setterVenvironment_protocols;
D Lthread_objectGVenvironment_protocols = &KLthread_objectGVenvironment_protocols;
D thread_stack_traceVenvironment_protocols = &Kthread_stack_traceVenvironment_protocols;
D thread_complete_stack_traceVenvironment_protocols = &Kthread_complete_stack_traceVenvironment_protocols;
D thread_indexVenvironment_protocols = &Kthread_indexVenvironment_protocols;
D thread_stateVenvironment_protocols = &Kthread_stateVenvironment_protocols;
D create_application_threadVenvironment_protocols = &Kcreate_application_threadVenvironment_protocols;
D suspend_application_threadVenvironment_protocols = &Ksuspend_application_threadVenvironment_protocols;
D resume_application_threadVenvironment_protocols = &Kresume_application_threadVenvironment_protocols;
D thread_current_interactor_levelVenvironment_protocols = &Kthread_current_interactor_levelVenvironment_protocols;
D add_application_object_to_thread_historyVenvironment_protocols = &Kadd_application_object_to_thread_historyVenvironment_protocols;
D application_default_interactor_threadVenvironment_protocols = &Kapplication_default_interactor_threadVenvironment_protocols;
D step_application_outVenvironment_protocols = &Kstep_application_outVenvironment_protocols;
D step_application_overVenvironment_protocols = &Kstep_application_overVenvironment_protocols;
D step_application_intoVenvironment_protocols = &Kstep_application_intoVenvironment_protocols;
D application_just_hit_dylan_errorQVenvironment_protocols = &Kapplication_just_hit_dylan_errorQVenvironment_protocols;
D application_just_hit_errorQVenvironment_protocols = &Kapplication_just_hit_errorQVenvironment_protocols;
D application_just_hit_breakpointQVenvironment_protocols = &Kapplication_just_hit_breakpointQVenvironment_protocols;
D application_just_interactedQVenvironment_protocols = &Kapplication_just_interactedQVenvironment_protocols;
D application_just_steppedQVenvironment_protocols = &Kapplication_just_steppedQVenvironment_protocols;
D current_stop_breakpointsVenvironment_protocols = &Kcurrent_stop_breakpointsVenvironment_protocols;

/* Objects */

_KLsimple_methodGVKe Kenvironment_object_primitive_nameVenvironment_protocolsMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K54,
  &Kenvironment_object_primitive_nameVenvironment_protocolsMM3I
};

_KLsimple_methodGVKe Kenvironment_object_type_nameVenvironment_protocolsMM21 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K53,
  &Kenvironment_object_type_nameVenvironment_protocolsMM21I
};

_KLclassGVKd KLthread_objectGVenvironment_protocols = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K51,
  &K15,
  (D) 1,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols
};

_KLmm_wrapperGVKi_0 KLthread_objectGVenvironment_protocolsW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K15,
  (D) 1,
  17,
  33554439,
  (D) 1
};

_KLincremental_generic_functionGVKe Kthread_indexVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K10,
  (D) 1,
  &K11,
  &K9,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kthread_indexVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K13,
  &Kthread_indexVenvironment_protocolsMM0I
};

static _KLpairGVKd K9 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_indexVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K10 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K12,
  &KDsignature_LintegerG_typesVKi
};

static _KLbyte_stringGVKd_12 K11 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 49,
  "thread-index"
};

static _KLsimple_object_vectorGVKd_2 K12 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLserverGVenvironment_protocols,
  &KLthread_objectGVenvironment_protocols
};

static _KLsignatureAvaluesGVKi K13 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K14,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K14 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLproject_objectGVenvironment_protocols,
  &KLthread_objectGVenvironment_protocols
};

static _KLimplementation_classGVKe K15 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 477102097,
  &KLthread_objectGVenvironment_protocols,
  &KLthread_objectGVenvironment_protocolsW,
  &KPfalseVKi,
  &K16,
  (D) -3,
  &KLthread_objectGZ32ZconstructorVenvironment_protocolsMM0,
  &K19,
  &K20,
  (D) 13,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K21,
  &K16,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_4 K16 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KPprimitive_nameVenvironment_protocolsHLenvironment_objectG,
  &Kapplication_object_proxyVenvironment_protocolsHLapplication_objectG,
  &Kthread_runtime_stateVenvironment_protocolsHLthread_objectG,
  &Kthread_suspendedQVenvironment_protocolsHLthread_objectG
};

_KLkeyword_methodGVKe KLthread_objectGZ32ZconstructorVenvironment_protocolsMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K45,
  &key_mep_2,
  &KLthread_objectGZ32ZconstructorVenvironment_protocolsMM0I,
  &K46
};

static _KLsimple_object_vectorGVKd_1 K19 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLapplication_objectGVenvironment_protocols
};

static _KLsimple_object_vectorGVKd_6 K20 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLenvironment_objectGVenvironment_protocols,
  &KLapplication_objectGVenvironment_protocols,
  &KLthread_objectGVenvironment_protocols,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLsimple_object_vectorGVKd_2 K21 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &Kthread_runtime_stateVenvironment_protocolsHLthread_objectG,
  &Kthread_suspendedQVenvironment_protocolsHLthread_objectG
};

_KLinstance_slot_descriptorGVKe Kthread_runtime_stateVenvironment_protocolsHLthread_objectG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 157,
  &KJrunning_,
  &KLthread_objectGVenvironment_protocols,
  &KPfalseVKi,
  &Kthread_runtime_stateVenvironment_protocols,
  &Kthread_runtime_state_setterVenvironment_protocols,
  &KLsymbolGVKd
};

_KLinstance_slot_descriptorGVKe Kthread_suspendedQVenvironment_protocolsHLthread_objectG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 157,
  &KPfalseVKi,
  &KLthread_objectGVenvironment_protocols,
  &KPfalseVKi,
  &Kthread_suspendedQVenvironment_protocols,
  &Kthread_suspendedQ_setterVenvironment_protocols,
  &KLbooleanGVKd
};

_KLsealed_generic_functionGVKe Kthread_suspendedQVenvironment_protocols = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K31,
  &K30,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kthread_suspendedQ_setterVenvironment_protocols = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K28,
  &K27,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Kthread_suspendedQ_setterVenvironment_protocolsMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Kthread_suspendedQVenvironment_protocolsHLthread_objectG
};

static _KLpairGVKd K27 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_suspendedQ_setterVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K28 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "thread-suspended?-setter"
};

_KLgetter_methodGVKi Kthread_suspendedQVenvironment_protocolsMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kthread_suspendedQVenvironment_protocolsHLthread_objectG
};

static _KLpairGVKd K30 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_suspendedQVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_17 K31 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 69,
  "thread-suspended?"
};

static _KLsymbolGVKd KJrunning_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K41
};

_KLsealed_generic_functionGVKe Kthread_runtime_stateVenvironment_protocols = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K40,
  &K39,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kthread_runtime_state_setterVenvironment_protocols = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K37,
  &K36,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Kthread_runtime_state_setterVenvironment_protocolsMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Kthread_runtime_stateVenvironment_protocolsHLthread_objectG
};

static _KLpairGVKd K36 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_runtime_state_setterVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_27 K37 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "thread-runtime-state-setter"
};

_KLgetter_methodGVKi Kthread_runtime_stateVenvironment_protocolsMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kthread_runtime_stateVenvironment_protocolsHLthread_objectG
};

static _KLpairGVKd K39 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_runtime_stateVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_20 K40 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 81,
  "thread-runtime-state"
};

static _KLbyte_stringGVKd_7 K41 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 29,
  "running"
};

static _KLunionGVKe K42 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K44,
  &KLstringGVKd
};

static _KLpairGVKd K43 = {
  &KLpairGVKdW /* wrapper */,
  &KinitializeVKdMM1,
  &KPempty_listVKi
};

static _KLsingletonGVKd K44 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K45 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K49,
  &KDsignature_LobjectG_typesVKi,
  &K50
};

static _KLsimple_object_vectorGVKd_4 K46 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJname_,
  &KPfalseVKi,
  &KJapplication_object_proxy_,
  &KPfalseVKi
};

static _KLsymbolGVKd KJapplication_object_proxy_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K48
};

static _KLbyte_stringGVKd_24 K48 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "application-object-proxy"
};

static _KLsimple_object_vectorGVKd_2 K49 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJname_,
  &KJapplication_object_proxy_
};

static _KLsimple_object_vectorGVKd_1 K50 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLthread_objectGVenvironment_protocols
};

static _KLbyte_stringGVKd_15 K51 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "<thread-object>"
};

static _KLbyte_stringGVKd_18 K52 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 73,
  "Application thread"
};

static _KLsignatureAvaluesGVKi K53 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K50,
  &KDsignature_LstringG_typesVKi
};

static _KLsignatureAvaluesGVKi K54 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K12,
  &KDsignature_LstringG_typesVKi
};

_KLincremental_generic_functionGVKe Kcurrent_stop_breakpointsVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K59,
  (D) 1,
  &K60,
  &K58,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kcurrent_stop_breakpointsVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K61,
  &Kcurrent_stop_breakpointsVenvironment_protocolsMM0I
};

static _KLpairGVKd K58 = {
  &KLpairGVKdW /* wrapper */,
  &Kcurrent_stop_breakpointsVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K59 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K12,
  &KDsignature_LsequenceG_typesVKi
};

static _KLbyte_stringGVKd_24 K60 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "current-stop-breakpoints"
};

static _KLsignatureAvaluesGVKi K61 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K14,
  &KDsignature_LsequenceG_typesVKi
};

_KLincremental_generic_functionGVKe Kapplication_just_steppedQVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K66,
  (D) 1,
  &K67,
  &K65,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kapplication_just_steppedQVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K68,
  &Kapplication_just_steppedQVenvironment_protocolsMM0I
};

static _KLpairGVKd K65 = {
  &KLpairGVKdW /* wrapper */,
  &Kapplication_just_steppedQVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K66 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K12,
  &KDsignature_LbooleanG_typesVKi
};

static _KLbyte_stringGVKd_25 K67 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 101,
  "application-just-stepped?"
};

static _KLsignatureAvaluesGVKi K68 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K14,
  &KDsignature_LbooleanG_typesVKi
};

_KLincremental_generic_functionGVKe Kapplication_just_interactedQVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K66,
  (D) 1,
  &K73,
  &K72,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kapplication_just_interactedQVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K68,
  &Kapplication_just_interactedQVenvironment_protocolsMM0I
};

static _KLpairGVKd K72 = {
  &KLpairGVKdW /* wrapper */,
  &Kapplication_just_interactedQVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_28 K73 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 113,
  "application-just-interacted?"
};

_KLincremental_generic_functionGVKe Kapplication_just_hit_breakpointQVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K66,
  (D) 1,
  &K78,
  &K77,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kapplication_just_hit_breakpointQVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K68,
  &Kapplication_just_hit_breakpointQVenvironment_protocolsMM0I
};

static _KLpairGVKd K77 = {
  &KLpairGVKdW /* wrapper */,
  &Kapplication_just_hit_breakpointQVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_32 K78 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 129,
  "application-just-hit-breakpoint?"
};

_KLincremental_generic_functionGVKe Kapplication_just_hit_errorQVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K66,
  (D) 1,
  &K83,
  &K82,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kapplication_just_hit_errorQVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K68,
  &Kapplication_just_hit_errorQVenvironment_protocolsMM0I
};

static _KLpairGVKd K82 = {
  &KLpairGVKdW /* wrapper */,
  &Kapplication_just_hit_errorQVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_27 K83 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "application-just-hit-error?"
};

_KLincremental_generic_functionGVKe Kapplication_just_hit_dylan_errorQVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K66,
  (D) 1,
  &K88,
  &K87,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kapplication_just_hit_dylan_errorQVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K68,
  &Kapplication_just_hit_dylan_errorQVenvironment_protocolsMM0I
};

static _KLpairGVKd K87 = {
  &KLpairGVKdW /* wrapper */,
  &Kapplication_just_hit_dylan_errorQVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_33 K88 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 133,
  "application-just-hit-dylan-error?"
};

_KLincremental_generic_functionGVKe Kstep_application_intoVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K93,
  (D) 1,
  &K94,
  &K92,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kstep_application_intoVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K95,
  &Kstep_application_intoVenvironment_protocolsMM0I
};

static _KLpairGVKd K92 = {
  &KLpairGVKdW /* wrapper */,
  &Kstep_application_intoVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureGVKe K93 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K12
};

static _KLbyte_stringGVKd_21 K94 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 85,
  "step-application-into"
};

static _KLsignatureGVKe K95 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K14
};

_KLincremental_generic_functionGVKe Kstep_application_overVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_optional_xep_2,
  &K100,
  (D) 1,
  &K101,
  &K99,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLkeyword_methodGVKe Kstep_application_overVenvironment_protocolsMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K105,
  &key_mep_4,
  &Kstep_application_overVenvironment_protocolsMM0I,
  &K106
};

static _KLpairGVKd K99 = {
  &KLpairGVKdW /* wrapper */,
  &Kstep_application_overVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLkeyword_signatureGVKe K100 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (D) 42205193,
  &K12,
  &K102,
  &KDsignature_LobjectG_typesVKi
};

static _KLbyte_stringGVKd_21 K101 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 85,
  "step-application-over"
};

static _KLsimple_object_vectorGVKd_1 K102 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KJstack_frame_
};

static _KLsymbolGVKd KJstack_frame_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K104
};

static _KLbyte_stringGVKd_11 K104 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "stack-frame"
};

static _KLkeyword_signatureGVKe K105 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (D) 42205193,
  &K14,
  &K102,
  &KDsignature_LobjectG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K106 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJstack_frame_,
  &KPfalseVKi
};

_KLincremental_generic_functionGVKe Kstep_application_outVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_optional_xep_2,
  &K100,
  (D) 1,
  &K111,
  &K110,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLkeyword_methodGVKe Kstep_application_outVenvironment_protocolsMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K105,
  &key_mep_4,
  &Kstep_application_outVenvironment_protocolsMM0I,
  &K106
};

static _KLpairGVKd K110 = {
  &KLpairGVKdW /* wrapper */,
  &Kstep_application_outVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_20 K111 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 81,
  "step-application-out"
};

_KLincremental_generic_functionGVKe Kapplication_default_interactor_threadVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K116,
  (D) 1,
  &K117,
  &K115,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kapplication_default_interactor_threadVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K121,
  &Kapplication_default_interactor_threadVenvironment_protocolsMM0I
};

static _KLpairGVKd K115 = {
  &KLpairGVKdW /* wrapper */,
  &Kapplication_default_interactor_threadVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K116 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K118,
  &K119
};

static _KLbyte_stringGVKd_37 K117 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 149,
  "application-default-interactor-thread"
};

static _KLsimple_object_vectorGVKd_1 K118 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLserverGVenvironment_protocols
};

static _KLsimple_object_vectorGVKd_1 K119 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &K120
};

static _KLunionGVKe K120 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K44,
  &KLthread_objectGVenvironment_protocols
};

static _KLsignatureAvaluesGVKi K121 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K122,
  &K119
};

static _KLsimple_object_vectorGVKd_1 K122 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLproject_objectGVenvironment_protocols
};

_KLincremental_generic_functionGVKe Kadd_application_object_to_thread_historyVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_3,
  &K127,
  (D) 1,
  &K128,
  &K126,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kadd_application_object_to_thread_historyVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K131,
  &Kadd_application_object_to_thread_historyVenvironment_protocolsMM0I
};

static _KLpairGVKd K126 = {
  &KLpairGVKdW /* wrapper */,
  &Kadd_application_object_to_thread_historyVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K127 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K129,
  &K130
};

static _KLbyte_stringGVKd_40 K128 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 161,
  "add-application-object-to-thread-history"
};

static _KLsimple_object_vectorGVKd_3 K129 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLserverGVenvironment_protocols,
  &KLthread_objectGVenvironment_protocols,
  &KLapplication_objectGVenvironment_protocols
};

static _KLsimple_object_vectorGVKd_1 K130 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &K42
};

static _KLsignatureAvaluesGVKi K131 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K132,
  &K130
};

static _KLsimple_object_vectorGVKd_3 K132 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLproject_objectGVenvironment_protocols,
  &KLthread_objectGVenvironment_protocols,
  &KLapplication_objectGVenvironment_protocols
};

_KLincremental_generic_functionGVKe Kthread_current_interactor_levelVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K10,
  (D) 1,
  &K137,
  &K136,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kthread_current_interactor_levelVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K13,
  &Kthread_current_interactor_levelVenvironment_protocolsMM0I
};

static _KLpairGVKd K136 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_current_interactor_levelVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_31 K137 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 125,
  "thread-current-interactor-level"
};

_KLincremental_generic_functionGVKe Kresume_application_threadVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K93,
  &KPfalseVKi,
  &K142,
  &K141,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kresume_application_threadVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K95,
  &Kresume_application_threadVenvironment_protocolsMM0I
};

static _KLpairGVKd K141 = {
  &KLpairGVKdW /* wrapper */,
  &Kresume_application_threadVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_25 K142 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 101,
  "resume-application-thread"
};

_KLincremental_generic_functionGVKe Ksuspend_application_threadVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K93,
  &KPfalseVKi,
  &K147,
  &K146,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Ksuspend_application_threadVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K95,
  &Ksuspend_application_threadVenvironment_protocolsMM0I
};

static _KLpairGVKd K146 = {
  &KLpairGVKdW /* wrapper */,
  &Ksuspend_application_threadVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_26 K147 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 105,
  "suspend-application-thread"
};

_KLincremental_generic_functionGVKe Kcreate_application_threadVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K152,
  (D) 1,
  &K153,
  &K151,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kcreate_application_threadVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K156,
  &Kcreate_application_threadVenvironment_protocolsMM0I
};

static _KLpairGVKd K151 = {
  &KLpairGVKdW /* wrapper */,
  &Kcreate_application_threadVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K152 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K154,
  &K50
};

static _KLbyte_stringGVKd_25 K153 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 101,
  "create-application-thread"
};

static _KLsimple_object_vectorGVKd_2 K154 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLserverGVenvironment_protocols,
  &KLstringGVKd
};

static _KLbyte_stringGVKd_51 K155 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 205,
  "Attempting to create thread from closed application"
};

static _KLsignatureAvaluesGVKi K156 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K157,
  &K50
};

static _KLsimple_object_vectorGVKd_2 K157 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLproject_objectGVenvironment_protocols,
  &KLstringGVKd
};

_KLincremental_generic_functionGVKe Kthread_stateVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K162,
  (D) 1,
  &K163,
  &K161,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kthread_stateVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K167,
  &Kthread_stateVenvironment_protocolsMM0I
};

static _KLpairGVKd K161 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_stateVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K162 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K12,
  &K164
};

static _KLbyte_stringGVKd_12 K163 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 49,
  "thread-state"
};

static _KLsimple_object_vectorGVKd_1 K164 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLsymbolGVKd
};

static _KLsymbolGVKd KJobsolete_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K166
};

static _KLbyte_stringGVKd_8 K166 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 33,
  "obsolete"
};

static _KLsignatureAvaluesGVKi K167 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K14,
  &K164
};

_KLincremental_generic_functionGVKe Kthread_complete_stack_traceVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K59,
  (D) 1,
  &K172,
  &K171,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kthread_complete_stack_traceVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K61,
  &Kthread_complete_stack_traceVenvironment_protocolsMM0I
};

static _KLpairGVKd K171 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_complete_stack_traceVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_27 K172 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "thread-complete-stack-trace"
};

_KLincremental_generic_functionGVKe Kthread_stack_traceVenvironment_protocols = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K177,
  &KPfalseVKi,
  &K178,
  &K176,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kenvironment_protocols_moduleYdylan_userVenvironment_protocols,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kthread_stack_traceVenvironment_protocolsMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K180,
  &Kthread_stack_traceVenvironment_protocolsMM0I
};

static _KLpairGVKd K176 = {
  &KLpairGVKdW /* wrapper */,
  &Kthread_stack_traceVenvironment_protocolsMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K177 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K12,
  &K179
};

static _KLbyte_stringGVKd_18 K178 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 73,
  "thread-stack-trace"
};

static _KLsimple_object_vectorGVKd_1 K179 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLstack_frame_objectGVenvironment_protocols
};

static _KLsignatureAvaluesGVKi K180 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K14,
  &K179
};

/* Code */

D Kenvironment_object_primitive_nameVenvironment_protocolsMM3I (D server_, D object_) {
  D T3_0;
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:123
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:126
  CONGRUENT_CALL_PROLOG(&Kget_environment_object_primitive_nameVenvironment_protocols, 2);
  T3_0 = CONGRUENT_CALL2(server_, object_);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:123
  T4_0 = T3_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T3_0);
    primitive_type_check(T4_0, &KLstringGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:123
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kenvironment_object_type_nameVenvironment_protocolsMM21I (D object_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:129
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:131
  T2_0 = &K52;
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:129
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kthread_indexVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:192
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:195
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPtrueVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:196
  T3_0 = CALL2(&Kthread_indexVenvironment_protocols, server_, thread_);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:192
  MV_SET_COUNT(1);
  return(T3_0);
}

D KLthread_objectGZ32ZconstructorVenvironment_protocolsMM0I (D class_, D init_args_, D Uunique_Pprimitive_name_, D Uunique_application_object_proxy_) {
  D T5;
  D Uunique_Pprimitive_nameF6;
  D T7_0;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:11
  T5 = primitive_object_allocate_filled(5,&KLthread_objectGVenvironment_protocolsW,4,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_Pprimitive_name_, &K42);
  Uunique_Pprimitive_nameF6 = Uunique_Pprimitive_name_;
  SLOT_VALUE_SETTER(Uunique_Pprimitive_nameF6, T5, 0);
  SLOT_VALUE_SETTER(Uunique_application_object_proxy_, T5, 1);
  SLOT_VALUE_SETTER(IKJrunning_, T5, 2);
  SLOT_VALUE_SETTER(&KPfalseVKi, T5, 3);
  MEP_APPLY2(&KinitializeVKdMenvironment_protocolsM0, &K43, T5, init_args_);
  T7_0 = T5;
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:11
  MV_SET_COUNT(1);
  return(T7_0);
}

D Kcurrent_stop_breakpointsVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:103
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:106
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:107
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:108
    CONGRUENT_CALL_PROLOG(&Kcurrent_stop_breakpointsVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:113
    T4_0 = &KPempty_listVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:107
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:103
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kapplication_just_steppedQVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:294
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:297
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:298
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:298
    CONGRUENT_CALL_PROLOG(&Kapplication_just_steppedQVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:298
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:298
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:294
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kapplication_just_interactedQVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:287
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:290
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:291
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:291
    CONGRUENT_CALL_PROLOG(&Kapplication_just_interactedQVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:291
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:291
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:287
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kapplication_just_hit_breakpointQVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:280
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:283
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:284
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:284
    CONGRUENT_CALL_PROLOG(&Kapplication_just_hit_breakpointQVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:284
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:284
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:280
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kapplication_just_hit_errorQVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:273
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:276
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:277
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:277
    CONGRUENT_CALL_PROLOG(&Kapplication_just_hit_errorQVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:277
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:277
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:273
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kapplication_just_hit_dylan_errorQVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:266
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:269
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:270
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:270
    CONGRUENT_CALL_PROLOG(&Kapplication_just_hit_dylan_errorQVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:270
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:270
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:266
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kstep_application_intoVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:257
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:260
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:261
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:262
    CONGRUENT_CALL_PROLOG(&Kstep_application_intoVenvironment_protocols, 2);
    T3 = CONGRUENT_CALL2(T6, thread_);
    T5 = T3;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:261
    T4 = &KPfalseVKi;
    T5 = T4;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:261
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:257
  MV_SET_COUNT(0);
  return(T5);
}

D Kstep_application_overVenvironment_protocolsMM0I (D project_, D thread_, D Urest_, D stack_frame_) {
  D T5;
  D T6;
  D T7;
  D T8;
  D server_;
  _KLsimple_object_vectorGVKd_2 T10 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:247
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:251
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:252
  if (server_ != &KPfalseVKi) {
    T8 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:253
    T10.vector_element_[0] = IKJstack_frame_;
    T10.vector_element_[1] = stack_frame_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:253
    CONGRUENT_CALL_PROLOG(&Kstep_application_overVenvironment_protocols, 3);
    T5 = CONGRUENT_CALL3(T8, thread_, &T10);
    T7 = T5;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:252
    T6 = &KPfalseVKi;
    T7 = T6;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:252
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:247
  MV_SET_COUNT(0);
  return(T7);
}

D Kstep_application_outVenvironment_protocolsMM0I (D project_, D thread_, D Urest_, D stack_frame_) {
  D T5;
  D T6;
  D T7;
  D T8;
  D server_;
  _KLsimple_object_vectorGVKd_2 T10 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:237
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:241
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:242
  if (server_ != &KPfalseVKi) {
    T8 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:243
    T10.vector_element_[0] = IKJstack_frame_;
    T10.vector_element_[1] = stack_frame_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:243
    CONGRUENT_CALL_PROLOG(&Kstep_application_outVenvironment_protocols, 3);
    T5 = CONGRUENT_CALL3(T8, thread_, &T10);
    T7 = T5;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:242
    T6 = &KPfalseVKi;
    T7 = T6;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:242
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:237
  MV_SET_COUNT(0);
  return(T7);
}

D Kapplication_default_interactor_threadVenvironment_protocolsMM0I (D project_) {
  D T2_0;
  D T3_0;
  D T4_0;
  D T5;
  D T6;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:322
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:324
  T6 = SLOT_VALUE_INITD(project_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:325
  if (T6 != &KPfalseVKi) {
    T5 = T6;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:325
    CONGRUENT_CALL_PROLOG(&Kapplication_default_interactor_threadVenvironment_protocols, 1);
    T2_0 = CONGRUENT_CALL1(T5);
    T4_0 = T2_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:325
    T3_0 = &KPfalseVKi;
    T4_0 = T3_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:325
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:322
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kadd_application_object_to_thread_historyVenvironment_protocolsMM0I (D project_, D thread_, D application_object_) {
  D T4_0;
  D T5_0;
  D T6_0;
  D T7;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:312
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:316
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:317
  if (server_ != &KPfalseVKi) {
    T7 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:318
    CONGRUENT_CALL_PROLOG(&Kadd_application_object_to_thread_historyVenvironment_protocols, 3);
    T4_0 = CONGRUENT_CALL3(T7, thread_, application_object_);
    T6_0 = T4_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:317
    T5_0 = &KPfalseVKi;
    T6_0 = T5_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:317
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:312
  MV_SET_COUNT(1);
  return(T6_0);
}

D Kthread_current_interactor_levelVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:301
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:304
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:305
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:306
    CONGRUENT_CALL_PROLOG(&Kthread_current_interactor_levelVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:308
    T4_0 = (D) 1;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:305
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:301
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kresume_application_threadVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:229
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:232
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPtrueVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:233
  T3 = CALL2(&Kresume_application_threadVenvironment_protocols, server_, thread_);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:229
  MV_SET_COUNT(0);
  return(T3);
}

D Ksuspend_application_threadVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:222
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:225
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPtrueVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:226
  T3 = CALL2(&Ksuspend_application_threadVenvironment_protocols, server_, thread_);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:222
  MV_SET_COUNT(0);
  return(T3);
}

D Kcreate_application_threadVenvironment_protocolsMM0I (D project_, D title_) {
  D T3_0;
  D T4;
  D T5_0;
  D T6;
  D T7;
  _KLsimple_object_vectorGVKd_2 T8 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T9_0;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:210
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:213
  T7 = SLOT_VALUE_INITD(project_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:214
  if (T7 != &KPfalseVKi) {
    T6 = T7;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:215
    CONGRUENT_CALL_PROLOG(&Kcreate_application_threadVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, title_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:217
    T8.vector_element_[0] = &KJformat_string_;
    T8.vector_element_[1] = &K155;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:217
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T4 = CONGRUENT_CALL2(&KLclosed_server_errorGVenvironment_protocols, &T8);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:217
    T9_0 = KerrorVKdMM0I(T4, &KPempty_vectorVKi);
    T5_0 = T9_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:214
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:210
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kthread_stateVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:199
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:202
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:203
  if (server_ != &KPfalseVKi) {
    T6 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:204
    CONGRUENT_CALL_PROLOG(&Kthread_stateVenvironment_protocols, 2);
    T3_0 = CONGRUENT_CALL2(T6, thread_);
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:206
    T4_0 = IKJobsolete_;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:203
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:199
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kthread_complete_stack_traceVenvironment_protocolsMM0I (D project_, D thread_) {
  D stack_;
  D count_;
  D last_;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  DWORD i_T, i_;
  D T18;
  D T19;
  D T20;
  D T21;
  D T22;
  D T23_0;
  D T24_0;
  D T25_0;
  D T26;
  D server_;
  DWORD T28;
  D T29;
  D T30;
  DWORD T31;
  D T32;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:141
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:144
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPfalseVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:145
  if (server_ != &KPfalseVKi) {
    T26 = server_;
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:149
    CONGRUENT_CALL_PROLOG(&Kthread_complete_stack_traceVenvironment_protocols, 2);
    stack_ = CONGRUENT_CALL2(T26, thread_);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:158
    CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
    count_ = CONGRUENT_CALL1(stack_);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:159
    CONGRUENT_CALL_PROLOG(&K_VKd, 2);
    last_ = CONGRUENT_CALL2(count_, (D) 5);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:160
    CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
    T6 = CONGRUENT_CALL3(stack_, (D) 1, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:160
    CALL2(&Kstack_frame_topQ_setterVenvironment_protocols, &KPtrueVKi, T6);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:161
    CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
    T7 = CONGRUENT_CALL3(stack_, last_, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:161
    CALL2(&Kstack_frame_bottomQ_setterVenvironment_protocols, &KPtrueVKi, T7);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:170
    CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
    T8 = CONGRUENT_CALL3(stack_, (D) 1, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:170
    T9 = CALL1(&Kstack_frame_bottomQVenvironment_protocols, T8);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:170
    if (T9 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:171
      CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
      T10 = CONGRUENT_CALL3(stack_, (D) 5, &KPempty_vectorVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:171
      CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
      T11 = CONGRUENT_CALL3(stack_, (D) 1, &KPempty_vectorVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:171
      CALL2(&Kprevious_frame_cache_slot_setterVenvironment_protocols, T10, T11);
    }
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:170
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:173
    CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
    T12 = CONGRUENT_CALL3(stack_, last_, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:173
    T13 = CALL1(&Kstack_frame_topQVenvironment_protocols, T12);
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:173
    if (T13 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:174
      CONGRUENT_CALL_PROLOG(&K_VKd, 2);
      T14 = CONGRUENT_CALL2(last_, (D) 5);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:174
      CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
      T15 = CONGRUENT_CALL3(stack_, T14, &KPempty_vectorVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:174
      CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
      T16 = CONGRUENT_CALL3(stack_, last_, &KPempty_vectorVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:174
      CALL2(&Knext_frame_cache_slot_setterVenvironment_protocols, T15, T16);
    }
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:173
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
    i_T = 5;
  L0: ;
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
      i_ = i_T;
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:181
      T30 = primitive_cast_raw_as_integer(i_);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
      CONGRUENT_CALL_PROLOG(&KLVKd, 2);
      T18 = CONGRUENT_CALL2(T30, last_);
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
      if (T18 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:181
        T28 = primitive_machine_word_add_signal_overflow(i_,4);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:181
        T29 = primitive_cast_raw_as_integer(T28);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:181
        CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
        T19 = CONGRUENT_CALL3(stack_, T29, &KPempty_vectorVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:181
        CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
        T20 = CONGRUENT_CALL3(stack_, T30, &KPempty_vectorVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:181
        CALL2(&Kprevious_frame_cache_slot_setterVenvironment_protocols, T19, T20);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:182
        T31 = primitive_machine_word_subtract_signal_overflow(i_,4);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:182
        T32 = primitive_cast_raw_as_integer(T31);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:182
        CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
        T21 = CONGRUENT_CALL3(stack_, T32, &KPempty_vectorVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:182
        CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
        T22 = CONGRUENT_CALL3(stack_, T30, &KPempty_vectorVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:182
        CALL2(&Knext_frame_cache_slot_setterVenvironment_protocols, T21, T22);
        // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
        i_T = T28;
        goto L0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
      // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:180
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:186
    T23_0 = stack_;
    T25_0 = T23_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:188
    T24_0 = &KPempty_listVKi;
    T25_0 = T24_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:145
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:141
  MV_SET_COUNT(1);
  return(T25_0);
}

D Kthread_stack_traceVenvironment_protocolsMM0I (D project_, D thread_) {
  D T3_0;
  D server_;

  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:134
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:137
  server_ = Kchoose_serverVenvironment_protocolsMM0I(project_, thread_, &KPempty_vectorVKi, &KPtrueVKi, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:138
  T3_0 = CALL2(&Kthread_stack_traceVenvironment_protocols, server_, thread_);
  // /Users/bruce/Development/dylan/opendylan/sources/environment/protocols/thread-objects.dylan:134
  MV_SET_COUNT(1);
  return(T3_0);
}


/* SYSTEM INIT CODE */

void _Init_environment_protocols__X_thread_objects_for_system () {
  extern D KPresolve_symbolVKiI(D);
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJrunning_);
    if (T0 != &KJrunning_) {
      IKJrunning_ = T0;
      primitive_slot_value_setter(T0, &Kthread_runtime_stateVenvironment_protocolsHLthread_objectG, 1);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJapplication_object_proxy_);
    if (T0 != &KJapplication_object_proxy_) {
      primitive_repeated_slot_value_setter(T0, &K49, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K46, 1, 2);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJstack_frame_);
    if (T0 != &KJstack_frame_) {
      IKJstack_frame_ = T0;
      primitive_repeated_slot_value_setter(T0, &K106, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K102, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJobsolete_);
    if (T0 != &KJobsolete_) {
      IKJobsolete_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_environment_protocols__X_thread_objects_for_user () {
  return;
}


/* eof */
