/* generated by Id 1.0 at 2007-08-31 06:59:07 Z */
/* with the command: -I../stage1/ -c SequenceableCollection.st -o ../stage2/SequenceableCollection.o.c */

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <setjmp.h>
#include <string.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <assert.h>
#define GC_DLL 1
#include <gc/gc.h>
#if defined(WIN32)
# include <malloc.h>
# include <windows.h>
  typedef HINSTANCE dlhandle_t;
# define dlopen(path, mode)	LoadLibrary(path)
# define dlsym(handle, name)	((void *)GetProcAddress(handle, name))
# define dlclose(handle)	FreeLibrary(handle)
# include <winbase.h>
  inline int gettimeofday(struct timeval *tp, void *tzp)
  {
     union {
       long long ns100;
       FILETIME ft;
     } _now;
     GetSystemTimeAsFileTime(&_now.ft);
     tp->tv_usec= (long)((_now.ns100 / 10LL) % 1000000LL);
     tp->tv_sec= (long)((_now.ns100 - (116444736000000000LL)) / 10000000LL);
     return 0;
   }
#else
# include <dlfcn.h>
  typedef void *dlhandle_t;
#endif
#ifndef O_BINARY
# define O_BINARY 0
#endif

typedef struct t__object *oop;

typedef oop (*_imp_t)(oop _thunk, oop receiver, ...);

struct __closure
{
  _imp_t method;
  oop	 data;
};

static void              *(*_local_param   )(int index)= 0;
static oop  		  (*_local_intern  )(const char *string)= 0;
static oop  		  (*_local_proto   )(oop base)= 0;
static oop  		  (*_local_import  )(const char *name)= 0;
static oop  		  (*_local_export  )(const char *name, oop value)= 0;
static void 		  (*_local_method  )(oop type, oop selector, _imp_t method)= 0;
static oop  		  (*_local_alloc   )(oop type, size_t size)= 0;
static oop  		 *(*_local_palloc  )(size_t size)= 0;
static void  		 *(*_local_balloc  )(size_t size)= 0;
static struct __closure  *(*_local_bind    )(oop selector, oop receiver)= 0;
static oop                (*_local_nlreturn)(oop nlr, oop result)= 0;
static oop                (*_local_nlresult)(void)= 0;
static oop  		    _local_object= 0;
static oop  		   *_local_tag_vtable= 0;
static oop  		   *_local_nil_vtable= 0;
static void               (*_local_gc_addRoots)(char *lo, char *hi)= 0;
static void	          (*_local_gc_unregisterDisappearingLink)(void *ptr)= 0;
static void		  (*_local_gc_generalRegisterDisappearingLink)(void *link, void *ptr)= 0;
static void		  (*_local_gc_gcollect)(void)= 0;
static void		 *(*_local_enter)(char *name, char *type, char *file)= 0;
static void		  (*_local_line)(int line)= 0;
static void		  (*_local_leave)(void *)= 0;
static char		 *(*_local_backtrace)(void)= 0;

#define _param(INDEX)		_local_param(INDEX)
#define _selector(NAME)		_local_intern(NAME)
#define _proto(BASE)		_local_proto(BASE)
#define _id_import(NAME)	_local_import(NAME)
#define _id_export(NAME, VAL)	_local_export((NAME), (VAL))
#define _method(TYPE, SEL, IMP)	_local_method((TYPE), (SEL), (_imp_t)(IMP))
#define _alloc(RCV, LBS)	_local_alloc((RCV), (LBS))
#define _palloc(LBS)		_local_palloc((LBS))
#define _balloc(LBS)		_local_balloc((LBS))
#define _nlreturn(NLR, ARG)	_local_nlreturn((NLR), (ARG))
#define _nlresult()		_local_nlresult()
#define _backtrace()		_local_backtrace()
#ifdef ID_DEBUG
# define _enter(NM, TYPE, FILE)	void *__id_debug= _local_enter(NM, TYPE, FILE)
# define _line(line)		_local_line(line)
# define _leave()		_local_leave(__id_debug)
#else
# define _enter(NM, TYPE, FILE)
# define _line(line)
# define _leave()
#endif
#define _return			_leave(); return

#define _send(MSG, RCV, ARG...) ({					\
  register oop _r= (RCV);						\
  struct __closure *_c= (struct __closure *)_local_bind((MSG), _r);	\
  (_c->method)((oop)_c, _r, _r, ##ARG);					\
})

#define _super(TYP, MSG, RCV, ARG...) ({				\
  register oop _r= (RCV);						\
  struct __closure *_c= (struct __closure *)_local_bind((MSG), (TYP));	\
  (_c->method)((oop)_c, _r, _r, ##ARG);					\
})

