SlideShare a Scribd company logo
1 of 3
1. Se tiene el siguiente contenido en un fichero llamado file en la carpeta de trabajo:
PROG-ASI1 [paulino,rafa,jose]
maria[maria,pedro]
sofi[sofia,juan]
andres[andres]
raul[andres,pedro,rauli]
Este fichero contiene la política de acceso al repositorio PROG-ASI1, sobre el cual trabajará un
conjunto de usuarios
2. Ejecutando el siguiente script Python se obtienen dos ficheros en /tmp: output_perm y output_us
Los contenidos de dichos ficheros deben ser agregados por el Administrador de Repositorios al
fichero authz
#!/usr/bin/env pyton
import re
D={}
S=set([])
T=set([])
def agrupar(line):
match=separar(line)
repos=match.group(1).rstrip()
D[repos]=match.group(2)
def separar(line):
line=line.rstrip()
line=line.lstrip()
match=re.match('(.*)[(.*)](.*)',line)
return match
def put_en_set(clave):
for i in D:
if i!=clave:
alum=D[i].split(',')
for a in alum:
S.add(a)
def presentar(A):
c=''
i=0
for t in A:
if i<len(A)-1:
c+='%s,' % t
else:
c+='%s' % t
i+=1
return c
def main():
f=open('file')
while True:
line=f.readline()
if not line:
break
agrupar(line)
if len(D.keys()) == 1:
for clave in D:
repositorio=clave
us_rw_repos=D[clave]
put_en_set(clave) # generar el total de autorizados al
repo
output_us = open('/tmp/output_us', 'w')
output_perm = open('/tmp/output_perm', 'w')
output_us.write('u-rw-%s = %sn' %
(repositorio,us_rw_repos))
c=presentar(S)
output_us.write('u-r-%s = %sn' % (repositorio,c))
output_perm.write('[%s:/]n' % repositorio)
output_perm.write('@u-rw-%s = rwn' % repositorio)
output_perm.write('@u-r-%s = rn' % repositorio)
for i in D:
if i!=clave:
alum=D[i].split(',')
for a in alum:
T.add(a)
R=S-T
c=presentar(alum)
output_us.write('u-rw-%s-%s = %sn' %
(repositorio,i,c))
c=presentar(R)
output_us.write('u-nor-%s-%s = %sn' %
(repositorio,i,c))
output_perm.write('[%s:/%s]n' % (repositorio,i))
output_perm.write('@u-rw-%s-%s = rwn' %
(repositorio,i))
output_perm.write('@u-nor-%s-%s = n' %
(repositorio,i))
T.clear()
R.clear()
output_perm.close()
output_us.close()
if __name__ == "__main__":
main()
Produce la siguiente salida:
fichero /tmp/output_us
u-rw-PROG-ASI1 = paulino,rafa,jose
u-r-PROG-ASI1 = pedro,andres,juan,sofia,rauli,maria
u-rw-PROG-ASI1-raul = andres,pedro,rauli
u-nor-PROG-ASI1-raul = juan,sofia,maria
u-rw-PROG-ASI1-sofi = sofia,juan
u-nor-PROG-ASI1-sofi = rauli,andres,pedro,maria
u-rw-PROG-ASI1-andres = andres
u-nor-PROG-ASI1-andres = sofia,rauli,juan,pedro,maria
u-rw-PROG-ASI1-maria = maria,pedro
u-nor-PROG-ASI1-maria = rauli,andres,juan,sofia
fichero /tmp/output_perm
[PROG-ASI1:/]
@u-rw-PROG-ASI1 = rw
@u-r-PROG-ASI1 = r
[PROG-ASI1:/raul]
@u-rw-PROG-ASI1-raul = rw
@u-nor-PROG-ASI1-raul =
[PROG-ASI1:/sofi]
@u-rw-PROG-ASI1-sofi = rw
@u-nor-PROG-ASI1-sofi =
[PROG-ASI1:/andres]
@u-rw-PROG-ASI1-andres = rw
@u-nor-PROG-ASI1-andres =
[PROG-ASI1:/maria]
@u-rw-PROG-ASI1-maria = rw
@u-nor-PROG-ASI1-maria =

More Related Content

What's hot (16)

