Schematic development
This page describes the organizational forces that limit change.  It explains how to overcome them when necessary. 

Power& tradition holding back progress
This page uses an example to illustrate how:
  • A business can gain focus from targeting key customers,
  • Business planning activities performed by the whole organization can build awareness, empowerment and coherence. 
  • A program approach can ensure strategic alignment. 
Be responsive to market dynamics
This page uses the example of HP's printer organization freeing itself from its organizational constraints to sell a printer targeted at the IBM pc user. 
The constraints are described. 
The techniques to overcome them are implied. 
Overcome reactionaries
Primary Navigation

A developmental phase is initiated schematically

Summary
This page discusses how
This page describes the Adaptive Web framework (AWF) test system and the agent programming framework (Smiley) that supports its operation. 
Example test system statements are included.  To begin a test a test statement is loaded into Smiley while Smiley executes on the Perl interpreter. 
Part of Smiley's Perl code focused on setting up the infrastructure is included bellow. 
The setup includes:
  • Loading the 'Meta file' specification,
  • Initializing the Slipnet, and Workspaces and loading them
  • So that the Coderack can be called. 
The Coderack, which is the focus of a separate page of the Perl frame then schedules and runs the codelets that are invoked by the test statement structures. 
Smiley
can support the start of the development phase of an agent-based application. 
Startup is an artificial operation not found in living systems.  But Smiley must do it and so we discuss an example of starting the development phase
With the Smiley infrastructure and the application integrated the application's development phase is reviewed.
The association of structural
This page describes the Copycat Workspace. 
The specialized use of the Workspace by the adaptive web framework's (AWF) Smiley is discussed. 
How text and XML are imported into the Smiley Workspace is described. 
Telomeric aging of schematic structures is introduced. 
The internal data structure used to represent the state of each workspace object is included. 
The Workspace infrastructure functions are included. 
Workspace
s for state representation is discussed
The aggregation is when a number of actions become coordinated and operate together.  In the adaptive web framework's Smiley, codelets become coordinated by their relative position in the deployment cascade.  The cascade's dynamics are dependent on the situation, the operating codelets responses to that situation and the grouping of schematic strings they are associated with.  The aggregate affect is a phenotype the adaptive agent. 
of schematic associations of codelets defines a development agent.  At the application level it processes the application's schematic strings. 
The schematic nature of the data processed by the test application suggests the use of an indirect integration framework.  This supports the binding of codelets to the schematic data and detecting and responding to the control operons. 
An application polymerase complex emerges. 
The codelets and supporting functions are included
Introduction
Complex adaptive systems (
This page introduces the complex adaptive system (CAS) theory frame.  The theory is positioned relative to the natural sciences.  It catalogs the laws and strategies which underpin the operation of systems that are based on the interaction of emergent agents. 
John Holland's framework for representing complexity is outlined.  Links to other key aspects of CAS theory discussed at the site are presented. 
CAS
) have to use a series of phases to reach full operational capability.  We are used to observing development in living things. 

In a
This page describes the Adaptive Web framework (AWF) test system and the agent programming framework (Smiley) that supports its operation. 
Example test system statements are included.  To begin a test a test statement is loaded into Smiley while Smiley executes on the Perl interpreter. 
Part of Smiley's Perl code focused on setting up the infrastructure is included bellow. 
The setup includes:
  • Loading the 'Meta file' specification,
  • Initializing the Slipnet, and Workspaces and loading them
  • So that the Coderack can be called. 
The Coderack, which is the focus of a separate page of the Perl frame then schedules and runs the codelets that are invoked by the test statement structures. 
Smiley
(
This presentation applies complex adaptive system (CAS) agents to computer programming. 
agent programming framework
) based application an additional challenge is to integrate the initial application codelets with the operational cascades of Smiley infrastructure codelets.  The initial statement provided by the application to Smiley provides a development clause which allows the integration to occur. 
Starting the development phase of testing the event processor
For example the development phase of testing the adaptive web framework (AWF) event processor awfpbs with a Smiley application is performed by an agent which
This page discusses the mechanisms and effects of emergence underpinning any complex adaptive system (CAS).  Key research is reviewed. 
emerges
from the schematic associations of a variety of codelets (list) due to the integration. 

Each test statement contains a developmental clause.  A number of requirements must be met for development to initiate. 
Once integrated the development phase of testing the event processor begins
devbuilder indirectly launches (via developmenti) the
This page discusses how Smiley provides deployment guarantees to its agent-based applications. 
Smiley's transaction services are reviewed. 
The complex interactions of codelets participating in a deployment cascade are discussed including: 
  • The implementation of schematic switches. 
  • The cooperative use of goal suppression.  
  • Evaluator codelets promotion of other siblings. 
Challenges of initiation of a cascade are discussed. 
Tools to associate transaction protection to an operon deployed codelet are described. 
Special support for sub-program codelets is described.  Completion of transactional sub-programs presents special challenges. 
Priority and synchronization support includes:
  • Delaying the operaton of the cascade sponsor. 
  • Delaying the notgcompleting cascade participant. 
  • Waiting for completion of parallel operations with the wait and relay service.  
The need to sustain resource pools is reviewed. 
The use of signals to coordinate siblings is described. 
The structural binding operon for the wait and relay service is included. 
The codelets and supporting functions are included.
cascade
of development activities for the application.  devbuilder sends the
Agents use sensors to detect events in their environment.  This page reviews how these events become signals associated with beneficial responses in a complex adaptive system (CAS).  CAS signals emerge from the Darwinian information model.  Signals can indicate decision summaries and level of uncertainty. 
probe sequence
'development, schema, lists' to the nucleus, a membrane bounded module in a eukaryotic cell where the DNA is encapsulated and operated on. 
.  

Structural codelets
The dev codelet is an example of a structural codelet.  It creates an associated structural Workspace which provides context (via the Workspace schematic sequence <development> <sequence> <integration>) for the cascade of codelets that instantiate the development process.  This context includes where the schematic application stream is that will be integrated during this development. The stream descriptor is deployed to the <development> WSO. 

A development agent emerges from schematic associations of codelets
The application identifies its approach to development schematically.  By providing subgroup schemata within the <development> <schemata> <lists> 
Plans emerge in complex adaptive systems (CAS) to provide the instructions that agents use to perform actions.  The component architecture and structure of the plans is reviewed. 
schemata
  with
Agents use sensors to detect events in their environment.  This page reviews how these events become signals associated with beneficial responses in a complex adaptive system (CAS).  CAS signals emerge from the Darwinian information model.  Signals can indicate decision summaries and level of uncertainty. 
associations
to core codelets that support indirect operations, the application can integrate with the core test infrastructure and
This page describes the Copycat Coderack. 
The details of the codelet architecture are described. 
The specialized use of the Coderack by the adaptive web framework's (AWF) Smiley is discussed. 
The codelet scheduling mechanism is discussed. 
A variety of Smiley extensions to the Coderack are reviewed. 
The Coderack infrastructure functions are included. 
Coderack


Development is an
This page discusses the mechanisms and effects of emergence underpinning any complex adaptive system (CAS).  Key research is reviewed. 
emergent
CAS
Plans are interpreted and implemented by agents.  This page discusses the properties of agents in a complex adaptive system (CAS). 
It then presents examples of agents in different CAS.  The examples include a computer program where modeling and actions are performed by software agents.  These software agents are aggregates. 
The participation of agents in flows is introduced and some implications of this are outlined. 
agent
.  It is composed of a number of codelets which cooperate under the control of a
Plans emerge in complex adaptive systems (CAS) to provide the instructions that agents use to perform actions.  The component architecture and structure of the plans is reviewed. 
schematic plan
to act via the Coderack &
This page describes the Copycat Slipnet. 
The goal of the Slipnet is reviewed. 
Smiley's specialized use of the Slipnet is introduced. 
The initial Slipnet network used by the 'Merge Streams' and 'Virtual Robot' agent-based applications is setup in initchemistry and is included. 
The Slipnet infrastructure and initialization functions are included. 
Slipnet
on
Agents use sensors to detect events in their environment.  This page reviews how these events become signals associated with beneficial responses in a complex adaptive system (CAS).  CAS signals emerge from the Darwinian information model.  Signals can indicate decision summaries and level of uncertainty. 
signals
from the
The complex adaptive system (CAS) nature of a value delivery system is first introduced.  It's a network of agents acting as relays. 

The critical nature of hub agents and the difficulty of altering an aligned network is reviewed. 

The nature of and exceptional opportunities created by platforms are discussed. 

Finally an example of aligning a VDS is presented. 
environment
and each other. 
Indirect integration framework
A binder codelet supports the
This page describes the Smiley infrastructure that supports the associative binding of schematic strings to codelets defined in the Meta file and Slipnet. 
The infrastructure supporting the associations is introduced. 
The role of Jeff Hawkins neocortical attributes is discussed. 
Relevant Slipnet configurations are included. 
The codelets and supporting functions are included. 
association
of application schematic operons is an addressable control structure which is used in biological cells to control access to other regions of the DNA. 
with Workspace structures which can
This page discusses the interdependence of perception and representation in a complex adaptive system (CAS).  Hofstadter and Mitchell's research with Copycat is reviewed. 
support context and allow for localized representations
of goals and action states.  In the adaptive web framework test infrastructure (Smiley) a binder complex uses a descriptor within its main Workspace base associated Workspace object ({wsposition}-({})->{index+{wsi}}) to define its locality within the bound schemata. 
An application polymerase is an enzyme which generates a multi-component nucleic acid polymer chain by bonding the monomer molecules together using an existing DNA or RNA molecule as a template.   complex emerges
Various application codelets generate signals associated with the system binder complex.  The application's schematic context tailors the system binder to the current situation. 

The application pseudo codelet 'case, in a high level computing language a case, or switch, statement allows the specification of a series of alternative labeled items.  Any of these labels can be assigned to the case selector.  On entry to the case statement the compiler will allocate a jump to the item that is associated with a label that has the same value as is currently assigned to the case selector. 
deployment binder' has a schematic operon <development> <for> <case> <deploy> <list>.  However the associated codelet that is actually instantiated is the schematic binder evaluator and builder.  The binder evaluator only launches the builder after checks for the existence of the development structural Workspace (ifindb, the 'inverted find binding' uses an associative search to return the Workspaces and Workspace address of the start of any matching string.  A parameter referenced strategy routine generates the schematic string that is searched for.  Filters can apply to which Workspaces are searched and / or returned. 
(binderp1: which sets context from sps schemata address 1 which should be <development> for all these schemata)) and non-existence of application structural Workspace (ifindb (binderc: which sets context from sps schemata 3 until operon end -2 which should be <case> for all these operon subgroup deployment schemata)). 

The binder requires the support of a start locator codelet.  A 'case deployment start locator' codelet is really instantiated by an
Rather than oppose the direct thrust of some environmental flow agents can improve their effectiveness with indirect responses.  This page explains how agents are architected to do this and discusses some examples of how it can be done. 
indirect
sloc codelet (evaluator & builder).  The sloc builder indirectly maintains the cascade's initialization (via casoppi).  It sends a context dependent probe sequence such as '<development>, <schema>, <initial>' to the nucleus, a membrane bounded module in a eukaryotic cell where the DNA is encapsulated and operated on. 
.  In each case the application schemata provide specific context about the application which allows the indirect codelets to act appropriately. 

Together the binder and sloc codelets and the follow-on cascade of codelets associate with the application schemata analogous to the binding of DNA (DNA), a polymer composed of a chain of deoxy ribose sugars with purine or pyrimidine side chains.  DNA naturally forms into helical pairs with the side chains stacked in the center of the helix.  It is a natural form of schematic string.  The purines and pyrimidines couple so that AT and GC pairs make up the stackable items.  A code of triplets of base pairs (enabling 64 separate items to be named) has evolved which now redundantly represents each of the 20 amino-acids that are deployed into proteins, along with triplets representing the termination sequence.  Chemical modifications and histone binding (chromatin) allow cells to represent state directly on the DNA schema.  To cope with inconsistencies in the cell wide state second messenger and evolved amplification strategies are used. 
with a polymerase is an enzyme which generates a multi-component nucleic acid polymer chain by bonding the monomer molecules together using an existing DNA or RNA molecule as a template.   complex such as RNA polymerase 1 is the process where DNA is converted into messenger m-RNA.  A complex of enzymes cooperates to bind to the DNA and generate the m-RNA copy.  There are a number of such transcription complexes which are based on RNA polymerase I, II or III. 


Case development utilizes a set of [pseudo] codelets:

The statement builder may decide that it needs to initiate the development activity multiple times.  It does this by removing the group start and end descriptors from the development area group sponsor WSO.  This is analogous to phosphatase is an enzyme which catalyzes the removal of a phosphate group from a side chain of a specific protein.  When paired with a kinase that targets the same protein it gives the cell a schematically controlled switching capability. 
activity in kinase is an enzyme which catalyzes the addition of a phosphate group to a side chain of a specific protein.  When paired with a phosphatase that targets the same protein and side chain it gives the cell a schematically controlled switching capability.  /phosphatase enzyme, a protein with a structure which allows it to operate as a chemical catalyst and a control switch. 
control. 
The development operon
The sequence named dlibindtomsiggv has been associated in the
This page describes the Copycat Slipnet. 
The goal of the Slipnet is reviewed. 
Smiley's specialized use of the Slipnet is introduced. 
The initial Slipnet network used by the 'Merge Streams' and 'Virtual Robot' agent-based applications is setup in initchemistry and is included. 
The Slipnet infrastructure and initialization functions are included. 
Slipnet
with a signal type (mpsignal).

The developmental schematic operon provides sub group schemata for the description of web frame definition file (istrings) schematic list structures within the Workspace.  Certain keywords and the length of the sub-group schemata are highly constrained.  For example a change to the number of keywords in a sub-group schemata will alter the binder context Workspace that the associated codelet requests. 

The codelet builder schbindbuilder creates the core of a structural complex, bound to application schemata, with which other codelets operating within the development group associate.  

The codelet builder slocbuilder supports the binder identifying the initial application keyword's position and describing it in the complex that other indirect codelets participate in.



awfpbs testing development schemata
The following schematic strings are loaded by convbws.  They are group schemata which are associated with nuclear agents (nuclabm evaluator & builder) which respond to codelet signals by deploying the included sub-group schemata to the active
This page describes the Copycat Workspace. 
The specialized use of the Workspace by the adaptive web framework's (AWF) Smiley is discussed. 
How text and XML are imported into the Smiley Workspace is described. 
Telomeric aging of schematic structures is introduced. 
The internal data structure used to represent the state of each workspace object is included. 
The Workspace infrastructure functions are included. 
Workspace


The Meta-keyword <comment> toggles convbws loading between comment mode and processing active <keywords>.  In the following the initial <comment> switches convbws into active mode. 

The active keywords include meta-keyword instructions for convbws, such as <rhlmspg> and <memgroup> and schematic keywords that will be processed during nuclear operations.  The first keyword of a schematic string also identifies the start of the group and the start of the deployed subgroup. 

The schematic groups listed include sub-group deployment schemata for codelets that are typically useful during development: schbind, sloc, slistkw, skipwso, namest, srcdkw, endrcdkw, endlistkw, and unbind.




#<!-- start tag swp -->
<comment> (<rhlmspg> <memgroup> <model> <schema> <partscategory> <development> <groupcomplete> <model> <partscategory> <development> <salience> <threshold> </memgroup> </rhlmspg> )(<rhlmspg> <memgroup> <model> <schema> <partscategory> <development> <groupcomplete> <model> <partscategory> <development> <jhlabel> <groupcomplete> </memgroup> </rhlmspg> )<comment> <br>

<comment> (<rhlmspg> <memgroup> <model> <schema> <devcategory> <development> <statementcomplete> <model> <schema> <development> <devcategory> <statementwhole> </memgroup> </rhlmspg> )<comment>



dlidev signalled meme
The dev builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<development> <schema> [<lists> in awfart04 development statement substitution]) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's awfart04 cascade based Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <development> <schema> <lists> <development> <for> <case> <deploy> <list> </memgroup> </rhlmspg> )<comment> schbind

<comment> (<rhlmspg> <memgroup> <development> <schema> <lists> <development> <for> <case> <list> <initial> </memgroup> </rhlmspg> )<comment> sloc



dlisloc signalled meme
The sloc builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<development> <schema> <initial>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's awfart04 cascade based Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <development> <schema> <initial> <development> <for> <case> <list> <startlistkw> </memgroup> </rhlmspg> )<comment> slistkw

<comment> (<rhlmspg> <memgroup> <development> <schema> <initial> <development> <for> <case> <list> <skipwso> </memgroup> </rhlmspg> )<comment> skipwso



dlislistkw signalled meme
The slistkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<development> <schema> <startlistkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's awfart04 cascade based Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <development> <schema> <startlistkw> <development> <for> <case> <list> <namest> </memgroup> </rhlmspg> )<comment> namest

<comment> (<rhlmspg> <memgroup> <development> <schema> <startlistkw> <development> <for> <case> <list> <startrcdkw> </memgroup> </rhlmspg> )<comment> srcdkw



dlisrcdkw signalled meme
The srcdkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<development> <schema> <startrcdkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's awfart04 cascade based Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <development> <schema> <startrcdkw> <development> <for> <case> <list> <endrcdkw> </memgroup> </rhlmspg> )<comment> endrcdkw

<comment> (<rhlmspg> <memgroup> <development> <schema> <startrcdkw> <development> <for> <case> <list> <seltst> </memgroup> </rhlmspg> )<comment> seltst

<comment> (<rhlmspg> <memgroup> <development> <schema> <startrcdkw> <development> <for> <case> <list> <endrcdkw> </memgroup> </rhlmspg> )<comment> endrcdkw



dliendrcdkw signalled meme
The endrcdkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<development> <schema> <endrcdkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's awfart04 cascade based Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <development> <schema> <endrcdkw> <development> <for> <case> <list> <startrcdkw> </memgroup> </rhlmspg> )<comment> srcdkw

<comment> (<rhlmspg> <memgroup> <development> <schema> <endrcdkw> <development> <for> <case> <list> <endlistkw> </memgroup> </rhlmspg> )<comment> endlistkw



dliendlistkw signalled meme
The endlistkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<development> <schema> <endlistkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's awfart04 cascade based Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <development> <schema> <endlistkw> <development> <for> <case> <list> <unbind> </memgroup> </rhlmspg> )<comment> unbind

<comment> (<rhlmspg> <memgroup> <development> <schema> <endlistkw> <development> <for> <case> <list> <startlistkw> </memgroup> </rhlmspg> )<comment> slistkw






#<!-- start tag swp -->
comment (<rhlmspg> <memgroup> <model> <schema> <partscategory> <development> <groupcomplete> <model> <partscategory> <development> <salience> <threshold> </memgroup> </rhlmspg> )(<rhlmspg> <memgroup> <model> <schema> <partscategory> <development> <groupcomplete> <model> <partscategory> <development> <jhlabel> <groupcomplete> </memgroup> </rhlmspg> ) comment <br>

comment (<rhlmspg> <memgroup> <model> <schema> <devcategory> <development> <statementcomplete> <model> <schema> <development> <devcategory> <statementwhole> </memgroup> </rhlmspg> ) comment

comment (<rhlmspg> <memgroup> <development> <schema> <lists> <development> <for> <case> <deploy> <list> </memgroup> </rhlmspg> ) comment schbind

comment (<rhlmspg> <memgroup> <development> <schema> <lists> <development> <for> <case> <list> <initial> </memgroup> </rhlmspg> ) comment sloc

comment (<rhlmspg> <memgroup> <development> <schema> <initial> <development> <for> <case> <list> <startlistkw> </memgroup> </rhlmspg> ) comment slistkw

comment (<rhlmspg> <memgroup> <development> <schema> <initial> <development> <for> <case> <list> <skipwso> </memgroup> </rhlmspg> ) comment skipwso

comment (<rhlmspg> <memgroup> <development> <schema> <startlistkw> <development> <for> <case> <list> <namest> </memgroup> </rhlmspg> ) comment namest

comment (<rhlmspg> <memgroup> <development> <schema> <startlistkw> <development> <for> <case> <list> <startrcdkw> </memgroup> </rhlmspg> ) comment srcdkw

comment (<rhlmspg> <memgroup> <development> <schema> <startrcdkw> <development> <for> <case> <list> <endrcdkw> </memgroup> </rhlmspg> ) comment endrcdkw

comment (<rhlmspg> <memgroup> <development> <schema> <startrcdkw> <development> <for> <case> <list> <seltst> </memgroup> </rhlmspg> ) comment seltst

comment (<rhlmspg> <memgroup> <development> <schema> <startrcdkw> <development> <for> <case> <list> <endrcdkw> </memgroup> </rhlmspg> ) comment endrcdkw

comment (<rhlmspg> <memgroup> <development> <schema> <endrcdkw> <development> <for> <case> <list> <startrcdkw> </memgroup> </rhlmspg> ) comment srcdkw

comment (<rhlmspg> <memgroup> <development> <schema> <endrcdkw> <development> <for> <case> <list> <endlistkw> </memgroup> </rhlmspg> ) comment endlistkw

comment (<rhlmspg> <memgroup> <development> <schema> <endlistkw> <development> <for> <case> <list> <unbind> </memgroup> </rhlmspg> ) comment unbind

comment (<rhlmspg> <memgroup> <development> <schema> <endlistkw> <development> <for> <case> <list> <startlistkw> </memgroup> </rhlmspg> ) comment slistkw


#
    my ($pconc, $jhlsid);
# cdbbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {list});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {schbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cvbtdbbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {vbot}, $Awfif::memes-> {snnh} {do}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {square});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {devbtwldevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cvbtdcbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {vbot}, $Awfif::memes-> {snnh} {do}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {cans});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {devbtcnsevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdslocbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {initial});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {slocevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdslistkwbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {startlistkw});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {slistkwevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdendrcdkwbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {endrcdkw});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {endrcdkwevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdendlistkwbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {endlistkw});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {endlistkwevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdnamestbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {namest});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {namestevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdskipwsobindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {skipwso});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {skipwsoevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdsrcdkwbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {startrcdkw});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {srcdkwevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdseltstbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {seltst});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {seltstevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {bind}]);
# cdunbindbindtomsig
# & a label for a sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {bind}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {unbind});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {unbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {bind}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance}, $pconc,$Awfif::memes-> {snnh} {bind},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$Awfif::memes-> {snnh} {bind}]);
# case

    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnd}
      [$Awfif::memes-> {snnh} {case}] = 8;
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc}
      [$Awfif::memes-> {snnh} {case}][0] = 30;#13
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc}
      [$Awfif::memes-> {snnh} {case}][1] = 31;#12
# casebindtobis
# setup the binding string for the binder
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {case}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {case}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {sequence}, $Awfif::memes-> {snnh} {integration}, $Awfif::memes-> {snnh} {attribr});
# caseresolvedbindtobis
# setup the binding string for the binder
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {case}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {case}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {sequence}, $Awfif::memes-> {snnh} {integration}, $Awfif::memes-> {snnh} {attribr});
# caseresolvedspbindtobis
# setup the binding string for the binder
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {case}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {case}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {sequence}, $Awfif::memes-> {snnh} {integration}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {case}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {successor},$Awfif::memes-> {snnh} {selector},$Awfif::memes-> {snnh} {case},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {case}]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {case}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {successor},$Awfif::memes-> {snnh} {type},$Awfif::memes-> {snnh} {case},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {case}]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {case}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$Awfif::memes-> {snnh} {devcategory},$Awfif::memes-> {snnh} {case},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {case}]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {case}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$Awfif::memes-> {snnh} {indirectroot},$Awfif::memes-> {snnh} {case},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {case}]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {case}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$Awfif::memes-> {snnh} {namedcategory},$Awfif::memes-> {snnh} {case},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {case}]);
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {case}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$Awfif::memes-> {snnh} {testcategory},$Awfif::memes-> {snnh} {case},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {case}]);
#<!-- start tag inh -->
# dlibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {lists}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
#<!-- start tag vbt -->
# dvbtlibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {square}, $Awfif::memes-> {snnh} {cans}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'devbtwldbuilder');
# dvbtwlibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {square}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'devbtcnsbuilder');
#<!-- end tag vbt -->
#<!-- start tag scl -->
# dscllibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {square}, $Awfif::memes-> {snnh} {cans}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'devscwldbuilder');
# dsclwlibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {two}, $Awfif::memes-> {snnh} {square}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'devsccnsbuilder');
# dsclscibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {two}, $Awfif::memes-> {snnh} {cans}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'devpcellbuilder');
# dsclpcibindtomsiggv

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {two}, $Awfif::memes-> {snnh} {pcell}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'devscellbuilder');
#<!-- end tag scl -->
# dlicasbindtosig

# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# hdoslocbindtosig

# setup the binding string for the multi path signal to control development processing - histone codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dlicasslbindtosig
# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {startlistkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dlicassl2bindtosig
# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {startrcdkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dlicassl3bindtosig
# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {endrcdkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dlicassl4bindtosig
# setup the binding string for the multi path signal to control development processing - development codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {endlistkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# devbindtosig
# setup the binding string for the single path signal to initiate a devevaluator/builder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {develop}, $Awfif::memes-> {snnh} {lists}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {devevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# devibindtosig

    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {inspector}, $Awfif::memes-> {snnh} {devinspector}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# devbindtoinhib

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
    &Awfif::addjhlinhib ($pconc, $Awfif::memes-> {snnh} {develop}, $Awfif::memes-> {snnh} {lists}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {inhibitor}, $Awfif::memes-> {snnh} {devinhibitor}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# devbindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {sequence}, $Awfif::memes-> {snnh} {integration}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {development}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {cinstance},$Awfif::memes-> {snnh} {namescategory},$Awfif::memes-> {snnh} {development},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {development}]);
#<!-- end tag inh -->
# devgsbindtobis
# setup the binding string for the goal suppressor

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {development}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {development}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {selector}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {attribr});

Functions

#
sub bindhistone {
    my ($myli, $cws, $cbwso)=@_;
    my ($cwsbi, $result, $asponsor, $telhdr, $atelhdr, $histdesc, $teltdesc, $i);
# bind this mylis telomomeric schema to the binder complex histone if its described

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindhistone myli $myli cws($cws) cbwso($cbwso) ");
      }
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $asponsor = awsoadr ($Awfif::codelet-> {l} [$myli] [21]);
    $telhdr = trwsoadr ($Awfif::codelet-> {l} [$myli] [21], -1);
    $atelhdr = awsoadr ($telhdr);
    $Awfif::memes-> {currentwsbi} = $cws;
    if ( (($histdesc = findtdesc ($Awfif::wsol-> {l} [awsoadr ($cbwso)][2], $Awfif::memes-> {snnh} {histone})) != 0)
    && ((findtdesc ($Awfif::wsol-> {l} [$atelhdr][2], $Awfif::memes-> {snnh} {telomere}, $Awfif::memes-> {snnh} {lhead})) != 0)#this descriptor must exist
    && (($teltdesc = findtdesc ($Awfif::wsol-> {l} [$atelhdr][2], $Awfif::memes-> {snnh} {telomere}, $Awfif::memes-> {snnh} {ltail})) != 0)#get the tail wso from this descriptor
    ){#iterate over the telomere if it is present and bind histone if not already done

      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      for ($i = $telhdr; $i != ($Awfif::workspace-> {l} [$teltdesc] [2] - $Awfif::memes-> {snnh} {wsi}); $i = trwsoadr ($i, 1) ){

        if (!defined ($Awfif::wsol-> {l}[awsoadr ($i) ][ $Awfif::memes-> {wsohistbp}]) ){

          $Awfif::wsol-> {l}[awsoadr ($i) ][ $Awfif::memes-> {wsohistbp}] = ($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi});
          };#if
        }; #for
      if (!defined ($Awfif::wsol-> {l}[awsoadr (($Awfif::workspace-> {l} [$teltdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ][ $Awfif::memes-> {wsohistbp}]) ){

        $Awfif::wsol-> {l}[awsoadr (($Awfif::workspace-> {l} [$teltdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ][ $Awfif::memes-> {wsohistbp}] = ($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi});
        };#if
      };#if
    if ($histdesc != 0){

      $result = $histdesc;
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindhistonex ret $result\n");
      };# trace
    return $result
    }; #bindhistone
#
sub controlhistone {
    my ($myli, $cws, $cbwso, $activation)=@_;
    my ($cwsbi, $result, $histdesc);
# [in]activate the binder complex histone

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("controlhistone myli $myli cws($cws) cbwso($cbwso) activation($activation) ");
      }
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $cws;
    if ( (($histdesc = findtdesc ($Awfif::wsol-> {l} [awsoadr ($cbwso)][2], $Awfif::memes-> {snnh} {histone})) != 0)
    ){#make the binder complex histone inactive

      $Awfif::histonel-> {l}[($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi})] [2] = $activation;
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("controlhistonex ret $result\n");
      };# trace
    return $result
    }; #controlhistone
#
#<!-- start tag sca -->
#
sub matchitokwkw {
    my($myli, $ws, $wsoid)=@_;
    my ($i2, $tkws, $cwsi, $awsoid, $i3, $found, $pws, $pwsoid, $apwsoid, $cws, $ckwb, $ckwe, $match, $nomatch, $conforms);
# match the wsoid tokens with the indirectly described tokens (actually schematic keyword equivalents)

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("matchitokwkw myli $myli ws $ws wsoid $wsoid ");
      };
    $cwsi = $Awfif::memes-> {currentwsbi};# to later restore current state
    $Awfif::memes-> {currentwsbi} = $ws;
    $awsoid = awsoadr ($wsoid);
    $pws = $Awfif::wsol-> {l}[$awsoid][ $Awfif::memes-> {wsopkwsi}];#*** submacrok ***#
    $pwsoid = $Awfif::wsol-> {l}[$awsoid][ $Awfif::memes-> {wsopkpos}];#*** submacrok ***#
# now get the context info for this codelet

    $cws = $Awfif::codelet-> {l} [$myli] [20];
    $Awfif::memes-> {currentwsbi} = $cws;
    $ckwb = trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2);
    $ckwe = $Awfif::codelet-> {l} [$myli] [22];