static oop s_withAll_= 0;
static oop s_asWordArray= 0;
static oop s_with_do_= 0;
static oop s_bitXor_= 0;
static oop s_yourself= 0;
static oop s_last= 0;
static oop s_size= 0;
static oop s_second= 0;
static oop s_atAllPut_= 0;
static oop s__2a= 0;
static oop s_bitAnd_= 0;
static oop s_copyFrom_= 0;
static oop s_whileTrue_= 0;
static oop s_atAll_put_= 0;
static oop s_new_5f_= 0;
static oop s__3c_3d= 0;
static oop s_hash= 0;
static oop s_new_= 0;
static oop s_value_5f_= 0;
static oop s_species= 0;
static oop s__5fimport_= 0;
static oop s_swap_with_= 0;
static oop s_ifFalse_= 0;
static oop s_do_= 0;
static oop s_fourth= 0;
static oop s_fifth= 0;
static oop s__2d= 0;
static oop s_ifTrue_= 0;
static oop s__2b= 0;
static oop s_to_do_= 0;
static oop s_third= 0;
static oop s__2c= 0;
static oop s_first= 0;
static oop s__3d_3d= 0;
static oop s_add_= 0;
static oop s__3d= 0;
static oop s_isEmpty= 0;
static oop s_isSequenceableCollection= 0;
static oop s_ifTrue_ifFalse_= 0;
static oop s_identityHash= 0;
static oop s_inject_into_= 0;
static oop s_function_5f_arity_5f_= 0;
static oop s_and_= 0;
static oop s__3e= 0;
static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0;
static oop s_lastIndexOf_= 0;
static oop s_lastIndexOf_startingAt_= 0;
static oop s_from_to_put_= 0;
static oop s_value_value_= 0;
static oop s_replaceFrom_to_with_= 0;
static oop s_replaceFrom_to_with_startingAt_= 0;
static oop s_value_= 0;
static oop s_copyFrom_to_= 0;
static oop s_at_= 0;
static oop s_collect_startingAt_= 0;
static oop s_injectFirstInto_= 0;
static oop s_beginsWith_= 0;
static oop s__3c= 0;
static oop s_doWithIndex_= 0;
static oop s_endsWith_= 0;
static oop s_withoutSuffix_= 0;
static oop s_at_put_= 0;
static oop s_asByteArray= 0;
static struct _Selector { const char *name; oop *addr; } _Selectors[]= {
  { "withAll:", &s_withAll_ },
  { "asWordArray", &s_asWordArray },
  { "with:do:", &s_with_do_ },
  { "bitXor:", &s_bitXor_ },
  { "yourself", &s_yourself },
  { "last", &s_last },
  { "size", &s_size },
  { "second", &s_second },
  { "atAllPut:", &s_atAllPut_ },
  { "*", &s__2a },
  { "bitAnd:", &s_bitAnd_ },
  { "copyFrom:", &s_copyFrom_ },
  { "whileTrue:", &s_whileTrue_ },
  { "atAll:put:", &s_atAll_put_ },
  { "new_:", &s_new_5f_ },
  { "<=", &s__3c_3d },
  { "hash", &s_hash },
  { "new:", &s_new_ },
  { "value_:", &s_value_5f_ },
  { "species", &s_species },
  { "_import:", &s__5fimport_ },
  { "swap:with:", &s_swap_with_ },
  { "ifFalse:", &s_ifFalse_ },
  { "do:", &s_do_ },
  { "fourth", &s_fourth },
  { "fifth", &s_fifth },
  { "-", &s__2d },
  { "ifTrue:", &s_ifTrue_ },
  { "+", &s__2b },
  { "to:do:", &s_to_do_ },
  { "third", &s_third },
  { ",", &s__2c },
  { "first", &s_first },
  { "==", &s__3d_3d },
  { "add:", &s_add_ },
  { "=", &s__3d },
  { "isEmpty", &s_isEmpty },
  { "isSequenceableCollection", &s_isSequenceableCollection },
  { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ },
  { "identityHash", &s_identityHash },
  { "inject:into:", &s_inject_into_ },
  { "function_:arity_:", &s_function_5f_arity_5f_ },
  { "and:", &s_and_ },
  { ">", &s__3e },
  { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ },
  { "lastIndexOf:", &s_lastIndexOf_ },
  { "lastIndexOf:startingAt:", &s_lastIndexOf_startingAt_ },
  { "from:to:put:", &s_from_to_put_ },
  { "value:value:", &s_value_value_ },
  { "replaceFrom:to:with:", &s_replaceFrom_to_with_ },
  { "replaceFrom:to:with:startingAt:", &s_replaceFrom_to_with_startingAt_ },
  { "value:", &s_value_ },
  { "copyFrom:to:", &s_copyFrom_to_ },
  { "at:", &s_at_ },
  { "collect:startingAt:", &s_collect_startingAt_ },
  { "injectFirstInto:", &s_injectFirstInto_ },
  { "beginsWith:", &s_beginsWith_ },
  { "<", &s__3c },
  { "doWithIndex:", &s_doWithIndex_ },
  { "endsWith:", &s_endsWith_ },
  { "withoutSuffix:", &s_withoutSuffix_ },
  { "at:put:", &s_at_put_ },
  { "asByteArray", &s_asByteArray },
  { 0, 0 }
};
struct t__object {
  struct _vtable *_vtable[0];
};
struct t__selector {
  struct _vtable *_vtable[0];
  oop v__size;
  oop v__elements;
};
struct t__assoc {
  struct _vtable *_vtable[0];
  oop v_key;
  oop v_value;
};
struct t__closure {
  struct _vtable *_vtable[0];
  oop v__method;
  oop v_data;
};
struct t__vector {
  struct _vtable *_vtable[0];
  oop v__size;
};
struct t__vtable {
  struct _vtable *_vtable[0];
  oop v__tally;
  oop v_bindings;
  oop v_delegate;
};
struct t_Object {
  struct _vtable *_vtable[0];
};
struct t_UndefinedObject {
  struct _vtable *_vtable[0];
};
struct t_StaticBlockClosure {
  struct _vtable *_vtable[0];
  oop v__function;
  oop v__arity;
};
struct t_BlockClosure {
  struct _vtable *_vtable[0];
  oop v__function;
  oop v__arity;
  oop v_outer;
  oop v_state;
  oop v__nlr;
};
struct t_Magnitude {
  struct _vtable *_vtable[0];
};
struct t_Character {
  struct _vtable *_vtable[0];
  oop v_value;
};
struct t_Number {
  struct _vtable *_vtable[0];
};
struct t_Fraction {
  struct _vtable *_vtable[0];
  oop v_numerator;
  oop v_denominator;
};
struct t_Float {
  struct _vtable *_vtable[0];
};
struct t_Integer {
  struct _vtable *_vtable[0];
};
struct t_SmallInteger {
  struct _vtable *_vtable[0];
};
struct t_LargePositiveInteger {
  struct _vtable *_vtable[0];
  oop v_bytes;
};
struct t_LargeNegativeInteger {
  struct _vtable *_vtable[0];
  oop v_bytes;
};
struct t_Collection {
  struct _vtable *_vtable[0];
};
struct t_SequenceableCollection {
  struct _vtable *_vtable[0];
};
struct t_ArrayedCollection {
  struct _vtable *_vtable[0];
  oop v_size;
};
struct t_Array {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_ImmutableArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_WordArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__words;
};
struct t_ImmutableWordArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__words;
};
struct t_ByteArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_ImmutableByteArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_String {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_ImmutableString {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_Symbol {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_nil {
  struct _vtable *_vtable[0];
};
struct t_true {
  struct _vtable *_vtable[0];
};
struct t_false {
  struct _vtable *_vtable[0];
};
struct t_CharacterTable {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
static oop l_1= 0;
static oop l_2= 0;
static oop l_4= 0;
static oop l_5= 0;
static oop l_3= 0;
static oop l_7= 0;
static oop l_10= 0;
static oop l_11= 0;
static oop l_12= 0;
static oop l_13= 0;
static oop l_14= 0;
static oop l_15= 0;
static oop l_16= 0;
static oop l_18= 0;
static oop l_19= 0;
static oop l_21= 0;
static oop l_23= 0;
static oop l_24= 0;
static oop l_26= 0;
static oop l_27= 0;
static oop l_28= 0;
static oop l_30= 0;
static oop l_33= 0;
static oop l_35= 0;
static oop v__object= 0;
static oop v__vector= 0;
static oop v_Object= 0;
static oop v_UndefinedObject= 0;
static oop v_StaticBlockClosure= 0;
static oop v_BlockClosure= 0;
static oop v_Magnitude= 0;
static oop v_Number= 0;
static oop v_Integer= 0;
static oop v_SmallInteger= 0;
static oop v_LargePositiveInteger= 0;
static oop v_Collection= 0;
static oop v_SequenceableCollection= 0;
static oop v_ArrayedCollection= 0;
static oop v_Array= 0;
static oop v_WordArray= 0;
static oop v_ByteArray= 0;
static oop v_String= 0;
static oop v_ImmutableString= 0;
static oop v_true= 0;
static oop v_false= 0;
static oop SequenceableCollection__isSequenceableCollection(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("isSequenceableCollection", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  _line(25);
  _1= v_true;
  _leave();
  return _1;
  _leave();
 }
static oop Object__isSequenceableCollection(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("isSequenceableCollection", "Object", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  _line(26);
  _1= v_false;
  _leave();
  return _1;
  _leave();
 }
static oop b_3(oop v__closure, oop v__self, oop v_prev, oop v_elt)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(35);
  _1= v_prev;
  _2= l_5;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  _2= v_elt;
  _line(35);
  _2=_send(s_hash, _2);
  if ((1 & (int)_1 & (int)_2) && (_1 > 0) && (_2 > 0)) {
    _1= (oop)(((int)_1 ^ (int)_2) | 1);
  } else _1= _send(s_bitXor_, _1, _2);
  _2= l_4;
  if ((1 & (int)_1) && (_1 > 0) && (_2 > 0)) {
    _1= (oop)((int)_1 & (int)_2);
  } else _1= _send(s_bitAnd_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__hash(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("hash", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(28);
  /* ifTrue:ifFalse: */
  _1= v_self;
  _line(33);
  _1=_send(s_size, _1);
  _2= l_1;
  if (1 & (int)_1) {
    _1= (((int)_1 > (int)_2) ? v_true : v_false);
  } else _1= _send(s__3e, _1, _2);
  if (!_1) goto _l1;
 {
  _1= v_self;
  _line(34);
  _1=_send(s_species, _1);
  _line(34);
  _1=_send(s_identityHash, _1);
 }
  goto _l2;
 _l1:;
 {
  _1= v_self;
  _2= v_self;
  _line(35);
  _2=_send(s_size, _2);
  _3= l_2;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  _3= v_self;
  _line(35);
  _3=_send(s_species, _3);
  _line(35);
  _3=_send(s_identityHash, _3);
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _3= l_3;
  _line(35);
  _1=_send(s_inject_into_, _1, _2, _3);
 }
 _l2:;
  _2= l_4;
  if ((1 & (int)_1) && (_1 > 0) && (_2 > 0)) {
    _1= (oop)((int)_1 & (int)_2);
  } else _1= _send(s_bitAnd_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop b_6(oop v__closure, oop v__self, oop v_a, oop v_b)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(43);
  /* ifFalse: */
  _1= 0;
  _2= v_a;
  _3= v_b;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (_2) goto _l3;
 {
  _1= v_false;
  _leave();
  return _nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1);
 }
 _l3:;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection___3d(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCollection)
 {
  _enter("=", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  jmp_buf __nlr;
  oop _nlr;
  _nlr= (oop)&__nlr;
  if (setjmp(__nlr)) { return _nlresult(); }
  _line(39);
  /* ifTrue: */
  _1= 0;
  _2= v_self;
  _3= v_aCollection;
  _2= (_2 == _3) ? v_true : v_false;
  if (!_2) goto _l4;
 {
  _1= v_true;
  _leave();
  return _1;
 }
 _l4:;
  /* ifFalse: */
  _1= 0;
  /* and: */
  _2= v_aCollection;
  _line(42);
  _2=_send(s_isSequenceableCollection, _2);
  if (!_2) goto _l6;
 {
  /* and: */
  _2= v_self;
  _line(42);
  _2=_send(s_species, _2);
  _3= v_aCollection;
  _line(42);
  _3=_send(s_species, _3);
  _2= (_2 == _3) ? v_true : v_false;
  if (!_2) goto _l7;
 {
  _2= v_self;
  _line(42);
  _2=_send(s_size, _2);
  _3= v_aCollection;
  _line(42);
  _3=_send(s_size, _3);
  _2= (_2 == _3) ? v_true : v_false;
 }
 _l7:;
 }
 _l6:;
  if (_2) goto _l5;
 {
  _1= v_false;
  _leave();
  return _1;
 }
 _l5:;
  _1= v_self;
  _2= v_aCollection;
  /* Scope('b'->ArgumentVariableNode 'a'->ArgumentVariableNode) */
  /* Scope('aCollection'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_6, 2, 0, 0, _nlr);
  _line(43);
  _1=_send(s_with_do_, _1, _2, _3);
  _1= v_true;
  _leave();
  return _1;
  _leave();
 }
static oop b_8(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(47);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_index;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* anObject */
  _line(47);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__atAllPut_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject)
 {
  _enter("atAllPut:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 4);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[3]= v_anObject;
  _line(47);
  _1= l_7;
  _2= ((oop *)_state1)[1];  /* self */
  _line(47);
  _2=_send(s_size, _2);
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('anObject'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_8, 1, 0, ((oop *)_state1), 0);
  _line(47);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[1];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop b_9(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(48);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_index;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* anObject */
  _line(48);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__atAll_put_(oop v__closure, oop v_stateful_self, oop v_self, oop v_indices, oop v_anObject)
 {
  _enter("atAll:put:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 4);
  oop _1= 0;
  oop _2= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[3]= v_anObject;
  _line(48);
  _1= v_indices;
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('indices'->ArgumentVariableNode 'self'->ArgumentVariableNode 'anObject'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_9, 1, 0, ((oop *)_state1), 0);
  _line(48);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__first(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("first", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(50);
  _1= v_self;
  _2= l_10;
  _line(50);
  _1=_send(s_at_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__second(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("second", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(51);
  _1= v_self;
  _2= l_11;
  _line(51);
  _1=_send(s_at_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__third(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("third", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(52);
  _1= v_self;
  _2= l_12;
  _line(52);
  _1=_send(s_at_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__fourth(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("fourth", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(53);
  _1= v_self;
  _2= l_13;
  _line(53);
  _1=_send(s_at_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__fifth(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("fifth", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(54);
  _1= v_self;
  _2= l_14;
  _line(54);
  _1=_send(s_at_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__last(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("last", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(55);
  _1= v_self;
  _2= v_self;
  _line(55);
  _2=_send(s_size, _2);
  _line(55);
  _1=_send(s_at_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__lastIndexOf_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject)
 {
  _enter("lastIndexOf:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(57);
  _1= v_self;
  _2= v_anObject;
  _3= l_15;
  _line(59);
  _1=_send(s_lastIndexOf_startingAt_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_17(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(66);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* anObject */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* self */
  _4= v_i;
  _line(66);
  _3=_send(s_at_, _3, _4);
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l8;
 {
  _1= v_i;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* index */
 }
 _l8:;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__lastIndexOf_startingAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject, oop v_firstIndex)
 {
  _enter("lastIndexOf:startingAt:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[3]= v_stateful_self;
  ((oop *)_state1)[2]= v_self;
  ((oop *)_state1)[1]= v_anObject;
  _line(62);
  _1= l_16;
  ((oop *)_state1)[4]= _1;  /* index */
  _1= v_firstIndex;
  _2= ((oop *)_state1)[2];  /* self */
  _line(66);
  _2=_send(s_size, _2);
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('firstIndex'->ArgumentVariableNode 'self'->ArgumentVariableNode 'index'->TemporaryVariableNode 'anObject'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_17, 1, 0, ((oop *)_state1), 0);
  _line(66);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[4];  /* index */
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__from_to_put_(oop v__closure, oop v_stateful_self, oop v_self, oop v_pos, oop v_last, oop v_anObject)
 {
  _enter("from:to:put:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(70);
  /* whileTrue: */
  goto _l10;
 _l9:;
 {
  _1= v_self;
  _2= v_pos;
  _3= v_anObject;
  _line(74);
  _1=_send(s_at_put_, _1, _2, _3);
  _1= v_pos;
  _2= l_18;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_pos= _1;
 }
 _l10:;
 {
  _1= v_pos;
  _2= v_last;
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 <= (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c_3d, _1, _2);
 }
  if (_1) goto _l9;
  _1= 0;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_20(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(80);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* unaryBlock */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* self */
  _3= v_index;
  _line(80);
  _2=_send(s_at_, _2, _3);
  _line(80);
  _1=_send(s_value_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__do_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock)
 {
  _enter("do:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 4);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[3]= v_stateful_self;
  ((oop *)_state1)[2]= v_self;
  ((oop *)_state1)[1]= v_unaryBlock;
  _line(78);
  _1= l_19;
  _2= ((oop *)_state1)[2];  /* self */
  _line(80);
  _2=_send(s_size, _2);
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('unaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_20, 1, 0, ((oop *)_state1), 0);
  _line(80);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[2];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop b_22(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(85);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* binaryBlock */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* self */
  _3= v_index;
  _line(85);
  _2=_send(s_at_, _2, _3);
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* aSequenceableCollection */
  _4= v_index;
  _line(85);
  _3=_send(s_at_, _3, _4);
  _line(85);
  _1=_send(s_value_value_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__with_do_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aSequenceableCollection, oop v_binaryBlock)
 {
  _enter("with:do:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[3]= v_stateful_self;
  ((oop *)_state1)[2]= v_self;
  ((oop *)_state1)[4]= v_aSequenceableCollection;
  ((oop *)_state1)[1]= v_binaryBlock;
  _line(83);
  _1= l_21;
  _2= ((oop *)_state1)[2];  /* self */
  _line(85);
  _2=_send(s_size, _2);
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode 'aSequenceableCollection'->ArgumentVariableNode 'binaryBlock'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_22, 1, 0, ((oop *)_state1), 0);
  _line(85);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[2];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection___2c(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCollection)
 {
  _enter(",", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(88);
  _1= v_self;
  _line(90);
  _1=_send(s_species, _1);
  _2= v_self;
  _line(90);
  _2=_send(s_size, _2);
  _3= v_aCollection;
  _line(90);
  _3=_send(s_size, _3);
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(90);
  _1=_send(s_new_, _1, _2);
  _2= l_23;
  _3= v_self;
  _line(91);
  _3=_send(s_size, _3);
  _4= v_self;
  _line(91);
  _send(s_replaceFrom_to_with_, _1, _2, _3, _4);
  _2= v_self;
  _line(92);
  _2=_send(s_size, _2);
  _3= l_23;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _3= v_self;
  _line(92);
  _3=_send(s_size, _3);
  _4= v_aCollection;
  _line(92);
  _4=_send(s_size, _4);
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2b, _3, _4);
  }
  _4= v_aCollection;
  _send(s_replaceFrom_to_with_, _1, _2, _3, _4);
  _1=_send(s_yourself, _1);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__swap_with_(oop v__closure, oop v_stateful_self, oop v_self, oop v_oneIndex, oop v_anotherIndex)
 {
  _enter("swap:with:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop v_element= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_element;
  _line(96);
  _1= v_self;
  _2= v_oneIndex;
  _line(100);
  _1=_send(s_at_, _1, _2);
  v_element= _1;
  _1= v_self;
  _2= v_oneIndex;
  _3= v_self;
  _4= v_anotherIndex;
  _line(101);
  _3=_send(s_at_, _3, _4);
  _line(101);
  _1=_send(s_at_put_, _1, _2, _3);
  _1= v_self;
  _2= v_anotherIndex;
  _3= v_element;
  _line(102);
  _1=_send(s_at_put_, _1, _2, _3);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__replaceFrom_to_with_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start, oop v_stop, oop v_aCollection)
 {
  _enter("replaceFrom:to:with:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  _line(105);
  _1= v_self;
  _2= v_start;
  _3= v_stop;
  _4= v_aCollection;
  _5= l_24;
  _line(107);
  _1=_send(s_replaceFrom_to_with_startingAt_, _1, _2, _3, _4, _5);
  _leave();
  return _1;
  _leave();
 }
static oop b_25(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(112);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_index;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* aCollection */
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* startIndex */
  _line(113);
  _3=_send(s_at_, _3, _4);
  _line(113);
  _1=_send(s_at_put_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* startIndex */
  _2= l_26;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* startIndex */
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__replaceFrom_to_with_startingAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start, oop v_stop, oop v_aCollection, oop v_startIndex)
 {
  _enter("replaceFrom:to:with:startingAt:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[3]= v_aCollection;
  ((oop *)_state1)[4]= v_startIndex;
  _line(110);
  _1= v_start;
  _2= v_stop;
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('aCollection'->ArgumentVariableNode 'self'->ArgumentVariableNode 'startIndex'->ArgumentVariableNode 'start'->ArgumentVariableNode 'stop'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_25, 1, 0, ((oop *)_state1), 0);
  _line(112);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[1];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__copyFrom_to_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start, oop v_stop)
 {
  _enter("copyFrom:to:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop v_newSize= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  (void)v_newSize;
  _line(117);
  _1= v_stop;
  _2= v_start;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  _2= l_27;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_newSize= _1;
  _1= v_self;
  _line(123);
  _1=_send(s_species, _1);
  _2= v_newSize;
  _line(123);
  _1=_send(s_new_, _1, _2);
  _2= l_27;
  _3= v_newSize;
  _4= v_self;
  _5= v_start;
  _line(124);
  _1=_send(s_replaceFrom_to_with_startingAt_, _1, _2, _3, _4, _5);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__copyFrom_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start)
 {
  _enter("copyFrom:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(130);
  _1= v_self;
  _2= v_start;
  _3= v_self;
  _line(132);
  _3=_send(s_size, _3);
  _line(132);
  _1=_send(s_copyFrom_to_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_29(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(139);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* answer */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* unaryBlock */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* self */
  _4= v_index;
  _line(139);
  _3=_send(s_at_, _3, _4);
  _line(139);
  _2=_send(s_value_, _2, _3);
  _line(139);
  _1=_send(s_add_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__collect_startingAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock, oop v_offset)
 {
  _enter("collect:startingAt:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[4]= v_stateful_self;
  ((oop *)_state1)[3]= v_self;
  ((oop *)_state1)[2]= v_unaryBlock;
  _line(135);
  _1= ((oop *)_state1)[3];  /* self */
  _line(138);
  _1=_send(s_species, _1);
  _2= ((oop *)_state1)[3];  /* self */
  _line(138);
  _2=_send(s_size, _2);
  _3= v_offset;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  _3= l_28;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(138);
  _1=_send(s_new_, _1, _2);
  ((oop *)_state1)[1]= _1;  /* answer */
  _1= v_offset;
  _2= ((oop *)_state1)[3];  /* self */
  _line(139);
  _2=_send(s_size, _2);
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('offset'->ArgumentVariableNode 'self'->ArgumentVariableNode 'answer'->TemporaryVariableNode 'unaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_29, 1, 0, ((oop *)_state1), 0);
  _line(139);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[1];  /* answer */
  _leave();
  return _1;
  _leave();
 }
static oop b_31(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(147);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* binaryBlock */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* result */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* self */
  _4= v_index;
  _line(147);
  _3=_send(s_at_, _3, _4);
  _line(147);
  _1=_send(s_value_value_, _1, _2, _3);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]= _1;  /* result */
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__injectFirstInto_(oop v__closure, oop v_stateful_self, oop v_self, oop v_binaryBlock)
 {
  _enter("injectFirstInto:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[4]= v_stateful_self;
  ((oop *)_state1)[3]= v_self;
  ((oop *)_state1)[1]= v_binaryBlock;
  _line(143);
  /* ifFalse: */
  _1= 0;
  _2= ((oop *)_state1)[3];  /* self */
  _line(146);
  _2=_send(s_isEmpty, _2);
  if (_2) goto _l11;
 {
  _1= ((oop *)_state1)[3];  /* self */
  _line(146);
  _1=_send(s_first, _1);
 }
 _l11:;
  ((oop *)_state1)[2]= _1;  /* result */
  _1= l_30;
  _2= ((oop *)_state1)[3];  /* self */
  _line(147);
  _2=_send(s_size, _2);
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('result'->TemporaryVariableNode 'self'->ArgumentVariableNode 'binaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_31, 1, 0, ((oop *)_state1), 0);
  _line(147);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[2];  /* result */
  _leave();
  return _1;
  _leave();
 }
static oop b_32(oop v__closure, oop v__self, oop v_element, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(155);
  /* ifFalse: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _3= v_index;
  _line(155);
  _2=_send(s_at_, _2, _3);
  _3= v_element;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (_2) goto _l12;
 {
  _1= v_false;
  _leave();
  return _nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1);
 }
 _l12:;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__beginsWith_(oop v__closure, oop v_stateful_self, oop v_self, oop v_prefix)
 {
  _enter("beginsWith:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 3);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  jmp_buf __nlr;
  oop _nlr;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  _nlr= (oop)&__nlr;
  if (setjmp(__nlr)) { return _nlresult(); }
  _line(151);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[1];  /* self */
  _line(154);
  _2=_send(s_size, _2);
  _3= v_prefix;
  _line(154);
  _3=_send(s_size, _3);
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l13;
 {
  _1= v_false;
  _leave();
  return _1;
 }
 _l13:;
  _1= v_prefix;
  /* Scope('element'->ArgumentVariableNode 'index'->ArgumentVariableNode) */
  /* Scope('prefix'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_32, 2, 0, ((oop *)_state1), _nlr);
  _line(155);
  _1=_send(s_doWithIndex_, _1, _2);
  _1= v_true;
  _leave();
  return _1;
  _leave();
 }
static oop b_34(oop v__closure, oop v__self, oop v_index)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(165);
  /* ifFalse: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* start */
  _4= v_index;
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2b, _3, _4);
  }
  _line(165);
  _2=_send(s_at_, _2, _3);
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* suffix */
  _4= v_index;
  _line(165);
  _3=_send(s_at_, _3, _4);
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (_2) goto _l14;
 {
  _1= v_false;
  _leave();
  return _nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1);
 }
 _l14:;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__endsWith_(oop v__closure, oop v_stateful_self, oop v_self, oop v_suffix)
 {
  _enter("endsWith:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  jmp_buf __nlr;
  oop _nlr;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[4]= v_suffix;
  _nlr= (oop)&__nlr;
  if (setjmp(__nlr)) { return _nlresult(); }
  _line(159);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[1];  /* self */
  _line(163);
  _2=_send(s_size, _2);
  _3= ((oop *)_state1)[4];  /* suffix */
  _line(163);
  _3=_send(s_size, _3);
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l15;
 {
  _1= v_false;
  _leave();
  return _1;
 }
 _l15:;
  _1= ((oop *)_state1)[1];  /* self */
  _line(164);
  _1=_send(s_size, _1);
  _2= ((oop *)_state1)[4];  /* suffix */
  _line(164);
  _2=_send(s_size, _2);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)_state1)[3]= _1;  /* start */
  _1= l_33;
  _2= ((oop *)_state1)[4];  /* suffix */
  _line(165);
  _2=_send(s_size, _2);
  /* Scope('index'->ArgumentVariableNode) */
  /* Scope('suffix'->ArgumentVariableNode 'self'->ArgumentVariableNode 'start'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_34, 1, 0, ((oop *)_state1), _nlr);
  _line(165);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= v_true;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__withoutSuffix_(oop v__closure, oop v_stateful_self, oop v_self, oop v_suffix)
 {
  _enter("withoutSuffix:", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(169);
  /* ifTrue:ifFalse: */
  _1= v_self;
  _2= v_suffix;
  _line(171);
  _1=_send(s_endsWith_, _1, _2);
  if (!_1) goto _l16;
 {
  _1= v_self;
  _2= l_35;
  _3= v_self;
  _line(172);
  _3=_send(s_size, _3);
  _4= v_suffix;
  _line(172);
  _4=_send(s_size, _4);
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
  _line(172);
  _1=_send(s_copyFrom_to_, _1, _2, _3);
 }
  goto _l17;
 _l16:;
 {
  _1= v_self;
 }
 _l17:;
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__asByteArray(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("asByteArray", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(176);
  _1= v_ByteArray;
  _2= v_self;
  _line(178);
  _1=_send(s_withAll_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop SequenceableCollection__asWordArray(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("asWordArray", "SequenceableCollection", "/home/saintiss/source/svn/stIdst_278/object/st80/SequenceableCollection.st");
  oop _1= 0;
  oop _2= 0;
  _line(181);
  _1= v_WordArray;
  _2= v_self;
  _line(183);
  _1=_send(s_withAll_, _1, _2);
  _leave();
  return _1;
  _leave();
 }

void __id__init__SequenceableCollection(void)
{
  if (_local_object) return;
  { 
    dlhandle_t global= dlopen(0, RTLD_LAZY);
    _local_object= *(oop *)dlsym(global, "_libid_object");
    _local_param= dlsym(global, "_libid_param");
    _local_intern= dlsym(global, "_libid_intern");
    _local_proto= dlsym(global, "_libid_proto");
    _local_import= dlsym(global, "_libid_import");
    _local_export= dlsym(global, "_libid_export");
    _local_method= dlsym(global, "_libid_method");
    _local_alloc= dlsym(global, "_libid_alloc");
    _local_palloc= dlsym(global, "_libid_palloc");
    _local_balloc= dlsym(global, "_libid_balloc");
    _local_bind= dlsym(global, "_libid_bind");
    _local_nlreturn= dlsym(global, "_libid_nlreturn");
    _local_nlresult= dlsym(global, "_libid_nlresult");
    _local_enter= dlsym(global, "_libid_enter");
    _local_line= dlsym(global, "_libid_line");
    _local_leave= dlsym(global, "_libid_leave");
    _local_backtrace= dlsym(global, "_libid_backtrace");
    _local_tag_vtable= dlsym(global, "_libid_tag_vtable");
    _local_nil_vtable= dlsym(global, "_libid_nil_vtable");
    _local_gc_addRoots= dlsym(global, "GC_add_roots");
    _local_gc_unregisterDisappearingLink= dlsym(global, "GC_unregister_disappearing_link");
    _local_gc_generalRegisterDisappearingLink= dlsym(global, "GC_general_register_disappearing_link");
    _local_gc_gcollect= dlsym(global, "GC_gcollect");
    dlclose(global);
  }
# define GC_add_roots _local_gc_addRoots
  GC_INIT();
  {
    struct _Selector *s= 0;
    for (s= _Selectors;  s->name;  ++s)
      *s->addr= _selector(s->name);
  }
  _enter("__id__init__", "<initialisation>", "SequenceableCollection.st");

  _send(s__5fimport_, _local_object, "Collection", "__id__init__Collection");
  _send(s__5fimport_, _local_object, "Object", "__id__init__Object");
  _send(s__5fimport_, _local_object, "_object", "__id__init___5fobject");
  v__object= _id_import("_object");
  v__vector= _id_import("_vector");
  v_Object= _id_import("Object");
  v_UndefinedObject= _id_import("UndefinedObject");
  v_StaticBlockClosure= _id_import("StaticBlockClosure");
  v_BlockClosure= _id_import("BlockClosure");
  v_Magnitude= _id_import("Magnitude");
  v_Number= _id_import("Number");
  v_Integer= _id_import("Integer");
  v_SmallInteger= _id_import("SmallInteger");
  v_LargePositiveInteger= _id_import("LargePositiveInteger");
  v_Collection= _id_import("Collection");
  v_SequenceableCollection= _id_import("SequenceableCollection");
  v_ArrayedCollection= _id_import("ArrayedCollection");
  v_Array= _id_import("Array");
  v_WordArray= _id_import("WordArray");
  v_ByteArray= _id_import("ByteArray");
  v_String= _id_import("String");
  v_ImmutableString= _id_import("ImmutableString");
  v_true= _id_import("true");
  v_false= _id_import("false");
  _send(s__5fimport_, _local_object, "BlockClosure", "__id__init__BlockClosure");
  _send(s__5fimport_, _local_object, "SmallInteger", "__id__init__SmallInteger");
  _send(s__5fimport_, _local_object, "Integer", "__id__init__Integer");
  _send(s__5fimport_, _local_object, "Number", "__id__init__Number");
  _send(s__5fimport_, _local_object, "Magnitude", "__id__init__Magnitude");
  _send(s__5fimport_, _local_object, "Array", "__id__init__Array");
  _send(s__5fimport_, _local_object, "ArrayedCollection", "__id__init__ArrayedCollection");
  _send(s__5fimport_, _local_object, "SequenceableCollection", "__id__init__SequenceableCollection");
  _send(s__5fimport_, _local_object, "Character", "__id__init__Character");
  _send(s__5fimport_, _local_object, "String", "__id__init__String");
  _send(s__5fimport_, _local_object, "ByteArray", "__id__init__ByteArray");
  _send(s__5fimport_, _local_object, "WordArray", "__id__init__WordArray");
  _method(v_SequenceableCollection, s_isSequenceableCollection, SequenceableCollection__isSequenceableCollection);
  _method(v_Object, s_isSequenceableCollection, Object__isSequenceableCollection);
  l_1= _send(s_value_5f_, v_SmallInteger, 10);
  l_2= _send(s_value_5f_, v_SmallInteger, 103);
  l_4= _send(s_value_5f_, v_SmallInteger, 1048575);
  l_5= _send(s_value_5f_, v_SmallInteger, 82);
  l_3= _send(s_function_5f_arity_5f_, v_StaticBlockClosure, b_3, 2);
  _method(v_SequenceableCollection, s_hash, SequenceableCollection__hash);
  _method(v_SequenceableCollection, s__3d, SequenceableCollection___3d);
  l_7= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_atAllPut_, SequenceableCollection__atAllPut_);
  _method(v_SequenceableCollection, s_atAll_put_, SequenceableCollection__atAll_put_);
  l_10= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_first, SequenceableCollection__first);
  l_11= _send(s_value_5f_, v_SmallInteger, 2);
  _method(v_SequenceableCollection, s_second, SequenceableCollection__second);
  l_12= _send(s_value_5f_, v_SmallInteger, 3);
  _method(v_SequenceableCollection, s_third, SequenceableCollection__third);
  l_13= _send(s_value_5f_, v_SmallInteger, 4);
  _method(v_SequenceableCollection, s_fourth, SequenceableCollection__fourth);
  l_14= _send(s_value_5f_, v_SmallInteger, 5);
  _method(v_SequenceableCollection, s_fifth, SequenceableCollection__fifth);
  _method(v_SequenceableCollection, s_last, SequenceableCollection__last);
  l_15= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_lastIndexOf_, SequenceableCollection__lastIndexOf_);
  l_16= _send(s_value_5f_, v_SmallInteger, 0);
  _method(v_SequenceableCollection, s_lastIndexOf_startingAt_, SequenceableCollection__lastIndexOf_startingAt_);
  l_18= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_from_to_put_, SequenceableCollection__from_to_put_);
  l_19= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_do_, SequenceableCollection__do_);
  l_21= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_with_do_, SequenceableCollection__with_do_);
  l_23= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s__2c, SequenceableCollection___2c);
  _method(v_SequenceableCollection, s_swap_with_, SequenceableCollection__swap_with_);
  l_24= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_replaceFrom_to_with_, SequenceableCollection__replaceFrom_to_with_);
  l_26= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_replaceFrom_to_with_startingAt_, SequenceableCollection__replaceFrom_to_with_startingAt_);
  l_27= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_copyFrom_to_, SequenceableCollection__copyFrom_to_);
  _method(v_SequenceableCollection, s_copyFrom_, SequenceableCollection__copyFrom_);
  l_28= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_collect_startingAt_, SequenceableCollection__collect_startingAt_);
  l_30= _send(s_value_5f_, v_SmallInteger, 2);
  _method(v_SequenceableCollection, s_injectFirstInto_, SequenceableCollection__injectFirstInto_);
  _method(v_SequenceableCollection, s_beginsWith_, SequenceableCollection__beginsWith_);
  l_33= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_endsWith_, SequenceableCollection__endsWith_);
  l_35= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_SequenceableCollection, s_withoutSuffix_, SequenceableCollection__withoutSuffix_);
  _method(v_SequenceableCollection, s_asByteArray, SequenceableCollection__asByteArray);
  _method(v_SequenceableCollection, s_asWordArray, SequenceableCollection__asWordArray);
  _leave();
}
