public Iterator<SecFlag> flags(){return new Iterator<SecFlag>()
			{
				Iterator<SecFlag>  p=null;
				Iterator<SecGroup> g=null;
				private boolean doNext()
				{
					if(p==null)
						p=flags.iterator();
					if(p.hasNext())
						return true;
					if(g==null)
						g=groups.iterator();
					while(!p.hasNext())
					{
						if(!g.hasNext())
							return false;
						p=g.next().flags();
					}
					return true;
				}
				@Override
				public boolean hasNext()
				{
					if((p==null)||(!p.hasNext()))
						return doNext();
					return p.hasNext();
				}
				@Override
				public SecFlag next()
				{
					if(hasNext()) return p.next();
					throw new java.util.NoSuchElementException();
				}
				@Override public void remove() {}
			};
		}