Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride AddUnsafe ( 
 | 
  LibOpt_ScopeThin scope, 
 | 
  LibOpt_Group group 
 | 
) as LibOpt_ScopeShared 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    vector := NumberVector::Construct( this.Set() ); 
 | 
     
 | 
    if( vector.Size() <= scope.Index() ) 
 | 
    { 
 | 
      vector.Resize( scope.Index() + 1 ); 
 | 
    } 
 | 
    vector.Set( scope.Index(), vector.Get( scope.Index() ).BitOr( scope.Mask() ) ); 
 | 
     
 | 
    set := vector.AsBinaryValue(); 
 | 
     
 | 
    group_vector := this.GroupVectorAdd( scope, group ); 
 | 
    if( this.Set() <> set ) 
 | 
    { 
 | 
      scope.ScopeSharedOnScope( relnew, ScopeShared := this, Group := group ); 
 | 
    } 
 | 
    else if( this.GroupVector() <> group_vector ) 
 | 
    { 
 | 
      traverse( this, ScopeSharedOnScope, ssos, ssos.ScopeThin() = scope ) 
 | 
      { 
 | 
        ssos.Group( relset, group ); 
 | 
      } 
 | 
    } 
 | 
    LibOpt_ScopeSharedVector::ChangeKeySetVector( this, set, this.Type(), group_vector ); 
 | 
     
 | 
    return this; 
 | 
  *] 
 | 
} 
 |