# check there is a match for every token defined in the context
    $nomatch = '';
    for ($i2 = $ckwb; (($i2 != $ckwe) && (!$nomatch) && (!chmdefis ($myli, $i2, $Awfif::memes-> {snnh}{sloc}, \$conforms))); $i2 = trwsoadr ($i2,1)) {

      $tkws = getwsost4 ($i2);
# move into the primary keywords workspace

      $Awfif::memes-> {currentwsbi} = $pws;
      $apwsoid = awsoadr ($pwsoid);
      $match = '';
      for ($i3 = $Awfif::wsol->{l}[$apwsoid][2]; (($i3 < ($Awfif::wsol->{l}[$apwsoid][2] + $Awfif::wsol->{l}[$apwsoid][3])) && (!$match)); $i3++) {
        if ($Awfif::memes->{keywordl}[$i3] eq $Awfif::symbolsets-> {meta} {$tkws}) {

          $match = 't';
          }#if
# matchitokwkhisu1
        elsif ( ($Awfif::symbolsets-> {meta} {$tkws} eq 'tthistonet')
        && (checkwsmd ($awsoid, $Awfif::memes-> {wsohistbp}) != 0)
        ) {#special case to match the start of a histone

          $match = 't';
          };#elsif
        }; #for
# only proceed if there was a match
      if (!$match) {

        $nomatch = 't';
        };
# switch back to the codelets context workspace to get the next item
      $Awfif::memes-> {currentwsbi} = $cws;
      }; #for
    $found = !$nomatch;

    $Awfif::memes-> {currentwsbi} = $cwsi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("matchitokwkwx ret ($found)\n");
      };
    return $found
    }# matchitokwkw
#
#<!-- end tag sca -->
#
sub relcodelets {
    my($myli, $wspdsc, $stws, $awspwso)=@_;
    my ($nwsoid, $aws, $cwsi, $catdesc, $catref);
# given a structural workspace and the wsposition descriptor associate the codelet with wso type
# The catalysis descriptor indicates catalysis in operation and is the head of the codelet list

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("relcodelets myli $myli wspdsc $wspdsc awspwso $awspwso ");
      };
    $cwsi = $Awfif::memes-> {currentwsbi};# to later restore current state

    $nwsoid = ($Awfif::workspace-> {l} [$wspdsc] [2] - $Awfif::memes->{snnh}{wsi});
    $aws = ($Awfif::workspace-> {l} [$wspdsc] [3] - $Awfif::memes->{snnh}{wsi});
    $Awfif::memes-> {currentwsbi} = $stws;
# relcatru1
    $catref = findtdesc ($Awfif::wsol-> {l} [$awspwso] [2], $Awfif::memes-> {snnh} {catref});
    if (($catref != 0)) {

      $catdesc = ($Awfif::workspace-> {l} [$catref] [2] - $Awfif::memes-> {snnh}{wsi});
      }#if
    else {

      $catdesc = findtdesc ($Awfif::wsol-> {l} [$awspwso] [2], $Awfif::memes-> {snnh} {catalysis});
      };
# if catalysis enabled release & free any grabbed codelets

    if (($catdesc != 0)) {#terminate the catalysis

      while (($Awfif::workspace-> {l} [$catdesc] [2] != 0)) {#associate the binder complex current ws string with the builder codelet

        my ($hcodelet);
        $hcodelet = $Awfif::workspace-> {l} [$catdesc] [2];
        $Awfif::codelet-> {l} [$Awfif::workspace-> {l} [$catdesc] [2]] [34] = 0;#this codelet can now be freed by freecodelet
        $Awfif::harray-> {tce} [$Awfif::codelet-> {l} [$myli] [36]]-> {typecodeleta} {$Awfif::harray-> {tce} [$Awfif::codelet-> {l} [$myli] [36]]-> {codelettypea} {$Awfif::workspace-> {l} [$catdesc] [2]}} = undef ();#dis-associate the binder complex current ws string with the builder codelet
        $Awfif::harray-> {tce} [$Awfif::codelet-> {l} [$myli] [36]]-> {codelettypea} {$Awfif::workspace-> {l} [$catdesc] [2]} = undef ();#dis-associate the binder complex current ws string with the builder codelet
        $Awfif::workspace-> {l} [$catdesc] [2] = mhcodelettoactltail ($Awfif::workspace-> {l} [$catdesc] [2]);#move the codelet to the head of the catalysis list
        &freecodelet ($hcodelet, 1);
        };#while
      $Awfif::workspace-> {l} [$catdesc] [4] = $Awfif::workspace-> {l} [$catdesc] [4]+1;
      };#if catalysis setup

    $Awfif::memes-> {currentwsbi} = $cwsi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("relcodeletsx\n");
      };
    }# relcodelets
#
#<!-- start tag aso -->
#
sub inewlist {
    my ($myli, $cws, $bcwso, $sponsor, $sldesc, $grkwp, $grkwpr, $binding, $amkrwso) = @_;
#
# setup a list description - listhead, listlink, recordhead
    my ($abcwso, $cwsbi, $slhdesc, $slldesc, $cwsbi);
#
# inverted from slistkwbuilder
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("inewlist sponsor $sponsor grkwp $$grkwp grkwpr $grkwpr binding $binding ");
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
# checks the list start list for a head reference. If none exists initialise one in the context wso
    if ( ( ($slhdesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listhead})) != 0 )
    && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
    ){#have identified there is a list head get the associated list link

      $slldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listlink});
      }# if head exists
    else {# create the head & list link descriptors

      $Awfif::wsol-> {l} [$abcwso][2]
        = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws), #should probably be the app kw mf ref as a type differentiator
            ($Awfif::memes-> {snnh} {wsi} + $bcwso), #point this to where the list link has been initialised
            $Awfif::memes-> {snnh} {listhead},
            $Awfif::wsol-> {l} [$abcwso] [2],
            $abcwso);

      $slhdesc = $Awfif::wsol-> {l} [$abcwso] [2];
      $Awfif::wsol-> {l} [$abcwso][2]
        = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
            ($Awfif::memes-> {snnh} {wsi} + 0),
            $Awfif::memes-> {snnh} {listlink},
            $Awfif::wsol-> {l} [$abcwso] [2],
            $abcwso);
      $slldesc = $Awfif::wsol-> {l} [$abcwso] [2];
      };#else
# slistkwbuildercstb
# deploy <mkwordref> the listref wso for this list structure
    my ($buffer, $insymbol, @inmsymbol, @started, $end, $depstag, $depttag, $dephtag, $setwsclinv);

    $buffer = '<mkwordref>';
    $depstag = '';
    $depttag = 0;
    $dephtag = 0;
    $insymbol = '';
    @inmsymbol = ();
    $started[0] = 0;
    $started[1] = 't';
    $setwsclinv = '';
    &convbws ($myli, \$buffer, \$$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $cws, $binding,
        $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {budesc}],
        '', #dont energize the base type
        \$setwsclinv
        );
# deploy an initialised record head descriptor in the <mkwordref> wso
    my ($mkrwso, $chead);

    $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
    $$amkrwso = awsoadr ($mkrwso);
    $Awfif::wsol-> {l} [$$amkrwso][2]
      = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
          ($Awfif::memes-> {snnh} {wsi} + 0),
          $Awfif::memes-> {snnh} {recordhead},
          $Awfif::wsol-> {l} [$$amkrwso] [2],
          $$amkrwso);
# deploy an initialised record link descriptor in the <mkwordref> wso

    $Awfif::wsol-> {l} [$$amkrwso][2]
      = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
          ($Awfif::memes-> {snnh} {wsi} + 0),
          $Awfif::memes-> {snnh} {recordlink},
          $Awfif::wsol-> {l} [$$amkrwso] [2],
          $$amkrwso);
# deploy an initialised list next descriptor to the <mkwordref> wso
# have to get the listlink in the current head

    $chead = ($Awfif::workspace-> {l} [$slhdesc] [2] - $Awfif::memes-> {snnh} {wsi});
    $slldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($chead)] [2], $Awfif::memes-> {snnh} {listlink});
# update this which should be initialised with the address of the <mkwordref> where the next listlink is being deployed
    $Awfif::workspace-> {l} [$slldesc] [2] = $Awfif::workspace-> {l} [$slldesc] [2] + $mkrwso;
    $Awfif::wsol-> {l} [$$amkrwso][2]
      = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
          ($Awfif::memes-> {snnh} {wsi} + 0),
          $Awfif::memes-> {snnh} {listlink},
          $Awfif::wsol-> {l} [$$amkrwso] [2],
          $$amkrwso);
# update the list head
    $Awfif::workspace-> {l} [$slhdesc] [2] = $mkrwso + $Awfif::memes-> {snnh} {wsi};
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("inewlistx\n");
      };
    }#inewlist
#
sub inewrcd {
    my ($myli, $cws, $bcwso, $sponsor, $sldesc, $slhdesc, $grkwp, $grkwpr, $binding, $amkrwso) = @_;
#
# setup a list description - listhead, listlink, recordhead
    my ($abcwso, $cwsbi, $cwsbi);
#
# inverted from slistkwbuilder
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("inewrcd sponsor $sponsor grkwp $$grkwp grkwpr $grkwpr binding $binding ");
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
# if its ok then deploy <recordref> really an mkwordref to the record wso
    my ($buffer, $insymbol, @inmsymbol, @started, $end, $depstag, $depttag, $dephtag, $setwsclinv);

    $buffer = '<mkwordref>';
    $depstag = '';
    $depttag = 0;
    $dephtag = 0;
    $insymbol = '';
    @inmsymbol = ();
    $started[0] = 0;
    $started[1] = 't';
    $setwsclinv = '';
    &convbws ($myli, \$buffer, \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $cws, $binding,
        $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {budesc}],
        '',#dont energize the base concepts
        \$setwsclinv
        );
# dirrdcwso1
# deploy an initialised record ref descriptor in the <mkwordref> wso
    my ($mkrwso);

    $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
    $$amkrwso = awsoadr ($mkrwso);
    $Awfif::wsol-> {l} [$$amkrwso][2]
      = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})),
          ($Awfif::memes-> {snnh} {wsi} + ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi})),
          $Awfif::memes-> {snnh} {record},
          $Awfif::wsol-> {l} [$$amkrwso] [2],
          $$amkrwso);
# deploy an initialised record link descriptor in the <mkwordref> wso

    $Awfif::wsol-> {l} [$$amkrwso][2]
      = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
          ($Awfif::memes-> {snnh} {wsi} + 0),
          $Awfif::memes-> {snnh} {recordlink},
          $Awfif::wsol-> {l} [$$amkrwso] [2],
          $$amkrwso);
# lrhlltwso1
# link the record head's link to the record mkwordref and move the record head wso address

    my ($rcdhwso, $rcdlwso, $rcdhdesc);
    $rcdhwso = $Awfif::workspace->{l} [$slhdesc][2] - $Awfif::memes-> {snnh} {wsi};
    $rcdhdesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($rcdhwso)] [2], $Awfif::memes-> {snnh} {recordhead});
    $rcdlwso = $Awfif::workspace->{l} [$rcdhdesc][2] - $Awfif::memes-> {snnh} {wsi};
    $Awfif::workspace-> {l} [$rcdhdesc] [2] = $mkrwso + $Awfif::memes-> {snnh} {wsi};
# link the previous record head's record link to the record mkwordref
# if the record head is 0 its initialised and we should use the listhead for the record link wso address

    my ($rcdldesc);
    if ($rcdlwso != 0) {
      $rcdldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($rcdlwso)] [2], $Awfif::memes-> {snnh} {recordlink});
      }#if
    else {#initial link is co-resident in the wso with the head descriptor
      $rcdldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($rcdhwso)] [2], $Awfif::memes-> {snnh} {recordlink});
      };#else
    $Awfif::workspace-> {l} [$rcdldesc] [2] = $mkrwso + $Awfif::memes-> {snnh} {wsi};
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("inewrcdx\n");
      };
    }#inewrcd
#
sub depcmodel {
    my ($myli, $iws, $recordi, $arecordi, $token, $casefor, $target) = @_;
#
# deploy a case model -
    my ($seldsc, $cwsbi, $ws);
#
# inverted from icrsmoxbuilder
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("depcmodel myli $myli token $token casefor $casefor target $target ");
      if ( (defined ($recordi)) ){

        print ("recordi($recordi) ");
        };#if
      if ( (defined ($iws)) ){

        print ("iws($iws) ");
        }#if
      else {
        print ("currentwsbi($Awfif::memes->{currentwsbi}) ");
        };#else
      if ( (defined ($arecordi)) ){

        print ("arecordi($arecordi) ");
        };#if
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if (defined ($iws)) {

      $ws = $iws;
      }#if
    else {

      $ws = $Awfif::memes-> {currentwsbi};
      };#else
    if (defined ($recordi)) {

      if ((!defined ($arecordi)) ){

        $Awfif::memes-> {currentwsbi} = $ws;
        $arecordi = awsoadr ($recordi);
        };#if
      if ((($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {casemodel})) == 0)
      or ($Awfif::workspace-> {l} [$seldsc] [11] != $token)
      ){

        $Awfif::wsol-> {l} [$arecordi][2]
          = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $casefor),
              ($Awfif::memes-> {snnh} {wsi} + $target),
              $Awfif::memes-> {snnh} {casemodel},
              $Awfif::wsol-> {l} [$arecordi][2],
              $arecordi);
        $Awfif::workspace-> {l} [ $Awfif::wsol-> {l} [$arecordi][2]] [10] = $Awfif::memes-> {snnh} {casedeploys};
        $Awfif::workspace-> {l} [ $Awfif::wsol-> {l} [$arecordi][2]] [11] = $token;
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("depcmodelx\n");
      };
    }#depcmodel
#
sub findcot {
    my ($myli, $token, $targsel, $ival, $i, $caseop, $target) = @_;
#
# find caseop & target -
    my ($aws, $cwsbi, $conforms, $descfits, $count, $caseopupd, $targetupd );
#
# inverted from icrsmoxbuilder
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr, $pr2);
      $pr = $Awfif::memes-> {snnih} {$token};
      $pr2 = $Awfif::memes-> {snnih} {$targsel};
      print ("findcot myli $myli token $pr($token) targsel $pr2($targsel) ");
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $targetupd = '';
    $caseopupd = '';
    if ( ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [ $$ival [$i] ] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
    && (($count = findgm ($myli, ($Awfif::workspace-> {l} [ $$ival [$i] ] [12]), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
      $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {case},
      $Awfif::memes-> {snnh} {andcategory}, $targsel,
      $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {instance},
      $Awfif::memes-> {snnh} {andcategory}, $token )>0))# <rhlcasertspo>
    && ($conforms)
    && ($descfits)
    ){

      $targetupd = 't';
      $$target = $$ival [$i];#target of for is selector in an if
      }#if
    elsif ( ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [ $$ival [$i] ] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
    && (($count = findgm ($myli, ($Awfif::workspace-> {l} [ $$ival [$i] ] [12]), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
      $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {instance},
      $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {value},
      $Awfif::memes-> {snnh} {andcategory}, $token,
      $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {small},
      $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {case} )>0))# <rhlcaseisspo>
    && ($conforms)
    && ($descfits)
    ){

      $caseopupd = 't';if ($token == $Awfif::memes-> {snnh} {$Awfif::memes-> {findcotd}}) {&break ()};
      $$caseop = $$ival [$i];
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("findcotx count($count) ");
      if ($targetupd) {
        print ("target($$target) ");
        };#if
      if ($caseopupd) {
        print ("caseop($$caseop) ");
        };#if
      print ("\n");
      };
    }#findcot
#
sub listival {
    my ($myli, $iws, $recordi, $arecordi, $ival, $token, $modeled) = @_;
#
# find caseop & target -
    my ($linki, $ws, $cwsbi, $ivalc );
#
# inverted from icrsmoxbuilder
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr);
      print ("listival myli $myli ");
      if ( (defined ($recordi)) ){

        print ("recordi($recordi) ");
        };#if
      if ( (defined ($iws)) ){

        print ("iws($iws) ");
        }#if
      else {
        print ("currentwsbi($Awfif::memes->{currentwsbi}) ");
        };#else
      if ( (defined ($arecordi)) ){

        print ("arecordi($arecordi) ");
        };#if
      if ( (defined ($token)) ){

        $pr = $Awfif::memes-> {snnih} {$token};
        print ("token $pr($token) ");
        };#if
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if (defined ($iws)) {

      $ws = $iws;
      }#if
    else {

      $ws = $Awfif::memes-> {currentwsbi};
      };#else
    if (defined ($recordi)) {

      if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
        &itwsoutput ($recordi);
        };
      if ((!defined ($arecordi)) ){

        $Awfif::memes-> {currentwsbi} = $ws;
        $arecordi = awsoadr ($recordi);
        };#if
      $linki = $Awfif::wsol-> {l} [ $arecordi] [2];
      }#if
    else {

      $linki = 0;
      };#else
    $ivalc = 0;
    @$modeled = ();
    while ( ($linki != 0)
    ){

      if ($Awfif::workspace-> {l} [$linki] [4] == $Awfif::memes-> {snnh} {ivalue}) {

        $$ival [$ivalc++] = $linki;
        };#if
# if find a matching model it means already processed the rest of this workspace
      if (($Awfif::workspace-> {l} [$linki] [4] == $Awfif::memes-> {snnh} {casemodel})
      && ($Awfif::workspace-> {l} [$linki] [11] == $token)
      ){

        $$modeled [$ivalc] = 't';#should end up signalling during the pair
        };#if
      $linki = $Awfif::workspace-> {l} [ $linki] [0];
      };#while
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("listivalx ret($ivalc)\n");
      };
    return $ivalc
    }#listival
#
sub ibawswalk {
    my ($myli, $sponsor, $stwso, $mstrategy, $sstrategy, $sactset, $bcount, $msws, $msb, $bws, $bbwso) = @_;
#
# setup base addressing for workspace walk
# mstrategy might be binderp1
# sstrategy might be bindercs or equivalent
    my ($cwsbi, $kwp, $kwpr);
    my ($proceed, $bwsdesc, $amsb, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
#
# inverted from icrsmoxbuilder
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ibawswalk myli $myli stwso $stwso mstrategy($mstrategy) sstrategy($sstrategy) ");
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $proceed = '';
    if ($Awfif::codelet-> {l} [$myli] [36] == 0) {#setup the base addressing for walking the case workspace

      $$bcount = ifindb ($myli, $stwso, $mstrategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
      $$msb = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$$msws);
# now need to find the ws and base wso the slistkwbuilder described and switch to it

      $Awfif::memes-> {currentwsbi} = $$msws;
      $amsb = awsoadr ($$msb);
      if (($bwsdesc = findtdesc ($Awfif::wsol-> {l} [ $amsb] [2], $Awfif::memes-> {snnh} {slistkwevaluator})) != 0
      ){# if undefined foundgap then no records to process; if foundgap == false then records exist but not a gap; if foundgap == t then should model the gap

        $$bbwso = ($Awfif::workspace-> {l} [$bwsdesc] [2] - $Awfif::memes-> {snnh} {wsi});
        $$bws = $Awfif::workspace-> {l} [$bwsdesc] [3];
        $proceed = 't';
        };#if
      }#if
    else {#subprogram

      $$bcount = ifindb ($myli, $sponsor, $sstrategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
      if ($$bcount == 1) {

        $proceed = 't';
        $$bbwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$$bws);
        };#if
      };#else subprogram
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ibawswalkx bcount($$bcount) msws($$msws) msb($$msb) bws($$bws) bbwso($$bbwso) ret($proceed)\n");
      };
    return $proceed
    }#ibawswalk
#
sub findgap {
    my ($myli, $arecordi, $kwdi, $req2, $req3, $req4, $term4, $term10, $term11, $ivalue) = @_;
#
# find any gap to be filled -
    my ($linki, $cwsbi, $gap, $found, $completed );
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr, $pr1, $pr2, $pr3, $pr4, $pr10, $pr11);
      $pr2 = $Awfif::memes-> {snnih}{$req2};
      $pr3 = $Awfif::memes-> {snnih}{$req3};
      $pr4 = $Awfif::memes-> {snnih}{$req4};
      $pr = $Awfif::memes-> {snnih}{$term4};
      $pr10 = $Awfif::memes-> {snnih}{$term10};
      $pr11 = $Awfif::memes-> {snnih}{$term11};
      $pr1 = $Awfif::memes-> {snnih}{$ivalue};
      print ("findgap myli $myli kwdi($kwdi) req2($req2:$pr2) req3($req3:$pr3) req4($req4:$pr4) term4($term4:$pr) term10($term10:$pr10) term11($term11:$pr11) ivalue($ivalue:$pr1) ");
      &itwsoloutput ($arecordi);
      };

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $gap = '';
    $found = '';
    $linki = $kwdi;
    while ( ($linki != 0) && (!$found)
    ){

      if (($Awfif::workspace-> {l} [$linki] [4] == $req4)
      && ($Awfif::workspace-> {l} [$linki] [3] == $req3)
      && ($Awfif::workspace-> {l} [$linki] [2] == ($req2 + $Awfif::memes-> {snnh} {wsi}))
      ){

        $found = 't';
        $completed = '';
        $linki = $kwdi;#have found the required descriptor
        while ( ($linki != 0) && (!$completed)
        ){
# if find a matching model it means already processed the rest of this workspace

          if (($Awfif::workspace-> {l} [$linki] [4] == $term4)
          && ($Awfif::workspace-> {l} [$linki] [10] == $term10)
          && ($Awfif::workspace-> {l} [$linki] [11] == $term11)
          ){

            $completed = 't';#should end up signalling during the pair
            }#if
          elsif (($Awfif::workspace-> {l} [$linki] [4] == $ivalue)
          ){
            $gap = 't';
            $completed = 't';
            };#elsif
          $linki = $Awfif::workspace-> {l} [ $linki] [0];
          };#while
        };#if
      if (!$found) {
        $linki = $Awfif::workspace-> {l} [ $linki] [0];
        };#if
      };#while
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("findgapx ret($gap)\n");
      };
    return $gap
    }#findgap
#
#<!-- start tag al -->
#
sub ifindb {# see if there is a bound workspace with the schematic string
    my($myli, $sti, $strategy, $sigcount, $lomatchs, $lola, $loconcs, $lostrts, $loends, $logb, $loge, $kwp, $kwpr, $sactset, $stws, $issubp, $subp, $dontcallbreak, $dontusebice)=@_;
    my ($i, $bcount, $linki, $cwsbi, $static, $labcount, $hchain, $srws, $erws);
    my (@lab );

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr);
      $pr = $Awfif::memes-> {currentwsbi};
      print ("ifindb myli $myli currentwsbi $pr ");
      };
# updated for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;

    $static = '';
    $labcount = $Awfif::memes-> {binds}-> {$strategy}->
        ($myli, $sti, \@lab, $kwp, $kwpr, \@$sactset, \$static);
# ifindbcrelu1

    $srws = 0; #must be defined for relifindb
    $erws = 0; #must be defined for relifindb
    &relifindb ($myli, \$Awfif::ifbhcl, \$srws, \$erws);

    if (((!defined ($dontusebice)) or (!$dontusebice))
    && (($linki = getifb ($myli, $strategy, $labcount, \@lab, \$hchain, $subp, $stws, $srws, $erws)) != 0)
    && ($hchain != 0)
    ) {#usebice cache setup

      $$sigcount = usebice ($Awfif::ifbhcl-> {l} [$linki][4], \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge);
      $bcount = $Awfif::bicl-> {l} [$Awfif::ifbhcl-> {l} [$linki][4]][3];
      }#if
    else {

      if ((defined ($stws)) && (defined ($srws)) && (defined ($erws)) ){#use structural ws sequence for search

        $$sigcount = labinv2 ($myli, \@lab, $labcount, \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge, 'wsseqstbinding', undef (), $srws, $erws);
        }#if
      elsif ((!defined ($stws)) && (defined ($srws)) && (defined ($erws)) ){#use specific stws only for search

        $$sigcount = labinv2 ($myli, \@lab, $labcount, \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge, 'wsseqoporstbinding', undef (), $srws, $erws);
        }#elsif
      elsif ((defined ($stws)) && (defined ($issubp)) ){#use specific stws only for search

        $$sigcount = labinv2 ($myli, \@lab, $labcount, \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge, 'specsubpstonly', $stws);
        }#elsif
      elsif ((defined ($stws)) ){#use specific stws only for search

        $$sigcount = labinv2 ($myli, \@lab, $labcount, \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge, 'specstonly', $stws);
        }#elsif
      else {

        $$sigcount = labinv2 ($myli, \@lab, $labcount, \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge, 'onlyoporstbinding');
        };#else
      if ($$sigcount > 0) {

        for ($i = 0; $i < $$sigcount; $i++) {
          if ($$lomatchs[$i]) {

            if ( (defined ($issubp))
            && ($Awfif::jhls-> {l} [$$lola[$i]][4] == $issubp)
            ){
              $bcount++;
              }#if
            elsif (($Awfif::jhls-> {l} [$$lola[$i]][4] == $Awfif::memes-> {snnh}{subpstbinding}) && ( ($$lola[$i] == $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [4]) or ($$lola[$i] == $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [8]) or ($$lola[$i] == $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [5])) ) {

              $bcount++;
              }#elsif
            elsif ($Awfif::jhls-> {l} [$$lola[$i]][4] == $Awfif::memes-> {snnh}{stbinding}) {

              $bcount++;
              }#elsif
            else {
              $$lomatchs [$i] = '';
              };#else ignore this one
            };#if
          };#for
        };#if
      if ( ($bcount > 0)
      && ((!defined ($dontusebice)) or (!$dontusebice)) ) {
# ifindbcrelu2

        &addifb ($myli, $strategy, $labcount, \@lab, addbice ($Awfif::memes-> {currentwsbi}, $bcount, 5, $$sigcount, \@$lomatchs, \@$lola, \@$loconcs, \@$lostrts, \@$loends, \@$logb, \@$loge), $subp, $stws, $srws, $erws);
        };#stable answer can be cached
      };#else
    if (($bcount == 0)
    && !($dontcallbreak)
    ){

      &break ();
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ifindbx ret ($bcount)\n");
      };
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    return $bcount
    }# ifindb