Ubuntu Comand Line
Ubuntu Comand LineUbuntu Comand Line
Ubuntu Comand Line
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
MANEJO DE ARCHIVOS Y CARPETAS.
MANEJO DE ARCHIVOS Y CARPETAS.MANEJO DE ARCHIVOS Y CARPETAS.
MANEJO DE ARCHIVOS Y CARPETAS.
 
Tarea 1isidro
Tarea 1isidroTarea 1isidro
Tarea 1isidro
 
Comandos de ubuntu
Comandos de ubuntuComandos de ubuntu
Comandos de ubuntu
 
Instalar odoo 9 en Linux Debian
Instalar odoo 9 en Linux DebianInstalar odoo 9 en Linux Debian
Instalar odoo 9 en Linux Debian
 
Cluster rhel7
Cluster rhel7Cluster rhel7
Cluster rhel7
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Backups[1][1]
Backups[1][1]Backups[1][1]
Backups[1][1]
 
Redes en Linux
Redes en Linux Redes en Linux
Redes en Linux
 
Introduccion a Python. Clase 7
Introduccion a Python. Clase 7Introduccion a Python. Clase 7
Introduccion a Python. Clase 7
 
Leccion03
Leccion03Leccion03
Leccion03
 
Actividad 3-4 actividad final
Actividad 3-4 actividad finalActividad 3-4 actividad final
Actividad 3-4 actividad final
 
10 comandos basicos de linux
10 comandos basicos de linux10 comandos basicos de linux
10 comandos basicos de linux
 
Manejo de ficheros en Linux
Manejo de ficheros en LinuxManejo de ficheros en Linux
Manejo de ficheros en Linux
 
Más de 400 comandos para GNU/Linux que deberíamos conocer
Más de 400 comandos para GNU/Linux que deberíamos conocerMás de 400 comandos para GNU/Linux que deberíamos conocer
Más de 400 comandos para GNU/Linux que deberíamos conocer
 

Similar to Genera permisos repo Python (20)

2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Comandos utiles linux
Comandos utiles linuxComandos utiles linux
Comandos utiles linux
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781
 
Archivos
ArchivosArchivos
Archivos
 
ADMINISTRACION DE PAQUETES ::: http://leymebamba.com
ADMINISTRACION DE PAQUETES ::: http://leymebamba.comADMINISTRACION DE PAQUETES ::: http://leymebamba.com
ADMINISTRACION DE PAQUETES ::: http://leymebamba.com
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
ARCHIVOS_Dom.pdf
ARCHIVOS_Dom.pdfARCHIVOS_Dom.pdf
ARCHIVOS_Dom.pdf
 
Practica 5
Practica 5Practica 5
Practica 5
 
Manual de linux
Manual de linuxManual de linux
Manual de linux
 
Unix 1314 test
Unix 1314 testUnix 1314 test
Unix 1314 test
 
Curso GNU/Linux
Curso GNU/LinuxCurso GNU/Linux
Curso GNU/Linux
 
Lab6-POO
Lab6-POOLab6-POO
Lab6-POO
 
Actividad3.4
Actividad3.4Actividad3.4
Actividad3.4
 
Python Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones PythonPython Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones Python
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Prog_II_archivo_guia_5
Prog_II_archivo_guia_5Prog_II_archivo_guia_5
Prog_II_archivo_guia_5
 
Comandos básicos ubuntu
Comandos básicos ubuntuComandos básicos ubuntu
Comandos básicos ubuntu
 
Presentación appy/pod
Presentación appy/podPresentación appy/pod
Presentación appy/pod
 

More from Paulino Huerta Sanchez

More from Paulino Huerta Sanchez (6)

Comunicar la Política de acceso a Repositorios
Comunicar la Política de acceso a RepositoriosComunicar la Política de acceso a Repositorios
Comunicar la Política de acceso a Repositorios
 
Experiencia con Control de Versiones en las Aulas
Experiencia con Control de Versiones en las AulasExperiencia con Control de Versiones en las Aulas
Experiencia con Control de Versiones en las Aulas
 
Introducción Administración TCP/IP
Introducción Administración TCP/IPIntroducción Administración TCP/IP
Introducción Administración TCP/IP
 
Listas de Correos con Mailman
Listas de Correos con MailmanListas de Correos con Mailman
Listas de Correos con Mailman
 