#
#
sub icompletesc {
    my ($myli, $strategy, $sponsor, $cws, $kwp, $kwpr, $sactset, $rbdwso) = @_;
    my ($launch);
# complete schematic structure when detect end sequence
#

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("icompletesc myli $myli strategy($strategy) sponsor($sponsor) ");
      };
    $launch = '';
    my (@typel, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $bdwso, $cwsbi, $aws);
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $typel[0] = wsbasetype (trwsoadr ($twso, -3));
    $typel[1] = wsbasetype (trwsoadr ($twso, -2));
    $typel[2] = wsbasetype (trwsoadr ($twso, -1));
    if ($strategy ne 'unbindbuilder'){

      $typel[2] = $Awfif::memes-> {snnh} {unbind};
      };#if

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$$cws);
      if (defined($rbdwso)){

        $$rbdwso = $bdwso;
        };#if
      my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $$cws;

      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 3), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $typel [0],
        $Awfif::memes-> {snnh} {tokencategory}, $typel [1],
        $Awfif::memes-> {snnh} {tokencategory}, $typel [2])>0))
      && ($conforms)
      && ($descfits)
      ){#launch builder

        $launch = 't';
        };#if
      };#if binderc
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("icompletescx cws($$cws) ret($launch)\n");
      };
    return $launch
    }# icompletesc
#
#<!-- end tag aso -->
#<!-- end tag scc -->
#
sub iskipw {# inversion of part of skipwso
    my($myli, $sldesc, $cws, $aws, $abcwso, $ischemaforoff)=@_;
    my ($cwsbi, $schemafor, $descfits, $conforms, $count, $nwsoid, $schemaforoff );

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr, $pr2);
      $pr = $Awfif::workspace-> {l}[$sldesc] [3] - $Awfif::memes-> {snnh}{wsi};
      $pr2 = $Awfif::workspace-> {l}[$sldesc] [2] - $Awfif::memes-> {snnh}{wsi};
      print ("iskipw myli $myli sldesc $sldesc($pr:$pr2) cws $cws aws $aws abcwso $abcwso ");
      if (defined ($ischemaforoff) ){
        print ("ischemaforoff($ischemaforoff) ");
        };#if
      };
# updated for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $schemaforoff = 0;
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    if (defined ($ischemaforoff) ){
      $schemaforoff = $ischemaforoff;
      };#if
    $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], (2 + $schemaforoff)));
# now go past any ignore chars
    $Awfif::memes-> {currentwsbi} = $aws;

    while ( ((!defined ($nwsoid)) or ($nwsoid != 0) )
    && (( (wsbasetype($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi})) == $Awfif::memes-> {snnh} {ichar} )
    or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
    $Awfif::memes-> {snnh} {tokencategory}, $schemafor )==0)) )
    ){#have identified this is an ignore char so move past it
# move the workspace position

      $Awfif::memes-> {currentwsbi} = $cws;
      $nwsoid = movecomplex ($myli, $sldesc, 1, $abcwso);
      $Awfif::memes-> {currentwsbi} = $aws;
      };#while

    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iskipwx\n");
      };
    }# iskipw
#
#
sub developmenti1 {# setup the labels for development initiator signaling
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (iinitiators1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 'development'));
    }# developmenti1
#
sub binderp11 {# setup the labels for binder base context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("binderp11 myli $myli sti $sti ");
      if (defined ($kwp)) {
        print ("kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
        };#if
      };
# updated for merged workspaces

    $labcount = 0;

    $labcount = labload (\@$lab, $labcount, wsbasetype ($Awfif::codelet-> {l} [$myli][21]));
    if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] > 0) ){

      $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {subprogram});
      };#if
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {sequence});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {integration});

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("binderp11x ret ($labcount)\n");
      };
    return $labcount
    }# binderp11
#
sub binderc1 {# setup the labels for binder indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount, $i, $cwsbi, $conforms, $ssloc, $shistone, $ri);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("binderc1 myli $myli sti $sti ");
      if (defined ($kwp)) {
        print ("kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
        };#if
      };
# updated for merged workspaces

    $labcount = 0;

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    for ($i = trwsoadr($Awfif::codelet-> {l} [$myli][21],2);
    ( (!($shistone = chmdefis ($myli, trwsoadr ($i,-1), $Awfif::memes-> {snnh}{histone}, \$conforms)))
    && ($i != trwsoadr ($Awfif::codelet-> {l} [$myli][22],-2) )
    && ($ri = $i)
    && (!($ssloc = chmdefis ($myli, trwsoadr ($i,2), $Awfif::memes-> {snnh}{sloc}, \$conforms))));
    $i = trwsoadr ($i,1)) {

      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    if ($shistone) {#already done it

      if ($Awfif::memes-> {binderchis}) {&break()};
      }#if
    elsif ($ssloc) {

      $labcount = labload (\@$lab, $labcount, wsbasetype ($ri));
      }#elsif
    else {

      $labcount = labload (\@$lab, $labcount, wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli][22],-2)));
      };#else
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {sequence});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {integration});
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("binderc1x ret ($labcount)\n");
      };
    return $labcount
    }# binderc1
#
#<!-- start tag aso -->
#
sub ibindervc1 {# setup the labels for app complex indirect context (with variable end)
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static, $tback, $ihforward)=@_;
    my ($labcount, $i, $initi, $hforward, $cwsbi);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindercs1 myli $myli sti $sti ");
      if (defined ($ihforward)) {
        print ("ihforward($ihforward) ");
        };#if
      if (defined ($kwp)) {
        print ("kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
        };#if
      };
# updated for merged workspaces

    $labcount = 0;
    if (defined ($ihforward)) {

      $hforward = $ihforward;
      }#if
    else {

      $hforward = 2;
      };#else

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    for ($i = ($initi = trwsoadr($Awfif::codelet-> {l} [$myli][21], $hforward));
    $i != trwsoadr ($Awfif::codelet-> {l} [$myli][22], - $tback, $initi);
    $i = trwsoadr ($i,1)) {

      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    $labcount = labload (\@$lab, $labcount, wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli][22], - $tback)));
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {sequence});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {integration});
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindervc1x ret ($labcount)\n");
      };
    return $labcount
    }# ibindervc1
#
#<!-- end tag aso -->
#<!-- end tag vbt -->
#
sub bindercs1 {# setup the labels for semantic binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 3));
    }# bindercs1
#
#<!-- start tag vbt -->
#
sub binderc41 {# setup the labels for vbttom00nc binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 4));
    }# binderc41
#
sub binderc71 {# setup the labels for vbttom00c10 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 7));
    }# binderc71
#
sub binderc91 {# setup the labels for vbttom00c10c01 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 9));
    }# binderc91
#
sub binderc101 {# setup the labels for vbttom00c10c00 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 10));
    }# binderc111
#
sub binderc111 {# setup the labels for vbttom00c10c01c00 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 11));
    }# binderc111
#
sub binderc131 {# setup the labels for vbttom01c00c11c02 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 13));
    }# binderc131
#
sub binderc161 {# setup the labels for vbttom01c00c01c11c02 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 16));
    }# binderc161
#
sub binderc191 {# setup the labels for vbttom11c21c11c12c01c10 binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 19));
    }# binderc191
#<!-- end tag vbt -->
#
#
sub bindercs21 {# setup the labels for semantic binder complex indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 4));
    }# bindercs21
#
#<!-- start tag aso -->
#<!-- start tag sir -->
#
sub bindercst1 {# setup the labels for binder indirect context
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount, $i, $cwsbi, $conforms, $ssloc, $shistone, $ri);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindercst1 myli $myli sti $sti ");
      if (defined ($kwp)) {
        print ("kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
        };#if
      };
# updated for merged workspaces

    $labcount = 0;

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    for ($i = trwsoadr($Awfif::codelet-> {l} [$myli][21],2);
    ( (!($shistone = chmdefis ($myli, trwsoadr ($i,-1), $Awfif::memes-> {snnh}{histone}, \$conforms)))
    && ($i != trwsoadr ($Awfif::codelet-> {l} [$myli][22],-2) )
    && ($ri = $i)
    && (!($ssloc = chmdefis ($myli, trwsoadr ($i,2), $Awfif::memes-> {snnh}{sloc}, \$conforms))));
    $i = trwsoadr ($i,1)) {

      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    if ($shistone) {#already done it

      if ($Awfif::memes-> {binderchis}) {&break()};
      }#if
    elsif ($ssloc) {

      $labcount = labload (\@$lab, $labcount, wsbasetype ($ri));
      }#elsif
    else {

      $labcount = labload (\@$lab, $labcount, wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli][22],-2)));
      };#else
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {sequence});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {integration});
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindercst1x ret ($labcount)\n");
      };
    return $labcount
    }# bindercst1
#
#<!-- end tag sir -->
#<!-- end tag aso -->
#<!-- start tag vbt -->
#
sub casoppi1 {# setup the labels for development integration
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount, $i, $cwsbi);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("casoppi1 myli $myli sti $sti ");
      if (defined ($kwp)) {
        print ("kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
        };#if
      };
# updated for merged workspaces
    $cwsbi = $Awfif::memes-> {currentwsbi};

    $labcount = 0;

    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $labcount = labload (\@$lab, $labcount, wsbasetype ($Awfif::codelet-> {l} [$myli][21]));
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {schema});
    for ($i = trwsoadr ($Awfif::codelet-> {l} [$myli][21], 4);
    $i != $Awfif::codelet-> {l} [$myli][22];
    $i = trwsoadr ($i,1)) {
      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    $labcount = labload (\@$lab, $labcount, wsbasetype ($Awfif::codelet-> {l} [$myli][22]));
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("casoppi1x ret ($labcount)\n");
      };
    return $labcount
    }# casoppi1
#
#<!-- end tag vbt -->
#<!-- start tag aso -->
#
sub iinitiators1 {# setup the labels for complex initiator signaling
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static, $strategy)=@_;
    my ($labcount, $i);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iinitiators1 myli $myli sti $sti kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# updated for merged workspaces

    $labcount = 0;

    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {$strategy});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {schema});
    for ($i = $Awfif::codelet-> {l} [$myli][21]; $i != $Awfif::codelet-> {l} [$myli][22];$i = trwsoadr ($i,1)) {
      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    $labcount = labload (\@$lab, $labcount, wsbasetype ($Awfif::codelet-> {l} [$myli][22]));
    $labcount = labload (\@$lab, $labcount, wsbasetype ($sti));

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iinitiators1x ret ($labcount)\n");
      };
    return $labcount
    }# iinitiators1
#
#<!-- end tag sca -->
#<!-- start tag vbt -->
#
sub mgpartevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    no strict 'refs';
    &imsalthrevaluator1 ($myli, \$$kwp, $kwpr, \@$sactset, 'mgpartbuilder');

    &clogstatx ();
    }# mgpartevaluator1
#
sub mgpartbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $found, $file, $swstype, $nextinstance,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# models must use the full workspace

    $found = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, undef(), \$cdn, \$cdnx, 3)) {
      my ($stfound, $twso);
      $stfound = selsaltypedwso ($myli, $swstype, \$nextinstance, \$twso, trwsoadr ($Awfif::codelet-> {l} [$myli][21],-1), $grkwpr, \@$sactset);
      if ($stfound > 0) {#lets check the following schemata's completeness
        my ($thrmet, $undecided, $wholetype);
        if (wsbasetype ($nextinstance) == $Awfif::memes-> {snnh}{development}) {
          $wholetype = $Awfif::memes-> {snnh} {devpwhole};
          }#if
        else {
          $wholetype = $Awfif::memes-> {snnh} {whole};
          };#else
        if (((findbond ($Awfif::wsol-> {l} [ awsoadr ($nextinstance)] [2], $wholetype, wsbasetype ($nextinstance), $Awfif::memes-> {snnh} {model})))) {
          $thrmet = 't';
          $undecided = '';
          } #if
        else {

          &updatelog ($myli,'ae', 5, $file);
          $thrmet = mgparts ($myli, $nextinstance, $twso, \$undecided, trwsoadr ($Awfif::codelet-> {l} [$myli][21],-1), $grkwpr, \@$sactset);
# if threshold met then allow checking to proceed
          if ((!(findbond ($Awfif::wsol-> {l} [ awsoadr ($nextinstance)] [2], $wholetype, wsbasetype ($nextinstance), $Awfif::memes-> {snnh} {model}))) && (!$undecided) && ($thrmet)) {
            my ($afrom);
# didn't find any unresolved objects or fail the thresholding so

            $afrom = awsoadr ($nextinstance);
            $Awfif::wsol-> {l} [$afrom][2]
              = setupdesc ( ($swstype),
              ($Awfif::memes-> {snnh} {wsi} + $wholetype), #to match findbond
              $Awfif::memes-> {snnh} {model},
              $Awfif::wsol-> {l} [$afrom][2],
              $afrom);
# if only one for thresholding reduce its activity
            }
          elsif ((!(findbond ($Awfif::wsol-> {l} [ awsoadr ($nextinstance)] [2], $Awfif::memes-> {snnh} {dropopcheck}, wsbasetype ($nextinstance), $Awfif::memes-> {snnh} {model}))) && (!$thrmet)) {
            my ($afrom);
# otherwise switch to some other test add model descriptor saying no thresholding

            $afrom = awsoadr ($nextinstance);
            $Awfif::wsol-> {l} [$afrom][2]
              = setupdesc ( ($swstype),
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {dropopcheck}), #to match findbond
              $Awfif::memes-> {snnh} {model},
              $Awfif::wsol-> {l} [$afrom][2],
              $afrom);
# if only one for thresholding reduce its activity
            };
          };
        };
      };#got target wso

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      if (defined ($kwp)) {
        print ("kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
        };#if
      };
    &clogstatx ();
    }# mgpartbuilder1
#
#<!-- end tag ssc -->
#<!-- end tag swp -->
#<!-- start tag vbt -->
#<!-- start tag scl -->
#
sub idevevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset, $sscon, $sgetab, $sbuilder) = @_;
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abdwso,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# development codelet responds to group complete that includes its operon
    $noswstype = 't';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {
      my ($stwso, $astwso, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

# Find the statement wso and obtain any stream descriptions - These should include important streams for development
      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# if the statement does not have stream descriptions for the builder to work on give up
      if ((findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {stream}) != 0)
      or ($sbuilder =~ /vbt/i)
# the builder will need to deal with istream structures too but no point if there is no direct stream they would be described in
# Otherwise need to setup the builder so that it sees the key context wso immediately after the operon starts
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# devevalubo1
        if (ifindupri ($myli, $sponsor, $sscon, undef(), undef(), undef(), undef(), undef(),'t')
# devevalubo2
        && (getabdwso ($myli, $sponsor, $sgetab, \$abdwso))
        && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {model}))
        ){#

          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# devevalubo3
          &dropsalience ($myli, $sponsor, $sscon);
          }#if
        else {
          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
          };#else
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {

          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {

          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = $sbuilder;
        $Awfif::clp-> {action}-> {sponsor} = $sponsor+1;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21]+1;
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        $Awfif::clp-> {action}-> {wsoname} = 0;
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), $sbuilder, $kwp, $kwpr, \@$sactset);
        }
      else {#report error no direct stream found

        my ($awss);
        $awss = awsoadr ($Awfif::codelet-> {l} [$myli][21]);
        $Awfif::wsol-> {l} [$awss][2]
        = setupdesc ( $Awfif::memes-> {snnh} {devcsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {devevaluator},
            $Awfif::wsol-> {l} [$awss] [2],
            $awss);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# idevevaluator1
#<!-- end tag vbt -->
#<!-- end tag scl -->
#
sub devevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &idevevaluator1 ($myli, \$$kwp, $kwpr, \@$sactset, 'devscon', 'developmentb', 'devbuilder');
    }# devevaluator1
#
#<!-- start tag scl -->
#
sub idevbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset, $sscon, $sgetab, $sgetai) = @_;
    my ($sponsor, $sponsortype, $dwso, $adwso, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bdwso, $abdwso, $bcexists, $tws,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# look for development binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {
      my ($stwso, $astwso, $streamdscid, $giveup);

      $sponsortype = wsbasetype ($sponsor);
      $dwso = igetmynowner ($myli, $sponsor, 'budevelopment', $grkwp, $grkwpr);
# Find the statement wso and obtain any stream descriptions - These should include important streams for development
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      if ($sscon !~ /vbt/i){
# The statement does have stream descriptions or the evaluator would not have called me

        $streamdscid = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {stream});
        $adwso = awsoadr ($dwso);
        };
# get the stream name

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $bcount = ifindb ($myli, $sponsor, $sgetab, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't');
      if ($bcount <= 0) {#create the binder structure
        my ($buffer);
# devbinitregu1
# can initialise the development regulatory structure

        $buffer = '<development>';
        &initschcon ($myli, \$buffer, \$$kwp, $kwpr, $sponsor);
# devbuildercstb

        $buffer = '<development><sequence><integration>';
        $tws = inewstws ($myli, \$buffer, \$grkwp, $grkwpr, $sponsor);
# idevbreward

        $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} + $Awfif::memes-> {batp};
        };#if
# now know there is a development integration binder ws locate the developmentb schemata
      if ( ifindb ($myli, $sponsor, $sgetab, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1) {
        $bcexists = 't';
        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$tws);
# The statement codelets stream descriptors are deployed to the <development> wso
        $Awfif::memes-> {currentwsbi} = $tws;
        $abdwso = awsoadr ($bdwso);
        if ( (findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {stream}) == 0)
        && ($sscon !~ /vbt/i)
        ){

          $Awfif::wsol-> {l} [$abdwso][2]
          = setupdesc ( $Awfif::workspace-> {l} [$streamdscid][3],
              $Awfif::workspace-> {l} [$streamdscid][2],
              $Awfif::workspace-> {l} [$streamdscid][4],
              $Awfif::wsol-> {l} [$abdwso] [2],
              $abdwso);
          };#if
        };# if find then update binder ws
      if (
      ($bcexists)
      && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {model}))
      ){
# devbuilderswdevi
# The builder [mps] signals the nucleus <development> <schema> [<wso 'string' provided by evaluator>]

        $Awfif::memes-> {currentwsbi} = $cwsbi;
        &ilaunchnc ($myli, $dwso, $sgetai, $Awfif::memes-> {snnh} {deviwhole}, \$giveup, $grkwp, $grkwpr, \@$sactset,
          '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
          undef (), #usetrans
          undef (), #transid
          undef (), #transtatus
          undef (), #subprogram
          undef (), #jhlabeli
          undef (), #jhlabeloi
          undef (), #newli
          undef (), #hiurg
          undef (), #usepooling
          ( (ifindupri ($myli, $sponsor, $sscon, undef(), undef(), undef(), undef(), undef(),'t'))
            && (getabdwso ($myli, $sponsor, $sgetab, \$abdwso))
            && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {model}))
          )#buildoffurg
          );
        };#if
# report that have initiated development integration activity

      if ((!findbond ($Awfif::wsol-> {l} [ $adwso][2], $Awfif::memes-> {snnh} {integration}, $Awfif::memes-> {snnh} {devcsp}, $Awfif::memes-> {snnh} {devbuilder})) ){
        $Awfif::wsol-> {l} [$adwso] [2]
        = setupdesc ( $Awfif::memes-> {snnh} {devcsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {integration}),
            $Awfif::memes-> {snnh} {devbuilder},
            $Awfif::wsol-> {l} [$adwso] [2],
            $adwso);
        };#if
# need to continue stimulating the dev activity until binder's next cascade sponsor describes taking control
# It will be deployed into the binder's context structural workspace

      if (
      ($bcexists)
      && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {development}, $Awfif::memes-> {snnh} {model})) ){

        my ($sgdi, $gsponsor);
# devbuildertfu
# can't free until loose sponsorship

# see 62.2.2.1 $Awfif::memes-> {temp} [$Awfif::memes-> {currentwsbi}] = $Awfif::memes-> {statementbtemp};
        if (!$Awfif::memes-> {tdgscramp}) {
          $Awfif::memes-> {tdgscramp} = 't';
          $Awfif::memes-> {tdgsurg} *= $Awfif::memes-> {tdgsramp};
          };#if
        &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor}, $sscon);
        &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
        $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        ¬gcompleted ($myli, $gsponsor, undef(), 't', $sscon);
        }#re stimulate dev activity
      else {
# must free once loose sponsorship

        &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, $sscon);
        };#else
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# idevbuilder1
#
#<!-- end tag scl -->
#<!-- end tag vbt -->
#
sub devbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &idevbuilder1 ($myli, \$$kwp, $kwpr, \@$sactset, 'devscon', 'developmentb', 'developmenti');
    }# devbuilder1
#
#
sub devinspector1 {
    my ($myli, $sws, $wss, $wse) = @_;

    &idevinspector1 ($myli, $sws, $wss, $wse, 'devscon');
    }# devinspector1
#
#<!-- start tag vbt -->
#
sub idevinspector1 {
    my ($myli, $sws, $wss, $wse, $scon) = @_;
    my ($result, $awss, $cwsbi,
    $cdn, $cdnx);
#
# checked for merged workspaces

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli sws $sws wss $wss wse $wse ");
      &itcpoutput ($myli);
      };
# check if the development structure descriptors have been deployed
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $result = iinspector1 ($myli, $sws, $wss, $wse, $Awfif::memes-> {snnh} {devcsp});
# now if result is false and find evaluator failure report perform active dev inspection role
    $awss = awsoadr ($wss);
    if ((findbond ($Awfif::wsol-> {l} [ $awss] [2], $Awfif::memes-> {snnh} {error}, $Awfif::memes-> {snnh} {devcsp}, $Awfif::memes-> {snnh} {devevaluator}))
      ) {
      my ($arcounter, $doretry);
# obscure the error report

      ¬deverror ($awss);
# check & deploy or increment retry count
      $doretry = '';
      if ((!findcounter ($Awfif::wsol-> {l} [ $awss] [2], $Awfif::memes-> {snnh} {inspector}, \$arcounter)) ){

        $Awfif::wsol-> {l} [$awss][2]
        = setupdesc ( $Awfif::memes-> {snnh} {iterator},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {zero} + 1),
            $Awfif::memes-> {snnh} {inspector},
            $Awfif::wsol-> {l} [$awss] [2],
            $awss);
        $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$awss][2]] [8] = $Awfif::memes-> {snnh} {iterator};
        $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$awss][2]] [9] = ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {zero} + 1);
        $doretry = 't';
        }
      else {#update retry counter

        if (($Awfif::workspace-> {l} [$arcounter] [2] - $Awfif::memes-> {snnh} {wsi}) < $Awfif::memes-> {mrework}) {

          my ($ampcount);
          $doretry = 't';
          $Awfif::workspace-> {l} [$arcounter] [2]++;
# amp descriptor caches
          &setusalcwsocache ($awss, undef(), (($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bugroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {delta}])), undef());
          $Awfif::wsol-> {l} [$awss][2]
            = inccounter (
              undef (),
              undef (),
              $Awfif::memes-> {snnh} {amplify},
              $Awfif::wsol-> {l} [$awss] [2],
              $awss);
          if (($ampcount = ampdesc ($myli, $wss)) >= 10) {#give some one else a chance to group complete
            &maskamp ($myli, $wss, $ampcount);
            };#
          }# if
        else {

          $doretry = 't';#see no reason to get stuck in a dead loop
          };#else
        };#record have accessed this operon
# if not reached retry limit obscure failure report, find group sponsor, obscure all group start/end
      if ($doretry) {
        my ($sgdi, $gsponsor);

        &fgrpd ($myli, $wss, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
        $gsponsor = fgrpsponsor ($wss, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [19];
        ¬gcompleted ($myli, $gsponsor, undef(), undef(), $scon);
        };#if
      }#if
    elsif (!$result) {#stimulate the group complete

      my ($ampcount);
# amp descriptor caches
      &setusalcwsocache ($awss, undef(), (($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bugroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {delta}])), undef());
      $Awfif::wsol-> {l} [$awss][2]
        = inccounter (
          undef (),
          undef (),
          $Awfif::memes-> {snnh} {amplify},
          $Awfif::wsol-> {l} [$awss] [2],
          $awss);
      if (($ampcount = ampdesc ($myli, $wss)) >= 10) {#give some one else a chance to group complete

        &maskamp ($myli, $wss, $ampcount);
        };#
      };#elsif
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx ret ($result)\n");
      };
    &clogstatx ();
    return $result
    }# idevinspector1
#
#<!-- end tag vbt -->
#
sub schbindevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# schematic binding codelet responds to group complete that includes a tailoring operon
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if ( (ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      && (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') <= 0)
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {
          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {
          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "schbindbuilder";
        $Awfif::clp-> {action}-> {sponsor} = $sponsor;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "schbindbuilder", $$kwp, $kwpr, \@$sactset);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# schbindevaluator1
#
sub schbindbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# schbindbsmodeler1
#
sub schbindbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
    &ischbindbuilder1 ($myli, 'binderc', \$$kwp, $kwpr, \@$sactset, undef (), 0);
    }# schbindbuilder1
#<!-- start tag aso -->
#
sub ischbindbuilder1 {
    my ($myli, $strategy, $kwp, $kwpr, $sactset, $persist, $ihistone) = @_;
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $cwsbi, $histdesc,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# models must use the full workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
# schematic binding codelet responds to group complete that includes a tailoring operon
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if( (ifindb ($myli, $sponsor, $strategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') <= 0)
      && (ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#setup context for rest of complex

        my ($tws, $buffer, $i, $binding);
        for ($i = trwsoadr ( $Awfif::codelet-> {l} [$myli] [21],2);
        $i <= trwsoadr ($Awfif::codelet-> {l} [$myli] [22], -2);
        $i = trwsoadr ($i,1)) {

          $buffer = $buffer . '<' . getwsost4 ($i) . '>';
          };#for

        $buffer = $buffer . '<sequence><integration>';
        if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0)) {

          $binding = $Awfif::memes-> {snnh} {subpstbinding};
          };
        $tws = inewstws ($myli, \$buffer, \$grkwp, $grkwpr, $sponsor, $binding);
#
# now setup the moved position to the start of the source stream
# get the context structural ws linkage
        my ($bdwso, $abdwso, $i, $cws, $bdcwso, $abdcwso, $foundc, $streamdscid, $streama, $stream);
        $foundc = '';

        for ($i = 0; $i < $sigcount; $i++) {
          if ($lomatchs[$i]) {#
# unless this is an operon

            if ( ($Awfif::jhls-> {l} [$lola[$i]][4] == $Awfif::memes-> {snnh}{stbinding})
            or ( subpst ($myli, $lola[$i], $tws, $Awfif::codelet-> {l} [$myli] [36]) )
            ){

              $cws = $Awfif::jhls-> {l} [$lola[$i]] [7];
              $bdwso = $Awfif::jhls-> {l} [$lola[$i]] [8];
              $foundc = 't';
              };#if
            };#if
          };#for
# then get the index into $Awfif::attribs which describes the streams workspace id.

        if ($foundc) {
# switch to context workspace

          $Awfif::memes-> {currentwsbi} = $cws;
          $abdwso = awsoadr ($bdwso);
# The statement does have stream descriptions or the evaluator would not have called me
          $streamdscid = findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {stream});
          $streama = ($Awfif::workspace-> {l} [$streamdscid][2] - $Awfif::memes-> {snnh} {wsi});
          $stream = $Awfif::attribs-> {l} [$streama+2][3];
# switch to binder complex workspace
          $Awfif::memes-> {currentwsbi} = $tws;
          if ( ifindb ($myli, $sponsor, $strategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1) {

            my ($i);
            for ($i = 0; $i < $sigcount; $i++) {
              if ($lomatchs[$i]) {#
# unless this is an operon

                if ( ($Awfif::jhls-> {l} [$lola[$i]][4] == $Awfif::memes-> {snnh}{stbinding})
                or ( subpst ($myli, $lola[$i], $tws, $Awfif::codelet-> {l} [$myli] [36]) )
                ){

                  $bdcwso = $Awfif::jhls-> {l} [$lola[$i]] [8];
                  };#
                };#if
              };#for

# deploy the descriptor pointing to the workspace start

            $abdcwso = awsoadr ($bdcwso);
            $Awfif::wsol-> {l} [$abdcwso][2]
            = setupdesc ( ($stream + $Awfif::memes-> {snnh} {wsi}),
                (0 + $Awfif::memes-> {snnh} {wsi}),
                $Awfif::memes-> {snnh} {wsposition},
                $Awfif::wsol-> {l} [$abdcwso] [2],
                $abdcwso);
# and switch back to current context
            $Awfif::memes-> {currentwsbi} = $cwsbi;
# stbindbpers1

            if ((defined ($persist) && ($persist))
            && ($Awfif::codelet-> {l} [$myli] [35] != 0)
            ){#tidy up transaction state if going to persist state

              my ($transtatus);
              &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
              };#if
            if ((defined ($persist) && ($persist))
            ){

              $Awfif::memes-> {storetheds} = 't';#persist current state - will be performed by the coderack
              $Awfif::memes-> {storestop} = '';#don't stop after persist - dont write these two in the storetofiles
              };#if
# stbindbahu1

            if ((defined ($ihistone))
            && (findtdesc ($Awfif::wsol-> {l} [$abdcwso][2], $Awfif::memes-> {snnh} {histone}) == 0)
            ){

              $Awfif::wsol-> {l} [$abdcwso][2]
              = ($histdesc = setupdesc ( (0 + $Awfif::memes-> {snnh} {wsi}),
                  (0 + $Awfif::memes-> {snnh} {wsi}),
                  $Awfif::memes-> {snnh} {histone},
                  $Awfif::wsol-> {l} [$abdcwso] [2],
                  $abdcwso));
              $Awfif::workspace-> {l} [$histdesc] [2] += addhistone ($myli, $ihistone);#create a histone that the binder complex codelets can associate with
              $Awfif::histonel-> {l} [ ($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi})] [3] = 0;
              &bindhistone ($myli, $tws, $bdcwso);
              };#if

            };#if
          };#if
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {

          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

        my ($transtatus);
        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
        };#if
      };#got buffer

# and switch back to current context
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# ischbindbuilder1
#
#<!-- end tag aso -->
#
sub slocevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abcwso, $sponsortype, $cwsbi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
# start locator codelet responds to group complete providing application specific location support to the binder
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $lhdesc, $lhwso);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') == 1)
      ){#look for structural workspace position descriptor

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream

        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (findtdesc ($Awfif::wsol-> {l} [ $abcwso ] [2], $Awfif::memes-> {snnh} {appkwid}) == 0 ) #sloc builder writes this when it sets up the wsposition
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($lhdesc = findtdesc ($Awfif::wsol-> {l} [$abcwso] [2], $Awfif::memes-> {snnh} {listhead})) == 0 )
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# findtdesc on lhdesc fails to find casinit
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        &&(!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {icompdevaluator}))
        )
        ){#launch builder

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# slovevalubo4
          if ((ifindupri ($myli, $sponsor))
# slovevalubo2
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype)))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# slovevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {
            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "slocbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "slocbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
        }#if
      else {
# slocevalubo1
# see if can recover or mask suppressor

        if (!promotesib ($myli)) {

          &imasksupp ($myli);
          };#if
        };#else
      };#got buffer

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# slocevaluator1
#
sub slocbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# slocbsmodeler1
#
sub slocbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $abcwso, $abdwso, $sponsortype, $cwsbi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
# start locator codelet responds to group complete providing application specific location support to the binder
# it is a cascade supporting codelet so it will re-enter until the phase it is sponsoring has completed
# however, it should only set the location once
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($lhwso, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $dws, $bcwso, $bdwso, $lhdesc);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);

        $Awfif::memes-> {currentwsbi} = $cws;
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream
        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
# and check have not had an unbind
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($lhdesc = findtdesc ($Awfif::wsol-> {l} [$abcwso] [2], $Awfif::memes-> {snnh} {listhead})) == 0 )
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# findtdesc on lhdesc fails to find casinit
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        )
        ){#identify start position
          my ($aws, $awso, $found, $i);

          if ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0)) {
            $aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi});
            $Awfif::memes-> {currentwsbi} = $aws;
# serially traverse the workspace looking for the start structure

            $awso = $Awfif::wsbl-> {wsft} [$aws];
            $found = '';
            for ($i = $awso; (($i != 0) && (!$found)); $i = trwsoadr ($i,1)) {
# now compare the wso's string if its a mkeywords with required types

              if (wsbasetype ($i) == $Awfif::memes-> {snnh} {mkeywords}) {

                $found = matchitokwkw ($myli, $aws, $i);
                $awso = $i;
                };#if
              };#for
# setup the wsposition descriptor

            if ($found) {

              &bindhistone ($myli, $cws, $bcwso);
              $Awfif::workspace-> {l} [$sldesc] [2] = $awso + $Awfif::memes-> {snnh} {wsi};
# record the keyword so that other codelets can use it for context

              $Awfif::memes-> {currentwsbi} = $cws;
              $abcwso = awsoadr ($bcwso);
              $Awfif::wsol-> {l} [$abcwso][2]
              = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
                  ($Awfif::memes-> {snnh} {wsi} + $awso),
                  $Awfif::memes-> {snnh} {appkwid},
                  $Awfif::wsol-> {l} [$abcwso] [2],
                  $abcwso);
              my ($sponsortype);
# so should terminate the codelet sponsorship of the cascade

              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
# obtain the binder structural ws
              $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$dws);

              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              $sponsortype = wsbasetype ($sponsor);
              $Awfif::memes-> {currentwsbi} = $dws;
              $abdwso = awsoadr ($bdwso);

              if ((!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $sponsortype, $Awfif::memes-> {snnh} {model})) ){
                $Awfif::wsol-> {l} [$abdwso][2]
                = setupdesc ( ($sponsortype),
                    ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casbound}),
                    $Awfif::memes-> {snnh} {model},
                    $Awfif::wsol-> {l} [$abdwso] [2],
                    $abdwso);
# slocbuildercatal
# allow catalysis requests for the bound complex
                $Awfif::wsol-> {l} [$abcwso][2]
                = setupdesc ( (0),
                    (0),
                    $Awfif::memes-> {snnh} {catalysis},
                    $Awfif::wsol-> {l} [$abcwso] [2],
                    $abcwso);
                };#if
              };#if
            };#if start is still at zero
# become the sponsor of the cascade opp's start
# slocbuilderswcaso
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
          my ($giveup);

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            undef (), #usetrans
            undef (), #transid
            undef (), #transtatus
            undef (), #subprogram
            undef (), #jhlabeli
            undef (), #jhlabeloi
            undef (), #newli
            undef (), #hiurg
            undef (), #usepooling
            ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
            );
# now want to ungroup if don't find cascade in list in app str workspace list head
# get the app str ws

          &initiateself ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsor);
          if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

            my ($transtatus);
            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
            };#if
          }#if
        else {#can't operate currently release the suppressor
# slocbldubo1
          &imasksupp ($myli);
          };#else
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer
# and switch back to current context
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# slocbuilder1
#
#<!-- end tag aso -->
#<!-- end tag sca -->
#
sub slistkwevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = islistkwevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){
# slistkwetmstu1
# slistkwetfu

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# slistkwevalubo4
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
# slistkwevalubo2
          && ( !( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype) )
          or
          (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype) ) ) )
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# sllistkwevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "slistkwbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "slistkwbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
        }#if
# slistkwevalubo1
      else {

        my ($sponsortype, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
        $sponsortype = wsbasetype ($sponsor);
        &ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        if (
        (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!promotesib ($myli))
        ){

          &imasksupp ($myli);
          };#if
        };#else
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# slistkwevaluator1
#
sub islistkwevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch);
#
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi);
#
# checked for merged workspaces

# start list codelet responds to group complete providing context for support of list processing
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
# slistkwetmstu1
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);
# slistkwetfu
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$Awfif::memes-> {currentwsbi}], $Awfif::wsbl-> {wsft} [$Awfif::memes-> {currentwsbi}],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {list},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {begin} )>0))
      && ($conforms)
      && ($descfits)
# or the application structural context head does not have a casinopp
# context is cws: bcwso
# head is listhead-> lhdesc
# findtdesc on lhdesc fails to find casinopp

      or (!(
        (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype))
        or
        (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype)) ))
      && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
      or ( ($usetrans != 0)) #must continue the transaction
      && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("islistkwevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# islistkwevaluator1
#
sub slistkwbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'islistkwevaluator');
    $$and = 't';
    return $salience
    }# slistkwbsmodeler1
#
sub slistkwbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $casinopp, $schemafor, $aws, $catalysis, $binderror, $usetrans, $transid, $transtatus, $stransmgrid,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# start list codelet responds to group complete providing context for support of list processing
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $dcws, $bcwso, $abcwso, $pws, $bpwso, $abpwso, $cwsbi, $sponsortype);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2));
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        &bindhistone ($myli, $cws, $bcwso);
        my ($i, $count, $descfits, $conforms, $subpid);
# slistkwrlu1
        if ( (ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) >= 1)
        ){#

          $bpwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
          $Awfif::memes-> {currentwsbi} = $pws;
          $abpwso = awsoadr ($bpwso);
          };
# now have the context workspace
# slistkwbtmstu1
        $Awfif::memes-> {currentwsbi} = $cws;
# slistkwbtfu
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $stransmgrid = gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$transid, \$subpid);
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
          };#else

# The start list is expecting the workspace position to be pointing at a list start wso
        if ( (( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
          && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
          && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
          && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$Awfif::memes-> {currentwsbi}], $Awfif::wsbl-> {wsft} [$Awfif::memes-> {currentwsbi}],
            $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {list},
            $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {begin} )>0))
          && ($conforms)
          && ($descfits)
          )
        or (!($casinopp =
          ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype))
          or
          ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype)))
            )
          )
        ) #or
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        or ( ($usetrans != 0)) #must continue the transaction
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        ){#have identified this is a start list so tailor it to the application's particular meta requirements

# slistkwbtrsal1
          if (($Awfif::codelet-> {l} [$myli] [37] > 0)
          && ((!defined($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3])) or ($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] == $Awfif::memes-> {snnh} {start}) )
          ) {

            $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {incomplete};
            };#if
          if ($count > 0) {
# slistkwbspu1

            my ($amkrwso, $binding);
            if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0) ){
              $binding = $Awfif::memes-> {snnh} {subpstbinding};
              }#if
            else {
              $binding = $Awfif::memes-> {snnh} {stbinding};
              };#else
            &inewlist ($myli, $cws, $bcwso, $sponsor, $sldesc, \$grkwp, $grkwpr, $binding, \$amkrwso);
#
# check what the list can contain and describe the can contain info
            my ($ws, $wsoid, @contained, $ccount, $dcatalysis);

            $ws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi});
            $wsoid = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi});
            @contained = getcontainedkwi ($myli, $ws, $wsoid, \$ccount);
# describe each item contained in the <mkeywordref> wso
            $Awfif::memes-> {currentwsbi} = $cws;
            for ($i = 0; $i < $ccount; $i++) {

              $Awfif::wsol-> {l} [$amkrwso][2]
              = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $ws),
                  ($Awfif::memes-> {snnh} {wsi} + $contained [$i]),
                  $Awfif::memes-> {snnh} {cancontain},
                  $Awfif::wsol-> {l} [$amkrwso] [2],
                  $amkrwso);
              };#for
# terminate the sponsorship of casinit

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casinit}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
# slistkwrlu2
# report the presence of the list development to program sponsor

            $Awfif::wsol-> {l} [$abpwso][2]
            = setupdesc ( ($cws),
                ($Awfif::memes-> {snnh} {wsi} + $bcwso),
                $Awfif::memes-> {snnh} {slistkwevaluator},
                $Awfif::wsol-> {l} [$abpwso] [2],
                $abpwso);
            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso);
# slistkwncu1
            $Awfif::memes-> {currentwsbi} = $cwsbi;
            if (!inamecapture ($myli, \$$kwp, $kwpr, \@$sactset, $sponsor, '', \$dcatalysis, \$binderror, \$dcws)) {
# move the workspace position

              &movecomplex ($myli, $sldesc, 1, $abcwso);
              };#if
# slistkwtceu1
# now go past any ignore chars
            &iskipw ($myli, $sldesc, $cws, $aws, $abcwso);
            };#if count > 0
# become the sponsor of the cascade opp's start
# slistkwbuilderswcaso
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
          my ($giveup);

          $Awfif::memes-> {currentwsbi} = $cwsbi;
# slistkwbuunb

          if( ((defined ($transid)) && ($transtatus != $Awfif::memes-> {snnh} {completed})) #must continue the transaction
          or ( (!$casinopp)
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casunbind}, $sponsortype))) )
          ){#sponsor more of self
# slistkwbtfu2

            &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
              32, #mask out codelet-> {l} [32] i.e. {tfree}
              $usetrans,
              \$transid,
              \$transtatus,
              undef (), #subprogram
              undef (), #jhlabeli
              undef (), #jhlabeloi
              undef (), #newli
              undef (), #hiurg
              undef (), #usepooling
              ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
              );
            if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid
# slistkwbtmstu2

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, 0, $stransmgrid);
              };#if
# can't free until loose sponsorship

            &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor}, undef (), \$transid, \$transtatus);
            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
            ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t');# sponsor should be one after telomeric header
            }#if
          else {
# must free once loose sponsorship

            if ( (defined ($usetrans)) ){

              $transtatus = $Awfif::memes-> {snnh}{wascassponsor};
              };#if
            &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, undef (), \$transid, \$transtatus);
            if( (defined ($transid)) && ($transtatus == $Awfif::memes-> {snnh} {deleted}) #must mask the transaction id
            ){

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
              };#if
# slistkwbtrsal2
            if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            ) {

              $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
              };#if
            };#else
          }#if
# slistkwbldubo1
        else {
          &imasksupp ($myli);
          };#else
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
# slistkwbtmstu3
    &clogstatx ($myli);
    }# slistkwbuilder1
#
sub namestevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
    my ($cwsbi, $launchev, $fbinderc);
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = inamestevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "namestbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "namestbuilder", $$kwp, $kwpr, \@$sactset);
          }#if
# namestevalubo1
        else {
          if (!promotesib ($myli)) {

            &imasksupp ($myli);
            };#if
          };#else
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# namestevaluator1
#
sub inamestevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch);
#
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bdwso, $cwsbi, $aws);
# iname structure codelet responds to group complete providing processing of name structures

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {name},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start} )>0))
      && ($conforms)
      && ($descfits)
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("inamestevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# inamestevaluator1
#
sub namestbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'inamestevaluator');
    $$and = 't';
    return $salience
    }# namestbsmodeler1
#
sub namestbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $catalysis, $cwsbi, $binderror, $sldesc, $cws, $abdwso, $bcwso,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# name structure codelet responds to group complete providing processing of name structures
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      $bcwso = 0;#define so that it will be setup in inamecapture
      if ((inamecapture ($myli, \$$kwp, $kwpr, \@$sactset, $sponsor, 't', \$catalysis, \$binderror, \$cws, \$bcwso))
      && (!$binderror)
      ){

# namestbldubo1
      elsif (!$binderror) {
        &imasksupp ($myli);
        }#elsif
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };#else
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abdwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      };#got buffer
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# namestbuilder1
#
#<!-- start tag ds -resweb -->
#
sub inamecapture {
    my ($myli, $kwp, $kwpr, $sactset, $sponsor, $usecatalysis, $catalysis, $binderror, $cws, $bcwso) = @_;
    my ($schemafor, $nameprocessed);
#
# checked for merged workspaces

    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $bdwso, $abdwso, $cwsbi, $handlestop);
    $nameprocessed = '';
    $handlestop = 't';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2));
    if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#
# &updatelog ($myli,'ae', 5, $file);

      $$binderror = '';
      $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$$cws);
      my ($count, $descfits, $conforms, $aws);
# now have the context workspace
      $Awfif::memes-> {currentwsbi} = $$cws;

      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
      && (($aws = $Awfif::memes-> {currentwsbi}) != 0)
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {name},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start} )>0))
      && ($conforms)
      && ($descfits)
# check that the current wso is allowed in this context according to the record head can contains
      && (kwmccon ($$cws, $Awfif::wsbl-> {wsoh}[$$cws], $aws, ($Awfif::workspace-> {l} [$sldesc][2] - $Awfif::memes-> {snnh}{wsi})))
      ){#have identified this is a name structure so find the name and record it
        $nameprocessed = 't';
        if ( (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record} )>0))
        && ($conforms)
        && ($descfits)
        ){#this is a record so it has a completion procedure
          $handlestop = '';
          }; #check if must handle the stop structure

        my ($stnws, $stnwsoid, $stname, $mkrwso, $amkrwso);
        if ($usecatalysis) {
          $Awfif::memes-> {currentwsbi} = $$cws;
          $abdwso = awsoadr ($bdwso);
          $$catalysis = grabcodelet ($myli, $sldesc, $$cws, $abdwso);
          };#if
# get data from quote pair
        $stname = getnamefqpair ($myli, $sldesc, \$stnws, \$stnwsoid);
# deploy the name descriptor in the <mkwordref> wso

        $Awfif::memes-> {currentwsbi} = $$cws;
        $mkrwso = $Awfif::wsbl-> {wsoh} [$$cws];
        $amkrwso = awsoadr ($mkrwso);
        $Awfif::wsol-> {l} [$amkrwso][2]
        = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $stnws),
            ($Awfif::memes-> {snnh} {wsi} + $stnwsoid),
            $Awfif::memes-> {snnh} {stname}, #name refers to the wso name used to support wso life cycle
            $Awfif::wsol-> {l} [$amkrwso] [2],
            $amkrwso);
        $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$amkrwso] [2]] [10] = $stname;- 7 are used in strength
# check if handle stop structure
        if ($handlestop) {

          my ($finished);
          $finished = '';
          while (!$finished) {

            $Awfif::memes-> {currentwsbi} = $$cws;
            if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
            && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
            && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
            && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$$cws], $Awfif::wsbl-> {wsft} [$$cws],
              $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {name},
              $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
            && ($conforms)
            && ($descfits)
            ){#have identified this is a name structure so find the name and record it

              $finished = 't';
              &movecomplex ($myli, $sldesc, 1, $abdwso);
              }# if
            else {

              if (movecomplex ($myli, $sldesc, 1, $abdwso) == 0 ) {

                $finished = 't';
                };#if
              };#else
            };#while
          }# if
        else {
# move the workspace position

          &movecomplex ($myli, $sldesc, 1, $abdwso);
          };# else
# namesttceu1
# now go past any ignore chars

        &iskipw ($myli, $sldesc, $$cws, $aws, $abdwso);
        }#if
      else {

        $nameprocessed = '';
        };#else
      }#if
    else {

      $$binderror = 't';
      };
    if (defined ($$bcwso) ){

      $$bcwso = $bdwso;
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    return $nameprocessed
    }# inamecapture
#
#<!-- end tag ds -->
#
sub skipwsoevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $noswstype = '';
    my ($cwsbi, $launchev, $fbinderc);
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = iskipwsoevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {
            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {
            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "skipwsobuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "skipwsobuilder", $$kwp, $kwpr, \@$sactset);
          }#if
# skipwsoevalubo1
        else {
          &imasksupp ($myli);
          };#else
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# skipwsoevaluator1
#
sub iskipwsoevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $dolaunch);
#
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bdwso, $cwsbi, $schemafor, $aws);
# skip wso codelet responds to group complete providing advancement along the adjacent wsos

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2));
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (( (wsbasetype($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi})) == $Awfif::memes-> {snnh} {ichar} )
        or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $schemafor )==0)) )
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iskipwsoevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# iskipwsoevaluator1
#
sub skipwsobsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iskipwsoevaluator');
    $$and = 't';
    return $salience
    }# skipwsobsmodeler1
#
sub skipwsobuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# skipwso codelet responds to group complete providing advancement along the application wso chain
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3, 't')) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bdwso, $abdwso, $cwsbi, $schemafor, $aws);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2));
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        my ($count, $descfits, $conforms);
# now have the context workspace
        $Awfif::memes-> {currentwsbi} = $cws;

# The skipwso is expecting the workspace position to be pointing at an ignore char wso
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
        && (( (wsbasetype($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi})) == $Awfif::memes-> {snnh} {ichar} )
          or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $schemafor )==0)) )
        ){#have identified this is an ignore char so move past it

# move the workspace position

          $Awfif::memes-> {currentwsbi} = $cws;
          &movecomplex ($myli, $sldesc, 1, awsoadr ($bdwso));
          &iskipw ($myli, $sldesc, $cws, $aws, $abdwso);
# skipwsotrsal1
          if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            ) {

            $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
            };#if
          };#if
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
# skipwsobldubo1
        &imasksupp ($myli);
        };
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# skipwsobuilder1
#
sub srcdkwevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
#
# checked for merged workspaces

# start record codelet responds to group complete providing entry to a record structured wso
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = isrcdkwevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# srcdkwevalubo4
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
# srcdkwevalubo2
          && ( (!hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype))
            && ( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompsopp}, $sponsortype))
          ))
          or ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype))
            && ( (!hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype))
              ))#or
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# srcdkwevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "srcdkwbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "srcdkwbuilder", $$kwp, $kwpr, \@$sactset);
          }#if
# srcdkwevalubo1
        else {

          my ($sponsortype, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
          $sponsortype = wsbasetype ($sponsor);
          &ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
          $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
          $Awfif::memes-> {currentwsbi} = $cws;

          if (
          (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
          && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {icompdevaluator}))
          && (!promotesib ($myli))
          ){

            &imasksupp ($myli);
            };#if
          };#else
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# srcdkwevaluator1
#
sub isrcdkwevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch);
#
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi, $aws);
#
# checked for merged workspaces

# start record codelet responds to group complete providing entry to a record structured wso
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
# srcdwetmstu1
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);
# srcdkwetfu
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start} )>0))
      && ($conforms)
      && ($descfits)
      or ( (!hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype))
        && ( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompsopp}, $sponsortype))
      ))
      or ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype))
        && ( (!hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype))
          ))#or
# srcdkwetfu2
      or ( ($usetrans != 0)) #must continue the transaction
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("isrcdkwevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# isrcdkwevaluator1
#
sub srcdkwbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'isrcdkwevaluator');
    $$and = 't';
    return $salience
    }# srcdkwbsmodeler1
#
sub srcdkwbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $sponsortype, $casinsopp, $casinopp, $cascompsopp, $schemafor, $catalysis, $usetrans, $transid, $transtatus, $stransmgrid,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# start record codelet is part of list cascade providing record access for support of list processing
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi, $slhdesc, $slldesc);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2));
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        &bindhistone ($myli, $cws, $bcwso);
        my ($i, $count, $descfits, $conforms, $aws, $subpid);
# srcdkwbtmstu1
        $Awfif::memes-> {currentwsbi} = $cws;
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $stransmgrid = gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$transid, \$subpid);
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
          };#else
# srcdkwbtfu
# now have the context workspace
        $Awfif::memes-> {currentwsbi} = $cws;
        $casinopp = '';
        $casinsopp = '';
        $cascompsopp = '';
# srcdbipwsifsar1

# The start record is expecting the workspace position to be pointing at a record start wso
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
        && (($aws = $Awfif::memes-> {currentwsbi}) != 0)
        && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record},
          $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start} )>0))
        && ($conforms)
        && ($descfits)
# srcdbswcassou1
        or (
          (
            (!($casinopp = hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype)))
            && ($cascompsopp = hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompsopp}, $sponsortype))
          )
        )
        or (
          ($casinopp = hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype))
          && (!($casinsopp = hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype)))
        )
# srcdkwbtfu2
        or ( ($usetrans != 0)) #must continue the transaction
        ){#have identified this is a start record so tailor it to the application's particular meta requirements

          $Awfif::memes-> {currentwsbi} = $cws;
          $abcwso = awsoadr ($bcwso);
# checks the list start list for a head reference.
          if ( ( ($slhdesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listhead})) != 0 )
          && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
          ){#have identified there is a list head get the associated list link

            $slldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listlink});
            }# if head exists
          else {# error

            };#else
# srcdbcwsoau1
# check that the current wso is allowed in this context according to the record head can contains

          if ( ($count > 0)
          && (kwmccon ($cws, $Awfif::wsbl-> {wsoh}[$cws], $aws, ($Awfif::workspace-> {l} [$sldesc][2] - $Awfif::memes-> {snnh}{wsi})) )
          ) {
#
# srcdkwbspu1
            my ($amkrwso, $binding);
            if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0) ){
              $binding = $Awfif::memes-> {snnh} {subpstbinding};
              }#if
            else {
              $binding = $Awfif::memes-> {snnh} {stbinding};
              };#else
            &inewrcd ($myli, $cws, $bcwso, $sponsor, $sldesc, $slhdesc, \$grkwp, $grkwpr, $binding, \$amkrwso);
# cancdcwso1
# check what the record can contain and describe the can contain info
            my ($ws, $wsoid, @contained, $ccount);

            $ws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi});
            $wsoid = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi});
            @contained = getcontainedkwi ($myli, $ws, $wsoid, \$ccount);
# describe each item contained in the <mkeywordref> wso
            $Awfif::memes-> {currentwsbi} = $cws;
            for ($i = 0; $i < $ccount; $i++) {

              $Awfif::wsol-> {l} [$amkrwso][2]
              = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $ws),
                  ($Awfif::memes-> {snnh} {wsi} + $contained [$i]),
                  $Awfif::memes-> {snnh} {cancontain},
                  $Awfif::wsol-> {l} [$amkrwso] [2],
                  $amkrwso);
              };#for
# srcdbinoppu
# deploys a model-(sponsortype)-> casinopp descriptor to take over schematic sponsorship from startlist kw
# terminate the sponsorship of casinopp

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casinopp}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
            $casinopp = 't';
# signals sponsorship of the sub operation cascade
            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso);
# move the workspace position

            &movecomplex ($myli, $sldesc, 1, $abcwso);
# srcdkwtceu1
# now go past any ignore chars
            &iskipw ($myli, $sldesc, $cws, $aws, $abcwso);
            };#if count > 0 and relationship ok
          };# if
# become the sponsor of the cascade subopp's start
# srcdbswcassou2
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
        my ($giveup);
# srcdkwbtfu3

        if( ((defined ($transid)) && ($transtatus != $Awfif::memes-> {snnh} {completed})) #must continue the transaction
        or ((!$casinopp) && ($cascompsopp))
        or (($casinopp) && (!$casinsopp))
        ) {#sponsor more of self

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {cascompsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
          32, #mask out codelet-> {l} [32] i.e. {tfree}
          $usetrans,
          \$transid,
          \$transtatus,
          undef (), #subprogram
          undef (), #jhlabeli
          undef (), #jhlabeloi
          undef (), #newli
          undef (), #hiurg
          undef (), #usepooling
          ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
          );
          if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid
# srcdkwbtmstu2

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, 0, $stransmgrid);
            };#if
# srcdbtfu
# srcdkwbtfu4
# can't free until loose sponsorship

          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor}, undef (), \$transid, \$transtatus);
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
          ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t');# sponsor should be one after telomeric header
          &icskick ($Awfif::codelet-> {l} [$myli] [20]);
          }#if
        else {
# must free once loose sponsorship
# srcdkwbtfu5

          if ( (defined ($usetrans)) ){

            $transtatus = $Awfif::memes-> {snnh}{wascassponsor};
            };#if
          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, undef (), \$transid, \$transtatus);
          if( (defined ($transid)) && ($transtatus == $Awfif::memes-> {snnh} {deleted}) #must mask the transaction id
          ){

            &maskcounter ($Awfif::memes-> {snnh} {transid}, $asponsor, $transid, 0);
            };#if
          };#else
        }# if is start record
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
# srcdkwbldubo1
        &imasksupp ($myli);
        };
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
    };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# srcdkwbuilder1
#
sub seltstevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &ivalevaluator1 ($myli, $kwp, $kwpr, \@$sactset, 'seltstbuilder', $Awfif::memes-> {snnh} {value});

    &clogstatx ();
    }# seltstevaluator1
#
sub seltstbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iivalevaluator', $Awfif::memes-> {snnh} {value});
    $$and = 't';
    return $salience
    }# seltstbsmodeler1