BSCW en Centros Educativos
BSCW en Centros EducativosBSCW en Centros Educativos
BSCW en Centros Educativos
 
Multithreads Programming
Multithreads ProgrammingMultithreads Programming
Multithreads Programming
 

Recently uploaded

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 

Recently uploaded (20)

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 

Genera permisos repo Python

  • 1. 1. Se tiene el siguiente contenido en un fichero llamado file en la carpeta de trabajo: PROG-ASI1 [paulino,rafa,jose] maria[maria,pedro] sofi[sofia,juan] andres[andres] raul[andres,pedro,rauli] Este fichero contiene la política de acceso al repositorio PROG-ASI1, sobre el cual trabajará un conjunto de usuarios 2. Ejecutando el siguiente script Python se obtienen dos ficheros en /tmp: output_perm y output_us Los contenidos de dichos ficheros deben ser agregados por el Administrador de Repositorios al fichero authz #!/usr/bin/env pyton import re D={} S=set([]) T=set([]) def agrupar(line): match=separar(line) repos=match.group(1).rstrip() D[repos]=match.group(2) def separar(line): line=line.rstrip() line=line.lstrip() match=re.match('(.*)[(.*)](.*)',line) return match def put_en_set(clave): for i in D: if i!=clave: alum=D[i].split(',') for a in alum: S.add(a) def presentar(A): c='' i=0 for t in A: if i<len(A)-1: c+='%s,' % t else: c+='%s' % t
  • 2. i+=1 return c def main(): f=open('file') while True: line=f.readline() if not line: break agrupar(line) if len(D.keys()) == 1: for clave in D: repositorio=clave us_rw_repos=D[clave] put_en_set(clave) # generar el total de autorizados al repo output_us = open('/tmp/output_us', 'w') output_perm = open('/tmp/output_perm', 'w') output_us.write('u-rw-%s = %sn' % (repositorio,us_rw_repos)) c=presentar(S) output_us.write('u-r-%s = %sn' % (repositorio,c)) output_perm.write('[%s:/]n' % repositorio) output_perm.write('@u-rw-%s = rwn' % repositorio) output_perm.write('@u-r-%s = rn' % repositorio) for i in D: if i!=clave: alum=D[i].split(',') for a in alum: T.add(a) R=S-T c=presentar(alum) output_us.write('u-rw-%s-%s = %sn' % (repositorio,i,c)) c=presentar(R) output_us.write('u-nor-%s-%s = %sn' % (repositorio,i,c)) output_perm.write('[%s:/%s]n' % (repositorio,i)) output_perm.write('@u-rw-%s-%s = rwn' % (repositorio,i)) output_perm.write('@u-nor-%s-%s = n' % (repositorio,i)) T.clear() R.clear() output_perm.close()
  • 3. output_us.close() if __name__ == "__main__": main() Produce la siguiente salida: fichero /tmp/output_us u-rw-PROG-ASI1 = paulino,rafa,jose u-r-PROG-ASI1 = pedro,andres,juan,sofia,rauli,maria u-rw-PROG-ASI1-raul = andres,pedro,rauli u-nor-PROG-ASI1-raul = juan,sofia,maria u-rw-PROG-ASI1-sofi = sofia,juan u-nor-PROG-ASI1-sofi = rauli,andres,pedro,maria u-rw-PROG-ASI1-andres = andres u-nor-PROG-ASI1-andres = sofia,rauli,juan,pedro,maria u-rw-PROG-ASI1-maria = maria,pedro u-nor-PROG-ASI1-maria = rauli,andres,juan,sofia fichero /tmp/output_perm [PROG-ASI1:/] @u-rw-PROG-ASI1 = rw @u-r-PROG-ASI1 = r [PROG-ASI1:/raul] @u-rw-PROG-ASI1-raul = rw @u-nor-PROG-ASI1-raul = [PROG-ASI1:/sofi] @u-rw-PROG-ASI1-sofi = rw @u-nor-PROG-ASI1-sofi = [PROG-ASI1:/andres] @u-rw-PROG-ASI1-andres = rw @u-nor-PROG-ASI1-andres = [PROG-ASI1:/maria] @u-rw-PROG-ASI1-maria = rw @u-nor-PROG-ASI1-maria =