#
#sub seltstbuilder1 {#The ignored parameters are required by the codelet calling architecture
#<!-- start tag aso -->
#<!-- start tag ds -resweb -->
#<!-- start tag sia -->
#<!-- start tag scc -->
sub ivalbuilder1 {
    my ($myli, $valid, $token, $kwp, $kwpr, $sactset) = @_;
    my ($sponsor, $sponsortype, $signal, $schema, $swstype,
    $noswstype, $catalysis, $usetrans, $transid, $transtatus, $mtranstatus,
    $cwsposition, $acwsposition, $dontrep35, $subpid, $stransmgrid, $tmatchedwso,
    $atelhwso, $usedngc, $depsubs, $dospigrabamp, $spigtransid, $jhlabeli,
    $jhlabeliav, $jhlabeloi, $mytransid, $reportcaspart, $termdesc, $histdesc, $clearedcomps, $dongc,
    $in221, $in2220, $in2301, $in2310, $in2311, $in232, $in2330,
    $grkwp, $grkwpr, $cdn, $cdnx);
    my ($count, $wcompdesc, $didgrab, $grabdesc, $csubpid, $descfits, $conforms, $reportdesc, $arunningwso, $aws);
    my (@subpl, @csubpl);
#
# checked for merged workspaces

# value structure codelet responds to group complete providing processing of selector and value structures
# this requires frame shifting, and initiation of sub-codelets to enter the frame shifted wso structure
    $noswstype = '';
    $dontrep35 = '';
    $dospigrabamp = '';
    $usedngc = '';
    $depsubs = '';
    $reportcaspart = '';
    $clearedcomps = '';#will be set to t if entered the complete transaction clearup
    $mytransid = $Awfif::codelet-> {l}[$myli][35];
    $jhlabeliav = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)
    ){

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bdwso, $abdwso, $cwsbi, $slhdesc, $slldesc, $handlestop, $signalsubp, $noget);
      $cwsbi = $Awfif::memes-> {currentwsbi};
      if ( ($Awfif::memes-> {checktransidnz})
      && ($Awfif::codelet-> {l} [$myli][36] > 0)
      && ($mytransid == 0)
      && (!mysubtrancomp ($myli, findsubpicnm ($myli, $Awfif::codelet-> {l}[$myli][36], $Awfif::codelet-> {l}[$myli][2]), $Awfif::codelet-> {l}[$myli][2]))
      ){

        &break ();
        };#if
      if (($Awfif::memes-> {valbsubpbreak}) && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      ){

        &break();
        };#if

      if ( (defined ($Awfif::memes-> {valbsubpspbreak}))
      && ($Awfif::memes-> {valbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if (($Awfif::memes-> {valbmainpbreak}) && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if

      $handlestop = 't';
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor, -1));

      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $histdesc = bindhistone ($myli, $cws, $bdwso);
        my ($i);
        $Awfif::memes-> {currentwsbi} = $cws;
        $abdwso = awsoadr ($bdwso);
# record the current wsposition
        $sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition});
        $cwsposition = &movecomplex ($myli, $sldesc, 0, $abdwso);
        $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
        $acwsposition = awsoadr ($cwsposition);
# now have the context workspace
        $Awfif::memes-> {currentwsbi} = $cws;
# ivalwwcf1u1
# handle wascompletingf1 descriptor

        @subpl = listunmsubp ($myli, $abdwso);
        if ( ($Awfif::memes-> {usewcf1d})
        && ($subpl [0] == 0)
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($wcompdesc = findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {wascompletingf1}, $Awfif::codelet-> {l} [$myli] [36] )) != 0)
        ){

          if ( ($Awfif::memes-> {valbsubpnspwcbreak})
          ){

            &break ()};

          $Awfif::workspace-> {l} [$wcompdesc][4]--;#make it a completingf1
          $Awfif::wsol-> {l} [$abdwso][2] #now force the waitondesc to complete
          = inccounter ( $Awfif::codelet-> {l} [$myli] [36], #pltype
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #pto
              $Awfif::memes-> {snnh} {completingf1}, #from
              $Awfif::wsol-> {l} [$abdwso] [2],#dlinkh
              $abdwso,#awso
              't',#synccod
              $Awfif::codelet-> {l} [$myli] [36],#sltype
              $Awfif::codelet-> {l} [$myli] [36]);#spto
          };#if

        if ( ($Awfif::memes-> {usewcf1d})
        && ($subpl [0] == 1)
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($wcompdesc = findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {wascompletingf1}, $subpl [ $subpl [0] ] )) != 0)
        ){

          if ( ($Awfif::memes-> {valbsubpnspwcbreak})
          ){

            &break ()};

          $Awfif::workspace-> {l} [$wcompdesc][4]--;#make it a completingf1
          $Awfif::wsol-> {l} [$abdwso][2] #now force the waitondesc to complete
          = inccounter ( $subpl [ $subpl [0] ], #pltype
              ($Awfif::memes-> {snnh} {wsi} + $subpl [ $subpl [0] ]), #pto
              $Awfif::memes-> {snnh} {completingf1}, #from
              $Awfif::wsol-> {l} [$abdwso] [2],#dlinkh
              $abdwso,#awso
              't',#synccod
              $subpl [ $subpl [0] ],#sltype
              $subpl [ $subpl [0] ]);#spto
          };#if
# ivalwwcf1u3
# handle initgw descriptor at end of subprogram workspace

        if ( ($Awfif::memes-> {usewcf1d})
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && ((findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {initgw}, $Awfif::codelet-> {l} [$myli] [36] )) != 0)
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && (($termdesc = findtdesc ($Awfif::wsol-> {l} [($abdwso)] [2], $Awfif::memes-> {snnh} {subprogram}, ($Awfif::memes-> {snnh} {stop}))) != 0 )
        && ($Awfif::workspace-> {l} [$termdesc] [2] == $Awfif::workspace-> {l} [$sldesc] [2])
        && ((findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {wascompletingf1}, $Awfif::codelet-> {l} [$myli] [36] )) == 0)
        && ((findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {completingf1}, $Awfif::codelet-> {l} [$myli] [36] )) == 0)
        ){

          $Awfif::wsol-> {l} [$abdwso][2]
          = setupdesc ( $Awfif::codelet-> {l}[$myli][36],
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l}[$myli][36]), #
            $Awfif::memes-> {snnh} {wascompletingf1},
            $Awfif::wsol-> {l} [$abdwso] [2],
            $abdwso);
# make it an iterator
          $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$abdwso][2]] [8] = $Awfif::memes-> {snnh} {iterator};
          $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$abdwso][2]] [9] = ($Awfif::memes-> {snnh} {wsi} + 1);
          };#if
# process grab if ivalw have noted they have run
# ivalwgrabu2

        $Awfif::memes-> {currentwsbi} = $cws;
        $jhlabeliav = '';
        if ( (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abdwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
        && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
        && (($csubpid = spifgrabcandidate ($myli, $arunningwso, undef(), \$jhlabeliav, \$jhlabeli)) > 0)
        ){

          $Awfif::wsol-> {l} [$asponsor][2]
            = inccounter ( 0,
                (0 ), #will become a reference to codelet shell
                $Awfif::memes-> {snnh} {grab},
                $Awfif::wsol-> {l} [$asponsor] [2],
                $asponsor);

          if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
          ){

            $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
            };#if
          };#if
# check transaction state for all outstanding f1 and clear out any completed
# ivalwbtmgru1

        @csubpl = listcsubp ($myli, $abdwso);
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = getf1tmgr ($myli, $atelhwso, $asponsor, $Awfif::codelet-> {l} [$myli] [36], \$transid, \$stransmgrid, \@csubpl);#will return an associated completed sub by preference
        $usetrans = $transid;

        if ($subpid == 0
        ){

          $subpid = undef ();
          };

        if ($transid == 0
        ){

          $in221 = 't';
          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascasrelay});
          $subpid = undef ();
          }#if
        else {

          $in2220 = 't';
          $transtatus = $Awfif::memes-> {snnh} {casrelay};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {casrelay}, undef(), $transid, \$transtatus);
          if ( ($transtatus == $Awfif::memes-> {snnh} {completed})
          ){#remove the deployment descriptor
# ivalbspgau1

            if ($Awfif::memes-> {applyactive}
            ){

              $didgrab = spigrabamp ($myli, \$$kwp, $kwpr, undef(), \$jhlabeliav, \$jhlabeli, \$transid);
              if (($Awfif::memes-> {valccompspibreak}) && (!$didgrab) && ($transid != 0) && ($transtatus == $Awfif::memes-> {snnh} {completed})) {&break ()};
              }#if
            else {

              $didgrab = '';
              };

            while (($didgrab) && ($transid != 0) && ($transtatus == $Awfif::memes-> {snnh} {completed})
            ){

              $clearedcomps = 't';
              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {remove}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $subpid, $stransmgrid);
              if ($stransmgrid != $Awfif::codelet-> {l} [$myli] [37]) {#try to maintain the active source transmgr id submitted

                $Awfif::tmassl-> {submitted} [ $stransmgrid ] = undef();
                }#if
              elsif ($Awfif::memes-> {valclearsubmbreak}) {&break ()};
              $usetrans = 0;#just deleted this transaction
              $transid = 0;
              $subpid = getf1tmgr ($myli, $atelhwso, $asponsor, $Awfif::codelet-> {l} [$myli] [36], \$transid, \$stransmgrid, \@csubpl);#will return an associated completed sub by preference
              $transtatus = $Awfif::memes-> {snnh} {casrelay};#unless shift to wascassponsor
              &transalloc ($myli, $Awfif::memes-> {snnh} {casrelay}, undef(), $transid, \$transtatus);
              };#while

            if (!$clearedcomps) {#get an incompete transaction to work on

              $in2301 = 't';
              $usetrans = 0;#just deleted this transaction
              $transid = 0;
              $subpid = getf1tmgr ($myli, $atelhwso, $asponsor, $Awfif::codelet-> {l} [$myli] [36], \$transid, \$stransmgrid, undef(), 't');
              $transtatus = $Awfif::memes-> {snnh} {casrelay};#unless shift to wascassponsor
              &transalloc ($myli, $Awfif::memes-> {snnh} {casrelay}, undef(), $transid, \$transtatus);
              };#if
            if (($transid == 0 ) && ($clearedcomps)
            ){#then completed all of list

              $in2310 = 't';
              $transid = undef();
              $transtatus = $Awfif::memes-> {snnh} {transid};
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascasrelay});
              $subpid = undef ();
              }#if
            elsif (($transid == 0 )
            ){#then didn't get to clear list - but this is because cant grab so could be outstanding completed associations to clear

              $in2311 = 't';
              $transid = undef();
              $transtatus = $Awfif::memes-> {snnh} {transid};
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascasrelay});
              $subpid = undef ();
              if ($subpl [0] != 0) {

                $dontrep35 = 't';
                $dongc = 't';
                };#
              }#if
            else {

              $in232 = 't';
              $usetrans = $transid;#record that there are outstanding transactions
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{casrelay});
              $dontrep35 = 't';
              };#else
            }#if
          else {

            $in2330 = 't';
            $usetrans = $transid;#record that there are outstanding transactions

            if ($Awfif::subpl-> {l} [$subpid] [10] == $acwsposition
            ){

              $tmatchedwso = 't';
              };#if

            &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{casrelay});
            };#else
          };#else
# model the ival codelets situation in the bound complex
#
# first the earlier spigrabamp may have moved the current wsposition

        $cwsposition = &movecomplex ($myli, $sldesc, 0, $abdwso);
        $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
        $acwsposition = awsoadr ($cwsposition);
        $Awfif::memes-> {currentwsbi} = $cws;
# ivalbtfu1

        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
        && (($aws = $Awfif::memes-> {currentwsbi}) != 0)
        && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $token,
          $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start},
          $Awfif::memes-> {snnh} {orcategory}, $Awfif::memes-> {snnh} {alternate} )>0))
        && ($conforms)
        && ($descfits)
        && (kwmccon ($cws, $Awfif::wsbl-> {wsoh}[$cws], $aws, ($Awfif::workspace-> {l} [$sldesc][2] - $Awfif::memes-> {snnh}{wsi}))) #check that the current wso is allowed in this context according to the record head can contains
        or ( ($usetrans != 0) && ($noget = 't')) #must continue the transaction
        ){#have identified this is a value structure so find the value and record it

          my ($kwwsoid, $kw);
# ivalbtrsal1
          if (($Awfif::codelet-> {l} [$myli] [37] > 0)
          && ((!defined($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3]))
          or ($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] == $Awfif::memes-> {snnh} {start}) )
          ){

            $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {incomplete};
            };#if
          $kwwsoid = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi});
          $kw = getwsost4 ($kwwsoid);
# ivalbgowu1

          if ( (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
            $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {gowithin} )>0))
          && ($conforms)
          && ($descfits)
          ){#this may contain structures so need to go within

            $signalsubp = 't';
            $depsubs = 't';
            }; #check if may have to gowithin the string

          if ( ((!defined ($noget)) or (!$noget))
          && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
            $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record} )>0))
          && ($conforms)
          && ($descfits)
          ){#this is a record so it has a completion procedure

            $handlestop = '';
            }; #check if must handle the stop structure

          my ($stnws, $stnwsoid, $stnwsoidp1, $stvalue, $mkrwso, $amkrwso, $subpdesc, $foundtid, $mfoundtid, $nmatchtid, $mnmatchtid);
          $Awfif::memes-> {currentwsbi} = $cws;
          if ((!defined ($noget))
          or (!$noget)
          ){

            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abdwso);
# get data from quote pair
            $stvalue = getnamefqpair ($myli, $sldesc, \$stnws, \$stnwsoid);
            };#if
# ivalbuitrau3
# may be looking after a current gowithin process it

          $foundtid = '';
          $nmatchtid = '';
# if don't get a match for the current wsposition and it is gowithin then sponsor new subprogram
#
# if there is a subprogram deployed by this specific transaction
          if ( ($subpid != 0)
          && ($nmatchtid = 't')
          && ($Awfif::subpl-> {l} [$subpid] [10] != $acwsposition)# added when setup subpid
          && ($foundtid = 't')#remember that found a transid
          && (&transalloc ($myli, $Awfif::memes-> {snnh} {casrelay}, undef(), $transid , \$transtatus) == $transid )
          && ($transtatus == $Awfif::memes-> {snnh} {incomplete}) #bcsubps transaction is not completed
          && (( ($subpdesc = findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {initiate}, $subpid)) == 0 ) #and the subprogram has not depolyed its report descriptor
            or (($Awfif::workspace-> {l} [$subpdesc] [2] - $Awfif::memes-> {snnh} {wsi}) != $subpid))
          ){
# mp signal the sub-program

            my ($dummy, $giveup, $p, $hiurg);
            $Awfif::memes-> {currentwsbi} = $cwsbi;
            $depsubs = 't';
            $hiurg = '';#must be defined to be used in subpinitiated
# ivalbuidsonbu1

            if ( ( ( ($Awfif::memes-> {valignifu} && (int (rand (10)) > 8)) or (!ifindupri ($myli, $sponsor, undef (), undef(), $Awfif::subpl-> {l} [$subpid] [6], $Awfif::memes-> {snnh} {subpstbinding} , $subpid, 't')) )
            or (!subpinitiated ($myli, $abdwso, $subpid, \$hiurg)) )
            && ( ($Awfif::codelet-> {l} [$myli][36] == 0)
              or (!defined ($Awfif::subpl-> {w} [ $subpid ])) or ($Awfif::subpl-> {w} [ $subpid ] == 0))#don't signal waited codelet - note should first check its an f1 of this codelet
            ){

              if ((defined ($subpid)) && ($subpid > 0)){

                if (!defined ($Awfif::subpl-> {q} [3] [$Awfif::memes-> {ivalwindex}] [$subpid ])) {

                  $Awfif::subpl-> {q} [3] [$Awfif::memes-> {ivalwindex}] [$subpid ] = 0;
                  };#if

                $p = \$Awfif::subpl-> {q} [3] [$Awfif::memes-> {ivalwindex}] [$subpid ];
                }; #if

              $hiurg = $hiurg | $Awfif::memes-> {tdfsampdo};

              &ilaunchnc ($myli, $dummy, 'cassuboppi', undef (), \$giveup, $grkwp, $grkwpr, \@$sactset,
                32, #mask out codelet-> {l} [32] i.e. {tfree}
                $usetrans,
                \$transid ,
                \$transtatus,
                $subpid, #signal sub-program
                undef (), #jhlabeli
                undef (), #jhlabeloi
                undef (), #newli
                $hiurg,
                \$$p #use pooling
                );

              if (matchaelement (\@{$Awfif::subpl-> {l} [$subpid] [11]}, $transid) == 0
              ){#no match its a new transaction

                $Awfif::subpl-> {l} [$subpid] [11][++$Awfif::subpl-> {l} [$subpid] [11][0]] = $transid;
                $Awfif::subpl-> {l} [$subpid] [12][++$Awfif::subpl-> {l} [$subpid] [12][0]] = $Awfif::tral-> {l} [$transid] [4];
                };#if

              if (($usetrans == 0)
              && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}) ) )
              ){#record the transid

                &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $subpid, $stransmgrid);
                $spigtransid = $transid;
                $dospigrabamp = 't';#can't see why shouldnt check for amp options at this point
                };#if
              };#if
# ivalbuif1tu3

            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
            ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t', undef (), undef(), $Awfif::subpl-> {l} [$subpid] [6], $Awfif::memes-> {snnh} {subpstbinding},
            $subpid,
            undef (), #nodebug
            undef (), #nodelayselect
            $Awfif::memes-> {tdfsampdo} #amplify delay select
            );# sponsor should be one after telomeric header
            $usedngc = 't';
            };#if still need to signal subprogram

          if ($foundtid
          ){

            $mfoundtid = 't';
            $mtranstatus = $transtatus;

            if ( ($transtatus == $Awfif::memes-> {snnh} {completed})
            ){#remove the deployment descriptor
# may still not want to reply because other subpids are still outstanding but that should have already been checked

              &maskcounter ($Awfif::memes-> {snnh}{subpdeployed}, $abdwso, undef(), $transid);
              }#if
            elsif ($transtatus == $Awfif::memes-> {snnh} {incomplete}
            ){

              $dontrep35 = 't';
              };#elsif
            }#if
          else {

            if ($nmatchtid
            ){

              $nmatchtid = '';
              };#if
            };#else

          if ($nmatchtid
          ){

            $mnmatchtid = 't';#this wso has no matching pid
            };#if
#
# now handle new gowithin

          if (((($mnmatchtid)) or (!defined($subpid)))
          && (!$tmatchedwso)
          && (defined ($signalsubp))
          && ($signalsubp)
          ){
# ivalbgowu2

            my ($subpstws, $subpstcws, $subpbwso, $asubpbwso, $subptwso, $buffer, $dummy, $giveup);
# setup the subprogram terminal wsoid - sldesc should be referencing the workspace descriptor

            &iskipw ($myli, $sldesc, $cws, $aws, $abdwso);#have to get to the terminal keyword
            $subptwso = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes->{snnh}{wsi});
# setup the subprogram start wsoid
            $Awfif::memes-> {currentwsbi} = $stnws;
            $stnwsoidp1 = trwsoadr ($stnwsoid,1);
            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
            $buffer = '';
            for ($i = trwsoadr ( $Awfif::codelet-> {l} [$myli] [21],2);
            $i <= trwsoadr ($Awfif::codelet-> {l} [$myli] [22], -2);
            $i = trwsoadr ($i,1)
            ){
# ivalbgowu3

              $buffer = $buffer . '<' . getwsost4 ($i) . '>';
              };#for

            if ($Awfif::codelet-> {l} [$myli] [36] == 0
            ){

              $buffer = $buffer . '<subprogram><sequence><integration>';
              }#if
            else {

              $buffer = $buffer . '<sequence><integration>';
              if ( ((findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {initgw}, $Awfif::codelet-> {l} [$myli] [36] )) == 0)
              ){

                $Awfif::wsol-> {l} [$abdwso][2]
                = setupdesc ( $Awfif::codelet-> {l}[$myli][36],
                  ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l}[$myli][36]), #
                  $Awfif::memes-> {snnh} {initgw},
                  $Awfif::wsol-> {l} [$abdwso] [2],
                  $abdwso);
                };#if
              };#else

            $subpstws = inewstws ($myli, \$buffer, \$grkwp, $grkwpr, $sponsor, $Awfif::memes-> {snnh} {subpstbinding} );
            $subpid = addsubp ($subpstws, $subpbwso, $acwsposition);
# ivalbreccu1
            if ($Awfif::codelet-> {l} [$myli] [36] > 0
            ){

              $Awfif::memes-> {spiglevel} [$Awfif::codelet-> {l} [$myli] [36]]++;
              $Awfif::memes-> {spiglevel} [$subpid] = 0;
              }#if
            else {

              $Awfif::memes-> {spiglevel} [$subpid] = 0;
              };#else
# ivalbsupru1
# deploy the descriptor reference for the subprogram

            $Awfif::wsol-> {l} [$abdwso][2]
            = setupdesc ( ($Awfif::memes-> {snnh} {initiation}),
                ($subpid + $Awfif::memes-> {snnh} {wsi}),
                $Awfif::memes-> {snnh} {subpref},
                $Awfif::wsol-> {l} [$abdwso] [2],
                $abdwso);
            $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$abdwso][2]] [9] = $Awfif::memes-> {subprefctr};
# ivalbgowu10
# setup a control workspace for the subprogram - in this instance will only setup the case and control workspaces since its as if we are already bound!

            $buffer = '<schema><partconstrained>';
            $subpstcws = inewstws ($myli, \$buffer, \$$kwp, $kwpr, $sponsor, $Awfif::memes-> {snnh} {subpstbinding});
            $Awfif::subpl-> {l} [$subpid][6] = $subpstcws;
            $buffer = '<' . getwsost4 ($Awfif::codelet-> {l} [$myli] [21]) . '>';
            &initschcon ($myli, \$buffer, \$$kwp, $kwpr, $sponsor, $subpstcws, $Awfif::memes-> {snnh} {subpstbinding}, $subpid);

            if ( ifindb ($myli, $sponsor, 'goalscon', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, $subpstcws, $Awfif::memes-> {snnh} {subpstbinding}, $subpid) == 1
            ){

              my ($i, $found);
              $found = '';
              for ($i = 0; ((!$found) && ($i < $sigcount)); $i++
              ){

                if ($lomatchs[$i]
                ){#
# unless this is an operon or stbinding

                  if ( ($Awfif::jhls-> {l} [$lola[$i]][4] == $Awfif::memes-> {snnh}{subpstbinding})
                  ){

                    $Awfif::subpl-> {l} [$subpid] [5] = $lola [$i];
                    $found = 't';
                    };#if
                  };#if
                };#for
              };#if
# ivalbgowu6
# switch to subprogram's case complex workspace

            $Awfif::memes-> {currentwsbi} = $subpstws;
            if ( ifindb ($myli, $sponsor, 'subpc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, $subpstws, $Awfif::memes-> {snnh} {subpstbinding}, $subpid) == 1
            ){

              my ($i, $found);
              $found = '';
              for ($i = 0; ((!$found) && ($i < $sigcount)); $i++
              ){

                if ($lomatchs[$i]
                ){#
# unless this is an operon or stbinding

                  if ( ($Awfif::jhls-> {l} [$lola[$i]][4] == $Awfif::memes-> {snnh}{subpstbinding})
                  ){

                    $subpbwso = $Awfif::jhls-> {l} [$lola[$i]] [8];
                    $Awfif::subpl-> {l} [$subpid] [4] = $lola [$i];
                    $Awfif::subpl-> {l} [$subpid] [3] = $subpbwso;
                    $found = 't';
                    };#if
                  };#if
                };#for
# deploy the descriptor pointing to the workspace start

              $asubpbwso = awsoadr ($subpbwso);
              $Awfif::wsol-> {l} [$asubpbwso][2]
              = setupdesc ( ($aws + $Awfif::memes-> {snnh} {wsi}),
                  ($stnwsoidp1 + $Awfif::memes-> {snnh} {wsi}),
                  $Awfif::memes-> {snnh} {wsposition},
                  $Awfif::wsol-> {l} [$asubpbwso] [2],
                  $asubpbwso);
# ivalbthbu1
# deploy the descriptor supporting histone binding in the subprograms

              $Awfif::wsol-> {l} [$asubpbwso][2]
              = setupdesc ( ($Awfif::workspace-> {l} [$histdesc] [3]),
                  ($Awfif::workspace-> {l} [$histdesc] [2]),
                  $Awfif::workspace-> {l} [$histdesc] [4],
                  $Awfif::wsol-> {l} [$asubpbwso] [2],
                  $asubpbwso);
# ivalbgowu4

              &inewlist ($myli, $subpstws, $subpbwso, $sponsor, $sldesc, \$grkwp, $grkwpr, $Awfif::memes-> {snnh} {subpstbinding}, \$amkrwso);
# ivalbgowu5

              if ( ( ($slhdesc = findtdesc ($Awfif::wsol-> {l} [ $asubpbwso] [2], $Awfif::memes-> {snnh} {listhead})) != 0 )
              && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
              ){#have identified there is a list head get the associated list link

                my ($newtransid, $catref, $catdesc);
                $slldesc = findtdesc ($Awfif::wsol-> {l} [ $asubpbwso] [2], $Awfif::memes-> {snnh} {listlink});
                &inewrcd ($myli, $subpstws, $subpbwso, $sponsor, $sldesc, $slhdesc, \$grkwp, $grkwpr, $Awfif::memes-> {snnh} {subpstbinding}, \$amkrwso);
# deploy the srcd builders casinopp descriptor

                $Awfif::wsol-> {l} [awsoadr($Awfif::wsbl-> {wsoh} [$subpstws])][2]
                = setupdesc ( ($sponsortype),
                    ($Awfif::memes-> {snnh} {casinopp} + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {model},
                    $Awfif::wsol-> {l} [awsoadr($Awfif::wsbl-> {wsoh} [$subpstws])] [2],
                    awsoadr($Awfif::wsbl-> {wsoh} [$subpstws]));
# ivalbgowu9
# deploy the descriptor initiating the sub-program

                $Awfif::wsol-> {l} [$asubpbwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {start}),
                    ($subptwso + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {subprogram},
                    $Awfif::wsol-> {l} [$asubpbwso] [2],
                    $asubpbwso);
# deploy the descriptor detailing how to take over the cascade

                $Awfif::wsol-> {l} [$asubpbwso][2]
                = setupdesc ( ($cws + $Awfif::memes-> {snnh} {wsi}),
                    ($bdwso + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {initiate},
                    $Awfif::wsol-> {l} [$asubpbwso] [2],
                    $asubpbwso);
# ivalbgowu7
# deploy the descriptor terminating the sub-program

                $Awfif::wsol-> {l} [$asubpbwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {stop}),
                    ($subptwso + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {subprogram},
                    $Awfif::wsol-> {l} [$asubpbwso] [2],
                    $asubpbwso);
# deploy the descriptor detailing how to report completion

                $Awfif::wsol-> {l} [$asubpbwso][2]
                = setupdesc ( ($cws + $Awfif::memes-> {snnh} {wsi}),
                    ($bdwso + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {completed},
                    $Awfif::wsol-> {l} [$asubpbwso] [2],
                    $asubpbwso);
# ivalbcatu1

                $catdesc = findtdesc ($Awfif::wsol-> {l} [$abdwso] [2], $Awfif::memes-> {snnh} {catalysis});
                if (($catdesc != 0)
                ){
# deploy the sub-program cat ref descriptor

                  $Awfif::wsol-> {l} [$asubpbwso][2]
                  = setupdesc ( (0),
                      ($catdesc + $Awfif::memes-> {snnh} {wsi}),
                      $Awfif::memes-> {snnh} {catref},
                      $Awfif::wsol-> {l} [$asubpbwso] [2],
                      $asubpbwso);
                  }#if
                elsif ( (($catref = findtdesc ($Awfif::wsol-> {l} [$abdwso] [2], $Awfif::memes-> {snnh} {catref})) != 0)
                ){
# deploy the sub-program cat ref descriptor

                  $Awfif::wsol-> {l} [$asubpbwso][2]
                  = setupdesc ( (0),
                      ($Awfif::workspace-> {l} [$catref] [2]),
                      $Awfif::memes-> {snnh} {catref},
                      $Awfif::wsol-> {l} [$asubpbwso] [2],
                      $asubpbwso);
                  };#elsif
# ivalbgowu8
# mp signal the sub-program

                $Awfif::memes-> {currentwsbi} = $cwsbi;
                if (!defined ($jhlabeli)
                ){

                  $jhlabeli = 0;
                  $jhlabeloi = 0;
                  };#if
                if (!defined ($Awfif::subpl-> {q} [3] [$Awfif::memes-> {ivalwindex}] [$subpid ])) {

                  $Awfif::subpl-> {q} [3] [$Awfif::memes-> {ivalwindex}] [$subpid ] = 0;
                  };#if

                &ilaunchnc ($myli, $dummy, 'cassuboppi', undef(), \$giveup, $grkwp, $grkwpr, \@$sactset,
                32, #mask out codelet-> {l} [32] i.e. {tfree}
# ivalbuitrau2
                  0,
                  \$newtransid,
                  \$transtatus,
                  $subpid, #signal sub-program
                  \$jhlabeli,
                  \$jhlabeloi,
                  undef (), #newli
                  $Awfif::memes-> {tdfsampdo},
                  \$Awfif::subpl-> {q} [3] [$Awfif::memes-> {ivalwindex}] [$subpid ] #use pooling
                  );

                $jhlabeliav = 't';
                $spigtransid = $newtransid;
                $Awfif::subpl-> {l} [$subpid] [11][++$Awfif::subpl-> {l} [$subpid] [11][0]] = $newtransid;
                $Awfif::subpl-> {l} [$subpid] [12][++$Awfif::subpl-> {l} [$subpid] [12][0]] = $Awfif::tral-> {l} [$newtransid] [4];
                $Awfif::subpl-> {l} [$subpid] [13] = $Awfif::codelet-> {l} [$myli] [20];
                $Awfif::subpl-> {l} [$subpid] [14] = $Awfif::codelet-> {l} [$myli] [21];
                &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{casrelay});
# ivalbuigrau1

# ivalbuif1tu2
                if (!$usedngc
                ){

                  $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                  ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t', undef (), undef(), $Awfif::subpl-> {l} [$subpid] [6], $Awfif::memes-> {snnh} {subpstbinding}, $subpid,
                  undef (), #nodebug
                  undef (), #nodelayselect
                  $Awfif::memes-> {tdfsampdo} #amplify delay select
                  );# sponsor should be one after telomeric header
                  $usedngc = 't';
                  };#if
# ivalbuif1tu1
# deploy the record of the sub-program initiation

                $Awfif::wsol-> {l} [$abdwso][2]
                  = inccounter ( ($newtransid),
                    ($subpid + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {subpdeployed},
                    $Awfif::wsol-> {l} [$abdwso] [2],
                    $abdwso,#awso
                    undef(),#synccod
                    $newtransid,#sltype
                    ($subpid)#spto
                    );

                if ((defined ($newtransid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete})))
                ){

                  &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $newtransid, $subpid);#transmgrid should be undefined
                  &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {stran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $subpid);
                  };#elsif

                if ($Awfif::memes-> {applyactive}
                ){#now have added the assoc f1 can use spi grab amp

                  $dospigrabamp = 't';#must wait until after finish processing the record before we let another codelet in
                  };#if
# ivalbsubptrau1
# deploy the gowithin trail descriptor in the <mkwordref> wso

                $Awfif::memes-> {currentwsbi} = $cws;
                $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
                $amkrwso = awsoadr ($mkrwso);

                $Awfif::wsol-> {l} [$amkrwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $subpstws),
                    ($Awfif::memes-> {snnh} {wsi} + $subpbwso),
                    $Awfif::memes-> {snnh} {gowithin}, #name refers to the wso name used to support wso life cycle
                    $Awfif::wsol-> {l} [$amkrwso] [2],
                    $amkrwso);

                &itcpdist ($Awfif::memes-> {codeleth});
                };# if head exists
              }#if find the subpws
            else {

              &break ();
              };#else
            }#if
          elsif ( ($mfoundtid)
          && (!$dontrep35)
          && (($mtranstatus == $Awfif::memes-> {snnh} {completed}))
          && (defined ($Awfif::codelet-> {l} [$myli] [35]))
          && ($Awfif::codelet-> {l} [$myli] [35] != 0)
          ){

            if ( (defined ($Awfif::memes-> {valbsubpnspcbreak}))
            && ($Awfif::memes-> {valbsubpnspcbreak})
            && ($Awfif::codelet-> {l} [$myli] [36] > 0)
            ){

              &break();
              };#if
            if ( (defined ($Awfif::memes-> {valbsubpspcbreak}))
            && ($Awfif::memes-> {valbsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
            ){

              &break();
              };#if
            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$mtranstatus);
# ivalbtrsal2

            if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            ){

              $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
              };#if
            }#elsif
          else {
# complete the sponsors transaction
# ivalbuitrau1

            $transtatus = 0;#report that have participated successfully
            if ( (defined ($Awfif::codelet-> {l} [$myli] [35]))
            && ($Awfif::codelet-> {l} [$myli] [35] != 0)
            && (!$dontrep35)
            ){

              if ( (defined ($Awfif::memes-> {valbsubpnspcbreak}))
              && ($Awfif::memes-> {valbsubpnspcbreak})
              && ($Awfif::codelet-> {l} [$myli] [36] > 0)
              ){

                &break();
                };#if
              &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
              };#if
# ivalbtrsal3

            if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            ){

              $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
              };#if
            };#else
# Action the value descriptor deployment, respond to stop token, do cloneing
# ivalbdepv1

          if ((!defined ($noget))
          or (!$noget)
          ){
# deploy the value descriptor in the <mkwordref> wso
# ivalbrendu1

            my ($end);
            $Awfif::memes-> {currentwsbi} = $cws;
            $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
            $amkrwso = awsoadr ($mkrwso);

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $stnws),
                ($Awfif::memes-> {snnh} {wsi} + $stnwsoid),
                $valid,
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
            $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$amkrwso] [2]] [10] = $stvalue;ot 7 are used for strength
            $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$amkrwso] [2]] [11] = $kw;
            $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$amkrwso] [2]] [12] = $kwwsoid;
# check if handle stop structure

            if ($handlestop
            ){

              my ($finished);
              $finished = '';
              while (!$finished
              ){

                $Awfif::memes-> {currentwsbi} = $cws;
                if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
                && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
                && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
                && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
                  $Awfif::memes-> {snnh} {tokencategory}, $token,
                  $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
                && ($conforms)
                && ($descfits)
                ){#have found the stop for the value

                  $finished = 't';
                  $end = movecomplex ($myli, $sldesc, 1, $abdwso);
                  }# if
                else {

                  if (($end = movecomplex ($myli, $sldesc, 1, $abdwso)) == 0
                  ){

                    $finished = 't';
                    };#if
                  };#else
                };#while
              }# if handle stop
            else {
# move the workspace position

              $end = movecomplex ($myli, $sldesc, 1, $abdwso);
              };# else don't handle stop
# record the end of the item

            $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$amkrwso] [2]] [14] = $end;
# ivalwbcompsubu2
            if (spicompsub ($myli, 'binderc')
            ){

              &compclone ($myli);
              };#if reply to cascade sponsor/relay
# seltsttceu1

            &iskipw ($myli, $sldesc, $cws, $aws, $abdwso);
            };#if not no get
          }#if at value wsposition or supporting transaction
# conditionally do notgcompleted, do grab for catalysis etc
# seltstbldubo1
        else {# not any direct processing but may need to notgroupcomplete for relaying of other subpids

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          &imasksupp ($myli);
          if ( (subpcsponsor ($myli, $sponsor))
          ){

            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
            ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),undef(), undef (), 't',
            undef (), #stws
            undef (), #issubp
            undef (), #subp
            undef (), #nodebug
            undef (), #nodelayselect
            $Awfif::memes-> {tdfsampdo} #amplify delay select
            );# sponsor should be one after telomeric header
            $usedngc = 't';
            };#if
# ivalwbcompsubu1

          if (spicompsub ($myli, 'binderc')
          ){

            if ((!$dontrep35)
            && ($Awfif::codelet-> {l} [$myli] [35] > 0)
            ){

              $reportcaspart = 't';
              };#if there are other sponsored subpids that need support then must keep relaying

            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abdwso);
            &compclone ($myli);
            };#if reply to this subpid cascade sponsor/relay
          };#else not any direct processing
# report have run so that can be grab candidate
# ivalwbrrunu1

        if ( (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abdwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
        && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
        && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
        ){

          $Awfif::wsol-> {l} [$arunningwso][2]
            = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
            $Awfif::memes-> {snnh} {running},
            $Awfif::wsol-> {l} [$arunningwso][2],
            $arunningwso);
          };#if

        }# if findb binderc
      else {#report error 'impossible context situation' to statement codelet

        my ($stwso, $astwso);
        $Awfif::memes-> {currentwsbi} = $cwsbi;

        if ( ( ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr)) != 0)
        ){

          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };#else ifindb binderc
# conditionally complete the transaction, perform spi grab amplification and apply catalysis

      if ($reportcaspart) {

        if ( (defined ($Awfif::memes-> {valbsubpspcbreak}))
        && ($Awfif::memes-> {valbsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
        ){

          &break();
          };#if
        if ( (defined ($Awfif::memes-> {valbsubpnspcbreak}))
        && ($Awfif::memes-> {valbsubpnspcbreak})
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        ){

          &break();
          };#if

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $mytransid, \$mtranstatus);
        };#if
# ivalbspgau2

      if ($dospigrabamp
      ){#the record finishing procedure has been done so do the spigrabamp

        &spigrabamp ($myli, \$$kwp, $kwpr, undef(), \$jhlabeliav, \$jhlabeli, \$spigtransid);
        $usedngc = '';#may have been reset within spigrabamp processing
        };#if

      if (($catalysis)
      && ($Awfif::memes-> {spiglvl} == 0)
      ){

        &applycodelet ($myli, $sldesc, $cws, $abdwso, \$$kwp, $kwpr, \@$sactset);
        $usedngc = '';#may have been reset within applycodelet processing
        };#if

      if ( ( ( ($depsubs) or ($subpl [0] > 1) )#added subpl check to force completed transaction scenario to sustain ngc for other subprograms. Hope its still selective enough?
      && (!$usedngc)
      && ((subpcsponsor ($myli, $sponsor)) or ($dongc)) )
      or ( (($subpl [0] <= 1) && (($Awfif::memes-> {allowspigrabamp} > 0) or ($dongc)) ) #If spigrabamp is not allowed then completed transactions will not be cleared
      && (!$usedngc) )
      ){

        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),undef(), undef (), 't',
          undef (), #stws
          undef (), #issubp
          undef (), #subp
          undef (), #nodebug
          undef (), #nodelayselect
          $Awfif::memes-> {tdfsampdo} #amplify delay select
          );# sponsor should be one after telomeric header
        }#if
      elsif (($Awfif::memes-> {valskngcbreak}) && ($valid == $Awfif::memes-> {snnh} {ivalue}) && ($token == $Awfif::memes-> {snnh} {value}) && (!$usedngc) && ($dontrep35)){#idea here is to see when the ivalw is failing to notgcomplete - but dontrep35 was included to avoid breaks on pre sub sponsor paths

        &break ();
        };#elsif
# exiting so release the spi stack
# ivalbreccu2

      if ( ($signalsubp)
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      ){

        $Awfif::memes-> {spiglevel} [$Awfif::codelet-> {l} [$myli] [36]]--;
        };#if

      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
# &clogstatx ();
    }# ivalbuilder1
#<!-- end tag scc -->
#<!-- end tag sia -->
#<!-- end tag ds -->
#<!-- end tag aso -->
#
sub seltstbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &ivalbuilder1 ($myli, $Awfif::memes-> {snnh} {selvalue}, $Awfif::memes-> {snnh} {value}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ();
    }# seltstbuilder1
#
sub endrcdkwevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# end record codelet responds to group complete providing context for support of list processing
    $noswstype = '';
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = iendrcdkwevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# endrcdkwevalubo4
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
# endrcdkwevalubo2
          && ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype)))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# endrcdkwevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {
            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {
            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {
            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "endrcdkwbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "endrcdkwbuilder", $$kwp, $kwpr, \@$sactset);
          }#if
# endrcdkwevalubo1
        else {

          my ($sponsortype, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
          $sponsortype = wsbasetype ($sponsor);
          &ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
          $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
          $Awfif::memes-> {currentwsbi} = $cws;

          if (
          (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
          && (!promotesib ($myli))
          ){

            &imasksupp ($myli);
            };#if
          };#else
        };#if

      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# endrcdkwevaluator1
#
sub iendrcdkwevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch);
#
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi, $aws);
#
# checked for merged workspaces

# end record codelet responds to group complete providing exit from a record structure
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
# endrcdkwetmstu1
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);
# endrcdkwetfu
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
      && ($conforms)
      && ($descfits)
      or (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype))
      or ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype)))
# endrcdkwetfu2
      or ( ($usetrans != 0)) #must continue the transaction
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iendrcdkwevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# iendrcdkwevaluator1
#
sub endrcdkwbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iendrcdkwevaluator');
    $$and = 't';
    return $salience
    }# endrcdkwbsmodeler1
#
sub endrcdkwbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $sponsortype, $casinsopp, $setwsclinv, $catalysis, $usetrans, $transid, $transtatus, $stransmgrid, $subpid,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# end record codelet is part of list cascade providing record completion for support of list processing
# checked for merged workspaces

    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi, $slhdesc, $slldesc);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        &bindhistone ($myli, $cws, $bcwso);
        my ($count, $descfits, $conforms, $aws, $mkrwso, $amkrwso);
# endrcdkwbtmstu1
        $Awfif::memes-> {currentwsbi} = $cws;
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $stransmgrid = gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$transid, \$subpid);
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
          };#else
# endrcdkwbtfu
# now have the context workspace
        $Awfif::memes-> {currentwsbi} = $cws;

        $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
        $amkrwso = awsoadr ($mkrwso);

# The end record is expecting the workspace position to be pointing at a record end wso
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
        && (($aws = $Awfif::memes-> {currentwsbi}) != 0)
        && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record},
          $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
        && ($conforms)
        && ($descfits)
        or (
          ($casinsopp =
            (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype))
            ) #brackets assignment
          ) #outside or
# endrcdkwbtfu2
        or ( ($usetrans != 0)) #must continue the transaction
        ){#have identified this is a stop record so tailor it to the application's particular meta requirements

          $Awfif::memes-> {currentwsbi} = $cws;
          $abcwso = awsoadr ($bcwso);
# checks the list start list for a head reference.
          if ( ( ($slhdesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listhead})) != 0 )
          && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
          ){#have identified there is a list head get the associated list link

            $slldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listlink});
            }# if head exists
          else {# error
            };#else
# check that the current wso is allowed in this context according to the list head can contains

          if (($count > 0)
          && (kwmccon ($cws, $Awfif::wsbl-> {wsoh}[$cws], $aws, ($Awfif::workspace-> {l} [$sldesc][2] - $Awfif::memes-> {snnh}{wsi})))
          ) {
#
# if its ok then deploy <recordref> really an mkwordref to the record wso

            my ($buffer, $insymbol, @inmsymbol, @started, $end, $depstag, $depttag, $dephtag, $binding);

            $buffer = '<mkwordref>';
            $depstag = '';
            $depttag = 0;
            $dephtag = 0;
            $insymbol = '';
            @inmsymbol = ();
            $started[0] = 0;
            $started[1] = 't';
            $setwsclinv = '';
# endrcdkwbspu1
            if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0) ){
              $binding = $Awfif::memes-> {snnh} {subpstbinding};
              }#if
            else {
              $binding = $Awfif::memes-> {snnh} {stbinding};
              };#else
            &convbws ($myli, \$buffer, \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $cws, $binding,
              $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {budesc}],
              '',#dont energize the base concepts
              \$setwsclinv
              );
# deploy an initialised record ref descriptor in the <mkwordref> wso
            $Awfif::memes-> {currentwsbi} = $cws;
            $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
            $amkrwso = awsoadr ($mkrwso);
            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})),
                ($Awfif::memes-> {snnh} {wsi} + ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi})),
                $Awfif::memes-> {snnh} {record},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
# deploy an initialised record link descriptor in the <mkwordref> wso

              $Awfif::wsol-> {l} [$amkrwso][2]
              = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
                  ($Awfif::memes-> {snnh} {wsi} + 0),
                  $Awfif::memes-> {snnh} {recordlink},
                  $Awfif::wsol-> {l} [$amkrwso] [2],
                  $amkrwso);
# link the record head's link to the record mkwordref and move the record head wso address

            my ($rcdhwso, $rcdlwso, $rcdhdesc);
            $rcdhwso = $Awfif::workspace->{l} [$slhdesc][2] - $Awfif::memes-> {snnh} {wsi};
            $rcdhdesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($rcdhwso)] [2], $Awfif::memes-> {snnh} {recordhead});
            $rcdlwso = $Awfif::workspace->{l} [$rcdhdesc][2] - $Awfif::memes-> {snnh} {wsi};
            $Awfif::workspace-> {l} [$rcdhdesc] [2] = $mkrwso + $Awfif::memes-> {snnh} {wsi};
# link the previous record head's record link to the record mkwordref
# if the record head is 0 its initialised and we should use the listhead for the record link wso address

            my ($rcdldesc);
            if ($rcdlwso != 0) {
              $rcdldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($rcdlwso)] [2], $Awfif::memes-> {snnh} {recordlink});
              }#if
            else {#initial link is co-resident in the wso with the head descriptor
              $rcdldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($rcdhwso)] [2], $Awfif::memes-> {snnh} {recordlink});
              };#else
            $Awfif::workspace-> {l} [$rcdldesc] [2] = $mkrwso + $Awfif::memes-> {snnh} {wsi};
            $casinsopp = 't';#keep sponsoring
# deploys a model-(sponsortype)-> cascompsopp descriptor to take over schematic sponsorship from startlist kw
# to terminate end rcd kw transaction codelet

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {cascompsopp}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso);
# move the workspace position

            &movecomplex ($myli, $sldesc, 1, $abcwso);
# endrcdkwtceu1
            &iskipw ($myli, $sldesc, $cws, $aws, $abcwso);
            }#if
          else {

            if (!$casinsopp) {#sponsor more of self
              my ($giveup);
              $Awfif::memes-> {currentwsbi} = $cwsbi;
              &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
                '32,37' #mask out codelet-> {l} [32] i.e. {tfree}
                );
              };#if
            };#else
          };# if
# become the sponsor of the cascade opp's start
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
        my ($giveup);
        if ($casinsopp) {#sponsor more of self
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            undef (), #usetrans
            undef (), #transid
            undef (), #transtatus
            undef (), #subprogram
            undef (), #jhlabeli
            undef (), #jhlabeloi
            undef (), #newli
            undef (), #hiurg
            undef (), #usepooling
            ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
            );
          if ((!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype)))
          ){

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casinsopp}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
            };#if
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
# endrcdkwbtfu4
# can't free until loose sponsorship

          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor});
          ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t');# sponsor should be one after telomeric header
          }#if
        else {
# must free once loose sponsorship
# endrcdkwbtfu5

          if ( (defined ($usetrans)) ){

            $transtatus = $Awfif::memes-> {snnh}{wascassponsor};
            };#if
          if ($Awfif::codelet-> {l}[$myli] [32] == 1) {
            &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor});
            };#if
          if( (defined ($transid)) && ($transtatus == $Awfif::memes-> {snnh} {deleted}) #must mask the transaction id
          ){
# endrcdkwbtmstu2

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
            };#if
          &imasksupp ($myli);
          };#else
        }# if is start record
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {

          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
# endrcdkwbldubo1

        &imasksupp ($myli);
        };
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
    };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# endrcdkwbuilder1
#
sub endlistkwevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# end list codelet responds to group complete providing list completion for support of list processing
    $noswstype = '';
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = iendlistkwevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){
# endlistkwetmstu1
# endlistkwetfu
# endlistkwetfu2

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# endlistkwevalubo4
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
# endlistkwevalubo2
          && ((hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompopp}, $sponsortype)))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# endlistkwevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "endlistkwbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "endlistkwbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
# endlistkwevalubo1

        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# endlistkwevaluator1
#
sub iendlistkwevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch);
#
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi, $aws);
#
# checked for merged workspaces

# end list codelet responds to group complete providing end of list actions for support of list processing
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
# endlistkwetmstu1

      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];

      if ($subpid == 0) {

        &mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$usetrans);
        }#if
      else {

        &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);
        };#else
# endlistkwetfu

      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {list},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {end} )>0))
      && ($conforms)
      && ($descfits)
      or ( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompopp}, $sponsortype))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        )
# endlistkwetfu2
      or ( newunmsubp ($myli, $abcwso))
      or ( ($usetrans != 0)) #must continue the transaction
      ){#launch builder

        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iendlistkwevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# iendlistkwevaluator1
#
sub endlistkwbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iendlistkwevaluator');
    $$and = 't';
    return $salience
    }# endlistkwbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub endlistkwbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $sponsortype, $cascompopp, $setwsclinv, $catalysis, $usetrans, $transid, $transtatus, $stransmgrid, $subpid, $usedngc, $stcomp, $endlkwbndsel,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# end list codelet is part of list cascade providing end of list actions for support of list processing
    $noswstype = '';
    $stcomp = '';#stcomp will be true if a signaled subtransaction has been found and is completed
    $endlkwbndsel = $Awfif::memes-> {endlkwbndsel};#may alter memetic setting of endlistkws no delay select locally
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi, $slhdesc, $slldesc, $waitingondesc);
      $waitingondesc = '';
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        &bindhistone ($myli, $cws, $bcwso);
        my ($i, @subpl, $nsubs, $count, $descfits, $conforms, $aws, $mkrwso, $amkrwso);
# endlistkwbtmstu1
        $count = 0;
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        if ($subpid == 0) {

          $stransmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$transid);
          }#if
        else {

          $stransmgrid = gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$transid, \$subpid);
          };#else
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = 0;#must be defined to be updated in transalloc
          if ( (&transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus) == $transid)
          && ($transtatus == $Awfif::memes-> {snnh} {completed}) #
          ){

            if ( (defined ($Awfif::memes-> {endlkwbstcompbreak}))
            && ($Awfif::memes-> {endlkwbstcompbreak})
            ){

              &break();
              };#if
            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
            $usetrans = 0;#just deleted this transaction
            $transid = 0;
            $stcomp = 't';
            };#if
          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          };#else
# endlistkwbtfu
# now have the context workspace
        $Awfif::memes-> {currentwsbi} = $cws;

        $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
        $amkrwso = awsoadr ($mkrwso);

# The end list will only act if the workspace position is pointing at a list end wso, or just sustaining a previous action
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
        && (($aws = $Awfif::memes-> {currentwsbi}) != 0)
        && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {list},
          $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {end} )>0))
        && ($conforms)
        && ($descfits)
        or (
          ($cascompopp =
            (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompopp}, $sponsortype))
            ) #brackets assignment
          && (($Awfif::memes-> {currentwsbi} = $cws) != 0)
          && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
          ) #outside or
# endlistkwbtfu2
        or ( newunmsubp ($myli, $abcwso))
        or ( ($usetrans != 0)) #must continue the transaction
        ){#have identified this is a end list so tailor it to the application's particular meta requirements

          $Awfif::memes-> {currentwsbi} = $cws;
          $abcwso = awsoadr ($bcwso);
# endlistkwdeolu1
          if (($count > 0)
          && ((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {model}, $Awfif::memes-> {snnh} {found}, ($Awfif::memes-> {snnh} {endlistkwevaluator} + $Awfif::memes-> {snnh} {wsi}) )) == 0)
          ){#report that have reached end of list

            if ( (defined ($Awfif::memes-> {endlkwbesdbreak}))
            && ($Awfif::memes-> {endlkwbesdbreak})
            ){

              &break();
              };#if

            $Awfif::wsol-> {l} [$abcwso][2]
            = setupdesc ( $Awfif::memes-> {snnh} {found},
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {endlistkwevaluator}), #
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$abcwso] [2],
                $abcwso,
                't');
            };#if describe finding end of list
# checks the list start list for a head reference.
          if ( ( ($slhdesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listhead})) != 0 )
          && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
          ){#have identified there is a list head get the associated list link

            $slldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {listlink});
            }# if head exists
          else {# error
            };#else
# check that the current wso is allowed in this context according to the list head can contains

          $nsubs = 0;#must be defined to be set
          @subpl = listunmsubp ($myli, $abcwso, \$nsubs);

          if (($count > 0)
          && ($subpl [0] == 0)
          && (kwmccon ($cws, $Awfif::wsbl-> {wsoh}[$cws], $aws, ($Awfif::workspace-> {l} [$sldesc][2] - $Awfif::memes-> {snnh}{wsi})))
          ) {
#
# if its ok then deploy <recordref> really an mkwordref to the record wso

            my ($buffer, $insymbol, @inmsymbol, @started, $end, $depstag, $depttag, $dephtag, $binding);

            $buffer = '<mkwordref>';
            $depstag = '';
            $depttag = 0;
            $dephtag = 0;
            $insymbol = '';
            @inmsymbol = ();
            $started[0] = 0;
            $started[1] = 't';
            $setwsclinv = '';
# endlistkwbspu1

            if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0) ){

              $binding = $Awfif::memes-> {snnh} {subpstbinding};
              }#if
            else {

              $binding = $Awfif::memes-> {snnh} {stbinding};
              };#else

            &convbws ($myli, \$buffer, \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $cws, $Awfif::memes-> {snnh} {stbinding},
              $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {budesc}],
              '',#dont energize the base concepts
              \$setwsclinv
              );
# deploy an initialised list ref descriptor in the <mkwordref> wso

            $Awfif::memes-> {currentwsbi} = $cws;
            $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
            $amkrwso = awsoadr ($mkrwso);
            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})),
                ($Awfif::memes-> {snnh} {wsi} + ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi})),
                $Awfif::memes-> {snnh} {listend},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
# deploy an initialised list link descriptor in the <mkwordref> wso

              $Awfif::wsol-> {l} [$amkrwso][2]
              = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
                  ($Awfif::memes-> {snnh} {wsi} + 0),
                  $Awfif::memes-> {snnh} {listlink},
                  $Awfif::wsol-> {l} [$amkrwso] [2],
                  $amkrwso);
# link the list head's link to the list mkwordref and move the list head wso address

            my ($chead, $slldesc);
            $chead = $Awfif::workspace->{l} [$slhdesc][2] - $Awfif::memes-> {snnh} {wsi};
            $slldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr($chead)] [2], $Awfif::memes-> {snnh} {listlink});
            $Awfif::workspace-> {l} [$slldesc] [2] = $mkrwso + $Awfif::workspace-> {l} [$slldesc] [2];
# update the list head

            $Awfif::workspace-> {l} [$slhdesc] [2] = $mkrwso + $Awfif::memes-> {snnh} {wsi};
            $cascompopp = 't';#keep sponsoring
# deploys a model-(sponsortype)-> cascompopp descriptor to take over schematic sponsorship from startlist kw
# to terminate end list kw transaction codelet

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {cascompopp}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
# describe the list to the statement
            my ($stwso, $astwso, $attribs, $cname);

            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
            if (($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr)) != 0) {
              $astwso = awsoadr ($stwso);

              $attribs = addattrib ($Awfif::memes-> {snnh} {attribs},'');
              &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh} {icselector}, '');
              &addattrib ($Awfif::memes-> {snnh} {attrib}, $cws, '');
              $cname = getstlistname ($myli, $cws, $bcwso);
              &addattrib ($Awfif::memes-> {snnh} {attrib}, $bcwso, '');
              &addattrib ($Awfif::memes-> {snnh} {attrib}, $cname, '');
              &addattrib ($Awfif::memes-> {snnh} {attribe},'');

              $Awfif::wsol-> {l} [$astwso][2]
                = setupdesc ( $Awfif::memes-> {snnh} {attrib},
                    ($Awfif::memes-> {snnh} {wsi} + $attribs),
                    $Awfif::memes-> {snnh} {icselector},
                    $Awfif::wsol-> {l} [$astwso][2],
                    $astwso);
              };#found statement

            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso);
# move the workspace position

            &movecomplex ($myli, $sldesc, 1, $abcwso);
# endlistkwtceu1
            &iskipw ($myli, $sldesc, $cws, $aws, $abcwso);
            }#if
          elsif ($subpl [0] > 0) {

            for ($i = 1; $i <= $subpl[0]; $i++) {
              if ((defined ($subpl [$i]))
              && ($subpl [$i] > 0)
              && ((! defined ($Awfif::subpl-> {l} [$subpl [$i]][9])) or ($Awfif::subpl-> {l} [$subpl [$i]][9] == 0))
              ) {

                my ($codeletdef);
                $waitingondesc = 't';
                &waitondesc ($myli, $abcwso, ($subpl [$i] + $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subpref}, undef(), undef(), undef(), undef(), \$codeletdef);
                $Awfif::subpl-> {l} [$subpl [$i]][9] = $codeletdef;#syncing with descriptor
                $Awfif::codelet-> {l} [$codeletdef] [35] = $Awfif::codelet-> {l} [$myli] [35];
                $Awfif::codelet-> {l} [$codeletdef] [36] = $Awfif::codelet-> {l} [$myli] [36];
                $Awfif::codelet-> {l} [$codeletdef] [37] = $Awfif::codelet-> {l} [$myli] [37];
                };#if
              };#for
            if (!$waitingondesc) {

              $endlkwbndsel = '';
              };#if
            };#elsif
          };# if
# become the sponsor of the cascade opp's start
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]

        my ($giveup);
        $Awfif::memes-> {currentwsbi} = $cwsbi;
# endlistkwbuunb

        if ( ( ( ($cascompopp)
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casunbind}, $sponsortype))) )
          or ($usetrans != 0)
          or (!defined ($Awfif::tmassl-> {first} {$asponsor}))# there is no evidence of any signal to cascade so unbind could otherwise get in and cause lockout
          or ($count > 0)
          )
        && (!$stcomp)
        ) {#sponsor more of self
# endlistkwbhiurgu1

          my ($hiurg);
          if (($subpl[0] == 0)
          && ($nsubs > 0)
          && (($count != 0) or ($usetrans != 0))
          ){#aim to filter onto all subprograms completed

            $hiurg = 't';#raise signal priority
            if ( (defined ($Awfif::memes-> {endlkwacompbreak}))
            && ($Awfif::memes-> {endlkwacompbreak})
            ){

              &break();
              };#if
            };#if

          &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            $usetrans,
            \$transid,
            \$transtatus
            ,$Awfif::codelet-> {l} [$myli] [36],
            undef (), #jhlabeli
            undef (), #jhlabeloi
            undef (), #newli
            $hiurg,
            undef (), #usepooling
            ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
            );

          if (($usetrans == 0)
          && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}) ) )
          ){#record the transid

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $subpid, $stransmgrid);
            };#if

          if ((!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {cascompopp}, $sponsortype)))
          ){

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {cascompopp}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
            };#if
# endlistkwbtfu4
# can't free until loose sponsorship

          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor});
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
          ¬gcompleted ($myli,
              $sponsor, #gsoid
              teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),
              't',# sponsor should be one after telomeric header
              undef (),#strategy
              undef (),#dontamp
              undef (),#stws
              undef (),#issubp
              undef (),#subp
              undef (),#nodebug
              $endlkwbndsel #nodelayselect
            );
          $usedngc = 't';
          }#if
        elsif (!$waitingondesc) {
# must free once loose sponsorship
# endlistkwbtfu5
# endlistkwbhiurgu2

          if ( (defined ($Awfif::memes-> {endlkwbstcompbreak}))
          && ($Awfif::memes-> {endlkwbstcompbreak})
          ){

            &break();
            };#if
          if ($Awfif::memes-> {tdfsampdo}) {

            if ((defined ($Awfif::memes-> {endlkwhiu2break})) && ($Awfif::memes-> {endlkwhiu2break}) ){&break()};
            $Awfif::memes-> {tdfsampdo} = '';
            };#if

          if ( (defined ($usetrans)) ){

            $transtatus = $Awfif::memes-> {snnh}{wascassponsor};
            };#if

          if ($Awfif::codelet-> {l}[$myli] [32] == 1) {

            &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor});
            };#if

          if( (defined ($transid)) && ($transtatus == $Awfif::memes-> {snnh} {deleted}) #must mask the transaction id
          ){
# endlistkwbtmstu2

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
            };#if

          &imasksupp ($myli);
          };#else
        }# if is start record
      else {#report error 'impossible context situation' to statement codelet

        my ($stwso, $astwso);
        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {

          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
# endlistkwbldubo1

        &imasksupp ($myli);
        };
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
        };#if

      if ( (defined ($Awfif::memes-> {endlistngcbreak}))
      && ($Awfif::memes-> {endlistngcbreak} )
      && ($Awfif::memes-> {!$usedngc} )
      && (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casunbind}, $sponsortype) )
      ){

        &break();
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
    };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# endlistkwbuilder1

#
#<!-- end tag ds -->
#
sub unbindevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    &iunbindevaluator1 ($myli, 'unbindbuilder', \$$kwp, $kwpr, \@$sactset);
    }# unbindevaluator1
#
#<!-- start tag aso -->
#
sub iunbindevaluator1 {
    my ($myli, $strategy, $kwp, $kwpr, $sactset) = @_;
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $cwsbi, $cws,
    $grkwp, $grkwpr, $cdn, $cdnx);
#

    $cwsbi = $Awfif::memes-> {currentwsbi};
# unbind codelet responds to group complete disocciating the binder complex
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {

      if ( icompletesc ($myli, $strategy, $sponsor, \$cws, \$$kwp, $kwpr, \@$sactset)
      ){

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {

          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {

          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = $strategy;
        $Awfif::clp-> {action}-> {sponsor} = $sponsor;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];

        &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), $strategy, $$kwp, $kwpr, \@$sactset);
        }#if
# unbindevalubo1
      else {

        my ($sponsortype);
        $sponsortype = wsbasetype ($sponsor);
        if (
        (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!promotesib ($myli))
        ){

          &imasksupp ($myli);
          };#if
        };#else
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# iunbindevaluator1
#
#<!-- end tag aso -->
#
sub unbindbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# unbind codelet responds to group complete disocciating the binder complex
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my (@typel, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bdwso, $abdwso, $cwsbi, $aws);
      $cwsbi = $Awfif::memes-> {currentwsbi};
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [19];
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
      $typel[0] = wsbasetype (trwsoadr ($twso, -3));
      $typel[1] = wsbasetype (trwsoadr ($twso, -2));
      $typel[2] = wsbasetype (trwsoadr ($twso, -1));

      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        &bindhistone ($myli, $cws, $bdwso);
        my ($count, $descfits, $conforms, $mkrwso, $amkrwso);
        $Awfif::memes-> {currentwsbi} = $cws;
        $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
        $amkrwso = awsoadr ($mkrwso);

        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abdwso = awsoadr ($bdwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
        && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 3), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
          $Awfif::memes-> {snnh} {tokencategory}, $typel [0],
          $Awfif::memes-> {snnh} {tokencategory}, $typel [1],
          $Awfif::memes-> {snnh} {tokencategory}, $typel [2])>0))
        && ($conforms)
        && ($descfits)
        ){#request holds
# reset the wsposition to zero

          my ($stwso, $astwso);
          &relcodelets ($myli, $sldesc, $cws, $abdwso);
          $Awfif::workspace-> {l} [$sldesc] [2] = $Awfif::memes-> {snnh} {wsi} + 0;
# inform the controlling statement of unbinding
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
          $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
            = setupdesc ( $Awfif::memes-> {snnh} {unbind},
                ($Awfif::memes-> {snnh} {wsi} + $sponsortype),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$astwso][2],
                $astwso,
                't');
# unbindbuildubo1
# terminate the cascade

          $Awfif::wsol-> {l} [$amkrwso][2]
          = setupdesc ( ($sponsortype),
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casunbind}),
              $Awfif::memes-> {snnh} {model},
              $Awfif::wsol-> {l} [$amkrwso] [2],
              $amkrwso);
# unbindbuildutp1
# if transaction protected reply completed

          if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

            my ($transtatus);
            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
            };#if
          if ($Awfif::memes-> {tdfsampdo}) {

            if ((defined ($Awfif::memes-> {unbindhiu2break})) && ($Awfif::memes-> {unbindhiu2break}) ){&break()};
            $Awfif::memes-> {tdfsampdo} = '';
            };#if
# unbindbuildihu1
# inactivate the histone

      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };

    &clogstatx ();
    }# unbindbuilder1
#<!-- start tag sia -->
#
sub ivalevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset, $strategy, $token) = @_;
    my ($sponsor, $atelhwso, $signal, $schema, $spi, $swstype, $noswstype, $launchedbuilder,
    $grkwp, $grkwpr, $cdn, $cdnx);
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
    my ($asponsor);
# checked for merged workspaces

# value structure codelet responds to group complete providing processing of selector and value structures with gowithin properties
# this requires frame shifting, and initiation of sub-codelets to enter the frame shifted wso structure
    $noswstype = '';
    $launchedbuilder = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)
    ){

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor, -1));
      $launchev = iivalevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc, $token);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          my ($ifstws, $ifisstws);
          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# ivaleurgu1
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ($Awfif::codelet-> {l} [$myli] [36] > 0
          ){

            $ifstws = $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [6];
            $ifisstws = $Awfif::memes-> {snnh} {subpstbinding};
            };#if
          if ((ifindupri ($myli, $sponsor, undef (), 't', $ifstws, $ifisstws, $Awfif::codelet-> {l} [$myli] [36]))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
            }#if
          else {

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])
          ){

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };#else
          $Awfif::clp-> {strategy} = $strategy;
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          $Awfif::clp-> {action}-> {tfree} = 1;#ivalw should not be freed without running
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), $strategy, $$kwp, $kwpr, \@$sactset);
          $launchedbuilder = 't';
          }#if
# seltstevalubo1
        else {

          my ($sponsortype, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
          $sponsortype = wsbasetype ($sponsor);
          &ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
          $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
          if (subpstate ($Awfif::codelet-> {l} [$myli][36]) == $Awfif::memes-> {snnh} {completed}
          ){

            }#if
          elsif ( (($Awfif::memes-> {currentwsbi} = $cws)!= 0)
          && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
          && (!promotesib ($myli))
          ){

            $Awfif::memes-> {currentwsbi} = $cwsbi;
            &imasksupp ($myli);
# complete the sponsors transaction

            my ($transtatus);
            $transtatus = 0;#find out the status of the transaction
            if ( (defined ($Awfif::codelet-> {l} [$myli] [35]))
            && ($Awfif::codelet-> {l} [$myli] [35] != 0)
            ){

              my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $cws, $bdwso, $abdwso, @csubpl);
              my ($reportdesc, $areportwso, $transtatus);
              &ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
              $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
              $Awfif::memes-> {currentwsbi} = $cws;
              $abdwso = awsoadr ($bdwso);

              @csubpl = listcsubp ($myli, $abdwso);
# if dont get any f1s AND my own bcsubpc has written its completion descriptor
              if( (getf1tmgr ($myli, $atelhwso, $asponsor, $Awfif::codelet-> {l} [$myli] [36], undef(), undef(), \@csubpl) == 0)
              && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abdwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )
              && ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi}) > 0)
              && (($areportwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi}))) > 0)
              &&((findbond ($Awfif::wsol-> {l} [ $areportwso] [2], $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subprogram})))
              ){

                if ( (defined ($Awfif::memes-> {valbsubpnspcbreak}))
                && ($Awfif::memes-> {valbsubpnspcbreak})
                && ($Awfif::codelet-> {l} [$myli] [36] > 0)
                ){

                  &break();
                  };#if
                &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
                };#if
              };#if
            };#elsif
          };#else
        };#if
      if ((!$launchedbuilder)
      && (subpcsponsor ($myli, $sponsor))
      ){

        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),undef(), undef (), 't');# sponsor should be one after telomeric header
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    }# ivalevaluator1
#
sub iivalevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc, $token) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($usetrans, $subpid, $dolaunch, @csubpl, $cwsbi);
    my ($atelhwso);
    my ($abdwso, $asponsor);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($Awfif::memes-> {checktransidnz})
    && ($Awfif::codelet-> {l} [$myli][36] > 0)
    && ($Awfif::codelet-> {l} [$myli][35] == 0)
    && (findsubpicnm ($myli, $Awfif::codelet-> {l}[$myli][36], setupbuildername (setupprocname ($myli))) > 0)
    && (!mysubtrancomp ($myli, findsubpicnm ($myli, $Awfif::codelet-> {l}[$myli][36], setupbuildername (setupprocname ($myli))
          ), setupbuildername (setupprocname ($myli))))
    ){

      &break ();
      };#if
    if (($Awfif::memes-> {valesubpbreak}) && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if

    if ( (defined ($Awfif::memes-> {valesubpspbreak}))
    && ($Awfif::memes-> {valesubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
    ){

      &break();
      };#if
    if (($Awfif::memes-> {valemainpbreak}) && ($Awfif::codelet-> {l} [$myli] [36] == 0)
    ){

      &break();
      };#if

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $sldesc, $cws, $bdwso, $aws);
# checked for merged workspaces

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $atelhwso = awsoadr (trwsoadr ($sponsor, -1));

    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($count, $descfits, $conforms, $stransmgrid);
      $Awfif::memes-> {currentwsbi} = $cws;
      $abdwso = awsoadr ($bdwso);
# ivaletmstu1

      @csubpl = listcsubp ($myli, $abdwso);
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = getf1tmgr ($myli, $atelhwso, $asponsor, $Awfif::codelet-> {l} [$myli] [36], \$usetrans, \$stransmgrid, \@csubpl);
# ivaletfu
# removed
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $token,
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start},
        $Awfif::memes-> {snnh} {orcategory}, $Awfif::memes-> {snnh} {alternate} )>0))
      && ($conforms)
      && ($descfits)
      or ( ($usetrans != 0)) #must continue the transaction
# ivalwecompsubu1
      or (spicompsub ($myli, 'binderc'))
      ){#launch builder

        $dolaunch = 't';
        };#if
      }#if
    else {#unexpected failure of ifindb

      &break (); #####
      };#else
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iivalevaluatorx ret ($dolaunch)\n");
      };#if
    return $dolaunch
    }# iivalevaluator1
#<!-- end tag sia -->
#<!-- start tag scc -->
#
sub bcsubpcevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# subprogram completion codelet is active when the end of a subprogram workspace is detected
# checked for merged workspaces

    $noswstype = '';
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
    $cwsbi = $Awfif::memes-> {currentwsbi};
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $launchev = ibcsubpcevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# bcsubpcevalubo4
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
# bcsubpcevalubo2
          && ( !( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype) )
          or
          (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype) ) ) )
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# bcsubpcevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "bcsubpcbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];

          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "bcsubpcbuilder", $$kwp, $kwpr, \@$sactset);
          }#if
# bcsubpcevalubo1
        else {

          if (subpstate ($Awfif::codelet-> {l} [$myli][36]) == $Awfif::memes-> {snnh} {completed}) {

            }#if
          elsif (!promotesib ($myli)) {

            &imasksupp ($myli);
            };#elsif
          };#else
        };#if
      };#got buffer
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# bcsubpcevaluator1
#
sub ibcsubpcevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch);
#
# subprogram completion codelet is active when the end of a subprogram workspace is detected
# checked for merged workspaces

    $noswstype = '';
    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $termdesc, $reportdesc, $cws, $bcwso, $abcwso, $cwsbi);
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      $Awfif::memes-> {currentwsbi} = $cws;
# ibcsubpcetmstu1
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && (($termdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {subprogram}, ($Awfif::memes-> {snnh} {stop}))) != 0 )
      && ($Awfif::workspace-> {l} [$termdesc] [2] == $Awfif::workspace-> {l} [$sldesc] [2])
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )
      or ( newunmsubp ($myli, $abcwso))
      or ( ($usetrans != 0)) #must continue the transaction
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ibcsubpcevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# ibcsubpcevaluator1
#
sub bcsubpcbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# subprogram completion codelet is active when the end of a subprogram workspace is detected

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'ibcsubpcevaluator');
    $$and = 't';
    return $salience
    }# bcsubpcbsmodeler1
#
#<!-- end tag scc -->
#
sub ievalbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and, $strategy, $itoken) = @_;#itoken should only be defined for ival based codelets
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $salience,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# inversion modeling codelet calls the strategy routine allowing evaluation of situation to be a modeling input
# checked for merged workspaces
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ievalbsmodeler myli $myli strategy $strategy itoken ($itoken) kwp($$kwp) kwpr($kwpr) ");
      };

# inverted evaluator component for modeling
    $noswstype = '';
    my ($cwsbi, $launchev, $fbinderc);
    if (!defined ($Awfif::memes-> {currentwsbi})) {&break()};
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $$and = '';
    $salience = $Awfif::memes-> {bnotsalient};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $Awfif::codelet-> {l} [$myli] [37] = mapsubtotmgrid ( awsoadr (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], -1)), $Awfif::memes-> {snnh} {rtran}, $Awfif::codelet-> {l} [$myli] [36]);

    if ( ( ($Awfif::codelet-> {l} [$myli] [36] == 0)
      or ( ($Awfif::codelet-> {l} [$myli] [36] > 0) && ($Awfif::codelet-> {l} [$myli] [37] > 0) )#or
      )#ifclause
    && (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3, ''))
    ){#must role in

      no strict 'refs';
      $launchev = $Awfif::memes-> {binds}-> {$strategy}-> ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc, $itoken);
      if (($fbinderc)
      ){#

        if (($launchev)
        ){

          $salience = $Awfif::memes-> {bsalient};
          };#if
        };#if
      &clogstatx ($myli);
      };#got buffer
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if (!defined ($Awfif::memes-> {currentwsbi})) {&break()};

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ievalbsmodelerx and $$and ret ($salience)\n");
      };
    return $salience
    }# ievalbsmodeler1
#
#<!-- start tag sia -->
#<!-- start tag ds -resweb -->
#<!-- start tag scc -->
#
sub bcsubpcbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $sponsortype, $usetrans, $stransmgrid, $catalysis, $reportcaspart, $transtatus,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# binder complex sub-program completion codelet monitors for the termination condition of a sub-program
# checked for merged workspaces

    $reportcaspart = '';
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      if ( (defined ($Awfif::memes-> {bcsubpcbsubpspbreak}))
      && ($Awfif::memes-> {bcsubpcbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {bcsubpcbsubpnspbreak}))
      && ($Awfif::memes-> {bcsubpcbsubpnspbreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      ){

        &break();
        };#if
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# bcsubpcbbhu1

        &bindhistone ($myli, $cws, $bcwso);
        my ($termdesc, $reportdesc, $arunningwso, $transid, $subpid);
# bcsubpcbtmstu1
        $Awfif::memes-> {currentwsbi} = $cws;
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $stransmgrid = gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$transid, \$subpid);
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
          };#else
# bcsubpcbtfu
# removed

        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && (($termdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {subprogram}, ($Awfif::memes-> {snnh} {stop}))) != 0 )#ival deploys this for the bcsubpc when setting up the subprogram
        && ($Awfif::workspace-> {l} [$termdesc] [2] == $Awfif::workspace-> {l} [$sldesc] [2])
        && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#ival deploys to describe how to report completion
        or ( newunmsubp ($myli, $abcwso))
        or ( ($usetrans != 0)) #
        ){#report completion

          my ($i, @subpl);
          if ((defined ($reportdesc)) && ($reportdesc != 0)) {#try to initiate catalysis
# bcsubpcbgrabu1

            $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, 't');
            };#if
# bcsubpcbtrsal1
          if (($Awfif::codelet-> {l} [$myli] [37] > 0)
          && ((!defined($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3])) or ($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] == $Awfif::memes-> {snnh} {start}) )
          ) {

            $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {incomplete};
            };#if
          @subpl = listunmsubp ($myli, $abcwso);
          if ($subpl[0] > 0) {
# bcsubpcbses1

            for ($i = 1; $i <= $subpl[0]; $i++) {
              if ((defined ($subpl [$i]))
              && ($subpl [$i] > 0)
              && ((! defined ($Awfif::subpl-> {l} [$subpl [$i]][9])) or ($Awfif::subpl-> {l} [$subpl [$i]][9] == 0))
              ) {

                my ($codeletdef);
                &waitondesc ($myli, $abcwso, ($subpl [$i] + $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subpref}, undef(), undef(), undef(), undef(), \$codeletdef);
                $Awfif::subpl-> {l} [$subpl [$i]][9] = $codeletdef;#syncing with descriptor
                $Awfif::codelet-> {l} [$codeletdef] [35] = $Awfif::codelet-> {l} [$myli] [35];
                $Awfif::codelet-> {l} [$codeletdef] [36] = $Awfif::codelet-> {l} [$myli] [36];
                $Awfif::codelet-> {l} [$codeletdef] [37] = $Awfif::codelet-> {l} [$myli] [37];
                };#if
              };#for
# bcsubpcdeolu1
# cwsposition has reached end of subprogram ws - write end of stream descriptor to emulate endlistkwbuilder so q deferred bcsubps, ivalw launched on gowithin from this ws, will start

            if ((defined ($termdesc))
            && ($termdesc > 0)
            && (defined ($sldesc))
            && ($sldesc > 0)
            && ($Awfif::workspace-> {l} [$termdesc] [2] == $Awfif::workspace-> {l} [$sldesc] [2])
            &&((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {model}, $Awfif::memes-> {snnh} {found}, ($Awfif::memes-> {snnh} {endlistkwevaluator} + $Awfif::memes-> {snnh} {wsi}) )) == 0)
            ){#simulate endkwlist report that have reached end of list

              if ( (defined ($Awfif::memes-> {endlkwbesdbreak}))
              && ($Awfif::memes-> {endlkwbesdbreak})
              ){

                &break();
                };#if

              $Awfif::wsol-> {l} [$abcwso][2]
              = setupdesc ( $Awfif::memes-> {snnh} {found},
                  ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {endlistkwevaluator}), #
                  $Awfif::memes-> {snnh} {model},
                  $Awfif::wsol-> {l} [$abcwso] [2],
                  $abcwso,
                  't');
              };#if describe finding end of list
            }#if
          else {

            my ($areportwso, $subp11i);
            $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi});
            $areportwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi}));
            if ((!(findbond ($Awfif::wsol-> {l} [ $areportwso] [2], $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subprogram})))) {

              $Awfif::wsol-> {l} [$areportwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {completed}),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
                $Awfif::memes-> {snnh} {subprogram},
                $Awfif::wsol-> {l} [$areportwso][2],
                $areportwso);
# complete the sponsors transaction

# bcsubpcbuitrau1
              $transtatus = 0;#find out the status of the transaction
              };#if
            if ( (defined ($Awfif::codelet-> {l} [$myli] [35]))
            && ($Awfif::codelet-> {l} [$myli] [35] != 0)
            ){

              $reportcaspart = 't';
              };#if
# bcsubpcbuitcompu1
            $subp11i = findsubpicnm ($myli, $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [2]);
            if ((!(findbond ($Awfif::wsol-> {l} [ $areportwso] [2], $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subpref})))
            && (subtrancomp ($myli, $subp11i) )
            ){

              if ( (defined ($Awfif::memes-> {bcsubpcbsubpspabreak}))
              && ($Awfif::memes-> {bcsubpcbsubpspabreak} == $Awfif::codelet-> {l} [$myli] [36])
              ){

                &break();
                };#if
              if ( (defined ($Awfif::memes-> {bcsubpcbsubpnspabreak}))
              && ($Awfif::memes-> {bcsubpcbsubpnspabreak} )
              ){

                &break();
                };#if
              $Awfif::wsol-> {l} [$areportwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {completed}),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
                $Awfif::memes-> {snnh} {subpref},
                $Awfif::wsol-> {l} [$areportwso][2],
                $areportwso,
                't');#sync with deferred codelet
# bcsubpcbmdfu1

              my ($is);
              for ($is = 1; $is < $Awfif::subpl-> {p}; $is++) {
                $Awfif::subpl-> {q} [0] [ $is ] = ();
                $Awfif::subpl-> {q} [1] [ $is ] = 0;
                };#for
              $Awfif::memes-> {tdfsampdo} = '';
              }#if
# bcsubpcbwonstcu1
            elsif ( (!(findbond ($Awfif::wsol-> {l} [ $areportwso] [2], $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subpref})))
            && ( (!defined($Awfif::tral-> {w} [$Awfif::subpl-> {l}[$Awfif::codelet-> {l} [$myli] [36]] [11] [$subp11i] ][0]))#should check for no presence in list of this codelet name
            or ($Awfif::tral-> {w} [$Awfif::subpl-> {l}[$Awfif::codelet-> {l} [$myli] [36]] [11] [$subp11i] ][0] == 0) )#should check for no presence in list of this codelet name
            ){#issue wait

              if ( (defined ($Awfif::memes-> {bcsubpcbsubpspwbreak}))
              && ($Awfif::memes-> {bcsubpcbsubpspwbreak} == $Awfif::codelet-> {l} [$myli] [36])
              ){

                &break();
                };#if
              if ( (defined ($Awfif::memes-> {bcsubpcbsubpnspwbreak}))
              && ($Awfif::memes-> {bcsubpcbsubpnspwbreak} )
              ){

                &break();
                };#if
              &waitonstrancomp ($myli, $kwp, $kwpr, \@$sactset);
              };#elsif
# bcsubpcbtrsal2
            if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            ) {

              $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
              };#if
            };#else
          };#if ready to complete
# bcsubpcbrrunu1

        if ( (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
        && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
        && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
        ){

          $Awfif::wsol-> {l} [$arunningwso][2]
            = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
            $Awfif::memes-> {snnh} {running},
            $Awfif::wsol-> {l} [$arunningwso][2],
            $arunningwso);

          &compclone ($myli);
          };#if
        };#if ifindb
      if ($reportcaspart) {

        if ( (defined ($Awfif::memes-> {bcsubpcbsubpspcbreak}))
        && ($Awfif::memes-> {bcsubpcbsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
        ){

          &break();
          };#if
        if ( (defined ($Awfif::memes-> {bcsubpcbsubpnspcbreak}))
        && ($Awfif::memes-> {bcsubpcbsubpnspcbreak} )
        ){

          &break();
          };#if
        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        &itcpdist ($Awfif::memes-> {codeleth});
        };#if
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# bcsubpcbuilder1
#
#<!-- end tag scc -->
#<!-- end tag ds -->
#<!-- end tag sia -->
#
sub bcsubpsevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype, $launchedbuilder,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# binder complex sub-program initiation codelet sponsors the sub-program while the termination condition does not hold
# checked for merged workspaces

    $noswstype = '';
    $launchedbuilder = '';
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = ibcsubpsevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# bcsubpsevalubo4
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
# bcsubpsevalubo2
          && ( !( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype) )
          or
          (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype) ) ) )
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# bcsubpsevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {
            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {
            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {
            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "bcsubpsbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "bcsubpsbuilder", $$kwp, $kwpr, \@$sactset);
          $launchedbuilder = 't';
          };#if
        }#if
# bcsubpsevalubo1
      else {
        if (subpstate ($Awfif::codelet-> {l} [$myli][36]) == $Awfif::memes-> {snnh} {completed}) {

          }#if
        elsif (!promotesib ($myli)) {

          &imasksupp ($myli);
          };#elsif
        };#else
      if ((!$launchedbuilder) && (subpcsponsor ($myli, $sponsor))) {

        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),undef(), undef (), 't');# sponsor should be one after telomeric header
        };#
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# bcsubpsevaluator1
#
sub ibcsubpsevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch, $atelhwso);
#
# binder complex sub-program initiation codelet sponsors the sub-program while the termination condition does not hold
# checked for merged workspaces

    $noswstype = '';
    $dolaunch = '';
    if ( (defined ($Awfif::memes-> {bcsubpsesubpnspbreak}))
    && ($Awfif::memes-> {bcsubpsesubpnspbreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if
    if ( (defined ($Awfif::memes-> {bcsubpsesubpspbreak}))
    && ($Awfif::memes-> {bcsubpsesubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
    ){

      &break();
      };#if
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $reportdesc, $cws, $bcwso, $abcwso, $cwsbi);
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);
    $atelhwso = awsoadr (trwsoadr ($sponsor, -1));

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($initdesc);
      $Awfif::memes-> {currentwsbi} = $cws;
# bcsubpsetmstu1
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);
# bcsubpsetfu
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && (($initdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {subprogram}, ($Awfif::memes-> {snnh} {start}))) != 0 )
      && ($Awfif::workspace-> {l} [$initdesc] [2] != $Awfif::workspace-> {l} [$sldesc] [2])
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )
      && ((subpstate ($subpid) != $Awfif::memes-> {snnh} {completed}))
      or ( ($usetrans != 0)) #must continue the transaction
      ){#launch builder
# bcsubpsedselu1
# if called in spigrabamp and the codelet has a positive delay specified before it is selected for running then decrement the select and return false

        my ($counteri);
        if (($Awfif::memes-> {spiglvl} == 0)
        or (!findcounter ($Awfif::wsol-> {l} [$asponsor][2], $Awfif::memes-> {snnh} {delayselect}, \$counteri))#, undef(), undef (), $Awfif::codelet-> {l} [$myli] [36], $atelhwso, 1))
        or ($Awfif::workspace-> {l} [$counteri] [11] != $Awfif::codelet-> {l} [$myli] [37])#this is a special use of findcounter for rolein/out only so these tests are a bit odd
        or ($Awfif::workspace-> {l} [$counteri] [9] <= ($Awfif::memes-> {snnh} {wsi} + 0))
        ){

          $dolaunch = 't';
          }#if
        elsif ($counteri > 0){

          $Awfif::workspace-> {l} [$counteri] [9]--;
          };#if
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ibcsubpsevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# ibcsubpsevaluator1
#
sub bcsubpsbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bcsubpsbsmodeler myli $myli");
      };

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'ibcsubpsevaluator');
    $$and = 't';
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bcsubpsbsmodelerx and ($$and) ret ($salience)\n");
      };
    return $salience
    }# bcsubpsbsmodeler1
#
#<!-- start tag sia -->
#<!-- start tag scc -->
#<!-- start tag ds -resweb -->
#
sub bcsubpsbuilder1 {#The ignored parameters are required by the codelet calling architecture
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $atelhwso, $signal, $schema, $swstype, $noswstype, $sponsortype, $usetrans, $transid, $transtatus, $stransmgrid, $catalysis, $signalled, $usedngc, $depsubs, $jhlabeli, $jhlabeliav, $reportcaspart, $dospigrabamp,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# binder complex sub-program initiation codelet sponsors the sub-program while the termination condition does not hold
# checked for merged workspaces

    $dospigrabamp = '';
    if ( (defined ($Awfif::memes-> {bcsubpsbsubpnspbreak}))
    && ($Awfif::memes-> {bcsubpsbsubpnspbreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if
    if ( (defined ($Awfif::memes-> {bcsubpsbsubpspbreak}))
    && ($Awfif::memes-> {bcsubpsbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
    ){

      &break();
      };#if
    $noswstype = '';
    $usedngc = '';
    $depsubs = '';
    $reportcaspart = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($reportdesc, $arunningwso, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));
      $sponsortype = wsbasetype ($sponsor);
      $jhlabeliav = '';
# bcsubpsbwonelkd1

      $cwsbi = $Awfif::memes-> {currentwsbi};
      if (notwaitonelkd ($myli, $sponsor, $grkwp, $grkwpr, \@$sactset) ){#endlistkwbuilder must find end of list before bcsubpsbuilder starts to act

        if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
        ){#

          $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# bcsubpsbbhu1

          &bindhistone ($myli, $cws, $bcwso);
          my ($grabdesc, $counteri, $initdesc, $csubpid, $sgdi, $gsponsor, $nrdescp);
# bcsubpsbtmstu1
          $Awfif::memes-> {currentwsbi} = $cws;
          $abcwso = awsoadr ($bcwso);
          $usetrans = gettransstate ($myli, $sponsor, $asponsor, 'binderc', \$stransmgrid, \$transid, \$transtatus, $$kwp, $kwpr, \@$sactset);
          if (((defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) && ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] != 0) )
          && ((findcounter ($Awfif::wsol-> {l} [$abcwso][2], ($Awfif::memes-> {snnh} {completingf1}), \$counteri, $Awfif::codelet-> {l} [$myli] [36] )))
          ){#wait completed
# bcsubpswaitcu1

            $Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] = undef ();
            $Awfif::memes-> {bcsubpscdef} = freesubpscdef ($myli, $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {bcsubpscdef}, $abcwso);
# bcsubpswschu1
            &setusalcwsocache ($asponsor, undef(), (($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bugroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}])), undef());
            }#if
          elsif ( ((!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0))
          && ((findtdesc ($Awfif::wsol-> {l} [$abcwso][2], ($Awfif::memes-> {snnh} {wascompletingf1}), $Awfif::codelet-> {l} [$myli] [36] ) > 0))
          ){#wait should be initiated
# bcsubpsiwaitu1

            my ($codeletdef);
            if (!defined($Awfif::memes-> {bcsubpscdef})) {$Awfif::memes-> {bcsubpscdef} = 0};#setup a queue head for the deferred codelets
            &waitondesc ($myli, $abcwso, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}), $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {snnh} {completingf1}, undef(), undef(), undef(), undef(), \$codeletdef);
            $Awfif::memes-> {bcsubpscdef} = addsubpscdef ($myli, $codeletdef, $Awfif::memes-> {bcsubpscdef});
            $Awfif::codelet-> {l} [$codeletdef] [35] = $Awfif::codelet-> {l} [$myli] [35];
            $Awfif::codelet-> {l} [$codeletdef] [36] = $Awfif::codelet-> {l} [$myli] [36];
            $Awfif::codelet-> {l} [$codeletdef] [37] = $Awfif::codelet-> {l} [$myli] [37];
            $Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] = $asponsor;
# bcsubpswschu2
            &setusalcwsocache ($asponsor, undef(), (($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bugroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}])), undef());
            };#elsif
# bcsubpsgrabu1

          $jhlabeliav = '';
          if ( (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
          && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
          && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
          && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli)) > 0)
          ){

            $Awfif::wsol-> {l} [$asponsor][2]
              = inccounter ( 0,
                  (0 ), #will become a reference to codelet shell
                  $Awfif::memes-> {snnh} {grab},
                  $Awfif::wsol-> {l} [$asponsor] [2],
                  $asponsor);

            if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
            ){

              $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
              };#if
            };#if
# bcsubpsspigu
# this can't work since the assoc f1 has not been setup yet

# bcsubpsbtfu
# descriptor based strategy removed

          if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
          && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
          && (($initdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {subprogram}, ($Awfif::memes-> {snnh} {start}))) != 0 )
          && ($Awfif::workspace-> {l} [$initdesc] [2] != $Awfif::workspace-> {l} [$sldesc] [2])
          && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )
          && ((!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0))
          or ( ($usetrans != 0)
            && ($nrdescp = 't')
            && ((!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0)) ) #must continue the transaction
          ){#report started to take over cascade

            my ($areportwso, $dummy, $giveup);
            if ((defined ($reportdesc)) && ($reportdesc != 0)) {#try to initiate catalysis
# bcsubpsbgrabu1

              $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, 't');
              };#if

# bcsubpsbtrsal1
            if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            && ((!defined($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3])) or ($Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] == $Awfif::memes-> {snnh} {start}) )
            ) {

              $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {incomplete};
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor});
              };#if
# bcsubpsbsig1
            if ((!defined ($nrdescp))) {#wsposition is not at terminus
              $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi});
              $areportwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi}));
              if ((!(findbond ($Awfif::wsol-> {l} [ $areportwso] [2], $Awfif::codelet-> {l} [$myli] [36], $Awfif::memes-> {snnh} {initiate}, $Awfif::memes-> {snnh} {subprogram})))) {

                my ($aws);
                &compclone ($myli);
                $Awfif::wsol-> {l} [$areportwso][2]
                  = setupdesc ( ($Awfif::memes-> {snnh} {initiate}),
                  ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
                  $Awfif::memes-> {snnh} {subprogram},
                  $Awfif::wsol-> {l} [$areportwso][2],
                  $areportwso);

                $Awfif::memes-> {currentwsbi} = $cwsbi;
                if (!defined ($Awfif::subpl-> {q} [3] [$Awfif::memes-> {bcsubpsindex}] [$Awfif::codelet-> {l} [$myli] [36] ])) {
                  $Awfif::subpl-> {q} [3] [$Awfif::memes-> {bcsubpsindex}] [$Awfif::codelet-> {l} [$myli] [36] ] = 0;
                  };#if
                if ( (defined ($Awfif::memes-> {bcsubpsbsubpspsigbreak}))
                && ($Awfif::memes-> {bcsubpsbsubpspsigbreak} == $Awfif::codelet-> {l} [$myli] [36])
                ){

                  &break();
                  };#if
                &ilaunchnc ($myli, $dummy, 'cassuboppi', $Awfif::memes-> {snnh} {cascompsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
                  32, #mask out codelet-> {l} [32] i.e. {tfree}
# bcsubpsbuitrau2
                  $usetrans,
                  \$transid,
                  \$transtatus
                  ,$Awfif::codelet-> {l} [$myli] [36], #signal sub-program
                  undef (), #jhlabeli
                  undef (), #jhlabeloi
                  undef (), #newli
                  $Awfif::memes-> {tdfsampdo},
                  \$Awfif::subpl-> {q} [3] [$Awfif::memes-> {bcsubpsindex}] [$Awfif::codelet-> {l} [$myli] [36] ], #use pooling
                  ( (ifindupri ($myli, $sponsor))
                    && ( !( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype) )
                    or
                      (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype) ) ) )
                  )#buildoffurg
                  );
                $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]][11][++$Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [11][0]] = $transid;
                $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [12][++$Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [12][0]] = $Awfif::tral-> {l} [$transid] [4];
                $depsubs = 't';
# bcsubpsbuigrau1

                $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [13] = $Awfif::codelet-> {l} [$myli] [20];
                $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [14] = $Awfif::codelet-> {l} [$myli] [21];
                if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid
# bcsubpsbtmstu2

                  &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
                  &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {stran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
                  };#if
                $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
                $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});

                ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),
                  $Awfif::sublp-> {l}[$Awfif::codelet-> {l} [$myli] [36]] [6], #should be the stws
                  $Awfif::memes-> {snnh}{subpstbinding}, #issubp
                  $Awfif::codelet-> {l} [$myli] [36],#subp
                  undef (), #nodebug
                  undef (), #nodelayselect
                  $Awfif::memes-> {tdfsampdo} #amplify delay select
                  );
                $usedngc = 't';
# bcsubpsbwaitprefcu1
                if ( ((! defined ($Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]][17])) or ($Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]][17] == 0))
                ) {

                  my ($codeletdef, $reportdesc, $areportwso);
                  $reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {completed});
                  $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi});
                  $areportwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi}));
                  &waitondesc ($myli, $areportwso, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {subpref}, undef(), undef(), undef(), undef(), \$codeletdef);
                  $Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]][17] = $codeletdef;#syncing with descriptor
                  $Awfif::codelet-> {l} [$codeletdef] [35] = $Awfif::codelet-> {l} [$myli] [35];
                  $Awfif::codelet-> {l} [$codeletdef] [36] = $Awfif::codelet-> {l} [$myli] [36];
                  $Awfif::codelet-> {l} [$codeletdef] [37] = $Awfif::codelet-> {l} [$myli] [37];
                  };#if
                $aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi});
                &iskipw ($myli, $sldesc, $cws, $aws, $abcwso);
# now have written the assoc f1 the spi grab amp should work
# bcsubpsspigu1

                if ( ($Awfif::memes-> {applyactive})
                && ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
                && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
                && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )
                && (findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab}) != 0 )
                ){#use clone to launch cascade codelets

                  $dospigrabamp = 't';
                  };#if
                }#if
              else {
# bcsubpsbuitrau3
# may be having to maintain the transaction participants

                if ( (&transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus) == $transid)
                && ($transtatus == $Awfif::memes-> {snnh} {incomplete}) #bcsubps transaction is not completed
                ){
# mp signal the sub-program
# bcsubpsbusnu1

                  $depsubs = signaltrans ($myli, $asponsor, $atelhwso, $usetrans, $stransmgrid, \$transid, \$transtatus, $grkwp, $grkwpr, \@$sactset, $cwsbi, $Awfif::memes-> {tdfsampdo});
# bcsubpsspigu2

                  if ( ($Awfif::memes-> {applyactive})
                  && ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
                  && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
                  && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )
                  && (findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab}) != 0 )
                  ){#use clone to launch cascade codelets

                    $dospigrabamp = 't';
                    };#if
                  $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                  &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes-> {snnh} {groupcategory} );
                  $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
                  ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),
                    $Awfif::sublp-> {l}[$Awfif::codelet-> {l} [$myli] [36]] [6], #should be the stws
                    $Awfif::memes-> {snnh} {subpstbinding}, #issubp
                    $Awfif::codelet-> {l} [$myli] [36],
                    undef (), #nodebug
                    undef (), #nodelayselect
                    $Awfif::memes-> {tdfsampdo} #amplify delay select
                    );
                  $usedngc = 't';
                  }#if still need to signal subprogram
                else {#completed so can use as template
# bcsubpsspigu3

                  if ( ($Awfif::memes-> {applyactive})
                  && ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
                  && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
                  && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )
                  && (findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab}) != 0 )
                  ){#use clone to launch cascade codelets

                    $dospigrabamp = 't';
                    };#if
                  };#else
                };#else
              }#if wsposition descriptor present
            else {#wsposition is at terminus and have an outstanding transaction to support
# bcsubpsbtrsal2

              if (($Awfif::codelet-> {l} [$myli] [37] > 0)
              ) {

                $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
                };#if
              if ( (&transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus) == $transid)
              && ($transtatus == $Awfif::memes-> {snnh} {incomplete}) #bcsubps transaction is not completed
              ){
# mp signal the sub-program
# bcsubpsbpoolu2

                if (!defined ($Awfif::subpl-> {q} [3] [$Awfif::memes-> {bcsubpsindex}] [$Awfif::codelet-> {l} [$myli] [36] ])) {
                  $Awfif::subpl-> {q} [3] [$Awfif::memes-> {bcsubpsindex}] [$Awfif::codelet-> {l} [$myli] [36] ] = 0;
                  };#if
                my ($dummy, $giveup);
                if ( (defined ($Awfif::memes-> {bcsubpsbsubpspsigbreak}))
                && ($Awfif::memes-> {bcsubpsbsubpspsigbreak} == $Awfif::codelet-> {l} [$myli] [36])
                ){

                  &break();
                  };#if
                $Awfif::memes-> {currentwsbi} = $cwsbi;
                &ilaunchnc ($myli, $dummy, 'cassuboppi', $Awfif::memes-> {snnh} {cascompsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
                  32, #mask out codelet-> {l} [32] i.e. {tfree}
                  $usetrans,
                  \$transid,
                  \$transtatus
                  ,$Awfif::codelet-> {l} [$myli] [36],
                  undef (), #jhlabeli
                  undef (), #jhlabeloi
                  undef (), #newli
                  $Awfif::memes-> {tdfsampdo},
                  \$Awfif::subpl-> {q} [3] [$Awfif::memes-> {bcsubpsindex}] [$Awfif::codelet-> {l} [$myli] [36] ], #use pooling
                  ( (ifindupri ($myli, $sponsor))
                    && ( !( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype) )
                    or
                      (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype) ) ) )
                    )#buildoffurg
                  );
                if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid

                  &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, 0, $stransmgrid);
                  };#if
# bcsubpsspigu4

                if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
                && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
                && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )
                && (findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab}) != 0 )
                ){#use clone to launch cascade codelets

                  $dospigrabamp = 't';
                  };#if
                $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
                $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
                $usedngc = 't';
                ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),
                  $Awfif::sublp-> {l}[$Awfif::codelet-> {l} [$myli] [36]] [6], #should be the stws
                  $Awfif::memes-> {snnh}{subpstbinding}, #issubp
                  $Awfif::codelet-> {l} [$myli] [36],
                  undef (), #nodebug
                  undef (), #nodelayselect
                  $Awfif::memes-> {tdfsampdo} #amplify delay select
                  );
                $signalled = 't';
                }#if still need to signal subprogram
              else {

                &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor});
                $signalled = '';
                };#
              };#else
            };#if
# complete the sponsors transaction

# bcsubpsbuitrau1
          $transtatus = 0;#find out the status of the transaction
          if ( (defined ($Awfif::codelet-> {l} [$myli] [35]))
          && ($Awfif::codelet-> {l} [$myli] [35] != 0)
          && ((!defined ($transid)) or (tralcomp ($myli, $transid)))
          && ((!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0))
          ){

            $reportcaspart = 't';
            };#if
          };#if
# bcsubpsbmdfu1
        if ( (defined ($Awfif::memes-> {usetdfmod}))
        && ($Awfif::memes-> {usetdfmod})
        && ($Awfif::subpl-> {q} [2] [0] == 0)
        ){#update transactional deployment failures

          if ( ($Awfif::subpl-> {q} [0] [ $Awfif::codelet-> {l} [$myli][36] ] > $Awfif::memes-> {tdfsampth})
          ){#update transactional deployment failures

            $Awfif::memes-> {tdfsampdo} = 't';
            }#if
# bcsubpsbmdfu2
          elsif (($Awfif::memes-> {mainco} > $Awfif::memes-> {tdfsampth})
          ) {

            $Awfif::memes-> {tdfsampdo} = 't';#main program codelets being crowded out
            };#else
          };#if
# bcsubpsbrrunu1

        if ( (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abcwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
        && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
        && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
        ){

          $Awfif::wsol-> {l} [$arunningwso][2]
            = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
            $Awfif::memes-> {snnh} {running},
            $Awfif::wsol-> {l} [$arunningwso][2],
            $arunningwso);
          };#if
        if (($depsubs && !$usedngc) && (subpcsponsor ($myli, $sponsor))) {
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
          ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),undef(), undef (), 't',
          undef (), #stws
          undef (), #issubp
          undef (), #subp
          undef (), #nodebug
          undef (), #nodelayselect
          $Awfif::memes-> {tdfsampdo} #amplify delay select
          );# sponsor should be one after telomeric header
          $usedngc = 't';
          };#
        if ( ($Awfif::memes-> {applyactive})
        && ($dospigrabamp)
        ){#use clone to launch cascade codelets

          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l}[$myli][20];
          &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid);#which may change the descriptor situation
          };#if

        if ( (!$usedngc)
        && (defined ($Awfif::memes-> {bcsubpsbsubpspclbreak}))
        && ($Awfif::memes-> {bcsubpsbsubpspclbreak} == $Awfif::codelet-> {l} [$myli] [36])
        && ((!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0))
        ){

          &break();
          };#if
        if (($catalysis)
        && (!$signalled)
        && ($Awfif::memes-> {spiglvl} == 0)
        && ((!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0))
        ) {

          &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
          };#if
        if ($reportcaspart) {

          if ( (defined ($Awfif::memes-> {bcsubpsbsubpspcbreak}))
          && ($Awfif::memes-> {bcsubpsbsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
          ){

            &break();
            };#if
          if ( (defined ($Awfif::memes-> {bcsubpsbsubpnspcbreak}))
          && ($Awfif::memes-> {bcsubpsbsubpnspcbreak})
          && ($Awfif::codelet-> {l} [$myli] [36] > 0)
          ){

            &break();
            };#if
          &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
          &itcpdist ($Awfif::memes-> {codeleth});
          };#if
        };#if proceed with processing
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# bcsubpsbuilder1
#
#<!-- end tag ds -->
#<!-- end tag scc -->
#<!-- end tag sia -->
#<!-- start tag stm -->
#<!-- start tag ssc -->
#
sub statementscout1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($ni,
    $grkwp, $grkwpr, $cdn, $cdnx, $giveup, $tinstances, $found, $cwsbi);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli ");
      &itcpoutput ($myli);
      };
# statements must use the full workspace

    $grkwp = $Awfif::wsbl->{wsoh}[$Awfif::memes->{currentwsbi}];
    $grkwpr = $Awfif::wsbl->{wsft}[$Awfif::memes->{currentwsbi}];
# Ensure all parts exist if to go forward

    if ((allpartsconstrained ($myli, \$giveup, $grkwp, $grkwpr, \@$sactset))
    && (!$giveup)
    && ($found = selsalwsitem ($myli, \$ni, \$tinstances, $grkwp, $grkwpr, \@$sactset, 'bustatement'))
    && ($ni > 0) ) {
      $Awfif::codelet-> {l}[$myli][4] = $ni;# updatelog needs this setup
# if the statement is not complete call in an evaluator
      if (!findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $ni, $Awfif::memes->{snnh}{complete}, $Awfif::memes-> {snnh} {statementcategory})) {

        &updatelog ($myli,'ps',4, $ni);
# & call in a statement evaluator
        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = $Awfif::memes-> {parteu};
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {
          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {
          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "statementevaluator";
        $Awfif::clp-> {bond}-> {ni} = $ni;
        &cdsubmitcodelet ($myli, \$Awfif::clp);
        };#got part
      }# got a statement to work on
    elsif ($giveup) {# terminate statement processing

      print ("badly formed statement - moving to next file\n");
      &actnodes ($Awfif::memes-> {snnh} {terminate}, $Awfif::memes-> {actmax});
      &invcaches ($Awfif::memes-> {snnh} {terminate});
      };
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# statementscout1
#
sub statementevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($ni,
    $grkwp, $grkwpr, $cdn, $cdnx, $cwsbi);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli ");
      &itcpoutput ($myli);
      };
# statement must use the full workspace

    $grkwp = $Awfif::wsbl->{wsoh}[$Awfif::memes->{currentwsbi}];
    $grkwpr = $Awfif::wsbl->{wsft}[$Awfif::memes->{currentwsbi}];
# get a salient statement from the workspace

    if ($Awfif::codelet->{l}[$myli][4] > 0) {
      $ni = $Awfif::codelet->{l}[$myli][4];
      if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
        &itwsoutput ( trwsoadr ($ni,1), $ni);
        };
# if not completed statement processing
      if (!findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $ni, $Awfif::memes->{snnh}{complete}, $Awfif::memes-> {snnh} {statementcategory})) {

        if (
        ((!(findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $Awfif::memes-> {snnh} {stop}, wsbasetype ($ni), $Awfif::memes-> {snnh} {model}))) )
        && (findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $Awfif::memes-> {snnh} {dropthreshold}, wsbasetype ($ni), $Awfif::memes-> {snnh} {model}))
        && (findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $Awfif::memes-> {snnh} {reqmissing}, wsbasetype ($ni), $Awfif::memes-> {snnh} {model}))
        ){
# atppenalty3

          $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} - $Awfif::memes-> {failatpr};
          };#if
# if the statement part is structurally sound & development is whole call in a builder
        if (statementwhole ($myli, $ni, $grkwp, $grkwpr, \@$sactset)
        && (developmentwhole ($myli, finddevni($myli, $grkwp, $grkwpr), $grkwp, $grkwpr, \@$sactset))) {

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {
            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {
            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "statementbuilder";
          $Awfif::clp-> {bond}-> {ni} = $ni;
          &cdsubmitcodelet ($myli, \$Awfif::clp);
          }#got whole statement
        else {

          $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} - $Awfif::memes-> {failatpr};
          if ($Awfif::memes-> {fatp} <= 0) {

            &break ();
            };#if
          };#else
        };#statement is not whole yet
      }# statement present to work on
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# statementevaluator1
#
#<!-- start tag inh -->
#<!-- start tag sca -->
#
sub statementbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#codelet launch architecture requires the ignored parameters for its general interface
    my ($ni, $ani, $statementcomplete, $compcount, @completed, $delayplan,
    , $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat, $stbst, $stbet,
    $grkwp, $grkwpr, $cdn, $cdnx, $cwsbi);
#
# operationalize the statement

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli ");
      &itcpoutput ($myli);
      };
    if ($Awfif::memes-> {trace} == $Awfif::memes-> {tracehrtime}) {
      use Time::HiRes 'time';
      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat) = localtime(time);
      };
# statements must use the full workspace

    $grkwp = $Awfif::wsbl->{wsoh}[$Awfif::memes->{currentwsbi}];
    $grkwpr = $Awfif::wsbl->{wsft}[$Awfif::memes->{currentwsbi}];
# choose a salient part from the workspace

    if ($Awfif::codelet->{l}[$myli][4] > 0) {
      $ni = $Awfif::codelet->{l}[$myli][4];
      if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
        &itwsoutput ( trwsoadr ($ni,1), $ni);
        };
# if not completed statement processing
      if (!findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $ni, wsbasetype ($ni), $Awfif::memes-> {snnh} {statementcategory})
      ){
# if group contained operons are statement inhibited release them
# relstinhibitors

        if ((!findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)][2], $Awfif::memes-> {snnh} {valid}, $Awfif::memes-> {snnh} {statementcategory}, $Awfif::memes-> {snnh} {model})) ){

          $Awfif::wsol-> {l} [awsoadr ($ni)][2]
          = setupdesc ( $Awfif::memes-> {snnh} {statementcategory},
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {valid}),
              $Awfif::memes-> {snnh} {model},
              $Awfif::wsol-> {l} [awsoadr ($ni)][2],
              awsoadr ($ni),
              't');
          };#release statement competitive inhibition
# sbinsgcu1
# inspect group contained operons to see if they have completed
        $stbst = time ();


        @completed = bindoptoinsp1 ($myli, $Awfif::memes->{currentwsbi}, $ni, isterminated ($ni, $grkwp, $grkwpr), \$compcount, \@$sactset);

        $stbet = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {stbbsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {stbbsum}] + $stbet - $stbst;
# sbextrau1
# external resources must be associated with the actual workspace stream they are deployed in and the agents that are interested in the resources
        $stbst = time ();

        &conagtoxr ($myli, $ni, $grkwp, $grkwpr, \@$sactset);
# if not bored with waiting for completion
        $delayplan = '';
        if ($compcount > 0) {
          my ($i);
          for ($i = 0; (($i < $compcount) && (!$delayplan));$i++) {
            if (!$completed [$i] ) {

              $delayplan = 't';
              };#if
            };#for
          };#if

        $stbet = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {stbcsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {stbcsum}] + $stbet - $stbst;

        if (
        ((!(findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $Awfif::memes-> {snnh} {stop}, wsbasetype ($ni), $Awfif::memes-> {snnh} {model}))) )
        && (findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $Awfif::memes-> {snnh} {dropthreshold}, wsbasetype ($ni), $Awfif::memes-> {snnh} {model}))
        && (findbond ($Awfif::wsol-> {l} [ awsoadr ($ni)] [2], $Awfif::memes-> {snnh} {dropopcheck}, wsbasetype ($ni), $Awfif::memes-> {snnh} {model}))
        ){
# atppenalty4

          $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} - $Awfif::memes-> {failatpr};
          };#if
        $stbst = time ();

# sbpdcau1
# manage PDCA of statement processing
        if ((!$delayplan)
        && (statementpdca ($myli, $ni, $grkwp, $grkwpr, \@$sactset)) ){

          $statementcomplete = 't';
          $ani = awsoadr ($ni);
          $Awfif::wsol-> {l} [$ani][2]
            = setupdesc ( (wsbasetype ($ni)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {valid}), #to match findbond
            $Awfif::memes-> {snnh} {model},
            $Awfif::wsol-> {l} [$ani][2],
            $ani);
          &invcaches (wsbasetype ($ni));
# sbwscup
          };#if manage PDCA

        $stbet = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {stbpdcasum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {stbpdcasum}] + $stbet - $stbst;

        if ($statementcomplete) {#deploy the statement descriptor

          $Awfif::wsol-> {l} [$ani][2]
              = setupdesc ( (wsbasetype ($ni)),
                ($Awfif::memes-> {snnh} {wsi} + $ni),
                $Awfif::memes-> {snnh}{partscategory},
                $Awfif::wsol-> {l} [$ani][2],
                $ani);
          $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} + $Awfif::memes-> {batp};
# send activation to the involved Slipnet nodes
          &actnodes ( $Awfif::memes-> {snnh}{partscategory}, $Awfif::memes-> {openatype});
          &actnodes ( $Awfif::memes-> {snnh} {wsi}, $Awfif::memes-> {openato});
          &invcaches (wsbasetype ($ni));
          };#statement complete
        };#part is not whole yet
      }# got a pair to work on
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# statementbuilder1
#
#<!-- end tag ssc -->
#<!-- end tag stm -->
#<!-- end tag sca -->
#<!-- end tag inh -->
Market Centric Workshops
The Physics - Politics, Economics & Evolutionary Psychology
Politics, Economics & Evolutionary Psychology

Business Physics
Nature and nurture drive the business eco-system
Human nature
Emerging structure and dynamic forces of adaptation


integrating quality appropriate for each market
 
This page looks at schematic structures and their uses.  It discusses a number of examples:
  • Schematic ideas are recombined in creativity. 
  • Similarly designers take ideas and rules about materials and components and combine them. 
  • Schematic Recipes help to standardize operations. 
  • Modular components are combined into strategies for use in business plans and business models. 

As a working example it presents part of the contents and schematic details from the Adaptive Web Framework (AWF)'s operational plan. 

Finally it includes a section presenting our formal representation of schematic goals. 
Each goal has a series of associated complex adaptive system (CAS) strategy strings. 
These goals plus strings are detailed for various chess and business examples. 
Strategy
| Design |
This page uses an example to illustrate how:
  • A business can gain focus from targeting key customers,
  • Business planning activities performed by the whole organization can build awareness, empowerment and coherence. 
  • A program approach can ensure strategic alignment. 
Program Management
| Home

Profiles | Papers | Glossary | E-mail us