Moduł:odmiana-czasownik-hiszpański

Moduł wykorzystywany przez szablon {{odmiana-czasownik-hiszpański}}.


local p = {}

local subString, lenString = mw.ustring.sub, mw.ustring.len   -- usar en entornos Wiki
--local subString, lenString = string.sub, string.len

local modelos = {}  -- tabla que almacena la lista de modelos
local conjug = {}   -- tabla que almacena las subrutinas propias de cada conjugación

local _i, _d = '<span style="color:red">', '</span>'  -- etiquetas wiki para el cambio de color en las irregularidades

-- mensaje devuelto en caso de que el modelo no fuera reconocido
local mensaje = function (verbo)

  return [=[<!--
  --><b>Brak lub nieprawidłowy parametr "model" ([http://dle.rae.es/?w=]=]..verbo..[=[ DRAE]). Wpisz <tt>"model=reg"</tt> dla czasownika regularnego.</b><br><!--
  -->Opcjonalne parametry:<!--
  --><ul><li><tt>"[[participio#es|participio]]"</tt> – imiesłów bierny nieregularny, np.: <i>abrir – <span style="color:red">abierto</span></i></li><!--
  --><li><tt>"3.os"</tt> – wybierz:<br><ul><!--
  --><li><tt>"3.os=lp"</tt> – czasownik nieosobowy ([[verbo impersonal#es|impersonal]]), tylko formy 3. os. lp.; np.: <i><span style="color:red">nevar</span></i> (śnieżyć)</li><!--
  --><li><tt>"3.os=lm"</tt> – czasownik trzecioosobowy ([[verbo terciopersonal#es|terciopersonal]]), tylko formy 3. os. lp. i lm.; np.: <i><span style="color:red">atañer</span></i> (dotyczyć)</li></ul></li><!--
  --><li><tt>"imperativo=nie"</tt> – brak form trybu rozkazującego <i>(imperativo)</i></li><!--
  --><li><tt>"defectivo"</tt> – wybierz:<br><ul><!--
  --><li><tt>"defectivo=eimorfo"</tt> – brak form u których końcówka fleksyjna rozpoczyna się głoską [e] lub [i]; np.: <i><span style="color:red">balbucir</span></i></li><!--
  --><li><tt>"defectivo=imorfo"</tt> – brak form u których końcówka fleksyjna rozpoczyna się głoską [i]; np.: <i><span style="color:red">abolir</span></i></li><!--
  --><li><tt>"defectivo=embaír" / "desvaír" / "soler" / "acostumbrar"</tt> – wyjątki</li></ul></li><!--
  --><li><tt>"zaimek"</tt> – zaimek enklityczny, np: <i><span style="color:red">apañárselas</span></i> (należy dopisać "<tt>zaimek=las|czasownik=apañarse</tt>")</li><!--
  --><li><tt>"uwagi"</tt> – jeśli zbyt długi tekst nadmiernie rozszerza tabelkę, należy kontynuować od nowej linii, wstawiając znacznik <tt>&lt;/br></tt>; np.: Długi tekst długi tekst&lt;/br>długi tekst</li></ul>]=]

end

-- devuelve la posición de la/s consonante/s que sufre/n cambios para conservar el sonido (ver "mensaje")
local consTema = function (str, conj)

  local aux = subString(str, -1, -1) -- extrae la última letra de la raíz (COM-er = M)

  if conj == 1 then
    -- primera conjugación
    if aux == "c" then  return aux, "qu", 2
    elseif aux == "g" then  return aux, "gu", 2
    elseif aux == "z" then  return aux, "c", 2
    else
      local aux = subString(str, -2, -1)   -- extrae las dos últimas letras de la raíz
      if aux == "gu" then return aux, "gü", 3 end
    end
  else
    -- segunda o tercera conjugación
    if aux == "c" then  return aux, "z", 2
    elseif aux == "g" then  return aux, "j", 2
    else
      local aux = subString(str, -2, -1)   -- extrae las dos últimas letras de la raíz
      if aux == "gu" then return aux, "g", 3
      elseif aux == "qu" then return aux, "c", 3 end
    end
  end

  -- por defecto devuelve cadenas vacías en .suf1 y .suf2 y nil en ind_sufijo
  return "", "", nil

end

-- devuelve la posición de la primera vocal que encuentra (o de aquella que se ha indicado previamente, si es el caso)
-- y su variante con tilde para las formas del imperativo pronominal (comer -> cOme -> cómete)
local buscaVocal = function (str, vocal, op)

  local indice, len, aux, tilde = 1, lenString(str)

  if vocal then
    -- vocal indicada (ver vocalModelo{} en .analizarCadena)
    repeat
      aux = subString(str, -indice, -indice)
      if vocal == aux then break
      else indice = indice + 1 end
    until indice == len + 1
  else
    -- vocal no indicada
    local sin_tilde = { "a", "e", "o", "ü", "i", "u" }
    local con_tilde = { "á", "é", "ó", "ü", "í", "ú" }

    repeat
      aux = subString(str, -indice, -indice)
      for i, v in pairs(sin_tilde) do
        if v == aux then
          if (indice == 1) and (i > 4) and (not op) then -- no hace nada
          else tilde = con_tilde[i] break end
        end
      end
      if tilde then break
      else indice = indice + 1 end
    until indice == len + 1

    -- no encuentra ninguna vocal (dar, ver)
    if not tilde then indice = nil end
  end

  return indice, tilde

end

--[[ denominación de los "componentes" de una cadena (el verbo en infinitivo):
     str =    descolgar   contar  pagar   comer   sacarse casarse
     pref =   desc        c       p       c       s       c
     vocal =  o           o       a       o       a       a
     tilde =  ó           ó       á       ó       á       á
     int =    l           nt      [nil]   m       [nil]   s
     suf1 =   g           [nil]   g       [nil]   c       [nil]
     suf2 =   gu          [nil]   gu      [nil]   qu      [nil]  *NOTA: [nil] = cadena vacía ]]

-- divide la cadena proporcionada (el verbo) en componentes (ver esquema superior)
local analizarCadena = function (str, modelo)

  local componentes = {}
  local vocalModelo = { actuar = "u", adeudar = "e", bailar = "a", causar = "a", coitar = "o", enviar = "i", peinar = "e" }
  local tildeModelo = { actuar = "ú", adeudar = "é", bailar = "á", causar = "á", coitar = "ó", enviar = "í", peinar = "é" }
  local indice, ind_suf, ind_vocal, conj, tilde, esPronominal = 0

  local vocal = vocalModelo[modelo]

  if subString(str, -2, -1) == "se" then -- comprueba si es un verbo pronominal
    esPronominal = true
    indice = 2
  else esPronominal = false end

  local aux = subString(str, -2-indice, -1-indice) -- recorta el "-se" pronominal si procede

  -- caso especial para el modelo "ir", regresa a la rutina principal si es el caso
  if modelo == "ir" then return { pref = (aux == "ir") and "" or "contra" , suf1 = "" }, esPronominal, 3 end

  if aux == "ar" then conj = 1
  elseif aux == "er" then conj = 2
  elseif (aux == "ir") or (aux == "ír") then conj = 3 end

  aux = subString(str, 1, -3-indice) -- recorta la desinencia del infinitivo ("-ar", "-er", "-ir") y el "-se"

  componentes.suf1, componentes.suf2, ind_suf = consTema(aux, conj)              -- llamada a .consTema
  ind_vocal, componentes.tilde = buscaVocal(aux, vocal, (modelo == "construir")) -- llamada a .buscaVocal

  componentes.tilde = componentes.tilde or tildeModelo[modelo] or ""
  componentes.vocal = vocal or (ind_vocal and subString(aux, -ind_vocal, -ind_vocal) or "")

  ind_vocal, ind_suf = ind_vocal or 0, ind_suf or 1

  componentes.pref = (ind_vocal == lenString(aux)) and "" or subString(aux, 1, -1-ind_vocal)
  componentes.int = (ind_vocal <= 1) and "" or subString(aux, -ind_vocal+1, -ind_suf)

  return componentes, esPronominal, conj

end

-- mensajes a mostrar en la celda desplegable "notas" cuando hay alternancia de consonantes para preservar el sonido
local notas = {
  g_gu = 'Rdzeń kończy się spółgłoską „g”, która przybiera formę grupy liter „gu” przed głoskami [e], [i].',
  z_c = 'Rdzeń kończy się spółgłoską „z”, która przybiera formę litery „c” przed głoskami [e], [i].',
  c_qu = 'Rdzeń kończy się spółgłoską „c”, która przybiera formę grupy liter „qu” przed głoskami [e], [i].',
  ["gu_gü"] = 'Rdzeń kończy się grupą „gu”, która przybiera formę „gü” przed głoskami [e], [i].',
  g_j = 'Rdzeń kończy się spółgłoską „g”, która przybiera formę litery „j” przed głoskami [a], [o], [u].',
  c_z = 'Rdzeń kończy się spółgłoską „c”, która przybiera formę litery „z” przed głoskami [a], [o], [u].',
  gu_g = 'Rdzeń kończy się grupą „gu”, która przybiera formę litery „g” przed głoskami [a], [o], [u].',
  qu_c = 'Rdzeń kończy się grupą „qu”, która przybiera formę litery „c” przed głoskami [a], [o], [u].'
}

-- FORMAS VERBALES

--[[ nomenclatura:     c.x_y_z

  x - tiempo verbal: p (presente), pi(1/2) (pret. imp.), pps (pret. perf. simple), f (futuro), c (condicional); vacío para el modo imperativo
  y - modo: i (indicativo), s (subjuntivo), imp (imperativo)
  z - persona y número: 1s (1ª del singular), 3p (3ª del plural), 2vs (2ª del singular, voseante)

  todas se concatenan del siguiente modo: forma_verbal..#es|..forma verbal (incluido c.ger - gerundio)

  otros:

  c.ger2 (gerundio pronominal) - NO se concatena
  c.inf (infinitivo), c.inf2 (infinitivo pronominal)
  c.part (participio sin color resaltado), c.part_irr (bit de control - true/false)

  c.imp_2vs, c.imp_2p - NO se concatenan
  c.imp_pron_(2s/2vs/1p/2p/3s3p) - NO se concatenan, NO se incluye el pronombre enclítico
  c._imp_pron... - las formas anteriores con las irregularidades resaltadas

  * NOTA: para la 1ª pers. del plural (pronominal) se incluye hasta la primera vocal de la desinencia (bañarse -> BAÑÉ-monos)
  * NOTA: todas las componentes que empiezan con barra baja indican que contienen un cambio de color para resaltar las irregularidades (p. ej.: c._part)

  c.notas, c.no_part (solo "empecer"), c.modelo (impone la designación del modelo)
  c.dipt, c.tild - modelo de diptongación o tildación; c.alt - modelo con cambio en la morfología para conservar el sonido
  c.(ger/pps/pps2/f_c/pi_f/imp)_ast - nota en forma de asterisco/s anterior a la forma verbal

]]

-- rellena el array con las formas verbales de la conjugación [i] usando el tema "regular" (acertar -> acert-)
conjug[1] = function (comp)

  local c, es = {}, "#es|"
  local t = comp.pref..comp.vocal..comp.int..comp.suf1    -- raíz sin tilde
  local t2 = comp.pref..comp.tilde..comp.int..comp.suf1   -- raíz con tilde

  c.ger = "ando"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s, c.p_i_1p, c.p_i_2p, c.p_i_3p = "o", "as", "ás", "a", "amos", "áis", "an"
  c.pi_i_1s, c.pi_i_2s, c.pi_i_3s, c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = "aba", "abas", "aba", "ábamos", "abais", "aban"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s, c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = "é", "aste", "ó", "amos", "asteis", "aron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s, c.f_i_1p, c.f_i_2p, c.f_i_3p = "aré", "arás", "ará", "aremos", "aréis", "arán"
  c.c_i_1s, c.c_i_2s, c.c_i_3s, c.c_i_1p, c.c_i_2p, c.c_i_3p = "aría", "arías", "aría", "aríamos", "aríais", "arían"
  c.p_s_1s, c.p_s_2s, c.p_s_3s, c.p_s_1p, c.p_s_2p, c.p_s_3p = "e", "es", "e", "emos", "éis", "en"
  c.pi1_s_1s, c.pi1_s_2s, c.pi1_s_3s, c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = "ara", "aras", "ara", "áramos", "arais", "aran"
  c.pi2_s_1s, c.pi2_s_2s, c.pi2_s_3s, c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = "ase", "ases", "ase", "ásemos", "aseis", "asen"
  c.f_s_1s, c.f_s_2s, c.f_s_3s, c.f_s_1p, c.f_s_2p, c.f_s_3p = "are", "ares", "are", "áremos", "areis", "aren"
  c.imp_2s = c.p_i_3s

  for i in pairs(c) do c[i] = t..c[i]..es..t..c[i] end

  c.inf, c.inf2, c.ger2, c.part = t.."ar", t.."ár", t.."ándo", t.."ado"
  c.imp_2vs, c.imp_2p = t.."á", t.."ad"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_2p, c.imp_pron_3p = t2.."a", t.."a", t2.."e", t.."é", t.."a", t2.."en"

  return c

end

conjug[2] = function (comp)

  local c, es = {}, "#es|"
  local t = comp.pref..comp.vocal..comp.int..comp.suf1    -- raíz sin tilde
  local t2 = comp.pref..comp.tilde..comp.int..comp.suf1   -- raíz con tilde

  c.ger = "iendo"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s, c.p_i_1p, c.p_i_2p, c.p_i_3p = "o", "es", "és", "e", "emos", "éis", "en"
  c.pi_i_1s, c.pi_i_2s, c.pi_i_3s, c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = "ía", "ías", "ía", "íamos", "íais", "ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s, c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = "í", "iste", "ió", "imos", "isteis", "ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s, c.f_i_1p, c.f_i_2p, c.f_i_3p = "eré", "erás", "erá", "eremos", "eréis", "erán"
  c.c_i_1s, c.c_i_2s, c.c_i_3s, c.c_i_1p, c.c_i_2p, c.c_i_3p = "ería", "erías", "ería", "eríamos", "eríais", "erían"
  c.p_s_1s, c.p_s_2s, c.p_s_3s, c.p_s_1p, c.p_s_2p, c.p_s_3p = "a", "as", "a", "amos", "áis", "an"
  c.pi1_s_1s, c.pi1_s_2s, c.pi1_s_3s, c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = "iera", "ieras", "iera", "iéramos", "ierais", "ieran"
  c.pi2_s_1s, c.pi2_s_2s, c.pi2_s_3s, c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = "iese", "ieses", "iese", "iésemos", "ieseis", "iesen"
  c.f_s_1s, c.f_s_2s, c.f_s_3s, c.f_s_1p, c.f_s_2p, c.f_s_3p = "iere", "ieres", "iere", "iéremos", "iereis", "ieren"
  c.imp_2s = c.p_i_3s

  for i in pairs(c) do c[i] = t..c[i]..es..t..c[i] end

  c.inf, c.inf2, c.ger2, c.part = t.."er", t.."ér", t.."iéndo", t.."ido"
  c.imp_2vs, c.imp_2p = t.."é", t.."ed"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_2p, c.imp_pron_3p = t2.."e", t.."e", t2.."a", t.."á", t.."e", t2.."an"

  return c

end

conjug[3] = function (comp)

  local c, es = {}, "#es|"
  local t = comp.pref..comp.vocal..comp.int..comp.suf1    -- raíz sin tilde
  local t2 = comp.pref..comp.tilde..comp.int..comp.suf1   -- raíz con tilde

  c.ger = "iendo"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s, c.p_i_1p, c.p_i_2p, c.p_i_3p = "o", "es", "ís", "e", "imos", "ís", "en"
  c.pi_i_1s, c.pi_i_2s, c.pi_i_3s, c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = "ía", "ías", "ía", "íamos", "íais", "ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s, c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = "í", "iste", "ió", "imos", "isteis", "ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s, c.f_i_1p, c.f_i_2p, c.f_i_3p = "iré", "irás", "irá", "iremos", "iréis", "irán"
  c.c_i_1s, c.c_i_2s, c.c_i_3s, c.c_i_1p, c.c_i_2p, c.c_i_3p = "iría", "irías", "iría", "iríamos", "iríais", "irían"
  c.p_s_1s, c.p_s_2s, c.p_s_3s, c.p_s_1p, c.p_s_2p, c.p_s_3p = "a", "as", "a", "amos", "áis", "an"
  c.pi1_s_1s, c.pi1_s_2s, c.pi1_s_3s, c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = "iera", "ieras", "iera", "iéramos", "ierais", "ieran"
  c.pi2_s_1s, c.pi2_s_2s, c.pi2_s_3s, c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = "iese", "ieses", "iese", "iésemos", "ieseis", "iesen"
  c.f_s_1s, c.f_s_2s, c.f_s_3s, c.f_s_1p, c.f_s_2p, c.f_s_3p = "iere", "ieres", "iere", "iéremos", "iereis", "ieren"
  c.imp_2s = c.p_i_3s

  for i in pairs(c) do c[i] = t..c[i]..es..t..c[i] end

  c.inf, c.inf2, c.ger2, c.part = t.."ir", t.."ír", t.."iéndo", t.."ido"
  c.imp_2vs, c.imp_2p = t.."í", t.."id"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_2p, c.imp_pron_3p = t2.."e", t.."i", t2.."a", t.."á", t.."í", t2.."an"

  return c

end

-- modelo común para la conjugación REGULAR sin tildación
modelos.reg = function (C, conj, modelo, verbo)

  local aux, auxT, op = C.pref..C.vocal..C.int, C.pref..C.tilde..C.int, (conj == 1)
  local s2, _s2 = C.suf2, (C.suf2 == "") and "" or _i..C.suf2.._d

  local c, es = conjug[conj](C), "#es|"
  c.modelo = "reg"

  c.p_i_1s = op and c.p_i_1s or aux..s2.."o"..es..aux.._s2.."o"
  c.pps_i_1s = op and aux..s2.."é"..es..aux.._s2.."é" or c.pps_i_1s
  c.p_s_1s = op and aux..s2.."e"..es..aux.._s2.."e" or aux..s2.."a"..es..aux.._s2.."a"
  c.p_s_2s = op and aux..s2.."es"..es..aux.._s2.."es" or aux..s2.."as"..es..aux.._s2.."as"
  c.p_s_1p = op and aux..s2.."emos"..es..aux.._s2.."emos" or aux..s2.."amos"..es..aux.._s2.."amos"
  c.p_s_2p = op and aux..s2.."éis"..es..aux.._s2.."éis" or aux..s2.."áis"..es..aux.._s2.."áis"
  c.p_s_3p = op and aux..s2.."en"..es..aux.._s2.."en" or aux..s2.."an"..es..aux.._s2.."an"
  c.p_s_3s = c.p_s_1s

  c.imp_pron_3s, c._imp_pron_3s = op and auxT..s2.."e" or auxT..s2.."a", op and auxT.._s2.."e" or auxT.._s2.."a"
  c.imp_pron_1p, c._imp_pron_1p = op and aux..s2.."é" or aux..s2.."á", op and aux..s2.."é" or aux..s2.."á"
  c.imp_pron_3p, c._imp_pron_3p = op and auxT..s2.."en" or auxT..s2.."an", op and auxT.._s2.."en" or auxT.._s2.."an"

  if (C.suf1 ~= "") then -- si se da alternancia en la/s última/s letra/s para conservar el sonido, especifica el "modelo" correspondiente

    if C.suf2 == "qu" then c.alt = "sacar"
    elseif C.suf2 == "gu" then c.alt = "pagar"
    elseif C.suf1 == "z" then c.alt = "cazar"
    elseif C.suf2 == "gü" then c.alt = "desaguar"
    elseif C.suf1 == "qu" then c.alt = "delinquir"
    elseif C.suf2 == "g" then c.alt = "distinguir"
    elseif (C.suf2 == "z") and (conj == 2) then c.alt = "vencer"
    elseif (C.suf2 == "z") and (conj == 3) then c.alt = "esparcir"
    elseif (C.suf2 == "j") and (conj == 2) then c.alt = "proteger"
    elseif (C.suf2 == "j") and (conj == 3) then c.alt = "dirigir" end

    c.notas = "<li>"..notas[C.suf1.."_"..C.suf2].."</li>"
  end

  -- caso especial del verbo isoptongo doble "desahuciar"
  if (modelo ~= "reg") then

    if verbo == "desahuciar" then
      if modelo == "anunciar" then c.dipt2 = "causar"
      elseif modelo == "causar" then c.dipt2 = "anunciar" end
    end

	if not c.alt then
		-- si no es ninguno de los modelos con alternancia (p. ej. "sacar"),
		-- interprétalo como un modelo de verbo isoptongo que generará una
		-- descripción adicional en la cabecera de la tabla
    	c.dipt = modelo
    end
  end

  -- variante del participio irregular del grupo "escribir" - "escripto"
  if (verbo == "escribir") or (verbo == "adscribir") or (verbo == "circunscribir") or (verbo == "describir") or (verbo == "inscribir") or (verbo == "prescribir") or
  (verbo == "proscribir") or (verbo == "rescribir") or (verbo == "sobrescribir") or (verbo == "subscribir") or (verbo == "suscribir") or (verbo == "transcribir") or (verbo == "trascribir") then
    c.part_irr, c.part, c.part_ipto = true, C.pref.."ito", C.pref.."ipto"
  end

  -- participio doble del grupo "imprimir" - "imprimido" o "impreso"
  if (verbo == "imprimir") or (verbo == "sobreimprimir") or (verbo == "reimprimir") then c.part_doble = C.pref.."eso" end

  return c

end

-- modelo común para la conjugación REGULAR con tildación
modelos.reg_tilde = function (C, conj, modelo, verbo)

  -- ejemplo: *augar, *aúgo, *aúgue
  -- t = aug-, t2 = augu-, tT = aúg-, tT2 = aúgu-
  local t, s2 = C.pref..C.vocal..C.int..C.suf1, (C.suf2 == "") and "" or _i..C.suf2.._d
  local t2, _t2 = C.pref..C.vocal..C.int..C.suf2, C.pref..C.vocal..C.int..s2
  local tT, _tT = C.pref..C.tilde..C.int..C.suf1, C.pref.._i..C.tilde.._d..C.int..C.suf1
  local tT2, _tT2 = C.pref..C.tilde..C.int..C.suf2, C.pref.._i..C.tilde.._d..C.int..s2
  local op = (conj == 1)

  local c, es = conjug[conj](C), "#es|"
  c.modelo, c.tild = "reg", modelo

  c.p_i_1s = op and tT.."o"..es.._tT.."o" or tT2.."o"..es.._tT2.."o"
  c.p_i_2s = op and tT.."as"..es.._tT.."as" or tT.."es"..es.._tT.."es"
  c.p_i_3s = op and tT.."a"..es.._tT.."a" or tT.."e"..es.._tT.."e"
  c.p_i_3p = op and tT.."an"..es.._tT.."an" or tT.."en"..es.._tT.."en"
  c.pps_i_1s = op and t2.."é"..es.._t2.."é" or c.pps_i_1s
  c.p_s_1s = op and tT2.."e"..es.._tT2.."e" or tT2.."a"..es.._tT2.."a"
  c.p_s_2s = op and tT2.."es"..es.._tT2.."es" or tT2.."as"..es.._tT2.."as"
  c.p_s_1p = op and t2.."emos"..es.._t2.."emos" or t2.."amos"..es.._t2.."amos"
  c.p_s_2p = op and t2.."éis"..es.._t2.."éis" or t2.."áis"..es.._t2.."áis"
  c.p_s_3p = op and tT2.."en"..es.._tT2.."en" or tT2.."an"..es.._tT2.."an"
  c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s

  c.imp_pron_2s, c._imp_pron_2s = op and tT.."a" or tT.."e", op and _tT.."a" or _tT.."e"
  c.imp_pron_3s, c._imp_pron_3s = op and tT2.."e" or tT2.."a", op and _tT2.."e" or _tT2.."a"
  c.imp_pron_1p, c._imp_pron_1p = op and t2.."é" or t2.."á", op and _t2.."é" or _t2.."á"
  c.imp_pron_3p, c._imp_pron_3p = op and tT2.."en" or tT2.."an", op and _tT2.."en" or _tT2.."an"

  c.notas = '<li>Gdy akcent pada na rdzenną głoskę „'..C.vocal..'”, ta tworzy rozziew z sąsiadującą samogłoską i przybiera akcent graficzny.</li>'

  if (C.suf1 ~= "") then -- si se da alternancia en la/s última/s letra/s para conservar el sonido, especifica el "modelo" correspondiente

    if C.suf2 == "qu" then c.alt = "sacar"
    elseif C.suf2 == "gu" then c.alt = "pagar"
    elseif C.suf1 == "z" then c.alt = "cazar"
    elseif C.suf2 == "gü" then c.alt = "desaguar"
    elseif C.suf1 == "qu" then c.alt = "delinquir"
    elseif C.suf2 == "g" then c.alt = "distinguir"
    elseif (C.suf2 == "z") and (conj == 2) then c.alt = "vencer"
    elseif (C.suf2 == "z") and (conj == 3) then c.alt = "esparcir"
    elseif (C.suf2 == "j") and (conj == 2) then c.alt = "proteger"
    elseif (C.suf2 == "j") and (conj == 3) then c.alt = "dirigir" end

    c.notas = c.notas.."<li>"..notas[C.suf1.."_"..C.suf2].."</li>"
  end

  -- verbos con formas monosilábicas
  if ((modelo == "actuar") or (modelo == "enviar")) and ((verbo == "chiar") or (verbo == "ciar") or (verbo == "criar") or (verbo == "fiar") or (verbo == "gruar") or
  (verbo == "guiar") or (verbo == "liar") or (verbo == "miar") or (verbo == "piar") or (verbo == "priar") or (verbo == "puar") or (verbo == "ruar") or (verbo == "triar")) then
    local aux = C.pref..(modelo == "enviar" and "i" or "u")
    c.p_i_2vs = aux.."as"..es..aux.._i.."a".._d.."s"
    c.p_i_2p = aux.."ais"..es..aux.._i.."a".._d.."is"
    c.pps_i_1s = aux.."e"..es..aux.._i.."e".._d
    c.pps_i_3s = aux.."o"..es..aux.._i.."o".._d
    c.p_s_2p = aux.."eis"..es..aux.._i.."e".._d.."is"
    c.imp_2vs = aux.."a"
    c._imp_2vs = aux.._i.."a".._d
    c.notas = c.notas..[=[<li>Zgodnie z regułą pisowni nie akcentuje się wyrazów jednosylabowych: <!--
    --><i>]=]..aux..'as, '..aux..'ais, '..aux..'e, '..aux..'o, '..aux..'eis, '..aux..'a</i>.</li>'
  end

  return c

end

-- modelos para la conjugación IRREGULAR

modelos.acertar = function (C)

  -- t = comienz-, tT = comiénz-, tS = comienc-, tST = comiénc-, t2S = comenc-
  local t, _t = C.pref.."ie"..C.int..C.suf1, C.pref.._i.."ie".._d..C.int..C.suf1
  local tT, _tT = C.pref.."ié"..C.int..C.suf1, C.pref.._i.."ié".._d..C.int..C.suf1
  local tS, _tS = C.pref.."ie"..C.int..C.suf2, C.pref.._i.."ie".._d..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local tST, _tST = C.pref.."ié"..C.int..C.suf2, C.pref.._i.."ié".._d..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local t2S, _t2S = C.pref.."e"..C.int..C.suf2, C.pref.."e"..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)

  local c, es = conjug[1](C), "#es|"
  c.modelo = "acertar"

  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."as"..es.._t.."as", t.."a"..es.._t.."a", t.."an"..es.._t.."an"
  c.pps_i_1s = t2S.."é"..es.._t2S.."é"
  c.p_s_1s, c.p_s_2s, c.p_s_3p = tS.."e"..es.._tS.."e", tS.."es"..es.._tS.."es", tS.."en"..es.._tS.."en"
  c.p_s_1p, c.p_s_2p = t2S.."emos"..es.._t2S.."emos", t2S.."éis"..es.._t2S.."éis"
  c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s
  c.imp_pron_2s, c.imp_pron_3s, c.imp_pron_3p = tT.."a", tST.."e", tST.."en"
  c._imp_pron_2s, c._imp_pron_3s, c._imp_pron_3p = _tT.."a", _tST.."e", _tST.."en"
  c.imp_pron_1p, c._imp_pron_1p = t2S.."é", _t2S.."é"

  c.notas = '<li>Gdy akcent pada na rdzenną głoskę [e], przechodzi ona w dyftong „ie”.</li>'

  if (C.suf1 ~= "") then -- si se da alternancia en la/s última/s letra/s para conservar el sonido, especifica el "modelo" correspondiente

    if "g" == C.suf1 then c.alt = "regar"
    elseif "z" == C.suf1 then c.alt = "empezar" end

    c.notas = c.notas.."<li>"..notas[C.suf1.."_"..C.suf2].."</li>"
  end

  return c

end

modelos.adquirir = function (C, conj, modelo) -- también: "entender", "discernir"

  -- t = adquier-, tT = adquiér-
  local t, _t = C.pref.."ie"..C.int, C.pref.._i.."ie".._d..C.int
  local tT, _tT = C.pref.."ié"..C.int, C.pref.._i.."ié".._d..C.int

  local c, es = conjug[conj](C), "#es|"

  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.p_s_1s, c.p_s_2s, c.p_s_3p = t.."a"..es.._t.."a", t.."as"..es.._t.."as", t.."an"..es.._t.."an"
  c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s
  c.imp_pron_2s, c.imp_pron_3s, c.imp_pron_3p = tT.."e", tT.."a", tT.."an"
  c._imp_pron_2s, c._imp_pron_3s, c._imp_pron_3p = _tT.."e", _tT.."a", _tT.."an"

  c.notas = '<li>Gdy akcent pada na rdzenną głoskę ['..((modelo == "adquirir") and "i" or "e")..'], przechodzi ona w dyftong „ie”.</li>'

  return c

end

modelos.agradecer = function (C, conj, _modelo, verbo, terc_pers) -- también: "lucir", usado por: "yacer"

  -- t = agradezc-, tT = agradézc-
  local t, _t = C.pref..C.vocal.."zc", C.pref..C.vocal.._i.."zc".._d
  local tT, _tT = C.pref..C.tilde.."zc", C.pref..C.tilde.._i.."zc".._d

  local c, es = conjug[conj](C), "#es|"

  c.p_i_1s = t.."o"..es.._t.."o"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.p_s_3s = c.p_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = '<li>Rdzeń kończy się spółgłoską „c”, która przybiera formę grupy liter „zc” przed '..(terc_pers and "głoską [a]" or "głoskami [a], [o]")..'.</li>'

  if verbo == "placer" then
    c.pps_i_3s = "plació#es|plació]]<br>[[plugo#es|pl".._i.."ugo".._d
    c.p_s_3s = "plazca#es|pla".._i.."zc".._d.."a]]<br>[[plega#es|pl".._i.."eg".._d.."a]]<br>[[plegue#es|pl".._i.."egue".._d
    c.pi1_s_3s = "placiera#es|placiera]]<br>[[pluguiera#es|pl".._i.."ugu".._d.."iera"
    c.pi2_s_3s = "placiese#es|placiese]]<br>[[pluguiese#es|pl".._i.."ugu".._d.."iese"
    c.f_s_3s = "placiere#es|placiere]]<br>[[pluguiere#es|pl".._i.."ugu".._d.."iere"
    c.notas = c.notas..'<li>Przybiera oboczne, archaiczne formy 3. os. lp. w czasach <i>pret. perf. simple (ind.), presente, pret. imperfecto</i> i <i>futuro (sub.)</i>.</li>'
  end

  if verbo == "empecer" then
    c.no_part = true
    c.notas = c.notas..'<li>Brak imiesłowów (<i>gerundio</i> i <i>participio</i>) i form złożonych (<i>tiempos compuestos</i>).</li>'
  end

  return c

end

modelos.andar = function (C)

  -- t = anduv-
  local t, _t = C.pref.."a"..C.int.."uv", C.pref.."a"..C.int.._i.."uv".._d

  local c, es = conjug[1](C), "#es|"

  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t.."e"..es.._t.._i.."e".._d, t.."iste"..es.._t.._i.."i".._d.."ste", t.."o"..es.._t.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t.."imos"..es.._t.._i.."i".._d.."mos", t.."isteis"..es.._t.._i.."i".._d.."steis", t.."ieron"..es.._t.._i.."ie".._d.."ron"
  c.pi1_s_1s, c.pi1_s_2s = t.."iera"..es.._t.._i.."ie".._d.."ra", t.."ieras"..es.._t.._i.."ie".._d.."ras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."iéramos"..es.._t.._i.."ié".._d.."ramos", t.."ierais"..es.._t.._i.."ie".._d.."rais", t.."ieran"..es.._t.._i.."ie".._d.."ran"
  c.pi2_s_1s, c.pi2_s_2s = t.."iese"..es.._t.._i.."ie".._d.."se", t.."ieses"..es.._t.._i.."ie".._d.."ses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."iésemos"..es.._t.._i.."ié".._d.."semos", t.."ieseis"..es.._t.._i.."ie".._d.."seis", t.."iesen"..es.._t.._i.."ie".._d.."sen"
  c.f_s_1s, c.f_s_2s = t.."iere"..es.._t.._i.."ie".._d.."re", t.."ieres"..es.._t.._i.."ie".._d.."res"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."iéremos"..es.._t.._i.."ié".._d.."remos", t.."iereis"..es.._t.._i.."ie".._d.."reis", t.."ieren"..es.._t.._i.."ie".._d.."ren"
  c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s

  c.notas = [=[<!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>; pozostałe końcówki tego czasu,<br><!--
  --><i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i> pochodzą od koniugacji II-III.</li><!--
  --><li>Rdzeń otrzymuje końcową grupę „uv” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li>]=]

  return c

end

modelos.asir = function (C)

  -- t = asg-, tT = ásg-
  local t, _t = C.pref.."asg", C.pref.."as".._i.."g".._d
  local tT, _tT = C.pref.."ásg", C.pref.."ás".._i.."g".._d

  local c, es = conjug[3](C), "#es|"

  c.p_i_1s = t.."o"..es.._t.."o"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.p_s_3s = c.p_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = '<li>Rdzeń otrzymuje dodatkową, końcową spółgłoskę „g” przed głoskami [a], [o].</li>'

  return c

end

modelos.caer = function (C) -- usado por: "roer"

  -- t = caig-, tT = cáig-, t2 = cay-
  local t, _t = C.pref..C.vocal.."ig", C.pref..C.vocal.._i.."ig".._d
  local tT, _tT = C.pref..C.tilde.."ig", C.pref..C.tilde.._i.."ig".._d
  local t2, _t2 = C.pref..C.vocal.."y", C.pref..C.vocal.._i.."y".._d

  local c, tR, es = conjug[2](C), C.pref..C.vocal, "#es|"

  c.ger, c.ger2, c._ger2 = t2.."endo"..es.._t2.."endo", t2.."éndo", _t2.."éndo"
  c.part, c._part = C.pref..C.vocal.."ído", C.pref..C.vocal.._i.."í".._d.."do"
  c.p_i_1s = t.."o"..es.._t.."o"
  c.pps_i_1p = tR.."ímos"..es..tR.._i.."í".._d.."mos"
  c.pps_i_2s, c.pps_i_2p = tR.."íste"..es..tR.._i.."í".._d.."ste", tR.."ísteis"..es..tR.._i.."í".._d.."steis"
  c.pps_i_3s, c.pps_i_1p, c.pps_i_3p = t2.."ó"..es.._t2.."ó", C.pref..C.vocal.."ímos"..es..C.pref..C.vocal.._i.."í".._d.."mos", t2.."eron"..es.._t2.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."era"..es.._t2.."era", t2.."eras"..es.._t2.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."éramos"..es.._t2.."éramos", t2.."erais"..es.._t2.."erais", t2.."eran"..es.._t2.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."ese"..es.._t2.."ese", t2.."eses"..es.._t2.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."ésemos"..es.._t2.."ésemos", t2.."eseis"..es.._t2.."eseis", t2.."esen"..es.._t2.."esen"
  c.f_s_1s, c.f_s_2s = t2.."ere"..es.._t2.."ere", t2.."eres"..es.._t2.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."éremos"..es.._t2.."éremos", t2.."ereis"..es.._t2.."ereis", t2.."eren"..es.._t2.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje dodatkową, końcową grupę „ig” przed głoskami [a], [o].</li><!--
  --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską []=]..C.vocal..[=[] rdzenia, otrzymując akcent graficzny („]=]..C.vocal..[=[í”).</li><!--
  --><li>Początkowa, nieakcentowana samogłoska „i” w końcówce przechodzi w spółgłoskę „y”, gdy występuje po niej inna samogłoska.</li>]=]

  return c

end

modelos["ceñir"] = function (C)

  -- t = ciñ-, tT = cíñ-
  local t, _t = C.pref.."iñ", C.pref.._i.."i".._d.."ñ"
  local tT, _tT = C.pref.."íñ", C.pref.._i.."í".._d.."ñ"

  local c, es = conjug[3](C), "#es|"

  c.ger, c.ger2, c._ger2 = t.."endo"..es.._t.."endo", t.."éndo", _t.."éndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_3s, c.pps_i_3p = t.."ó"..es.._t.."ó", t.."eron"..es.._t.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es.._t.."era", t.."eras"..es.._t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es.._t.."éramos", t.."erais"..es.._t.."erais", t.."eran"..es.._t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es.._t.."ese", t.."eses"..es.._t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es.._t.."ésemos", t.."eseis"..es.._t.."eseis", t.."esen"..es.._t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es.._t.."ere", t.."eres"..es.._t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es.._t.."éremos", t.."ereis"..es.._t.."ereis", t.."eren"..es.._t.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_pron_2s, c._imp_pron_2s = c.p_i_3s, tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"
  c.ger_ast, c.pps_ast, c.pi_f_ast = "*", "*", "*"

  c.notas = [=[<!--
  --><li>Kiedy jest akcentowana, rdzenna głoska [e] przechodzi w samogłoskę „i”.</li><!--
  --><li>W 3. os. czasu <i>pretérito perfecto simple</i>, we wszystkich czasach <i>subjuntivo</i> i w <i>gerundio</i> rdzenna głoska [e] przechodzi<br><!--
  -->w samogłoskę „i”.</li><!--
  --><li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce fleksyjnej, gdy występuje po niej inna samogłoska. (*)</li>]=]

  return c

end

modelos.conducir = function (C)

  -- t = conduzc-, tT = condúzc-, t2 = conduj-
  local t, _t = C.pref.."uzc", C.pref.."u".._i.."zc".._d
  local tT, _tT = C.pref.."úzc", C.pref.."ú".._i.."zc".._d
  local t2, _t2 = C.pref.."uj", C.pref.."u".._i.."j".._d

  local c, es = conjug[3](C), "#es|"

  c.p_i_1s = t.."o"..es.._t.."o"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."eron"..es.._t2.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."era"..es.._t2.."era", t2.."eras"..es.._t2.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."éramos"..es.._t2.."éramos", t2.."erais"..es.._t2.."erais", t2.."eran"..es.._t2.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."ese"..es.._t2.."ese", t2.."eses"..es.._t2.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."ésemos"..es.._t2.."ésemos", t2.."eseis"..es.._t2.."eseis", t2.."esen"..es.._t2.."esen"
  c.f_s_1s, c.f_s_2s = t2.."ere"..es.._t2.."ere", t2.."eres"..es.._t2.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."éremos"..es.._t2.."éremos", t2.."ereis"..es.._t2.."ereis", t2.."eren"..es.._t2.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"
  c.pps2_ast, c.pi_f_ast = "*", "*"

  c.notas = [=[<!--
  --><li>Rdzeń kończy się spółgłoską „c”, która przybiera formę grupy liter „zc” przed głoskami [a], [o].</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Ostatnia spółgłoska rdzenia „c” przybiera formę „j” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce, gdy występuje po niej inna samogłoska (wyjątek: <i>gerundio</i>). (*)</li>]=]

  return c

end

modelos.construir = function (C, _conj, _modelo, verbo)

  local t, _t, tT, _tT

  if C.vocal == "ü" then -- verbos acabados en "-güir": argüir, reargüir, redargüir, caigüir
    local str = string.sub(C.pref, 1, -2)
    -- t = arguy-, tT = argúy-
    t, _t = str.."guy", str.._i.."guy".._d
    tT, _tT = str.."gúy", str.._i.."gúy".._d
  else
    -- t = construy-, tT = constrúy-
    t, _t = C.pref..C.vocal.."y", C.pref..C.vocal.._i.."y".._d
    tT, _tT = C.pref..C.tilde.."y", C.pref..C.tilde.._i.."y".._d
  end

  local c, tR, es = conjug[3](C), C.pref..C.vocal, "#es|"

  c.ger, c.ger2, c._ger2 = t.."endo"..es.._t.."endo", t.."éndo", _t.."éndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_3s, c.pps_i_3p = t.."ó"..es.._t.."ó", t.."eron"..es.._t.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es.._t.."era", t.."eras"..es.._t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es.._t.."éramos", t.."erais"..es.._t.."erais", t.."eran"..es.._t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es.._t.."ese", t.."eses"..es.._t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es.._t.."ésemos", t.."eseis"..es.._t.."eseis", t.."esen"..es.._t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es.._t.."ere", t.."eres"..es.._t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es.._t.."éremos", t.."ereis"..es.._t.."ereis", t.."eren"..es.._t.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „y” przed samogłoską otwartą [a]]=]..((verbo == "desvaír") and "" or ", [e]")..[=[ lub [o].</li><!--
  --><li>Początkowa, nieakcentowana samogłoska „i” w końcówce przechodzi w spółgłoskę „y”, gdy występuje po niej inna samogłoska.</li>]=]

  -- verbos con formas monosilábicas
  if (verbo == "buir") or (verbo == "fluir") or (verbo == "fruir") or (verbo == "gruir") or (verbo == "huir") or (verbo == "luir") or (verbo == "muir") then
    local aux = C.pref.."u"
    c.p_i_2vs = aux.."is"..es..aux.._i.."i".._d.."s"
    c.pps_i_1s = aux.."i"..es..aux.._i.."i".._d
    c.p_i_2p, c.imp_2vs, c._imp_2vs = c.p_i_2vs, aux.."i", aux.._i.."i".._d
    c.notas = c.notas..'<li>Zgodnie z regułą pisowni nie akcentuje się wyrazów jednosylabowych: <i>'..aux..'is, '..aux..'i</i>.</li>'
  end

  if verbo == "rehuir" then
    c.p_i_1s = "rehúyo"..es.."reh".._i.."úy".._d.."o"
    c.p_i_2s = "rehúyes"..es.."reh".._i.."úy".._d.."es"
    c.p_i_3s = "rehúye"..es.."reh".._i.."úy".._d.."e"
    c.p_i_3p = "rehúyen"..es.."reh".._i.."úy".._d.."en"
    c.p_s_1s = "rehúya"..es.."reh".._i.."úy".._d.."a"
    c.p_s_2s = "rehúyas"..es.."reh".._i.."úy".._d.."as"
    c.p_s_3p = "rehúyan"..es.."reh".._i.."úy".._d.."an"
    c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s
    c.imp_pron_2s, c._imp_pron_2s = "rehúye", "reh".._i.."úy".._d.."e"
    c.imp_pron_3s, c._imp_pron_3s = "rehúya", "reh".._i.."úy".._d.."an"
    c.imp_pron_3p, c._imp_pron_3p = "rehúyan", "reh".._i.."úy".._d.."an"
    c.tild = "reunir"
    c.notas = c.notas..'<li>Gdy akcent pada na rdzenną głoskę [u], ta tworzy rozziew z poprzednią głoską [e] i przybiera akcent graficzny („ehú”).</li>'
  end

  if ((verbo == "desvaír") or (verbo == "embaír")) then
    c.inf = tR.."ír"
    c._part = tR.._i.."í".._d.."do"
    c.p_i_2s = tR.."es"..es..tR.."es"
    c.p_i_3s = tR.."e"..es..tR.."e"
    c.p_i_1p = tR.."ímos"..es..tR.._i.."í".._d.."mos"
    c.p_i_3p = tR.."en"..es..tR.."en"
    c.pps_i_2s = tR.."íste"..es..tR.._i.."í".._d.."ste"
    c.pps_i_2p = tR.."ísteis"..es..tR.._i.."í".._d.."steis"
    c.pps_i_1p, c.imp_2s = c.p_i_1p, c.p_i_3s
    c.imp_2p, c._imp_2p = tR.."íd", tR.._i.."í".._d.."d"
    c.imp_pron_2s = C.pref.."áe"
    c.notas = nil
  end

  -- verbos acabados en "-güir": argüir, reargüir, redargüir, caigüir
  if C.vocal == "ü" then c.notas = c.notas..'<li>Diereza zanika w czasach, w których po rdzeniu występuje spółgłoska „y” („gü” przybiera formę „gu”).</li>' end

  return c

end

modelos.contar = function (C, _conj, _modelo, verbo) -- también: "jugar"

  local aux, auxT, _aux, _auxT
  local _h = (verbo == "desosar") and "h" or ""
  local op = ((verbo == "degollar") or (verbo == "agorar") or (verbo == "engorar") or (verbo == "regoldar") or (verbo == "avergonzar") or (verbo == "desvergonzar") or (verbo == "envergonzar")) and true or false

  if op then
    local pref = subString(C.pref, 1, -2)
    aux, _aux = pref.."güe"..C.int, pref.._i.."güe".._d..C.int
    auxT, _auxT = pref.."güé"..C.int, pref.._i.."güé".._d..C.int
  else
    aux, _aux = C.pref.._h.."ue"..C.int, C.pref.._i.._h.."ue".._d..C.int
    auxT, _auxT = C.pref.._h.."ué"..C.int, C.pref.._i.._h.."ué".._d..C.int
  end

  -- t = cuelg-, tT = cuélg-, tS = cuelgu-, tST = cuélgu-, t2S = colgu-
  local t, _t = aux..C.suf1, _aux..C.suf1
  local tT, _tT = auxT..C.suf1, _auxT..C.suf1
  local tS, _tS = aux..C.suf2, _aux..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local tST, _tST = auxT..C.suf2, _auxT..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local t2S, _t2S = C.pref..C.vocal..C.int..C.suf2, C.pref..C.vocal..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)

  local c, es = conjug[1](C), "#es|"
  c.modelo = "contar"

  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."as"..es.._t.."as", t.."a"..es.._t.."a", t.."an"..es.._t.."an"
  c.pps_i_1s = t2S.."é"..es.._t2S.."é"
  c.p_s_1s, c.p_s_2s, c.p_s_3s = tS.."e"..es.._tS.."e", tS.."es"..es.._tS.."es", tS.."e"..es.._tS.."e"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t2S.."emos"..es.._t2S.."emos", t2S.."éis"..es.._t2S.."éis", tS.."en"..es.._tS.."en"
  c.imp_2s = c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."a", _tT.."a"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tST.."e", t2S.."é", tST.."en"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tST.."e", _t2S.."é", _tST.."en"

  c.notas = '<li>Gdy akcent pada na rdzenną głoskę ['..C.vocal..'], przechodzi ona w dyftong „'.._h..'ue”.</li>'

  if (C.suf1 ~= "") then -- si se da alternancia en la/s última/s letra/s para conservar el sonido, especifica el "modelo" correspondiente

    if "g" == C.suf1 then c.alt = "colgar"
    elseif "c" == C.suf1 then c.alt = "volcar"
    elseif "z" == C.suf1 then c.alt = "forzar" end

    c.notas = c.notas.."<li>"..notas[C.suf1.."_"..C.suf2].."</li>"
  end

  if op then c.notas = c.notas..'<li>Rdzeń zawiera spółgłoskę „g”, która przybiera formę grupy liter „gü” przed głoskami [e], [i].</li>' end

  return c

end

modelos.dar = function (C, _conj, modelo, verbo)

  local t, c, es, op = C.pref..C.vocal..C.int, conjug[1](C), "#es|", (modelo == verbo)

  c.p_i_1s = t.."oy"..es..t.."o".._i.."y".._d
  c.p_i_2s = op and c.p_i_2s or t.."ás"..es..t.._i.."á".._d.."s"
  c.p_i_2vs = c.p_i_2s
  c.p_i_3s = op and c.p_i_3s or t.."á"..es..t.._i.."á".._d
  c.p_i_2p = op and "dais"..es.."d".._i.."a".._d.."is" or c.p_i_2p
  c.p_i_3p = op and c.p_i_3p or t.."án"..es..t.._i.."á".._d.."n"
  c.pps_i_1s = op and "di"..es.."d".._i.."i".._d or t.."í"..es..t.._i.."í".._d
  c.pps_i_2s = t.."iste"..es..t.._i.."i".._d.."ste"
  c.pps_i_3s = op and "dio"..es.."d".._i.."io".._d or t.."ió"..es..t.._i.."ió".._d
  c.pps_i_1p = t.."imos"..es..t.._i.."i".._d.."mos"
  c.pps_i_2p = t.."isteis"..es..t.._i.."i".._d.."steis"
  c.pps_i_3p = t.."ieron"..es..t.._i.."ie".._d.."ron"
  c.p_s_1s = t.."é"..es..t.._i.."é".._d
  c.p_s_2s = op and c.p_s_2s or t.."és"..es..t.._i.."é".._d.."s"
  c.p_s_3s = c.p_s_1s
  c.p_s_2p = op and "deis"..es.."d".._i.."e".._d.."is" or c.p_s_2p
  c.p_s_3p = op and c.p_s_3p or t.."én"..es..t.._i.."é".._d.."n"
  c.pi1_s_1s, c.pi1_s_2s = t.."iera"..es..t.._i.."ie".._d.."ra", t.."ieras"..es..t.._i.."ie".._d.."ras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."iéramos"..es..t.._i.."ié".._d.."ramos", t.."ierais"..es..t.._i.."ie".._d.."rais", t.."ieran"..es..t.._i.."ie".._d.."ran"
  c.pi2_s_1s, c.pi2_s_2s = t.."iese"..es..t.._i.."ie".._d.."se", t.."ieses"..es..t.._i.."ie".._d.."ses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."iésemos"..es..t.._i.."ié".._d.."semos", t.."ieseis"..es..t.._i.."ie".._d.."seis", t.."iesen"..es..t.._i.."ie".._d.."sen"
  c.f_s_1s, c.f_s_2s = t.."iere"..es..t.._i.."ie".._d.."re", t.."ieres"..es..t.._i.."ie".._d.."res"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."iéremos"..es..t.._i.."ié".._d.."remos", t.."iereis"..es..t.._i.."ie".._d.."reis", t.."ieren"..es..t.._i.."ie".._d.."ren"
  c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2vs, c._imp_2vs = c.p_i_3s, op and "da" or c.imp_2vs, op and "d".._i.."a".._d or c.imp_2vs
  c.imp_pron_3s, c.imp_pron_3p = t.."e", t.."en"

  c.notas = [=[<!--
  --><li>Do końcówki 1. os. lp. czasu <i>presente de indicativo</i> dodaje się jotowaną spółgłoskę „y”.</li><!--
  --><li>Otrzymuje końcówki fleksyjne koniugacji II-III w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  -->]=]..((verbo == "dar") and [=[<li>Zgodnie z regułą pisowni nie akcentuje się wyrazów jednosylabowych: <i>dais, deis, di, dio, da</i>.</li><!--
  --><li>Pomimo że formy 1. i 3. os. lp <i>presente de subjuntivo</i> są jednosylabowe, otrzymują akcent graficzny, aby odróżnić je<br>od przyimka <i>[[de#es|de]]</i> ([[tilde diacrítica]]).</li>]=]
  or "<li>Formy <i>presente de indicativo/subjuntivo</i> i lp. <i>imperativo</i> są akcentowane na końcówce, przybierając zatem akcent graficzny.</li>")

  return c

end

modelos.decir = function (C, _conj, _modelo, verbo) -- (*)

  -- t = dig-, tT = díg-, t2 = dij-, t3 = dic-, t3T = díc-
  local t, _t = C.pref.."ig", C.pref.._i.."ig".._d
  local tT, _tT = C.pref.."íg", C.pref.._i.."íg".._d
  local t2, _t2 = C.pref.."ij", C.pref.._i.."ij".._d
  local t3, _t3 = C.pref.."ic", C.pref.._i.."ic".._d
  local t3T, _t3T = C.pref.."íc", C.pref.._i.."íc".._d

  local c, es = {}, "#es|"
  local op, op2 = ((verbo == "bendecir") or (verbo == "maldecir")), ((verbo == "contradecir") or (verbo == "desdecir") or (verbo == "predecir") or (verbo == "condecir"))
  local tR, tR2 = C.pref, C.pref.."ec"

  c.inf, c.inf2, c.ger, c.ger2, c._ger2 = tR2.."ir", tR2.."ír", t3.."iendo"..es.._t3.."iendo", t3.."iéndo", _t3.."iéndo"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s = t.."o"..es.._t.."o", t3.."es"..es.._t3.."es", tR2.."ís"..es..tR2.."ís", t3.."e"..es.._t3.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR2.."imos"..es..tR2.."imos", tR2.."ís"..es..tR2.."ís", t3.."en"..es.._t3.."en"
  c.pi_i_1s, c.pi_i_2s = tR2.."ía"..es..tR2.."ía", tR2.."ías"..es..tR2.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR2.."íamos"..es..tR2.."íamos", tR2.."íais"..es..tR2.."íais", tR2.."ían"..es..tR2.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."eron"..es.._t2.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."era"..es.._t2.."era", t2.."eras"..es.._t2.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."éramos"..es.._t2.."éramos", t2.."erais"..es.._t2.."erais", t2.."eran"..es.._t2.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."ese"..es.._t2.."ese", t2.."eses"..es.._t2.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."ésemos"..es.._t2.."ésemos", t2.."eseis"..es.._t2.."eseis", t2.."esen"..es.._t2.."esen"
  c.f_s_1s, c.f_s_2s = t2.."ere"..es.._t2.."ere", t2.."eres"..es.._t2.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."éremos"..es.._t2.."éremos", t2.."ereis"..es.._t2.."ereis", t2.."eren"..es.._t2.."eren"
  c.pi_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2vs, c.imp_2p = tR2.."í", tR2.."id"
  c.imp_pron_2vs, c.imp_pron_3s, c._imp_pron_3s, c.imp_pron_3p, c._imp_pron_3p = tR2.."i", tT.."a", _tT.."a", tT.."an", _tT.."an"
  c.imp_pron_1p, c._imp_pron_1p, c.imp_pron_2p = t.."á", _t.."á", tR2.."í"

  c.notas = [=[<!--
  --><li>Kiedy jest akcentowana, grupa „ec” rdzenia przybiera formę „ig” przed samogłoskami [a], [o] i formę „ic” przed [e].</li><!--
  --><li>W czasie <i>pretérito perfecto simple</i>, we wszystkich czasach <i>subjuntivo</i> i w <i>gerundio</i> samogłoska „e” rdzenia przechodzi w „i”.</li><!--
  --><li>Rdzeń kończy się spółgłoską „c”, która przybiera formę litery „j” w czasach <i>pretérito perfecto simple (indicativo)</i>,<br><!--
  --><i>pretérito imperfecto (subjuntivo)</i> i <i>futuro (subjuntivo)</i>.</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li>]=]

  -- variantes bendecir (op)/predecir (op2)/decir (default)
  if op then
    c.part, c.part_irr = tR2.."ido", false
    c.f_i_1s, c.f_i_2s, c.f_i_3s = tR2.."iré"..es..tR2.."iré", tR2.."irás"..es..tR2.."irás", tR2.."irá"..es..tR2.."irá"
    c.f_i_1p, c.f_i_2p, c.f_i_3p = tR2.."iremos"..es..tR2.."iremos", tR2.."iréis"..es..tR2.."iréis", tR2.."irán"..es..tR2.."irán"
    c.c_i_1s, c.c_i_2s = tR2.."iría"..es..tR2.."iría", tR2.."irías"..es..tR2.."irías"
    c.c_i_1p, c.c_i_2p, c.c_i_3p = tR2.."iríamos"..es..tR2.."iríamos", tR2.."iríais"..es..tR2.."iríais", tR2.."irían"..es..tR2.."irían"
    c.imp_2s = t3.."e"..es.._t3.."e"
    c.imp_pron_2s, c._imp_pron_2s = t3T.."e", _t3T.."e"
    c.pps2_ast, c.pi_f_ast = "*", "*"
    c.notas = c.notas..'<li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce, gdy występuje po niej inna samogłoska (wyjątek: <i>gerundio</i>). (*)</li>'
  elseif op2 then
    c.part, c.part_irr = tR.."icho", true
    c.f_i_1s = tR.."iré"..es..tR.."iré]]<br>[["..tR2.."iré"..es..tR2.."iré"
    c.f_i_2s = tR.."irás"..es..tR.."irás]]<br>[["..tR2.."irás"..es..tR2.."irás"
    c.f_i_3s = tR.."irá"..es..tR.."irá]]<br>[["..tR2.."irá"..es..tR2.."irá"
    c.f_i_1p = tR.."iremos"..es..tR.."iremos]]<br>[["..tR2.."iremos"..es..tR2.."iremos"
    c.f_i_2p = tR.."iréis"..es..tR.."iréis]]<br>[["..tR2.."iréis"..es..tR2.."iréis"
    c.f_i_3p = tR.."irán"..es..tR.."irán]]<br>[["..tR2.."irán"..es..tR2.."irán"
    c.c_i_1s = tR.."iría"..es..tR.."iría]]<br>[["..tR2.."iría"..es..tR2.."iría"
    c.c_i_2s = tR.."irías"..es..tR.."irías]]<br>[["..tR2.."irías"..es..tR2.."irías"
    c.c_i_1p = tR.."iríamos"..es..tR.."iríamos]]<br>[["..tR2.."iríamos"..es..tR2.."iríamos"
    c.c_i_2p = tR.."iríais"..es..tR.."iríais]]<br>[["..tR2.."iríais"..es..tR2.."iríais"
    c.c_i_3p = tR.."irían"..es..tR.."irían]]<br>[["..tR2.."irían"..es..tR2.."irían"
    c.imp_2s = t3.."e"..es.._t3.."e"
    c.imp_pron_2s, c._imp_pron_2s = t3T.."e", _t3T.."e"
    c.pps2_ast, c.f_c_ast, c.pi_f_ast = "**", "*", "**"
    c.notas = c.notas..[=[<!--
    --><li>Traci grupę „ec” rdzenia w czasach <i>futuro</i> i <i>condicional (indicativo)</i> (*); przyjmuje równiez formy regularne.</li><!--
    --><li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce, gdy występuje po niej inna samogłoska (wyjątek: <i>gerundio</i>). (**)</li>]=]
  else
    c.part, c.part_irr = tR.."icho", true
    c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."iré"..es..tR.."iré", tR.."irás"..es..tR.."irás", tR.."irá"..es..tR.."irá"
    c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."iremos"..es..tR.."iremos", tR.."iréis"..es..tR.."iréis", tR.."irán"..es..tR.."irán"
    c.c_i_1s, c.c_i_2s = tR.."iría"..es..tR.."iría", tR.."irías"..es..tR.."irías"
    c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."iríamos"..es..tR.."iríamos", tR.."iríais"..es..tR.."iríais", tR.."irían"..es..tR.."irían"
    c.imp_2s = (verbo == "decir") and "di"..es.."di" or tR.."í"..es..tR.."í"
    c.imp_pron_2s = tR.."i"
    c.pps2_ast, c.f_c_ast, c.imp_ast, c.pi_f_ast = "**", "*", "*", "**"
    c.notas = c.notas..[=[<!--
    --><li>Traci grupę „ec” rdzenia w czasach <i>futuro</i> i <i>condicional (indicativo)</i> i w trybie rozkazującym <i>imperativo (tú)</i>. (*)<!--
    -->]=]..((verbo == "decir") and '.</li>' or ', przybierając<br>w ostatnim przypadku akcent graficzny.</li>')..[=[<!--
    --><li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce, gdy występuje po niej inna samogłoska (wyjątek: <i>gerundio</i>). (**)</li>]=]
  end

  c.c_i_3s = c.c_i_1s

  return c

end

modelos.dormir = function (C)

  -- t = duerm-, tT = duérm-, t2 = durm-
  local t, _t = C.pref.."ue"..C.int, C.pref.._i.."ue".._d..C.int
  local tT, _tT = C.pref.."ué"..C.int, C.pref.._i.."ué".._d..C.int
  local t2, _t2 = C.pref.."u"..C.int, C.pref.._i.."u".._d..C.int

  local c, es = conjug[3](C), "#es|"

  c.ger, c.ger2, c._ger2 = t2.."iendo"..es.._t2.."iendo", t2.."iéndo", _t2.."iéndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_3s, c.pps_i_3p = t2.."ió"..es.._t2.."ió", t2.."ieron"..es.._t2.."ieron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t2.."amos"..es.._t2.."amos", t2.."áis"..es.._t2.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t2.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t2.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Gdy akcent pada na rdzenną głoskę [o], przechodzi ona w dyftong „ue”.</li><!--
  --><li>Gdy jest nieakcentowana, rdzenna głoska [o] przechodzi w samogłoskę „u” w 3. os. czasu <i>pretérito perfecto simple</i>,<br><!--
  -->we wszystkich czasach <i>modo subjuntivo</i> oraz w <i>gerundio</i>.</li>]=]

  return c

end

modelos.erguir = function (C)

  -- t = irgu-, tT = írgu-, tS = yerg-, tST = yérg-
  local t, _t = "irgu", _i.."i".._d.."rgu"
  local tT, _tT = "írgu", _i.."í".._d.."rgu"
  local tS, _tS = "yerg", _i.."y".._d.."er".._i.."g".._d
  local tST, _tST = "yérg", _i.."y".._d.."ér".._i.."g".._d

  local c, es = conjug[3](C), "#es|"

  c.ger, c.ger2, c._ger2 = t.."iendo"..es.._t.."iendo", t.."iéndo", _t.."iéndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = tS.."o"..es.._tS.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_3s, c.pps_i_3p = t.."ió"..es.._t.."ió", t.."ieron"..es.._t.."ieron"
  c.p_s_1s, c.p_s_2s = tS.."a"..es.._tS.."a", tS.."as"..es.._tS.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = tS.."amos"..es.._tS.."amos", tS.."áis"..es.._tS.."áis", tS.."an"..es.._tS.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."iera"..es.._t.."iera", t.."ieras"..es.._t.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."iéramos"..es.._t.."iéramos", t.."ierais"..es.._t.."ierais", t.."ieran"..es.._t.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t.."iese"..es.._t.."iese", t.."ieses"..es.._t.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."iésemos"..es.._t.."iésemos", t.."ieseis"..es.._t.."ieseis", t.."iesen"..es.._t.."iesen"
  c.f_s_1s, c.f_s_2s = t.."iere"..es.._t.."iere", t.."ieres"..es.._t.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."iéremos"..es.._t.."iéremos", t.."iereis"..es.._t.."iereis", t.."ieren"..es.._t.."ieren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s, c.imp_2s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s, c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tST.."a", tS.."á", tST.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tST.."a", _tS.."á", _tST.."an"

  c.notas = [=[<!--
  --><li>Gdy akcent pada na rdzenną głoskę [e], rdzeń otrzymuje początkową spółgłoskę „y”.</li><!--
  --><li>Gdy jest nieakcentowana, rdzenna głoska [e] przechodzi w samogłoskę „i” w 3. os. czasu <i>pretérito perfecto simple</i>,<br><!--
  -->we wszystkich czasach <i>modo subjuntivo</i> oraz w <i>gerundio</i>.</li><!--
  --><li>Rdzeń kończy się grupą „gu”, która przybiera formę litery „g” przed głoskami [a], [o], [u].</li>]=]

  c.alt = "seguir"

  return c

end

modelos.errar = function (C)

  -- t = yerr-, tT = yérr-
  local t, _t = "yerr", _i.."y".._d.."err"
  local tT, _tT = "yérr", _i.."y".._d.."érr"

  local c, es = conjug[1](C), "#es|"

  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."as"..es.._t.."as", t.."a"..es.._t.."a", t.."an"..es.._t.."an"
  c.p_s_1s, c.p_s_2s, c.p_s_3p = t.."e"..es.._t.."e", t.."es"..es.._t.."es", t.."en"..es.._t.."en"
  c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s
  c.imp_pron_2s, c.imp_pron_3s, c.imp_pron_3p = tT.."a", tT.."e", tT.."en"
  c._imp_pron_2s, c._imp_pron_3s, c._imp_pron_3p = _tT.."a", _tT.."e", _tT.."en"

  c.notas = '<li>Gdy akcent pada na rdzenną głoskę [e], rdzeń otrzymuje początkową spółgłoskę „y”.</li>'

  return c

end

modelos.estar = function (C, _conj, _modelo, _verbo, terc_pers, esPron)

  local t, _t = "estuv", "est".._i.."uv".._d

  local c, es = conjug[1](C), "#es|"

  c.p_i_1s, c.p_i_2s, c.p_i_3s = "estoy"..es.."esto".._i.."y".._d, "estás"..es.."est".._i.."á".._d.."s", "está"..es.."est".._i.."á".._d
  c.p_i_3p = "están"..es.."est".._i.."á".._d.."n"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t.."e"..es.._t.._i.."e".._d, t.."iste"..es.._t.._i.."i".._d.."ste", t.."o"..es.._t.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t.."imos"..es.._t.._i.."i".._d.."mos", t.."isteis"..es.._t.._i.."i".._d.."steis", t.."ieron"..es.._t.._i.."ie".._d.."ron"
  c.p_s_1s, c.p_s_2s, c.p_s_3p = "esté"..es.."est".._i.."é".._d, "estés"..es.."est".._i.."é".._d.."s", "estén"..es.."est".._i.."é".._d.."n"
  c.pi1_s_1s, c.pi1_s_2s = t.."iera"..es.._t.._i.."ie".._d.."ra", t.."ieras"..es.._t.._i.."ie".._d.."ras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."iéramos"..es.._t.._i.."ié".._d.."ramos", t.."ierais"..es.._t.._i.."ie".._d.."rais", t.."ieran"..es.._t.._i.."ie".._d.."ran"
  c.pi2_s_1s, c.pi2_s_2s = t.."iese"..es.._t.._i.."ie".._d.."se", t.."ieses"..es.._t.._i.."ie".._d.."ses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."iésemos"..es.._t.._i.."ié".._d.."semos", t.."ieseis"..es.._t.._i.."ie".._d.."seis", t.."iesen"..es.._t.._i.."ie".._d.."sen"
  c.f_s_1s, c.f_s_2s = t.."iere"..es.._t.._i.."ie".._d.."re", t.."ieres"..es.._t.._i.."ie".._d.."res"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."iéremos"..es.._t.._i.."ié".._d.."remos", t.."iereis"..es.._t.._i.."ie".._d.."reis", t.."ieren"..es.._t.._i.."ie".._d.."ren"
  c.p_i_2vs, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_i_2s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = "estate"..es.."est".._i.."ate".._d
  c.imp_2vs, c._imp_2vs, c.imp_pron_2s = "estate", "est".._i.."ate".._d, "esta"
  c.imp_pron_3s, c.imp_pron_3p = "este", "esten"

  c.notas = [=[<!--
  -->]=]..(terc_pers and '' or '<li>Do końcówki 1. os. lp. czasu <i>presente de indicativo</i> dodaje się jotowaną spółgłoskę „y”.</li>')..[=[<!--
  --><li>Formy <i>presente de indicativo</i> i <i>subjuntivo</i> są akcentowane na ostatniej sylabie, przybierając zatem akcent graficzny.</li><!--
  --><li>]=]..(terc_pers and 'Otrzymuje nieakcentowaną końcówkę fleksyjną w 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><li>Końcówki fleksyjne&nbsp;' or
  'Otrzymuje nieakcentowane końcówki fleksyjne w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>; pozostałe końcówki tego czasu,<br>')..[=[<!--
  --><i>pretérito imperfecto (subjuntivo)</i> i <i>futuro (subjuntivo)</i> pochodzą od koniugacji II-III.</li><!--
  --><li>Rdzeń otrzymuje końcową grupę „uv” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  -->]=]..(esPron and "" or "<li>Formy lp. trybu <i>imperativo</i> pochodzą od czasownika zwrotnego <i>[[estarse]]</i>.</li>")

  return c

end

modelos.haber = function (C, _conj, _modelo, _verbo, terc_pers, esPron) -- (*)

  -- t = hay-, t2 = hub-
  local t, _t = "hay", "ha".._i.."y".._d
  local t2, _t2 = "hub", "h".._i.."ub".._d

  local c, tR, es, op = {}, "hab", "#es|", (modelo == verbo)

  c.inf, c.inf2, c.ger, c.ger2, c._ger2, c.part = tR.."er", tR.."ér", tR.."iendo"..es..tR.."iendo", tR.."iéndo", tR.."iéndo", tR.."ido"
  c.p_i_1s, c.p_i_2s, c.p_i_3s = "he"..es.."h".._i.."e".._d, "has"..es.."h".._i.."as".._d
  c.p_i_3s = terc_pers and "hay"..es.."h".._i.."ay".._d or "ha"..es.."h".._i.."a".._d
  c.p_i_1p = esPron and tR.."emos"..es..tR.."emos" or "hemos"..es.."h".._i.."emos".._d
  c.p_i_2p, c.p_i_3p = tR.."éis"..es..tR.."éis", "han"..es.."h".._i.."an".._d
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."ré"..es..tR.."ré", tR.."rás"..es..tR.."rás", tR.."rá"..es..tR.."rá"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."remos"..es..tR.."remos", tR.."réis"..es..tR.."réis", tR.."rán"..es..tR.."rán"
  c.c_i_1s, c.c_i_2s = tR.."ría"..es..tR.."ría", tR.."rías"..es..tR.."rías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."ríamos"..es..tR.."ríamos", tR.."ríais"..es..tR.."ríais", tR.."rían"..es..tR.."rían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.p_i_2vs, c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_i_2s, c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imper_no = true
  c.f_c_ast = "*"

  c.notas = [=[<!--
  -->]=]..(terc_pers and '' or '<li>Traci grupę „ab” rdzenia we wszystkich formach <i>presente de indicativo</i> oprócz '..(esPron and '1. i ' or '')..'2. os. lm., zmieniając końcówki fleksyjne.</li>')..[=[<!--
  -->]=]..((terc_pers == "lp") and '<li>Do końcówki 3. os. lp. czasu <i>presente de indicativo</i> dodaje się jotowaną spółgłoskę „y”.</li>' or '')..[=[<!--
  --><li>Grupa „ab” rdzenia przybiera formę „ub” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>]=]..(terc_pers and 'Otrzymuje nieakcentowaną końcówkę fleksyjną pierwszej koniugacji w' or 'Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i')..[=[<!--
  --> 3. os. lp. czasu ''pretérito perfecto simple''.</li><!--
  --><li>Rdzenna spółgłoska „b” przybiera formę „y” w czasie <i>presente de subjuntivo</i>.</li><!--
  --><li>Traci pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (simple)</i>. (*)</li>]=]

  return c

end

modelos.hacer = function (C, _conj, _modelo, verbo, terc_pers) -- (*)

  -- t = hag-, tT = hág-, t2 = hic-
  local t, _t = C.pref.."ag", C.pref.."a".._i.."g".._d
  local tT, _tT = C.pref.."ág", C.pref.."á".._i.."g".._d
  local t2, _t2 = C.pref.."ic", C.pref.._i.."ic".._d

  local c, tR, tR2, es, op, op2 = {}, C.pref.."ac", C.pref.."ar", "#es|", ((verbo == "contrahacer") or (verbo == "rehacer")), (verbo == "satisfacer")

  c.inf, c.inf2, c.ger, c.ger2 = tR.."er", tR.."ér", tR.."iendo"..es..tR.."iendo", tR.."iéndo"
  c.part, c.part_irr = C.pref.."echo", true
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s = t.."o"..es.._t.."o", tR.."es"..es..tR.."es", tR.."és"..es..tR.."és", tR.."e"..es..tR.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", tR.."en"..es..tR.."en"
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", C.pref.."izo"..es..C.pref.._i.."izo".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR2.."é"..es..tR2.."é", tR2.."ás"..es..tR2.."ás", tR2.."á"..es..tR2.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR2.."emos"..es..tR2.."emos", tR2.."éis"..es..tR2.."éis", tR2.."án"..es..tR2.."án"
  c.c_i_1s, c.c_i_2s = tR2.."ía"..es..tR2.."ía", tR2.."ías"..es..tR2.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR2.."íamos"..es..tR2.."íamos", tR2.."íais"..es..tR2.."íais", tR2.."ían"..es..tR2.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = op2 and "satisfaz#es|satisfa".._i.."z".._d.."]]<br>[[satisface#es|satisface" or C.pref.."az"..es..C.pref.."a".._i.."z".._d
  c.imp_2vs, c.imp_2p = tR.."é", tR.."ed"
  c.imp_pron_2s = op2 and "satisfaz" or C.pref.."az"
  c._imp_pron_2s = op2 and "satisfa".._i.."z".._d.."te]]<br>[[satisfácete#es|satisfáce" or C.pref.."a".._i.."z".._d
  c.imp_pron_2vs, c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = tR.."e", tT.."a", tT.."an", _tT.."a", _tT.."an"
  c.imp_pron_1p, c._imp_pron_1p, c.imp_pron_2p = t.."á", _t.."á", tR.."e"
  c.f_c_ast, c.imp_ast = "*", "*"

  c.notas = [=[<!--
  --><li>Wszystkie czasowniki tego modelu tworzą <i>participio</i> poprzez przemianę grupy „ac” rdzenia na „ech”.</li><!--
  --><li>Rdzeń kończy się spółgłoską „c”, która przybiera formę spółgłoski „g” przed ]=]..(terc_pers and 'głoska [a]' or 'głoskami [a], [o]')..[=[.</li><!--
  --><li>Grupa „ac” rdzenia przybiera formę „ic” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (subjuntivo)</i><br><!--
  -->i <i>futuro (subjuntivo)</i> przed głoskami [e], [i] i formę „iz” przed głoską [o]]=]..(op and [=[; w przypadku gdy akcent pada na tę sylabę,<br><!--
  -->głoska [i] tworzy rozziew z ostatnią samogłoską rdzenia i przybiera akcent graficzny.</li>]=] or '.</li>')..[=[<!--
  --><li>]=]..(terc_pers and 'Otrzymuje nieakcentowaną końcówkę fleksyjną pierwszej koniugacji w' or 'Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i')..[=[<!--
  --> 3. os. lp. czasu ''pretérito perfecto simple''.</li><!--
  --><li>Traci grupę „ac” rdzenia w czasach <i>futuro</i> i <i>condicional (indicativo)</i>. (*)</li><!--
  -->]=]..(terc_pers and '' or [=[<li>Traci końcówkę fleksyjną dla formy 2. os. lp. <i>imperativo (tú)</i>, przybierając końcową spółgłoskę „z” zamiast „c”<!--
  -->]=]..(op2 and '.<br>Przyjmuje również regularną formę zakończoną na "-ace".</li>' or '.</li>'))

  if op then
    c.pps_i_1s = C.pref.."íce"..es..C.pref.._i.."íce".._d
    c.pps_i_3s = C.pref.."ízo"..es..C.pref.._i.."ízo".._d

    if verbo == "rehacer" then
      c.tild = "descafeinar"
      c.notas = c.notas..'<li>Gdy akcent pada na głoskę [i] końcówki fleksyjnej, tworzy rozziew z głoską [e] rdzenia i przybiera akcent graficzny („ehí”).</li>'
    else
      c.tild = "aislar"
      c.notas = c.notas..'<li>Gdy akcent pada na głoskę [i] końcówki fleksyjnej, tworzy rozziew z głoską [a] rdzenia i przybiera akcent graficzny („ahí”).</li>'
    end
  end

  return c

end

modelos.ir = function (C, _conj, modelo, verbo, _terc_pers, esPron) -- (*)

  local op, tR = (modelo == verbo), C.pref

  -- t = fu-, t2 = ib-, t2T = íb-, t3 = vay-, t3T = váy-
  local t, _t = tR.."fu", tR.._i.."fu".._d
  local t2, _t2 = op and "ib" or tR.."íb", op and _i.."ib".._d or tR.._i.."íb".._d
  local t2T, _t2T = tR.."íb", tR.._i.."íb".._d
  local t3, _t3 = tR.."vay", tR.._i.."vay".._d
  local t3T, _t3T = tR.."váy", tR.._i.."váy".._d

  local c, es = {}, "#es|"

  c.inf, c.inf2, c.ger, c.ger2, c._ger2 = op and "ir" or tR.."ír", tR.."ír", tR.."yendo"..es..tR.._i.."y".._d.."endo", tR.."yéndo", tR.._i.."y".._d.."éndo"
  c.part, c._part = op and "ido" or tR.."ído", op and "ido" or tR.._i.."í".._d.."do"
  c.p_i_1s, c.p_i_1p = tR.."voy"..es..tR.._i.."voy".._d, tR.."vamos"..es..tR.._i.."va".._d.."mos"
  c.p_i_2s = op and "vas"..es.._i.."va".._d.."s" or tR.."vás"..es..tR.._i.."vá".._d.."s"
  c.p_i_3s = op and "va"..es.._i.."va".._d or tR.."vá"..es..tR.._i.."vá".._d
  c.p_i_2p = op and "vais"..es.._i.."va".._d.."is" or tR.."váis"..es..tR.._i.."vá".._d.."is"
  c.p_i_3p = op and "van"..es.._i.."va".._d.."n" or tR.."ván"..es..tR.._i.."vá".._d.."n"
  c.pi_i_1s, c.pi_i_2s = t2.."a"..es.._t2.."a", t2.."as"..es.._t2.."as"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = t2T.."amos"..es.._t2T.."amos", t2.."ais"..es.._t2.."ais", t2.."an"..es.._t2.."an"
  c.pps_i_1s = op and "fui"..es.._i.."fui".._d or t.."í"..es.._t.._i.."í".._d
  c.pps_i_3s = op and "fue"..es.._i.."fue".._d or t.."é"..es.._t.._i.."é".._d
  c.pps_i_2s, c.pps_i_2p = t.."iste"..es.._t.."iste", t.."isteis"..es.._t.."isteis"
  c.pps_i_1p, c.pps_i_3p = t.."imos"..es.._t.."imos", t.."eron"..es.._t.."eron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."iré"..es..tR.."iré", tR.."irás"..es..tR.."irás", tR.."irá"..es..tR.."irá"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."iremos"..es..tR.."iremos", tR.."iréis"..es..tR.."iréis", tR.."irán"..es..tR.."irán"
  c.c_i_1s, c.c_i_2s = tR.."iría"..es..tR.."iría", tR.."irías"..es..tR.."irías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."iríamos"..es..tR.."iríamos", tR.."iríais"..es..tR.."iríais", tR.."irían"..es..tR.."irían"
  c.p_s_1s, c.p_s_2s = t3.."a"..es.._t3.."a", t3.."as"..es.._t3.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t3.."amos"..es.._t3.."amos", t3.."áis"..es.._t3.."áis", t3.."an"..es.._t3.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es.._t.."era", t.."eras"..es.._t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es.._t.."éramos", t.."erais"..es.._t.."erais", t.."eran"..es.._t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es.._t.."ese", t.."eses"..es.._t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es.._t.."ésemos", t.."eseis"..es.._t.."eseis", t.."esen"..es.._t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es.._t.."ere", t.."eres"..es.._t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es.._t.."éremos", t.."ereis"..es.._t.."ereis", t.."eren"..es.._t.."eren"
  c.p_i_2vs, c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_i_2s, c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = op and "ve"..es.._i.."ve".._d or tR.."vé"..es..tR.._i.."vé".._d
  c.imp_2vs, c._imp_2vs = op and "andá" or tR.."vé", op and _i.."andá".._d or tR.._i.."vé".._d
  c.imp_2p, c._imp_2p = op and "id" or tR.."íd", op and "id" or tR.._i.."í".._d.."d"
  c.imp_pron_2s, c.imp_pron_2vs, c._imp_pron_2s, c._imp_pron_2vs = tR.."ve", op and "anda" or tR.."ve", "v".._d.."e", op and _i.."anda".._d or tR.."v".."e"
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = tR..t3T.."a", tR..t3T.."an", tR.._t3T.."a", tR.._t3T.."an"
  c.imp_pron_1p, c._imp_pron_1p = tR..t3.."á", tR.._t3.."á"
  c.imp_pron_2p, c._imp_pron_2p = op and "id" or tR.."íd", op and "i".._i.."d".._d or tR.._i.."íd".._d

  c.notas = [=[<!--
  --><li>Do końcówki 1. os. lp. czasu <i>presente de indicativo</i> dodaje się jotowaną spółgłoskę „y”.</li><!--
  --><li>Rdzeń otrzymuje spółgłoskę „v” w czasie <i>presente de indicativo</i> i w formie lp. trybu <i>imperativo (tú)</i>.</li><!--
  --><li>Otrzymuje końcówki fleksyjne pierwszej koniugacji w czasach <i>presente (indicativo/subjuntivo)</i> i <i>pretérito imperfecto<br><!--
  -->(indicativo)</i>, zamieniając w tym ostatnim początkową literę „a” samogłoską „i”.</li><!--
  --><li>Rdzeń otrzymuje grupę liter „fu” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>,<br><!--
  -->tracąc w tych ostatnich początkową samogłoskę „i” końcówki fleksyjnej.</li><!--
  --><li>Końcówka fleksyjna 3. os. lp. czasu <i>pretérito perfecto simple</i> przybiera formę samogłoski „e”.</li><!--
  --><li>Rdzeń otrzymuje grupę liter „vay” w czasie <i>presente de subjuntivo</i>.</li><!--
  --><li>Początkowa samogłoska „i” w gerundio przechodzi w spółgłoskę „y”.</li><!--
  --><li>Forma lp. trybu <i>imperativo (vos)</i> pochodzi od czasownika <i>[[andar#es|andar]]</i>.</li><!--
  -->]=]..(esPron and '<li>Końcówka fleksyjna dla formy lm. trybu <i>imperativo (vosotros/as)</i> zachowuje spółgłoskę „d”.</li>' or '')..[=[<!--
  -->]=]..(op and '<li>Zgodnie z reguła pisowni nie akcentuje się wyrazów jednosylabowych: <i>vais, fui, fue</i>.</li>' or '')..[=[<!--
  -->]=]..(op and '' or '<li>Formy <i>presente de indicativo</i> (oprócz 1. os.)'..((esPron) and '' or '&nbsp;i lp. <i>imperativo (tú)</i>')..[=[<!--
    --> są akcentowane na ostatniej sylabie, przybierając zatem akcent graficzny.</li></li><!--
    --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską [a] rdzenia, otrzymując akcent graficzny („aí”).]=])

  return c

end

modelos.leer = function (C, _conj, _modelo, verbo) -- usado por "roer"

  -- t = ley-
  local t, _t = C.pref..C.vocal.."y", C.pref..C.vocal.._i.."y".._d

  local c, tR, es = conjug[2](C), C.pref..C.vocal, "#es|"

  c.ger, c.ger2, c._ger2 = t.."endo"..es.._t.."endo", t.."éndo", _t.."éndo"
  c.part, c._part = tR.."ído", tR.._i.."í".._d.."do"
  c.pps_i_1p = tR.."ímos"..es..tR.._i.."í".._d.."mos"
  c.pps_i_2s, c.pps_i_2p = tR.."íste"..es..tR.._i.."í".._d.."ste", tR.."ísteis"..es..tR.._i.."í".._d.."steis"
  c.pps_i_3s, c.pps_i_3p = t.."ó"..es.._t.."ó", t.."eron"..es.._t.."eron"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es.._t.."era", t.."eras"..es.._t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es.._t.."éramos", t.."erais"..es.._t.."erais", t.."eran"..es.._t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es.._t.."ese", t.."eses"..es.._t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es.._t.."ésemos", t.."eseis"..es.._t.."eseis", t.."esen"..es.._t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es.._t.."ere", t.."eres"..es.._t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es.._t.."éremos", t.."ereis"..es.._t.."ereis", t.."eren"..es.._t.."eren"
  c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s

  c.notas = [=[<!--
  --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską []=]..C.vocal..[=[] rdzenia, otrzymując akcent graficzny („]=]..C.vocal..[=[í”).</li><!--
  --><li>Początkowa, nieakcentowana samogłoska „i” w końcówce przechodzi w spółgłoskę „y”, gdy występuje po niej inna samogłoska.</li>]=]

  -- participio doble del grupo "proveer" - "proveído" o "provisto"
  if (verbo == "proveer") or (verbo == "desproveer") then c.part_doble = C.pref.."isto" end

  return c

end

modelos.mover = function (C, _conj, modelo) -- también: "oler"

  local aux, auxT = (modelo == "oler") and "hue" or "ue", (modelo == "oler") and "hué" or "ué"

  -- t = cuec-, tT = cuéc-, tS = cuez-, tST = cuéz-, t2S = coz-
  local t, _t = C.pref..aux..C.int..C.suf1, C.pref.._i..aux.._d..C.int..C.suf1
  local tT, _tT = C.pref..auxT..C.int..C.suf1, C.pref.._i..auxT.._d..C.int..C.suf1
  local tS, _tS = C.pref..aux..C.int..C.suf2, C.pref.._i..aux.._d..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local tST, _tST = C.pref..auxT..C.int..C.suf2, C.pref.._i..auxT.._d..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local t2S, _t2S = C.pref.."o"..C.int..C.suf2, C.pref.."o"..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)

  local c, es = conjug[2](C), "#es|"
  c.modelo = "mover"

  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = tS.."o"..es.._tS.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.p_s_1s, c.p_s_2s = tS.."a"..es.._tS.."a", tS.."as"..es.._tS.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t2S.."amos"..es.._t2S.."amos", t2S.."áis"..es.._t2S.."áis", tS.."an"..es.._tS.."an"
  c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tST.."a", t2S.."á", tST.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tST.."a", _t2S.."á", _tST.."an"

  c.notas = '<li>Gdy akcent pada na rdzenną głoskę [o], przechodzi ona w '..((modelo == "oler") and 'grupę „hue”' or 'dyftong „ue”')..'.</li>'

  if (C.suf1 ~= "") then -- si se da alternancia en la/s última/s letra/s para conservar el sonido, especifica el "modelo" correspondiente
    c.alt = "cocer"
    c.notas = c.notas.."<li>"..notas[C.suf1.."_"..C.suf2].."</li>"
  end

  return c

end

modelos.mullir = function (C, conj) -- también: "tañer"

  -- t = mull-, tT = múll-
  local t = C.pref..C.vocal..C.int

  local c, es = conjug[conj](C), "#es|"

  c.ger, c.ger2 = t.."endo"..es..t.."endo", t.."éndo"
  c.pps_i_3s, c.pps_i_3p = t.."ó"..es..t.."ó", t.."eron"..es..t.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es..t.."a", t.."as"..es..t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es..t.."amos", t.."áis"..es..t.."áis", t.."an"..es..t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es..t.."era", t.."eras"..es..t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es..t.."éramos", t.."erais"..es..t.."erais", t.."eran"..es..t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es..t.."ese", t.."eses"..es..t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es..t.."ésemos", t.."eseis"..es..t.."eseis", t.."esen"..es..t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es..t.."ere", t.."eres"..es..t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es..t.."éremos", t.."ereis"..es..t.."ereis", t.."eren"..es..t.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.ger_ast, c.pps_ast, c.pi_f_ast = "*", "*", "*"

  c.notas = '<li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce fleksyjnej, gdy występuje po niej inna samogłoska. (*)</li>'

  return c

end

modelos["oír"] = function (C)

  -- t = oig-, tT = óig, t2 = oy-, tT2 = óy-
  local t, _t = C.pref.."oig", C.pref.."o".._i.."ig".._d
  local tT, _tT = C.pref.."óig", C.pref.."ó".._i.."ig".._d
  local t2, _t2 = C.pref.."oy", C.pref.."o".._i.."y".._d
  local tT2, _tT2 = C.pref.."óy", C.pref.."ó".._i.."y".._d

  local c, es = conjug[3](C), "#es|"

  c.inf, c.ger, c.ger2, c._ger2 = C.pref.."oír", t2.."endo"..es.._t2.."endo", t2.."éndo", _t2.."éndo"
  c.part, c._part = C.pref.."oído", C.pref.."o".._i.."í".._d.."do"
  c.p_i_1s, c.p_i_2s, c.p_i_3s = t.."o"..es.._t.."o", t2.."es"..es.._t2.."es", t2.."e"..es.._t2.."e"
  c.p_i_1p, c.p_i_3p = C.pref.."oímos"..es..C.pref.."o".._i.."í".._d.."mos", t2.."en"..es.._t2.."en"
  c.pps_i_1p = c.p_i_1p
  c.pps_i_2s, c.pps_i_2p = C.pref.."oíste"..es..C.pref.."o".._i.."í".._d.."ste", C.pref.."oísteis"..es..C.pref.."o".._i.."í".._d.."steis"
  c.pps_i_3s, c.pps_i_3p = t2.."ó"..es.._t2.."ó", t2.."eron"..es.._t2.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."era"..es.._t2.."era", t2.."eras"..es.._t2.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."éramos"..es.._t2.."éramos", t2.."erais"..es.._t2.."erais", t2.."eran"..es.._t2.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."ese"..es.._t2.."ese", t2.."eses"..es.._t2.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."ésemos"..es.._t2.."ésemos", t2.."eseis"..es.._t2.."eseis", t2.."esen"..es.._t2.."esen"
  c.f_s_1s, c.f_s_2s = t2.."ere"..es.._t2.."ere", t2.."eres"..es.._t2.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."éremos"..es.._t2.."éremos", t2.."ereis"..es.._t2.."ereis", t2.."eren"..es.._t2.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2p, c._imp_2p = c.p_i_3s, C.pref.."oíd", C.pref.."o".._i.."í".._d.."d"
  c.imp_pron_1p, c._imp_pron_1p = t.."á", _t.."á"
  c.imp_pron_2s, c.imp_pron_2vs, c._imp_pron_2s, c._imp_pron_2vs = tT2.."e", C.pref.."oí", _tT2.."e", C.pref.."o".._i.."í".._d
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = tT.."a", tT.."an", _tT.."a", _tT.."an"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje końcową grupę „ig” przed głoskami [a], [o].</li><!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „y” przed samogłoską otwartą [e] w <i>presente de indicativo</i> i <i>imperativo (tú)</i>.</li><!--
  --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską [o] rdzenia, otrzymując akcent graficzny („oí”).</li><!--
  --><li>Początkowa, nieakcentowana samogłoska „i” w końcówce przechodzi w spółgłoskę „y”, gdy występuje po niej inna samogłoska.</li>]=]

  return c

end

modelos.pedir = function (C, _conj, _modelo, verbo) -- usado por: "erguir"

  -- t = sigu-, tT = sígu-, tS = sig-, tST = síg-
  local t, _t = C.pref.."i"..C.int..C.suf1, C.pref.._i.."i".._d..C.int..C.suf1
  local tT, _tT = C.pref.."í"..C.int..C.suf1, C.pref.._i.."í".._d..C.int..C.suf1
  local tS, _tS = C.pref.."i"..C.int..C.suf2, C.pref.._i.."i".._d..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)
  local tST, _tST = C.pref.."í"..C.int..C.suf2, C.pref.._i.."í".._d..C.int..((C.suf2 == "") and "" or _i..C.suf2.._d)

  local c, es = conjug[3](C), "#es|"
  c.modelo = "pedir"

  c.ger, c.ger2, c._ger2 = t.."iendo"..es.._t.."iendo", t.."iéndo", _t.."iéndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = tS.."o"..es.._tS.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_3s, c.pps_i_3p = t.."ió"..es.._t.."ió", t.."ieron"..es.._t.."ieron"
  c.p_s_1s, c.p_s_2s = tS.."a"..es.._tS.."a", tS.."as"..es.._tS.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = tS.."amos"..es.._tS.."amos", tS.."áis"..es.._tS.."áis", tS.."an"..es.._tS.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."iera"..es.._t.."iera", t.."ieras"..es.._t.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."iéramos"..es.._t.."iéramos", t.."ierais"..es.._t.."ierais", t.."ieran"..es.._t.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t.."iese"..es.._t.."iese", t.."ieses"..es.._t.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."iésemos"..es.._t.."iésemos", t.."ieseis"..es.._t.."ieseis", t.."iesen"..es.._t.."iesen"
  c.f_s_1s, c.f_s_2s = t.."iere"..es.._t.."iere", t.."ieres"..es.._t.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."iéremos"..es.._t.."iéremos", t.."iereis"..es.._t.."iereis", t.."ieren"..es.._t.."ieren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tST.."a", tS.."á", tST.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tST.."a", tS.."á", _tST.."an"

  c.notas = ((verbo == "preterir") and '' or
     '<li>Gdy akcent pada na rdzenną głoskę [e], przechodzi ona w samogłoskę „i”'..((verbo == "rehenchir") and ' i tworzy rozziew z grupą "eh", przybierając akcent graficzny („ehí”)' or ''))..[=[.</li><!--
  --><li>Gdy jest nieakcentowana, rdzenna głoska [e] przechodzi w samogłoskę „i” w 3. os. czasu <i>pretérito perfecto simple</i>,<br><!--
  -->we wszystkich czasach <i>modo subjuntivo</i> oraz w <i>gerundio</i>.</li>]=]

  if verbo == "rehenchir" then
    c.p_i_1s = "rehíncho"..es.."reh".._i.."í".._d.."ncho"
    c.p_i_2s = "rehínches"..es.."reh".._i.."í".._d.."nches"
    c.p_i_3s = "rehínche"..es.."reh".._i.."í".._d.."nche"
    c.p_i_3p = "rehínchen"..es.."reh".._i.."í".._d.."nchen"
    c.p_s_1s = "rehíncha"..es.."reh".._i.."í".._d.."ncha"
    c.p_s_2s = "rehínchas"..es.."reh".._i.."í".._d.."nchas"
    c.p_s_3p = "rehínchan"..es.."reh".._i.."í".._d.."nchan"
    c.p_s_3s, c.imp_2s = c.p_s_1s, c.p_i_3s
    c.imp_pron_2s, c._imp_pron_2s = "rehínche", "reh".._i.."í".._d.."nche"
    c.imp_pron_3s, c._imp_pron_3s = "rehínchase", "reh".._i.."í".._d.."nchan"
    c.imp_pron_3p, c._imp_pron_3p = "rehínchanse", "reh".._i.."í".._d.."nchan"
    c.tild = "descafeinar"
  end

  if (C.suf1 ~= "") then -- si se da alternancia en la/s última/s letra/s para conservar el sonido, especifica el "modelo" correspondiente

    if "g" == C.suf1 then c.alt = "elegir"
    elseif "gu" == C.suf1 then c.alt = "seguir" end

    c.notas = c.notas.."<li>"..notas[C.suf1.."_"..C.suf2].."</li>"
  end

  return c

end

modelos.poder = function (C, _conj, _modelo, _verbo, terc_pers)

  -- t = pued-, tT = puéd-, t2 = pud-
  local t, _t = C.pref.."ue"..C.int, C.pref.._i.."ue".._d..C.int
  local tT, _tT = C.pref.."ué"..C.int, C.pref.._i.."ué".._d..C.int
  local t2, _t2 = C.pref.."u"..C.int, C.pref.._i.."u".._d..C.int

  local c, tR, es = conjug[2](C), "podr", "#es|"

  c.ger, c.ger2, c._ger2 = t2.."iendo"..es.._t2.."iendo", t2.."iéndo", _t2.."iéndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."é"..es..tR.."é", tR.."ás"..es..tR.."ás", tR.."á"..es..tR.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", tR.."án"..es..tR.."án"
  c.c_i_1s, c.c_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.p_s_1s, c.p_s_2s, c.p_s_3p = t.."a"..es.._t.."a", t.."as"..es.._t.."as", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.._i.."ie".._d.."ra", t2.."ieras"..es.._t2.._i.."ie".._d.."ras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.._i.."ié".._d.."ramos", t2.."ierais"..es.._t2.._i.."ie".._d.."rais", t2.."ieran"..es.._t2.._i.."ie".._d.."ran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.._i.."ie".._d.."se", t2.."ieses"..es.._t2.._i.."ie".._d.."ses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.._i.."ié".._d.."semos", t2.."ieseis"..es.._t2.._i.."ie".._d.."seis", t2.."iesen"..es.._t2.._i.."ie".._d.."sen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.._i.."ie".._d.."re", t2.."ieres"..es.._t2.._i.."ie".._d.."res"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.._i.."ié".._d.."remos", t2.."iereis"..es.._t2.._i.."ie".._d.."reis", t2.."ieren"..es.._t2.._i.."ie".._d.."ren"
  c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s, c.imp_2s = c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s, c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s,c._imp_pron_3p = tT.."a", tT.."an", _tT.."a", _tT.."an"

  c.f_c_ast = "*"

  c.notas = [=[<!--
  --><li>Gdy akcent pada na rdzenną głoskę [o], przechodzi ona w dyftong „ue” w czasach <i>presente de indicativo/subjuntivo</i> i<br><!--
  -->w <i>pretérito perfecto simple (indicativo)</i>.</li><!--
  --><li>Gdy jest nieakcentowana, rdzenna głoska [o] przechodzi w samogłoskę „u” w 3. os. czasu <i>pretérito perfecto simple</i>,<br><!--
  -->w czasach <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i> oraz w <i>gerundio</i>.</li><!--
  --><li>]=]..(terc_pers and 'Otrzymuje nieakcentowaną końcówkę fleksyjną pierwszej koniugacji w' or
    'Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i')..[=[ 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Traci pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (simple)</i>. (*)</li>]=]

  return c

end

modelos.poner = function (C, _conj, modelo, verbo, _terc_pers, esPron) -- (*)

  -- t = pong-, tT = póng-, t2 = pus-, t3 = pond-
  local t, _t = C.pref.."ong", C.pref.."on".._i.."g".._d
  local tT, _tT = C.pref.."ong", C.pref.."ón".._i.."g".._d
  local t2, _t2 = C.pref.."us", C.pref.._i.."us".._d
  local t3, _t3 = C.pref.."ondr", C.pref.."on".._i.."d".._d.."r"

  local c, tR, es, op = {}, C.pref.."on", "#es|", (modelo == verbo)

  c.inf, c.inf2, c.ger, c.ger2 = tR.."er", tR.."ér", tR.."iendo"..es..tR.."iendo", tR.."iéndo"
  c.part, c.part_irr = C.pref.."uesto", true
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s = t.."o"..es.._t.."o", tR.."es"..es..tR.."es", tR.."és"..es..tR.."és", tR.."e"..es..tR.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", tR.."en"..es..tR.."en"
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = t3.."é"..es.._t3.."é", t3.."ás"..es.._t3.."ás", t3.."á"..es.._t3.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = t3.."emos"..es.._t3.."emos", t3.."éis"..es.._t3.."éis", t3.."án"..es.._t3.."án"
  c.c_i_1s, c.c_i_2s = t3.."ía"..es.._t3.."ía", t3.."ías"..es.._t3.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = t3.."íamos"..es.._t3.."íamos", t3.."íais"..es.._t3.."íais", t3.."ían"..es.._t3.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2vs, c.imp_2p = op and tR..es..tR or C.pref.."ón"..es..C.pref.."ón", tR.."é", tR.."ed"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_1p, c._imp_pron_1p, c.imp_pron_2p = tR, tR.."e", t.."á", _t.."á", tR.."e"
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = tT.."a", tT.."an", _tT.."a", _tT.."an"
  c.imp_ast = "*"

  c.notas = [=[<!--
  --><li>Wszystkie czasowniki tego modelu tworzą <i>participio</i> poprzez przemianę grupy „on” rdzenia na „uest”.</li><!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „g” przed samogłoskami [a], [o].</li><!--
  --><li>Grupa „on” rdzenia przybiera formę „us” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Spółgłoska „d” zastępuje pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (indicativo)</i>.</li><!--
  --><li>Traci końcówkę fleksyjną dla formy 2. os. lp. <i>imperativo (tú)</i>]=]..((not esPron and (verbo ~= "poner")) and ', przybierając zatem akcent graficzny. (*)</li>' or '.</li>')

  return c

end

modelos.pudrir = function (C)

  -- t = pudr-
  local t, _t = C.pref.."u"..C.int, C.pref.._i.."u".._d..C.int
  local tT, _tT = C.pref.."ú"..C.int, C.pref.._i.."ú".._d..C.int

  local c, es = conjug[3](C), "#es|"

  c.ger, c.ger2, c._ger2 = t.."iendo"..es.._t.."iendo", t.."iéndo", _t.."iéndo"
  c.p_i_1s, c.p_i_2s = t.."o"..es.._t.."o", t.."es"..es.._t.."es"
  c.p_i_3s, c.p_i_3p = t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis"
  c.p_s_3p = t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."iera"..es.._t.."iera", t.."ieras"..es.._t.."ieras"
  c.pi1_s_1p, c.pi1_s_2p = t.."iéramos"..es.._t.."iéramos", t.."ierais"..es.._t.."ierais"
  c.pi1_s_3p = t.."ieran"..es.._t.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t.."iese"..es.._t.."iese", t.."ieses"..es.._t.."ieses"
  c.pi2_s_1p, c.pi2_s_2p = t.."iésemos"..es.._t.."iésemos", t.."ieseis"..es.._t.."ieseis"
  c.pi2_s_3p = t.."iesen"..es.._t.."iesen"
  c.f_s_1s, c.f_s_2s = t.."iere"..es.._t.."iere", t.."ieres"..es.._t.."ieres"
  c.f_s_1p, c.f_s_2p = t.."iéremos"..es.._t.."iéremos", t.."iereis"..es.._t.."iereis"
  c.f_s_3p = t.."ieren"..es.._t.."ieren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s, c.imp_2s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s, c.p_i_3s
  c.imp_pron_2s, c.imp_pron_3s = tT.."e", tT.."a"
  c._imp_pron_2s, c._imp_pron_3s = _tT.."e", _tT.."a"
  c.imp_pron_1p, c.imp_pron_3p = t.."á", tT.."an"
  c._imp_pron_1p, c._imp_pron_3p = _t.."á", _tT.."an"

  c.notas = '<li>Głoska [o] rdzenia przechodzi w „u” w niektórych czasach.</li>'

  return c

end

modelos.querer = function (C, _conj, _modelo, _verbo, terc_pers) -- (*)

  -- t = quier-, tT = quiér-, t2 = quis-
  local t, _t = C.pref.."ie"..C.int, C.pref.._i.."ie".._d..C.int
  local tT, _tT = C.pref.."ié"..C.int, C.pref.._i.."ié".._d..C.int
  local t2, _t2 = C.pref.."is", C.pref.._i.."is".._d

  local c, tR, es = {}, C.pref.."er", "#es|"

  c.inf, c.inf2, c.ger, c.ger2, c._ger2, c.part = tR.."er", tR.."ér", tR.."iendo"..es..tR.."iendo", tR.."iéndo", tR.."iéndo", tR.."ido"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s = t.."o"..es.._t.."o", t.."es"..es.._t.."es", tR.."és"..es..tR.."és", t.."e"..es.._t.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", t.."en"..es.._t.."en"
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."ré"..es..tR.."ré", tR.."rás"..es..tR.."rás", tR.."rá"..es..tR.."rá"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."remos"..es..tR.."remos", tR.."réis"..es..tR.."réis", tR.."rán"..es..tR.."rán"
  c.c_i_1s, c.c_i_2s = tR.."ría"..es..tR.."ría", tR.."rías"..es..tR.."rías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."ríamos"..es..tR.."ríamos", tR.."ríais"..es..tR.."ríais", tR.."rían"..es..tR.."rían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = tR.."amos"..es..tR.."amos", tR.."áis"..es..tR.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2vs, c.imp_2p = c.p_i_3s, tR.."é", tR.."ed"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_3s = tT.."e", tR.."e", tT.."a"
  c._imp_pron_2s, c._imp_pron_3s = _tT.."e", _tT.."a"
  c.imp_pron_1p, c.imp_pron_2p, c.imp_pron_3p, c._imp_pron_3p = tR.."á", tR.."e", tT.."an", _tT.."an"
  c.f_c_ast = "*"

  c.notas = [=[<!--
  --><li>Gdy akcent pada na rdzenną głoskę [e], przechodzi ona w dyftong „ie”.</li><!--
  --><li>Grupa „er” rdzenia przybiera formę „is” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>]=]..(terc_pers and 'Otrzymuje nieakcentowaną końcówkę fleksyjną pierwszej koniugacji w' or 'Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i')..[=[<!--
  --> 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Traci pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (simple)</i>. (*)</li>]=]

  return c

end

modelos.roer = function (C) -- usado por: "raer"

  -- t = roy-, tT = róy-
  local t, _t = C.pref..C.vocal.."y", C.pref..C.vocal.._i.."y".._d
  local tT, _tT = C.pref..C.tilde.."y", C.pref..C.tilde.._i.."y".._d

  local c, tR, es = conjug[2](C), C.pref..C.vocal, "#es|"

  c.ger, c.ger2, c._ger2 = t.."endo"..es.._t.."endo", t.."éndo", _t.."éndo"
  c.part, c._part = C.pref..C.vocal.."ído", C.pref..C.vocal.._i.."í".._d.."do"
  c.p_i_1s = op and c.p_i_1s or t.."o"..es.._t.."o"
  c.pps_i_2s, c.pps_i_2p = tR.."íste"..es..tR.._i.."í".._d.."ste", tR.."ísteis"..es..tR.._i.."í".._d.."steis"
  c.pps_i_1p = tR.."ímos"..es..tR.._i.."í".._d.."mos"
  c.pps_i_3s, c.pps_i_3p = t.."ó"..es.._t.."ó", t.."eron"..es.._t.."eron"
  c.p_s_1s, c.p_s_2s = op and c.p_s_1s or t.."a"..es.._t.."a", op and c.p_s_2s or t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p = op and c.p_s_1p or t.."amos"..es.._t.."amos", op and c.p_s_2p or t.."áis"..es.._t.."áis"
  c.p_s_3p = op and c.p_s_3p or t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es.._t.."era", t.."eras"..es.._t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es.._t.."éramos", t.."erais"..es.._t.."erais", t.."eran"..es.._t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es.._t.."ese", t.."eses"..es.._t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es.._t.."ésemos", t.."eseis"..es.._t.."eseis", t.."esen"..es.._t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es.._t.."ere", t.."eres"..es.._t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es.._t.."éremos", t.."ereis"..es.._t.."ereis", t.."eren"..es.._t.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje dodatkową, końcową spółgłoskę „y” przed głoskami [a], [o].</li><!--
  --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską []=]..C.vocal..[=[] rdzenia, otrzymując akcent graficzny („]=]..C.vocal..[=[í”).</li><!--
  --><li>Początkowa, nieakcentowana samogłoska „i” w końcówce przechodzi w spółgłoskę „y”, gdy występuje po niej inna samogłoska.</li>]=]

  return c

end

modelos.saber = function (C, _conj, modelo, verbo) -- (*) también: "caber"

  local op = (modelo == "caber")

  -- t = sep-, tT = sép-, t2 = sup-
  local t, _t = (op and "qu" or C.pref).."ep", op and _i.."quep".._d or C.pref.._i.."ep".._d
  local tT, _tT = C.pref.."ép", C.pref.._i.."ép".._d
  local t2, _t2 = C.pref.."up", C.pref.._i.."up".._d

  local c, tR, tRT, es = {}, C.pref.."ab", C.pref.."áb", "#es|"

  c.inf, c.inf2, c.ger, c.ger2, c._ger2, c.part = tR.."er", tR.."ér", tR.."iendo"..es..tR.."iendo", tR.."iéndo", tR.."iéndo", tR.."ido"
  c.p_i_1s = op and "quepo"..es.._i.."quep".._d.."o" or C.pref.."é"..es..C.pref.._i.."é".._d
  c.p_i_2s, c.p_i_2vs, c.p_i_3s = tR.."es"..es..tR.."es", tR.."és"..es..tR.."és", tR.."e"..es..tR.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", tR.."en"..es..tR.."en"
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."ré"..es..tR.."ré", tR.."rás"..es..tR.."rás", tR.."rá"..es..tR.."rá"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."remos"..es..tR.."remos", tR.."réis"..es..tR.."réis", tR.."rán"..es..tR.."rán"
  c.c_i_1s, c.c_i_2s = tR.."ría"..es..tR.."ría", tR.."rías"..es..tR.."rías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."ríamos"..es..tR.."ríamos", tR.."ríais"..es..tR.."ríais", tR.."rían"..es..tR.."rían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s

  if verbo == "caber" then
    c.imper_no = true
  else
    c.imp_2s, c.imp_2vs, c.imp_2p = c.p_i_3s, tR.."é", tR.."ed"
    c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_3s, c._imp_pron_3s = tRT.."e", tR.."e", tT.."a", _tT.."a"
    c.imp_pron_1p, c._imp_pron_1p, c.imp_pron_2p, c.imp_pron_3p, c._imp_pron_3p = t.."á", _t.."á", tR.."e", tT.."an", _tT.."an"
  end

  c.f_c_ast = "*"

  c.notas = [=[<!--
  -->]=]..(op and '' or '<li>Grupa „ab” rdzenia zanika, a końcówka „o” przybiera formę akcentowanej samogłoski „é” w 1. os. lp. <i>presente de indicativo</i>'..[=[<!--
  -->]=]..((verbo == "saber") and '<br>Pomimo że wyraz ten jest jednosylabowy, otrzymuje akcent graficzny, aby odróżnić go od zaimka zwrotnego "[[se#es|se]]" ([[tilde diacrítica]]).</li><!--' or ".</li><!--"))..[=[<!--
  --><li>Grupa „ab” rdzenia przybiera formę „up” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Traci pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (simple)</i>. (*)</li><!--
  --><li>Grupa „ab” rdzenia przybiera formę „ep” w czasie <i>presente de subjuntivo</i>.</li>]=]

  return c

end

modelos.salir = function (C)

  -- t = salg-, tT = sálg-, t2 = saldr-
  local t, _t = C.pref.."alg", C.pref.."al".._i.."g".._d
  local tT, _tT = C.pref.."álg", C.pref.."ál".._i.."g".._d
  local t2, _t2 = C.pref.."aldr", C.pref.."al".._i.."d".._d.."r"

  local c, tR, es = conjug[3](C), C.pref.."al", "#es|"

  c.p_i_1s = t.."o"..es.._t.."o"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = t2.."é"..es.._t2.."é", t2.."ás"..es.._t2.."ás", t2.."á"..es.._t2.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = t2.."emos"..es.._t2.."emos", t2.."éis"..es.._t2.."éis", t2.."án"..es.._t2.."án"
  c.c_i_1s, c.c_i_2s = t2.."ía"..es.._t2.."ía", t2.."ías"..es.._t2.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = t2.."íamos"..es.._t2.."íamos", t2.."íais"..es.._t2.."íais", t2.."ían"..es.._t2.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.c_i_3s, c.p_s_3s = c.c_i_1s, c.p_s_1s
  c.imp_2s, c.imp_pron_2s = tR, tR
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"
  c.imp_ast = "*"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „g” przed samogłoskami [a], [o].</li><!--
  --><li>Spółgłoska „d” zastępuje pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (indicativo)</i>.</li><!--
  --><li>Traci końcówkę fleksyjną dla formy 2. os. lp. <i>imperativo (tú)</i>. (*)</li>]=]

  return c

end

modelos.sentir = function (C)

  -- t = sient-, tT = siént-, t2 = sint-
  local t, _t = C.pref.."ie"..C.int, C.pref.._i.."ie".._d..C.int
  local tT, _tT = C.pref.."ié"..C.int, C.pref.._i.."ié".._d..C.int
  local t2, _t2 = C.pref.."i"..C.int, C.pref.._i.."i".._d..C.int

  local c, es = conjug[3](C), "#es|"

  c.ger, c.ger2, c._ger2 = t2.."iendo"..es.._t2.."iendo", t2.."iéndo", _t2.."iéndo"
  c.p_i_1s, c.p_i_2s, c.p_i_3s, c.p_i_3p = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e", t.."en"..es.._t.."en"
  c.pps_i_3s, c.pps_i_3p = t2.."ió"..es.._t2.."ió", t2.."ieron"..es.._t2.."ieron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t2.."amos"..es.._t2.."amos", t2.."áis"..es.._t2.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s = c.p_i_3s
  c.imp_pron_2s, c._imp_pron_2s = tT.."e", _tT.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t2.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t2.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Gdy akcent pada na rdzenną głoskę [e], przechodzi ona w dyftong „ie”.</li><!--
  --><li>Gdy jest nieakcentowana, rdzenna głoska [e] przechodzi w samogłoskę „i” w 3. os. czasu <i>pretérito perfecto simple</i>,<br><!--
  -->w czasach <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i> oraz w <i>gerundio</i>.</li>]=]

  return c

end

modelos.ser = function (C) -- (*)

  -- t = fu-, t2 = er-, t2T = ér-, t3 = se-
  local t, _t = "fu", _i.."fu".._d
  local t2, _t2 = "er", _i.."er".._d
  local t2T, _t2T = "ér", _i.."ér".._d
  local t3, _t3 = "se", "s".._i.."e".._d

  local c, tR, es = {}, "ser", "#es|"

  c.inf, c.ger, c.ger2, c.part = "ser", "siendo"..es.."siendo", "siéndo", "sido"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s = "soy"..es.."so".._i.."y".._d, "eres"..es.._t2.."es", "sos"..es.._i.."sos".._d, "es"..es.._i.."es".._d
  c.p_i_1p, c.p_i_2p, c.p_i_3p = "somos"..es.."s".._i.."o".._d.."mos", "sois"..es.."s".._i.."o".._d.."is", "son"..es.."s".._i.."o".._d.."n"
  c.pi_i_1s, c.pi_i_2s = t2.."a"..es.._t2.."a", t2.."as"..es.._t2.."as"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = t2T.."amos"..es.._t2T.."amos", t2.."ais"..es.._t2.."ais", t2.."an"..es.._t2.."an"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t.."i"..es.._t.._i.."i".._d, t.."iste"..es.._t.."iste", t.."e"..es.._t.._i.."e".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t.."imos"..es.._t.."imos", t.."isteis"..es.._t.."isteis", t.."eron"..es.._t.."eron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = tR.."é"..es..tR.."é", tR.."ás"..es..tR.."ás", tR.."á"..es..tR.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", tR.."án"..es..tR.."án"
  c.c_i_1s, c.c_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.p_s_1s, c.p_s_2s = t3.."a"..es.._t3.."a", t3.."as"..es.._t3.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t3.."amos"..es.._t3.."amos", t3.."áis"..es.._t3.."áis", t3.."an"..es.._t3.."an"
  c.pi1_s_1s, c.pi1_s_2s = t.."era"..es.._t.."era", t.."eras"..es.._t.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t.."éramos"..es.._t.."éramos", t.."erais"..es.._t.."erais", t.."eran"..es.._t.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t.."ese"..es.._t.."ese", t.."eses"..es.._t.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t.."ésemos"..es.._t.."ésemos", t.."eseis"..es.._t.."eseis", t.."esen"..es.._t.."esen"
  c.f_s_1s, c.f_s_2s = t.."ere"..es.._t.."ere", t.."eres"..es.._t.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t.."éremos"..es.._t.."éremos", t.."ereis"..es.._t.."ereis", t.."eren"..es.._t.."eren"
  c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2vs, c.imp_2p = "sé"..es.."s".._i.."é".._d, "sé", "sed"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_1p, c._imp_pron_1p = "se", "se", "seamos", "s".._i.."e".._d.."á"
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = "séa", "séan", "s".._i.."é".._d.."a", "s".._i.."é".._d.."an"

  c.notas = [=[<!--
  --><li>Wszystkie formy <i>presente de indicativo</i> zmienają rdzeń lub otrzymują nieregularne końcówki fleksyjne.</li><!--
  --><li>Otrzymuje końcówki fleksyjne pierwszej koniugacji w czasie <i>pretérito imperfecto</i>, tracąc rdzeń i zamieniając<br><!--
  -->charakterystyczną końcówkę „ab” grupą liter „er”.</li><!--
  --><li>Rdzeń otrzymuje grupę liter „fu” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>,<br><!--
  -->tracąc w tych ostatnich początkową samogłoskę „i” końcówki fleksyjnej.</li><!--
  --><li>Końcówka fleksyjna 3. os. lp. czasu <i>pretérito perfecto simple</i> przybiera formę samogłoski „e”.</li><!--
  --><li>Rdzeń otrzymuje końcową samogłoskę „e” przed głoską [a] w czasie <i>presente de subjuntivo</i>.</li><!--
  --><li>Zgodnie z regułą pisowni nie akcentuje się wyrazów jednosylabowych.</li><!--
  --><li>Pomimo że formy lp. trybu <i>imperativo</i> są jednosylabowe, otrzymują akcent graficzny, aby odróżnić je od zaimka<br><!--
  -->zwrotnego <i>"[[se#es|se]]"</i> ([[tilde diacrítica]]).</li>]=]

  return c

end

modelos["sonreír"] = function (C, _conj, _modelo, verbo)

  -- t = sonrí-, t2 = sonri-
  local t, _t = C.pref.."í", C.pref.._i.."í".._d
  local t2, _t2 = C.pref.."i", C.pref.._i.."i".._d

  local c, tR, es = conjug[3](C), C.pref.."e", "#es|"

  c.inf, c.ger, c.ger2, c._ger2 = tR.."ír", t2.."endo"..es.._t2.."endo", t2.."éndo", _t2.."éndo"
  c.part, c._part = tR.."ído", tR.._i.."í".._d.."do"
  c.p_i_1s, c.p_i_2s, c.p_i_3s = t.."o"..es.._t.."o", t.."es"..es.._t.."es", t.."e"..es.._t.."e"
  c.p_i_1p, c.p_i_3p = tR.."ímos"..es..tR.._i.."í".._d.."mos", t.."en"..es.._t.."en"
  c.pps_i_1p = c.p_i_1p
  c.pps_i_2s, c.pps_i_2p = tR.."íste"..es..tR.._i.."í".._d.."ste", tR.."ísteis"..es..tR.._i.."í".._d.."steis"
  c.pps_i_3s, c.pps_i_3p = t2.."ó"..es.._t2.."ó", t2.."eron"..es.._t2.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t2.."amos"..es.._t2.."amos", t2.."áis"..es.._t2.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."era"..es.._t2.."era", t2.."eras"..es.._t2.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."éramos"..es.._t2.."éramos", t2.."erais"..es.._t2.."erais", t2.."eran"..es.._t2.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."ese"..es.._t2.."ese", t2.."eses"..es.._t2.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."ésemos"..es.._t2.."ésemos", t2.."eseis"..es.._t2.."eseis", t2.."esen"..es.._t2.."esen"
  c.f_s_1s, c.f_s_2s = t2.."ere"..es.._t2.."ere", t2.."eres"..es.._t2.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."éremos"..es.._t2.."éremos", t2.."ereis"..es.._t2.."ereis", t2.."eren"..es.._t2.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2p, c._imp_2p = c.p_i_3s, tR.."íd", tR.._i.."í".._d.."d"
  c.imp_pron_1p, c._imp_pron_1p = t2.."á", _t2.."á"
  c.imp_pron_2s, c._imp_pron_2s, c.imp_pron_2vs, c._imp_pron_2vs = t.."e", _t.."e", tR.."í", tR.._i.."í".._d
  c.imp_pron_3s, c._imp_pron_3s, c.imp_pron_3p, c._imp_pron_3p = t.."a", _t.."a", t.."an", _t.."an"

  c.notas = [=[<!--
  --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską [e] rdzenia, otrzymując akcent graficzny („eí”).</li><!--
  --><li>Gdy jest akcentowana, rdzenna głoska [e] przechodzi w samogłoskę „í” z akcentem graficznym, tworząc rozziew z nastepującą samogłoską<br><!--
  -->(czasy <i>presente de indicativo</i> i <i>subjuntivo</i> oraz 2. os. lp. <i>imperativo (tú)</i>).</li><!--
  --><li>Rdzenna głoska [e] przechodzi w samogłoskę „i” w 3. os. <i>pret. perf. simple</i>, we wszystkich czasach <i>modo subjuntivo</i> oraz w <i>gerundio</i><br><!--
  -->; dodatkowo zanika początkowa, nieakcentowana samogłoska „i” w końcówce fleksyjnej.</li>]=]

  -- verbos con formas monosilábicas
  if (verbo == "freír") or (verbo == "reír") then
    local aux = C.pref.."i"
    c.pps_i_3s = aux.."o"..es..aux.._i.."o".._d
    c.p_s_2p = aux.."ais"..es..aux.._i.."a".._d.."is"
    c.notas = c.notas..'<li>Zgodnie z regułą pisowni nie akcentuje się wyrazów jednosylabowych: <i>'..aux..'o, '..aux..'ais</i>.</li>'
  end

  -- participio doble del grupo "freír" - "freído" o "frito"
  if (verbo == "freír") or (verbo == "refreír") or (verbo == "sofreír") then c.part_doble = C.pref.."ito" end

  return c

end

modelos.tener = function (C, _conj, modelo, verbo) -- (*)

  -- t = teng-, tT = téng-, t2 = tuv-, t3 = tendr-, t4 = tien-
  local t, _t = C.pref.."eng", C.pref.."en".._i.."g".._d
  local tT, _tT = C.pref.."eng", C.pref.."én".._i.."g".._d
  local t2, _t2 = C.pref.."uv", C.pref.._i.."uv".._d
  local t3, _t3 = C.pref.."endr", C.pref.."en".._i.."d".._d.."r"
  local t4, _t4 = C.pref.."ien", C.pref.._i.."ie".._d.."n"

  local c, tR, es, op = {}, C.pref.."en", "#es|", (modelo == verbo)

  c.inf, c.inf2, c.ger, c.ger2, c.part = tR.."er", tR.."ér", tR.."iendo"..es..tR.."iendo", tR.."iéndo", tR.."ido"
  c.p_i_1s, c.p_i_2s, c.p_i_2vs, c.p_i_3s = t.."o"..es.._t.."o", t4.."es"..es.._t4.."es", tR.."és"..es..tR.."és", t4.."e"..es.._t4.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR.."emos"..es..tR.."emos", tR.."éis"..es..tR.."éis", t4.."en"..es.._t4.."en"
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = t3.."é"..es.._t3.."é", t3.."ás"..es.._t3.."ás", t3.."á"..es.._t3.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = t3.."emos"..es.._t3.."emos", t3.."éis"..es.._t3.."éis", t3.."án"..es.._t3.."án"
  c.c_i_1s, c.c_i_2s = t3.."ía"..es.._t3.."ía", t3.."ías"..es.._t3.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = t3.."íamos"..es.._t3.."íamos", t3.."íais"..es.._t3.."íais", t3.."ían"..es.._t3.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2vs, c.imp_2p = op and tR..es..tR or C.pref.."én"..es..C.pref.."én", tR.."é", tR.."ed"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_1p, c._imp_pron_1p, c.imp_pron_2p = tR, tR.."e", t.."á", _t.."á", tR.."e"
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = tT.."a", tT.."an", _tT.."a", _tT.."an"

  c.imp_ast = "*"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „g” przed samogłoskami [a], [o].</li><!--
  --><li>Grupa „en” rdzenia przybiera formę „uv” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Spółgłoska „d” zastępuje pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (indicativo)</i>.</li><!--
  --><li>Traci końcówkę fleksyjną dla formy 2. os. lp. <i>imperativo (tú)</i>]=]..((not esPron and (verbo ~= "tener")) and ', przybierając zatem akcent graficzny. (*)</li>' or '.</li>')

  return c

end

modelos.traer = function (C)

  -- t = traig-, tT = tráig-, t2 = traj-
  local t, _t = C.pref.."aig", C.pref.."a".._i.."ig".._d
  local tT, _tT = C.pref.."áig", C.pref.."á".._i.."ig".._d
  local t2, _t2 = C.pref.."aj", C.pref.."a".._i.."j".._d

  local c, es = conjug[2](C), "#es|"

  c.ger, c.ger2, c._ger2 = C.pref.."ayendo"..es..C.pref.."a".._i.."y".._d.."endo", C.pref.."ayéndo", C.pref.."a".._i.."y".._d.."éndo"
  c.part, c._part = C.pref.."aído", C.pref.."a".._i.."í".._d.."do"
  c.p_i_1s = t.."o"..es.._t.."o"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."eron"..es.._t2.."eron"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."era"..es.._t2.."era", t2.."eras"..es.._t2.."eras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."éramos"..es.._t2.."éramos", t2.."erais"..es.._t2.."erais", t2.."eran"..es.._t2.."eran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."ese"..es.._t2.."ese", t2.."eses"..es.._t2.."eses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."ésemos"..es.._t2.."ésemos", t2.."eseis"..es.._t2.."eseis", t2.."esen"..es.._t2.."esen"
  c.f_s_1s, c.f_s_2s = t2.."ere"..es.._t2.."ere", t2.."eres"..es.._t2.."eres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."éremos"..es.._t2.."éremos", t2.."ereis"..es.._t2.."ereis", t2.."eren"..es.._t2.."eren"
  c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"
  c.pps2_ast, c.pi_f_ast = "*", "*"

  c.notas = [=[<!--
  --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską [a] rdzenia, otrzymując akcent graficzny („aí”).</li><!--
  --><li>Rdzeń otrzymuje końcową grupę „ig” przed samogłoskami [a], [o].</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „j” w czasach <i>pretérito perfecto simple</i>, <i>pretérito imperfecto (sub.)</i> i <i>futuro (sub.)</i>.</li><!--
  --><li>Traci początkową, nieakcentowaną samogłoskę „i” w końcówce, gdy występuje po niej inna samogłoska (*). W <i>gerundio</i> końcówka ta<br><!--
  -->przybiera formę spółgłoski „y”.</li>]=]

  return c

end

modelos.valer = function (C)

  -- t = valg-, tT = válg-, t2 = valdr-
  local t, _t = C.pref.."alg", C.pref.."al".._i.."g".._d
  local tT, _tT = C.pref.."álg", C.pref.."ál".._i.."g".._d
  local t2, _t2 = C.pref.."aldr", C.pref.."al".._i.."d".._d.."r"

  local c, tR, es = conjug[2](C), C.pref.."al", "#es|"

  c.p_i_1s = t.."o"..es.._t.."o"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = t2.."é"..es.._t2.."é", t2.."ás"..es.._t2.."ás", t2.."á"..es.._t2.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = t2.."emos"..es.._t2.."emos", t2.."éis"..es.._t2.."éis", t2.."án"..es.._t2.."án"
  c.c_i_1s, c.c_i_2s = t2.."ía"..es.._t2.."ía", t2.."ías"..es.._t2.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = t2.."íamos"..es.._t2.."íamos", t2.."íais"..es.._t2.."íais", t2.."ían"..es.._t2.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.c_i_3s, c.p_s_3s = c.c_i_1s, c.p_s_1s
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „g” przed samogłoskami [a], [o].</li><!--
  --><li>Spółgłoska „d” zastępuje pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (indicativo)</i>.</li>]=]

  return c

end

modelos.venir = function (C, _conj, modelo, verbo) -- (*)

  -- t = veng-, tT = véng-, t2 = vin-, t3 = vendr-, t4 = vien-
  local t, _t = C.pref.."eng", C.pref.."en".._i.."g".._d
  local tT, _tT = C.pref.."eng", C.pref.."én".._i.."g".._d
  local t2, _t2 = C.pref.."in", C.pref.._i.."i".._d.."n"
  local t3, _t3 = C.pref.."endr", C.pref.."en".._i.."d".._d.."r"
  local t4, _t4 = C.pref.."ien", C.pref.._i.."ie".._d.."n"

  local c, tR, es, op = {}, C.pref.."en", "#es|", (modelo == verbo)

  c.inf, c.inf2, c.ger, c.ger2, c._ger2, c.part = tR.."ir", tR.."ír", t2.."iendo"..es.._t2.."iendo", t2.."iéndo", _t2.."iéndo", tR.."ido"
  c.p_i_1s, c.p_i_2s, c.p_i_3s = t.."o"..es.._t.."o", t4.."es"..es.._t4.."es", t4.."e"..es.._t4.."e"
  c.p_i_1p, c.p_i_2p, c.p_i_3p = tR.."imos"..es..tR.."imos", tR.."ís"..es..tR.."ís", t4.."en"..es.._t4.."en"
  c.pi_i_1s, c.pi_i_2s = tR.."ía"..es..tR.."ía", tR.."ías"..es..tR.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = tR.."íamos"..es..tR.."íamos", tR.."íais"..es..tR.."íais", tR.."ían"..es..tR.."ían"
  c.pps_i_1s, c.pps_i_2s, c.pps_i_3s = t2.."e"..es.._t2.._i.."e".._d, t2.."iste"..es.._t2.."iste", t2.."o"..es.._t2.._i.."o".._d
  c.pps_i_1p, c.pps_i_2p, c.pps_i_3p = t2.."imos"..es.._t2.."imos", t2.."isteis"..es.._t2.."isteis", t2.."ieron"..es.._t2.."ieron"
  c.f_i_1s, c.f_i_2s, c.f_i_3s = t3.."é"..es.._t3.."é", t3.."ás"..es.._t3.."ás", t3.."á"..es.._t3.."á"
  c.f_i_1p, c.f_i_2p, c.f_i_3p = t3.."emos"..es.._t3.."emos", t3.."éis"..es.._t3.."éis", t3.."án"..es.._t3.."án"
  c.c_i_1s, c.c_i_2s = t3.."ía"..es.._t3.."ía", t3.."ías"..es.._t3.."ías"
  c.c_i_1p, c.c_i_2p, c.c_i_3p = t3.."íamos"..es.._t3.."íamos", t3.."íais"..es.._t3.."íais", t3.."ían"..es.._t3.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.pi1_s_1s, c.pi1_s_2s = t2.."iera"..es.._t2.."iera", t2.."ieras"..es.._t2.."ieras"
  c.pi1_s_1p, c.pi1_s_2p, c.pi1_s_3p = t2.."iéramos"..es.._t2.."iéramos", t2.."ierais"..es.._t2.."ierais", t2.."ieran"..es.._t2.."ieran"
  c.pi2_s_1s, c.pi2_s_2s = t2.."iese"..es.._t2.."iese", t2.."ieses"..es.._t2.."ieses"
  c.pi2_s_1p, c.pi2_s_2p, c.pi2_s_3p = t2.."iésemos"..es.._t2.."iésemos", t2.."ieseis"..es.._t2.."ieseis", t2.."iesen"..es.._t2.."iesen"
  c.f_s_1s, c.f_s_2s = t2.."iere"..es.._t2.."iere", t2.."ieres"..es.._t2.."ieres"
  c.f_s_1p, c.f_s_2p, c.f_s_3p = t2.."iéremos"..es.._t2.."iéremos", t2.."iereis"..es.._t2.."iereis", t2.."ieren"..es.._t2.."ieren"
  c.p_i_2vs, c.pi_i_3s, c.c_i_3s, c.p_s_3s, c.pi1_s_3s, c.pi2_s_3s, c.f_s_3s = c.p_i_2p, c.pi_i_1s, c.c_i_1s, c.p_s_1s, c.pi1_s_1s, c.pi2_s_1s, c.f_s_1s
  c.imp_2s, c.imp_2vs, c.imp_2p = op and tR..es..tR or C.pref.."én"..es..C.pref.."én", tR.."í", tR.."id"
  c.imp_pron_2s, c.imp_pron_2vs, c.imp_pron_1p, c._imp_pron_1p, c.imp_pron_2p = tR, tR.."i", t.."á", _t.."á", tR.."í"
  c.imp_pron_3s, c.imp_pron_3p, c._imp_pron_3s, c._imp_pron_3p = tT.."a", tT.."an", _tT.."a", _tT.."an"
  c.imp_ast = "*"

  c.notas = [=[<!--
  --><li>Rdzeń otrzymuje końcową spółgłoskę „g” przed samogłoskami [a], [o].</li><!--
  --><li>Gdy akcent pada na rdzenną głoskę [e], przechodzi ona w dyftong „ie” w czasie <i>presente de indicativo</i>.</li><!--
  --><li>Gdy jest nieakcentowana, rdzenna głoska [e] przechodzi w samogłoskę „i” w 3. os. czasu <i>pretérito perfecto simple</i>,<br><!--
  -->w czasach <i>pretérito imperfecto</i> i <i>futuro de subjuntivo</i> oraz w <i>gerundio</i>.</li><!--
  --><li>Otrzymuje nieakcentowane końcówki fleksyjne pierwszej koniugacji w 1. i 3. os. lp. czasu <i>pretérito perfecto simple</i>.</li><!--
  --><li>Spółgłoska „d” zastępuje pierwszą samogłoskę końcówki fleksyjnej w czasach <i>futuro</i> i <i>condicional (indicativo)</i>.</li><!--
  --><li>Traci koncówkę fleksyjną dla formy 2. os. lp. <i>imperativo (tú)</i>]=]..((not esPron and (verbo ~= "venir")) and ', przybierając zatem akcent graficzny. (*)</li>' or '.</li>')

  return c

end

modelos.ver = function (C, _conj, modelo, verbo, _terc_pers, esPron)

  -- tR = prev-, t = preve-, tT = prevé-
  local tR = C.pref..C.vocal..C.int
  local t, _t = tR.."e", tR.._i.."e".._d
  local tT, _tT = tR.."é", tR.._i.."é".._d

  local c, es, op = conjug[2](C), "#es|", (modelo == verbo)

  c.part, c.part_irr = tR.."isto", true
  c.p_i_1s = t.."o"..es.._t.."o"
  c.p_i_2s = op and "ves"..es.."ves" or tR.."és"..es..tR.._i.."é".._d.."s"
  c.p_i_3s = op and "ve"..es.."ve" or tR.."é"..es..tR.._i.."é".._d
  c.p_i_2p = op and "veis"..es.."v".._i.."e".._d.."is" or c.p_i_2p
  c.p_i_3p = op and "ven"..es.."ven" or tR.."én"..es..tR.._i.."é".._d.."n"
  c.pps_i_1s = op and "vi"..es.."v".._i.."i".._d or c.pps_i_1s
  c.pps_i_3s = op and "vio"..es.."vi".._i.."o".._d or c.pps_i_3s
  c.pi_i_1s, c.pi_i_2s = t.."ía"..es.._t.."ía", t.."ías"..es.._t.."ías"
  c.pi_i_1p, c.pi_i_2p, c.pi_i_3p = t.."íamos"..es.._t.."íamos", t.."íais"..es.._t.."íais", t.."ían"..es.._t.."ían"
  c.p_s_1s, c.p_s_2s = t.."a"..es.._t.."a", t.."as"..es.._t.."as"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.p_i_2vs, c.pi_i_3s, c.p_s_3s = c.p_i_2s, c.pi_i_1s, c.p_s_1s
  c.imp_2s, c.imp_2vs, c._imp_2vs = c.p_i_3s, op and "ve" or tR.."é", op and "v".._i.."e".._d or tR.."é"
  c.imp_pron_2s = tR.."e"
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"

  c.notas = [=[<!--
  --><li>Wszystkie czasowniki tego modelu tworzą <i>participio</i> poprzez dodanie grupy „ist” do rdzenia.</li><!--
  --><li>Rdzeń otrzymuje końcową samogłoskę „e” przed głoskami [a], [o] i grupą „ía” (<i>pretérito imperfecto de indicativo</i>).</li><!--
  -->]=]..((verbo == "ver") and '<li>Zgodnie z regułą pisowni nie akcentuje się wyrazów jednosylabowych: <i>veis, vi, vio, ve</i>.</li>' or
  '<li>Formy <i>presente de indicativo</i> (oprócz 1. os.)'..((esPron) and '' or '&nbsp;i lp. <i>imperativo (tú)</i>')..' są akcentowane na ostatniej sylabie, przybierając zatem akcent graficzny.</li>')

  return c

end

modelos.yacer = function (C, _conj, modelo)

  if modelo == "yacer" then
    return nil, [=[<b>wybierz wzór deklinacyjny:</b><!--
    --><ul><li><tt>"model=agradecer"</tt>:  <i>]=].._i..C.pref.."azco, "..C.pref.."azca".._d..[=[</i></li><!--
    --><li><tt>"model=yacer1"</tt>:  <i>]=].._i..C.pref.."azgo, "..C.pref.."azga".._d..[=[</i></li><!--
    --><li><tt>"model=yacer2"</tt>:  <i>]=].._i..C.pref.."ago, "..C.pref.."aga".._d..[=[</i></li></ul>]=]
  end

  local op = (modelo == "yacer1") and true or false
  local aux= op and "zg" or "g"
  local auxT = _i..aux.._d

  -- t = yazc-/yag-, tT = yázc-/yág-
  local t, _t = C.pref.."a"..aux, C.pref.."a"..auxT
  local tT, _tT = C.pref.."á"..aux, C.pref.."á"..auxT

  local c, es = conjug[2](C), "#es|"
  c.modelo = "yacer"

  c.p_i_1s = t.."o"..es.._t.."o"
  c.p_s_1s, c.p_s_2s, c.p_s_3s = t.."a"..es.._t.."a", t.."as"..es.._t.."as", t.."a"..es.._t.."a"
  c.p_s_1p, c.p_s_2p, c.p_s_3p = t.."amos"..es.._t.."amos", t.."áis"..es.._t.."áis", t.."an"..es.._t.."an"
  c.p_s_3s, c.imp_2s, c.imp_pron_2s, c._imp_pron_2s = c.p_s_1s, C.pref.."az"..es..C.pref.."a".._i.."z".._d, C.pref.."az", C.pref.."a".._i.."z".._d
  c.imp_pron_3s, c.imp_pron_1p, c.imp_pron_3p = tT.."a", t.."á", tT.."an"
  c._imp_pron_3s, c._imp_pron_1p, c._imp_pron_3p = _tT.."a", _t.."á", _tT.."an"
  c.imp_ast = "*"

  c.notas = [=[<!--
  --><li>Rdzeń kończy się spółgłoską „c”, która przybiera formę grupy liter „]=]..aux..[=[” przed głoskami [a], [o].</li><!--
  --><li>Traci końcówkę fleksyjną dla formy 2. os. lp. <i>imperativo (tú)</i>, przybierając końcową spółgłoskę „z” zamiast „c”.</li>]=]

  return c

end

-- MODELOS EQUIVALENTES

-- REGULARES (isoptongos)
modelos.adeudar = modelos.reg
modelos.anunciar = modelos.reg
modelos.averiguar = modelos.reg
modelos.bailar = modelos.reg
modelos.causar = modelos.reg
modelos.coitar = modelos.reg
modelos.peinar = modelos.reg

-- REGULARES (tíldicos)
modelos.actuar = modelos.reg_tilde
modelos.aislar = modelos.reg_tilde
modelos.aunar = modelos.reg_tilde
modelos.descafeinar = modelos.reg_tilde
modelos.enviar = modelos.reg_tilde
modelos.prohibir = modelos.reg_tilde
modelos.prohijar = modelos.reg_tilde
modelos.rehusar = modelos.reg_tilde
modelos.reunir = modelos.reg_tilde

-- REGULARES con alternancia para mantener el sonido
modelos.cazar = modelos.reg
modelos.delinquir = modelos.reg
modelos.desaguar = modelos.reg
modelos.dirigir = modelos.reg
modelos.distinguir = modelos.reg
modelos.esparcir = modelos.reg
modelos.pagar = modelos.reg
modelos.proteger = modelos.reg
modelos.sacar = modelos.reg
modelos.vencer = modelos.reg

-- IRREGULARES
modelos.caber = modelos.saber
modelos.discernir = modelos.adquirir
modelos.entender = modelos.adquirir
modelos.jugar = modelos.contar
modelos.lucir = modelos.agradecer
modelos.oler = modelos.mover
modelos["tañer"] = modelos.mullir
modelos.yacer1 = modelos.yacer
modelos.yacer2 = modelos.yacer

-- IRREGULARES con alternancia para mantener el sonido
modelos.cocer = modelos.mover
modelos.colgar = modelos.contar
modelos.elegir = modelos.pedir
modelos.empezar = modelos.acertar
modelos.forzar = modelos.contar
modelos.regar = modelos.acertar
modelos.seguir = modelos.pedir
modelos.volcar = modelos.contar

-- WIKITABLAS DE CONJUGACIÓN

-- paradigma general
local tabla_normal = function (c, esPronominal, conj, modelo, notas, visible, class, style, participio, alt, defect, imper, pron)

  local part, es = participio or c.part, "#es|"
  local part2 = (c._part or part)..(c.part_doble and " / "..c.part_doble or "") -- incluye el resaltado en color y, si procede, el participio doble
  local _notas = (c.notas or "")..(notas and "<li>"..notas.."</li>" or "")
  local _modelo = c.modelo or modelo
  local eimorfo, imorfo, def, repet, def2
  local imper_no = imper or c.imper_no or nil -- "true" si el verbo no admite imperativo

  local _conj = ""
  for i = 1, conj do _conj = _conj.."I" end -- obtiene el número de la conjugación en letras romanas

  -- verbos defectivos
  if defect then

    if defect == "eimorfo" then
      def, eimorfo = true, true
      _notas = "<li>Stosuje się wyłącznie te formy, których końcówka fleksyjna rozpoczyna się głoską [e] lub [i].</li>"
    elseif defect == "imorfo" then
      def, imorfo = true, true
      _notas = "<li>Stosuje się wyłącznie te formy, których końcówka fleksyjna rozpoczyna się głoską [i].</li>"
    elseif ((defect == "soler") or (defect == "acostumbrar")) then
      def, repet = true, true
      _notas = _notas.."<li>Stosuje się wyłącznie czasy wyrażające zwyczaj lub powtarzającą się czynność.</li>"
    elseif ((defect == "embaír") or (defect == "desvaír")) then
      def, def2 = true, true
      _notas = _notas..[=[<!--
      --><li>Stosuje się wyłącznie te formy, których końcówka fleksyjna rozpoczyna się głoską [i].</li><!--
      --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską [a] rdzenia, otrzymując akcent graficzny („aí”).</li>]=]
    end

  end

  -- si el verbo es eimorfo o imorfo, no indica la alternancia para preservar el sonido
  if ((not c.alt) or eimorfo or imorfo) then alt = nil end

  -- incluye una nota si no se usa el imperativo
  if imper_no then _notas = _notas.."<li>Brak form trybu rozkazującego <i>(imperativo)</i>.</li>" end

  -- pronombres proclíticos
  local aux = pron and "[["..pron.."#es|"..pron.."]] " or ""
  local _me = esPronominal and "[[me#es|me]]&nbsp;"..aux or aux
  local _te = esPronominal and "[[te#es|te]]&nbsp;"..aux or aux
  local _se = esPronominal and "[[se#es|se]]&nbsp;"..aux or aux
  local _nos = esPronominal and "[[nos#es|nos]]&nbsp;"..aux or aux
  local _os = esPronominal and "[[os#es|os]]&nbsp;"..aux or aux
  local esEnclit = esPronominal or (pron and true or nil)
  local _esEnclit = esPronominal and (pron and true or nil)

  -- pronombres enclíticos
  local _pron_me = (esPronominal and "me" or "")..(pron or "")
  local _pron_te = (esPronominal and "te" or "")..(pron or "")
  local _pron_se = (esPronominal and "se" or "")..(pron or "")
  local _pron_nos = (esPronominal and "nos" or "")..(pron or "")
  local _pron_mos = "mos"..(pron or "")
  local _pron_monos = (esPronominal and "monos" or "")..(pron or "")
  local _pron_os = (esPronominal and "os" or "")..(pron or "")

  -- asteriscos para indicar irregularidades en ciertas formas verbales
  local ger_, pps_, pps2_, f_c_, pi_f_, imp_ = c.ger_ast, c.pps_ast, c.pps2_ast, c.f_c_ast, c.pi_f_ast, c.imp_ast

  local aux0 = (not visible) and [=[<!--

  -->[[Aneks:Język hiszpański - koniugacja ]=].._conj..[=[|koniugacja ]=].._conj..[=[]]: czasownik <!--
  -->]=]..((_modelo == "reg") and "" or "nie")..[=[regularny<!--
  -->]=]..(def and " ułomny ([[verbo defectivo#es|defectivo]])" or "")..[=[<!--
  -->]=]..((_modelo == "reg") and "" or ", model [[Aneks:Język hiszpański - odmiana czasownika ".._modelo.."|".._modelo.."]]")..[=[<!--
  -->]=]..(alt and " z przemianą <b>"..alt.."</b> ([[Aneks:Język hiszpański - odmiana czasownika "..c.alt.."|"..c.alt.."]])" or "")..[=[<!--
  -->]=]..(c.tild and (alt and " i " or " z ").."akcentuacją rozziewu ([[Aneks:Język hiszpański - odmiana czasownika "..c.tild.."|"..c.tild.."]])" or "")..[=[<!--
  -->]=]..(c.dipt and (alt and " i " or " ze ").."stałą dwugłoską ([[Aneks:Język hiszpański - odmiana czasownika "..c.dipt.."|"..c.dipt.."]]"..(c.dipt2
      and ", [[Aneks:Język hiszpański - odmiana czasownika "..c.dipt2.."|"..c.dipt2.."]]" or "")..")" or "")..[=[<!--
  -->]=]..((participio or c.part_irr or c.part_doble)
    and (c.part_doble and ", imiesłów bierny podwójny <b>"..c.part.." / "..c.part_doble.."</b>"
      or (", imiesłów bierny <b>"..(participio or c.part).."</b>"..[=[<!--
  -->]=]..(c.part_ipto and ", <i>(Argentyna, Urugwaj)</i> <b>"..c.part_ipto.."</b>" or ""))) or "")..[=[<!--

  --><div class="NavFrame collapse-odmiana" style="display:inline"><!--
  --><div class="NavHead" style="background:transparent; text-align:left; padding-right:55px; display:inline">&nbsp;</div><!--
  --><div class="NavContent" style="text-align: left; display:inline;"><!--]=] or "<!--"

  local aux1 = [=[

  --><table class="]=]..(class or "")..[=[" style="]=]..style..[=[">]=]..((_notas == "") and "" or [=[<!--
    --><tr><td colspan="7" style="padding:0;border:none;width:100%"><!--
      --><table class="wikitable odmiana collapsible collapsed" style="width:100%; margin:0 0 5px 0;"><!--
      --><tr><th>&nbsp;notas</th></tr><!--
      --><tr><td style="text-align:left"><ul>]=].._notas..[=[</ul></td></tr><!--
    --></table></td></tr>]=])..[=[<!--
    --><tr><!--
      --><th>[[forma no personal#es|formas no personales]]</th><!--
      --><th colspan="2">[[infinitivo#es|infinitivo]]</th><!--
      --><th colspan="2">[[gerundio#es|gerundio]]</th><!--
      --><th colspan="2">[[participio#es|participio]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th>[[simple#es|simples]]</th><!--
      --><td colspan="2">]=]..(_esEnclit and c.inf2.._pron_se or c.inf.._pron_se)..[=[</td><!--
      --><td colspan="2">]=]..((c.no_part or def2) and "—" or (ger_ or "").."[["..(esEnclit and c.ger2.._pron_se..es..(c._ger2 or c.ger2).._pron_se or c.ger).."]]")..[=[</td><!--
      --><td colspan="2">]=]..(c.no_part and "—" or "[["..part..es..(c._part or part).."]]".. (c.part_doble and " / [["..c.part_doble..es..c.part_doble.."]]" or ""))..[=[</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[compuesto#es|compuestas]]</th><!--
      --><td colspan="2">]=]..(c.no_part and "—" or (esEnclit and "[[haber#es|"..(_esEnclit and "habér" or "haber").._pron_se.."]] " or "[[haber#es|haber]] ")..part2)..[=[</td><!--
      --><td colspan="2">]=]..(c.no_part and "—" or (esEnclit and "[[haber#es|habiéndo".._pron_se.."]] " or "[[haber#es|habiendo]] ")..part2)..[=[</td><!--
      --><td colspan="2">—</td><!--
    --></tr><!--
    --><tr><td colspan="7" style="padding:0; border:none; height:5px; background:#FFFFFF"></td></tr><!--
    --><tr><!--
      --><th>[[forma personal#es|formas personales]]</th><!--
      --><th colspan="3">[[número singular#es|número singular]]</th><!--
      --><th colspan="3">[[número plural#es|número plural]]</th><!--
    --></tr><!--
  ]=]

  local aux2 = [=[

    --><tr><!--
      --><th style="font-weight:bold">[[modo indicativo#es|modo indicativo]]</th><!--
      --><th width="13%">[[yo#es|yo]]</th><!--
      --><th width="13%">]=]..((c.p_i_2s == c.p_i_2vs) and "[[tú#es|tú]], [[vos#es|vos]]" or "[[tú#es|tú]] / [[vos#es|vos]]")..[=[</th><!--
      --><th width="13%">[[él#es|él]], [[ella#es|ella]]<br>[[usted#es|usted]]</th><!--
      --><th width="13%">[[nosotros#es|nosotros]]<br>[[nosotras#es|nosotras]]</th><!--
      --><th width="13%">[[vosotros#es|vosotros]]<br>[[vosotras#es|vosotras]]</th><!--
      --><th width="13%">[[ellos#es|ellos]], [[ellas#es|ellas]]<br>[[ustedes#es|ustedes]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th>[[presente#es|presente]]</th><!--
      --><td>]=]..((eimorfo or imorfo or def2) and "—" or _me.."[["..c.p_i_1s.."]]")..[=[</td><!--
      --><td>]=]..((imorfo or def2) and "—" or _te.."[["..c.p_i_2s.."]]")..[=[<!--
      -->]=]..((c.p_i_2s == c.p_i_2vs) and "" or "<br>".._te.."[["..c.p_i_2vs.."]]")..[=[</td><!--
      --><td>]=]..((imorfo or def2) and "—" or _se.."[["..c.p_i_3s.."]]")..[=[</td><!--
      --><td>]=].._nos.."[["..c.p_i_1p..[=[]]</td><!--
      --><td>]=].._os.."[["..c.p_i_2p..[=[]]</td><!--
      --><td>]=]..((imorfo or def2) and "—" or _se.."[["..c.p_i_3p.."]]")..[=[</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[pretérito imperfecto#es|pretérito imperfecto]]</th><!--
      --><td>]=].._me.."[["..c.pi_i_1s..[=[]]</td><!--
      --><td>]=].._te.."[["..c.pi_i_2s..[=[]]</td><!--
      --><td>]=].._se.."[["..c.pi_i_3s..[=[]]</td><!--
      --><td>]=].._nos.."[["..c.pi_i_1p..[=[]]</td><!--
      --><td>]=].._os.."[["..c.pi_i_2p..[=[]]</td><!--
      --><td>]=].._se.."[["..c.pi_i_3p..[=[]]</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[pretérito perfecto simple#es|pretérito perfecto simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me.."[["..c.pps_i_1s..[=[]]</td><!--
      --><td>]=].._te.."[["..c.pps_i_2s..[=[]]</td><!--
      --><td>]=]..(def2 and "—" or _se..(pps_ or "").."[["..c.pps_i_3s.."]]")..[=[</td><!--
      --><td>]=].._nos.."[["..c.pps_i_1p..[=[]]</td><!--
      --><td>]=].._os.."[["..c.pps_i_2p..[=[]]</td><!--
      --><td>]=]..(def2 and "—" or _se..(pps_ or pps2_ or "").."[["..c.pps_i_3p.."]]")..[=[</td>]=])..[=[<!--
    --></tr><!--
    --><tr><!--
      --><th>[[futuro simple#es|futuro simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me..(f_c_ or "").."[["..c.f_i_1s..[=[]]</td><!--
      --><td>]=].._te..(f_c_ or "").."[["..c.f_i_2s..[=[]]</td><!--
      --><td>]=].._se..(f_c_ or "").."[["..c.f_i_3s..[=[]]</td><!--
      --><td>]=].._nos..(f_c_ or "").."[["..c.f_i_1p..[=[]]</td><!--
      --><td>]=].._os..(f_c_ or "").."[["..c.f_i_2p..[=[]]</td><!--
      --><td>]=].._se..(f_c_ or "").."[["..c.f_i_3p..[=[]]</td>]=])..[=[<!--
    --></tr><!--
    --><tr><!--
      --><th>[[condicional simple#es|condicional simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me..(f_c_ or "").."[["..c.c_i_1s..[=[]]</td><!--
      --><td>]=].._te..(f_c_ or "").."[["..c.c_i_2s..[=[]]</td><!--
      --><td>]=].._se..(f_c_ or "").."[["..c.c_i_3s..[=[]]</td><!--
      --><td>]=].._nos..(f_c_ or "").."[["..c.c_i_1p..[=[]]</td><!--
      --><td>]=].._os..(f_c_ or "").."[["..c.c_i_2p..[=[]]</td><!--
      --><td>]=].._se..(f_c_ or "").."[["..c.c_i_3p..[=[]]</td>]=])..[=[<!--
    --></tr><!--
  ]=]

  local aux3 = c.no_part and "" or [=[

    --><tr><!--
      --><td colspan="7" style="padding:0;border:none;"><!--
      --><table class="wikitable ]=]..class..[=[ collapsible collapsed" style="width:100%; margin:5px 0 5px 0;"><!--

      --><tr><th colspan="7">&nbsp;[[tiempo compuesto#es|tiempos compuestos]]</th></tr><!--

      --><tr><!--
        --><th>[[pretérito perfecto compuesto#es|pretérito perfecto compuesto]]</th><!--
        --><td width="13%">]=].._me.."[[haber#es|he]] "..part2..[=[</td><!--
        --><td width="13%">]=].._te.."[[haber#es|has]] "..part2..[=[</td><!--
        --><td width="13%">]=].._se.."[[haber#es|ha]] "..part2..[=[</td><!--
        --><td width="13%">]=].._nos.."[[haber#es|hemos]] "..part2..[=[</td><!--
        --><td width="13%">]=].._os.."[[haber#es|habéis]] "..part2..[=[</td><!--
        --><td width="13%">]=].._se.."[[haber#es|han]] "..part2..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th>[[pretérito pluscuamperfecto#es|pretérito pluscuamperfecto]]</th><!--
        --><td>]=].._me.."[[haber#es|había]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|habías]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|había]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|habíamos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|habíais]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|habían]] "..part2..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th>[[pretérito anterior#es|pretérito anterior]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._me.."[[haber#es|hube]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|hubiste]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubo]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|hubimos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|hubisteis]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubieron]] "..part2..[=[</td>]=])..[=[<!--
      --></tr><!--
      --><tr><!--
        --><th>[[futuro compuesto#es|futuro compuesto]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._me.."[[haber#es|habré]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|habrás]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|habrá]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|habremos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|habréis]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|habrán]] "..part2..[=[</td>]=])..[=[<!--
      --></tr><!--
      --><tr><!--
        --><th>[[condicional compuesto#es|condicional compuesto]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._me.."[[haber#es|habría]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|habrías]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|habría]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|habríamos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|habríais]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|habrían]] "..part2..[=[</td>]=])..[=[<!--
      --></tr><!--

      --></table></td></tr><!--
  ]=]

  local aux4 = [=[

    --><tr><!--
      --><th style="font-weight:bold">[[modo subjuntivo#es|modo subjuntivo]]</th><!--
      --><th>[[yo#es|yo]]</th><!--
      --><th>[[tú#es|tú]], [[vos#es|vos]]</th><!--
      --><th>[[él#es|él]], [[ella#es|ella]]<br>[[usted#es|usted]]</th><!--
      --><th>[[nosotros#es|nosotros]]<br>[[nosotras#es|nosotras]]</th><!--
      --><th>[[vosotros#es|vosotros]]<br>[[vosotras#es|vosotras]]</th><!--
      --><th>[[ellos#es|ellos]], [[ellas#es|ellas]]<br>[[ustedes#es|ustedes]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th>[[presente#es|presente]]</th><!--
      -->]=]..((eimorfo or imorfo or def2) and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me.."[["..c.p_s_1s.."]]"..[=[</td><!--
      --><td>]=].._te.."[["..c.p_s_2s.."]]"..[=[</td><!--
      --><td>]=].._se.."[["..c.p_s_3s.."]]"..[=[</td><!--
      --><td>]=].._nos.."[["..c.p_s_1p.."]]"..[=[</td><!--
      --><td>]=].._os.."[["..c.p_s_2p.."]]"..[=[</td><!--
      --><td>]=].._se.."[["..c.p_s_3p.."]]"..[=[</td>]=])..[=[<!--
    --></tr><!--
    --><tr><!--
      --><th rowspan="2">[[pretérito imperfecto#es|pretérito imperfecto]]</th><!--
      -->]=]..(def2 and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me..(pi_f_ or "").."[["..c.pi1_s_1s..[=[]]</td><!--
      --><td>]=].._te..(pi_f_ or "").."[["..c.pi1_s_2s..[=[]]</td><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.pi1_s_3s..[=[]]</td><!--
      --><td>]=].._nos..(pi_f_ or "").."[["..c.pi1_s_1p..[=[]]</td><!--
      --><td>]=].._os..(pi_f_ or "").."[["..c.pi1_s_2p..[=[]]</td><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.pi1_s_3p..[=[]]</td>]=])..[=[<!--
    --></tr><!--
    --><tr><!--
      -->]=]..(def2 and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me..(pi_f_ or "").."[["..c.pi2_s_1s..[=[]]</td><!--
      --><td>]=].._te..(pi_f_ or "").."[["..c.pi2_s_2s..[=[]]</td><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.pi2_s_3s..[=[]]</td><!--
      --><td>]=].._nos..(pi_f_ or "").."[["..c.pi2_s_1p..[=[]]</td><!--
      --><td>]=].._os..(pi_f_ or "").."[["..c.pi2_s_2p..[=[]]</td><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.pi2_s_3p..[=[]]</td>]=])..[=[<!--
    --></tr><!--
    --><tr><!--
      --><th>[[futuro simple#es|futuro simple]]</th><!--
      -->]=]..((def2 or repet) and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._me..(pi_f_ or "").."[["..c.f_s_1s..[=[]]</td><!--
      --><td>]=].._te..(pi_f_ or "").."[["..c.f_s_2s..[=[]]</td><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.f_s_3s..[=[]]</td><!--
      --><td>]=].._nos..(pi_f_ or "").."[["..c.f_s_1p..[=[]]</td><!--
      --><td>]=].._os..(pi_f_ or "").."[["..c.f_s_2p..[=[]]</td><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.f_s_3p..[=[]]</td>]=])..[=[<!--
    --></tr><!--
  ]=]

  local aux5 = c.no_part and "" or [=[

    --><tr><!--
      --><td colspan="7" style="padding:0;border:none;"><!--
      --><table class="wikitable ]=]..class..[=[ collapsible collapsed" style="width:100%; margin:5px 0 5px 0;"><!--

      --><tr><th colspan="7">&nbsp;[[tiempo compuesto#es|tiempos compuestos]]</th></tr><!--

      --><tr><!--
        --><th>[[pretérito perfecto#es|pretérito perfecto]]</th><!--
        --><td width="13%">]=].._me.."[[haber#es|haya]] "..part2..[=[</td><!--
        --><td width="13%">]=].._te.."[[haber#es|hayas]] "..part2..[=[</td><!--
        --><td width="13%">]=].._se.."[[haber#es|haya]] "..part2..[=[</td><!--
        --><td width="13%">]=].._nos.."[[haber#es|hayamos]] "..part2..[=[</td><!--
        --><td width="13%">]=].._os.."[[haber#es|hayáis]] "..part2..[=[</td><!--
        --><td width="13%">]=].._se.."[[haber#es|hayan]] "..part2..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th rowspan="2">[[pretérito pluscuamperfecto#es|pretérito pluscuamperfecto]]</th><!--
        --><td>]=].._me.."[[haber#es|hubiera]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|hubieras]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubiera]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|hubiéramos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|hubierais]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubieran]] "..part2..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><td>]=].._me.."[[haber#es|hubiese]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|hubieses]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubiese]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|hubiésemos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|hubieseis]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubiesen]] "..part2..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th>[[futuro compuesto#es|futuro compuesto]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._me.."[[haber#es|hubiere]] "..part2..[=[</td><!--
        --><td>]=].._te.."[[haber#es|hubieres]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubiere]] "..part2..[=[</td><!--
        --><td>]=].._nos.."[[haber#es|hubiéremos]] "..part2..[=[</td><!--
        --><td>]=].._os.."[[haber#es|hubiereis]] "..part2..[=[</td><!--
        --><td>]=].._se.."[[haber#es|hubieren]] "..part2..[=[</td>]=])..[=[<!--
      --></tr><!--

      --></table></td></tr><!--
  ]=]

  local aux6 = [=[

    --><tr><!--
      --><th style="font-weight:bold">[[modo imperativo#es|modo imperativo]]</th><!--
      --><th>[[tú#es|tú]]</th><!--
      --><th>[[vos#es|vos]]</th><!--
      --><th>[[usted#es|usted]]</th><!--
      --><th>[[nosotros#es|nosotros]]<br>[[nosotras#es|nosotras]]</th><!--
      --><th>[[vosotros#es|vosotros]]<br>[[vosotras#es|vosotras]]</th><!--
      --><th>[[ustedes#es|ustedes]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th>[[presente#es|presente]]</th><!--
      -->]=]..((imper_no or repet) and '<td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td>' or [=[<!--
      --><td>]=]..((imorfo or def2) and "—" or (imp_ or "").."[["..(esEnclit and c.imp_pron_2s.._pron_te..es..(c._imp_pron_2s or c.imp_pron_2s).._pron_te or c.imp_2s).."]]")..[=[</td><!--
      --><td>[[]=]..(_esEnclit and c.imp_2vs.._pron_te..es..(c._imp_2vs or c.imp_2vs).._pron_te or
        (esEnclit and c.imp_pron_2vs.._pron_te..es..(c._imp_pron_2vs or c.imp_pron_2vs).._pron_te or c.imp_2vs..es..(c._imp_2vs or c.imp_2vs)))..[=[]]</td><!--
      --><td>]=]..((eimorfo or imorfo or def2) and "—" or
        "[["..(esEnclit and c.imp_pron_3s.._pron_se..es..(c._imp_pron_3s or c.imp_pron_3s).._pron_se or c.p_s_3s).."]]")..[=[</td><!--
      --><td>]=]..((eimorfo or imorfo or def2) and "—" or
        "[["..((not esEnclit) and c.p_s_1p or
          ((pron and not esPronominal) and
            c.imp_pron_1p.._pron_mos..es..(c._imp_pron_1p or c.imp_pron_1p).._pron_mos or
            c.imp_pron_1p.._pron_monos..es..(c._imp_pron_1p or c.imp_pron_1p).._pron_monos)).."]]")..[=[</td><!--
      --><td>[[]=]..(_esEnclit and c.imp_2vs.._pron_os..es..c.imp_2vs.._pron_os or
        (esPronominal and c.imp_pron_2p.._pron_os..es..(c._imp_pron_2p or c.imp_pron_2p).._pron_os or c.imp_2p.._pron_os..es..(c._imp_2p or c.imp_2p).._pron_os))..[=[]]</td><!--
      --><td>]=]..((eimorfo or imorfo or def2) and "—" or
        "[["..(esEnclit and c.imp_pron_3p.._pron_se..es..(c._imp_pron_3p or c.imp_pron_3p).._pron_se or c.p_s_3p).."]]")..[=[</td>]=])..[=[<!--
    --></tr><!--

    --></table>]=]..(not visible and "</div></div>" or "")

  return aux0..aux1..aux2..aux3..aux4..aux5..aux6

end

-- verbos impersonales y terciopersonales
local tabla_terc_pers = function (c, esPronominal, conj, modelo, notas, visible, class, style, participio, alt, defect, terc_pers, pron)

  local part, es = participio or c.part, "#es|"
  local part2 = (c._part or part)..(c.part_doble and ", "..c.part_doble or "") -- incluye el resaltado en color y, si procede, el participio doble
  local _notas = (c.notas or "")..(notas and "<li>"..notas.."</li>" or "")
  local _modelo = c.modelo or modelo
  local eimorfo, imorfo, def, repet
  local impers = (terc_pers == "lp") and true or false

  local _conj = ""
  for i = 1, conj do _conj = _conj.."I" end -- obtiene el número de la conjugación en letras romanas

  -- verbos defectivos
  if defect then

    if defect == "eimorfo" then
      def, eimorfo = true, true
      _notas = "<li>Stosuje się wyłącznie te formy, których końcówka fleksyjna rozpoczyna się głoską [e] lub [i].</li>"
    elseif defect == "imorfo" then
      def, imorfo = true, true
      _notas = "<li>Stosuje się wyłącznie te formy, których końcówka fleksyjna rozpoczyna się głoską [i].</li>"
    elseif ((defect == "soler") or (defect == "acostumbrar")) then
      def, repet = true, true
      _notas = _notas.."<li>Stosuje się wyłącznie czasy wyrażające zwyczaj lub powtarzającą się czynność.</li>"
    elseif ((defect == "embaír") or (defect == "desvaír")) then
      def, def2 = true, true
      _notas = _notas..[=[<!--
      --><li>Stosuje się wyłącznie te formy, których końcówka fleksyjna rozpoczyna się głoską [i].</li><!--
      --><li>Początkowa, akcentowana samogłoska „i” w końcówce tworzy rozziew z głoską [a] rdzenia, otrzymując akcent graficzny („aí”).</li>]=]
    end

  end

  -- si el verbo es eimorfo o imorfo, no indica la alternancia para preservar el sonido
  if ((not c.alt) or eimorfo or imorfo) then alt = nil end

    -- pronombres proclíticos
  local aux = pron and "[["..pron.."#es|"..pron.."]] " or ""
  local _se = esPronominal and "[[se#es|se]]&nbsp;"..aux or aux
  local esEnclit = esPronominal or (pron and true or nil)
  local _esEnclit = esPronominal and (pron and true or nil)

  -- pronombres enclíticos
  local _pron_se = (esPronominal and "se" or "")..(pron or "")

  -- asteriscos para indicar irregularidades en ciertas formas verbales
  local ger_, pps_, pps2_, pi_f_, f_c_ = c.ger_ast, c.pps_ast, c.pps2_ast, c.pi_f_ast, c.f_c_ast

  local aux0 = (not visible) and [=[<!--

  -->[[Aneks:Język hiszpański - koniugacja ]=].._conj..[=[|koniugacja ]=].._conj..[=[]]: czasownik <!--
  -->]=]..((_modelo == "reg") and "" or "nie")..[=[regularny<!--
  -->]=]..(impers and " nieosobowy ([[verbo impersonal#es|impersonal]])" or " trzecioosobowy ([[verbo terciopersonal#es|terciopersonal]])")..[=[<!--
  -->]=]..((def or c.no_part) and " ułomny ([[verbo defectivo#es|defectivo]])" or "")..[=[<!--
  -->]=]..((_modelo == "reg") and "" or ", model [[Aneks:Język hiszpański - odmiana czasownika ".._modelo.."|".._modelo.."]]")..[=[<!--
  -->]=]..(alt and " z przemianą <b>"..alt.."</b> ([[Aneks:Język hiszpański - odmiana czasownika "..c.alt.."|"..c.alt.."]])" or "")..[=[<!--
  -->]=]..(c.tild and (alt and " i " or " z ").."akcentuacją rozziewu ([[Aneks:Język hiszpański - odmiana czasownika "..c.tild.."|"..c.tild.."]])" or "")..[=[<!--
  -->]=]..(c.dipt and (alt and " i " or " ze ").."stałą dwugłoską ([[Aneks:Język hiszpański - odmiana czasownika "..c.dipt.."|"..c.dipt.."]]"..(c.dipt2
      and ", [[Aneks:Język hiszpański - odmiana czasownika "..c.dipt2.."|"..c.dipt2.."]]" or "")..")" or "")..[=[<!--
  -->]=]..((participio or c.part_irr or c.part_doble)
    and (c.part_doble and ", imiesłów bierny podwójny <b>"..c.part.." / "..c.part_doble.."</b>"
      or (", imiesłów bierny <b>"..(participio or c.part).."</b>"..[=[<!--
  -->]=]..(c.part_ipto and ", <i>(Argentyna, Urugwaj)</i> <b>"..c.part_ipto.."</b>" or ""))) or "")..[=[<!--

  --><div class="NavFrame collapse-odmiana" style="display:inline"><!--
  --><div class="NavHead" style="background:transparent; text-align:left; padding-right:55px; display:inline">&nbsp;</div><!--
  --><div class="NavContent" style="text-align: left; display:inline;"><!--]=] or "<!--"

  local aux1 = [=[

  --><table class="]=]..(class or "")..[=[" style="]=]..style..[=[">]=]..((_notas == "") and "" or [=[<!--
    --><tr><td colspan="6" style="padding:0;border:none;width:100%"><!--
      --><table class="wikitable odmiana collapsible collapsed" style="width:100%; margin:0 0 5px 0;"><!--
      --><tr><th>&nbsp;notas</th></tr><!--
      --><tr><td style="text-align:left"><ul>]=].._notas..[=[</ul></td></tr><!--
    --></table></td></tr>]=])..[=[<!--
    --><tr><!--
      --><th>[[forma no personal#es|formas no personales]]</th><!--
      --><th colspan="2">[[infinitivo#es|infinitivo]]</th><!--
      --><th>[[gerundio#es|gerundio]]</th><!--
      --><th colspan="2">[[participio#es|participio]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th>[[simple#es|simples]]</th><!--
      --><td colspan="2">]=]..(_esEnclit and c.inf2.._pron_se or c.inf.._pron_se)..[=[</td><!--
      --><td>]=]..(c.no_part and "—" or (ger_ or "").."[["..(esEnclit and c.ger2.._pron_se..es..(c._ger2 or c.ger2).._pron_se or c.ger).."]]")..[=[</td><!--
      --><td colspan="2">]=]..(c.no_part and "—" or "[["..part..es..(c._part or part).."]]".. (c.part_doble and ", [["..c.part_doble..es..c.part_doble.."]]" or ""))..[=[</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[compuesto#es|compuestas]]</th><!--
      --><td colspan="2">]=]..(c.no_part and "—" or (esEnclit and "[[haber#es|"..(_esEnclit and "habér" or "haber").._pron_se.."]] " or "[[haber#es|haber]] ")..part2)..[=[</td><!--
      --><td>]=]..(c.no_part and "—" or (esEnclit and "[[haber#es|habiéndo".._pron_se.."]] " or "[[haber#es|habiendo]] ")..part2)..[=[</td><!--
      --><td colspan="2">—</td><!--
    --></tr><!--
    --><tr><td colspan="6" style="padding:0; border:none; height:5px; background:#FFFFFF"></td></tr><!--
    --><tr><th colspan="6">[[forma personal#es|formas personales]]</th></tr><!--
  ]=]

  local aux2 = [=[

    --><tr><!--
      --><th style="font-weight:bold" width="24%" rowspan="2">[[modo indicativo#es|modo indicativo]]</th><!--
      --><th colspan="2">[[tercero#es|tercera]] [[persona#es|persona]]</th><!--
      --><th style="font-weight:bold" width="24%" rowspan="2">[[modo subjuntivo#es|modo subjuntivo]]</th><!--
      --><th colspan="2">[[tercero#es|tercera]] [[persona#es|persona]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th width="13%">[[singular#es|singular]]</th><!--
      --><th width="13%">[[plural#es|plural]]</th><!--
      --><th width="13%">[[singular#es|singular]]</th><!--
      --><th width="13%">[[plural#es|plural]]</th><!--
    --></tr><!--
    --><tr><!--
      --><th>[[presente#es|presente]]</th><!--
      --><td>]=]..(imorfo and "—" or _se.."[["..c.p_i_3s.."]]")..[=[</td><!--
      --><td>]=]..((impers or imorfo) and "—" or _se.."[["..c.p_i_3p.."]]")..[=[</td><!--
      --><th>[[presente#es|presente]]</th><!--
      --><td>]=]..((eimorfo or imorfo) and "—" or _se.."[["..c.p_s_3s.."]]")..[=[</td><!--
      --><td>]=]..((impers or eimorfo or imorfo) and "—" or _se.."[["..c.p_s_3p.."]]")..[=[</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[pretérito imperfecto#es|pretérito imperfecto]]</th><!--
      --><td>]=].._se.."[["..c.pi_i_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se.."[["..c.pi_i_3p.."]]")..[=[</td><!--
      --><th rowspan="2">[[pretérito imperfecto#es|pretérito imperfecto]]</th><!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.pi1_s_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se..(pi_f_ or "").."[["..c.pi1_s_3p.."]]")..[=[</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[pretérito perfecto simple#es|pretérito perfecto simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._se..(pps_ or "").."[["..c.pps_i_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se..(pps_ or pps2_ or "").."[["..c.pps_i_3p.."]]")..[=[</td>]=])..[=[<!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.pi2_s_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se..(pi_f_ or "").."[["..c.pi2_s_3p.."]]")..[=[</td><!--
    --></tr><!--
    --><tr><!--
      --><th>[[futuro simple#es|futuro simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._se..(f_c_ or "").."[["..c.f_i_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se..(f_c_ or "").."[["..c.f_i_3p.."]]")..[=[</td>]=])..[=[<!--
      --><th>[[futuro simple#es|futuro simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._se..(pi_f_ or "").."[["..c.f_s_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se..(pi_f_ or "").."[["..c.f_s_3p.."]]")..[=[</td>]=])..[=[<!--
    --></tr><!--
    --><tr><!--
      --><th>[[condicional simple#es|condicional simple]]</th><!--
      -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
      --><td>]=].._se..(f_c_ or "").."[["..c.c_i_3s..[=[]]</td><!--
      --><td>]=]..(impers and "—" or _se..(f_c_ or "").."[["..c.c_i_3p.."]]")..[=[</td>]=])..[=[<!--
      --><th colspan="3"></th><!--
    --></tr><!--

  ]=]

  local aux3 = c.no_part and "" or [=[

    --><tr><!--
      --><td colspan="6" style="padding:0;border:none;"><!--
      --><table class="wikitable ]=]..class..[=[ collapsible collapsed" style="width:100%; margin:5px 0 5px 0;"><!--

      --><tr><th colspan="6">&nbsp;[[tiempo compuesto#es|tiempos compuestos]]</th></tr><!--

      --><tr><!--
        --><th width="24%">[[pretérito perfecto compuesto#es|pretérito perfecto compuesto]]</th><!--
        --><td width="13%">]=].._se.."[[haber#es|ha]] "..part2..[=[</td><!--
        --><td width="13%">]=]..(impers and "—" or _se.."[[haber#es|han]] "..part2)..[=[</td><!--
        --><th width="24%">[[pretérito perfecto#es|pretérito perfecto]]</th><!--
        --><td width="13%">]=].._se.."[[haber#es|haya]] "..part2..[=[</td><!--
        --><td width="13%">]=]..(impers and "—" or _se.."[[haber#es|hayan]] "..part2)..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th>[[pretérito pluscuamperfecto#es|pretérito pluscuamperfecto]]</th><!--
        --><td>]=].._se.."[[haber#es|había]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|habían]] "..part2)..[=[</td><!--
        --><th rowspan="2">[[pretérito pluscuamperfecto#es|pretérito pluscuamperfecto]]</th><!--
        --><td>]=].._se.."[[haber#es|hubiera]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|hubieran]] "..part2)..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th>[[pretérito anterior#es|pretérito anterior]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._se.."[[haber#es|hubo]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|hubieron]] "..part2)..[=[</td>]=])..[=[<!--
        --><td>]=].._se.."[[haber#es|hubiese]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|hubiesen]] "..part2)..[=[</td><!--
      --></tr><!--
      --><tr><!--
        --><th>[[futuro compuesto#es|futuro compuesto]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._se.."[[haber#es|habrá]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|habrán]] "..part2)..[=[</td>]=])..[=[<!--
        --><th>[[futuro compuesto#es|futuro compuesto]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._se.."[[haber#es|hubiere]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|hubieren]] "..part2)..[=[</td>]=])..[=[<!--
      --></tr><!--
      --><tr><!--
        --><th>[[condicional compuesto#es|condicional compuesto]]</th><!--
        -->]=]..(repet and '<td>—</td><td>—</td>' or [=[<!--
        --><td>]=].._se.."[[haber#es|habría]] "..part2..[=[</td><!--
        --><td>]=]..(impers and "—" or _se.."[[haber#es|habrían]] "..part2)..[=[</td>]=])..[=[<!--
        --><th colspan="3"></th><!--
      --></tr><!--

      --></table></td></tr><!--
  ]=]

  local aux4 = '--></table>'..(not visible and "</div></div>" or "")

  return aux0..aux1..aux2..aux3..aux4

end

-- RUTINA PRINCIPAL

function p.main(frame)

  local pframe = frame:getParent()
  local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
  local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template

  local verbo, modelo = args.czasownik or config.czasownik, args.model
  local notas, visible, participio = args.uwagi, args.widoczny, args.participio
  local terc_pers, defect, imper, pron = args["3.os"], args.defectivo, args.imperativo, args.zaimek
  local namespace, class, style = config.namespace, config.class, config.style

  -- el modelo especificado no existe o no está definido
  if not modelos[modelo] then return mensaje(verbo)..'[[Kategoria:odmiana-czasownik-hiszpański/błędy]]' end

  -- analiza el verbo y lo descompone en unidades más básicas
  local componentes, esPronominal, conj = analizarCadena(verbo, modelo)

  -- no reconoce la conjugación
  if not conj then return 'Nieprawidłowa końcówka bezokolicznika: -ar/-er/-ir/-ír (-se)[[Kategoria:odmiana-czasownik-hiszpański/błędy]]' end

  -- determina si la plantilla de conjugación se encuentra en ns:0 y/o puede ser incluido en una categoría
  local ns = ((not pron) and (namespace == "tak")) and true or false

  -- suprime, en caso de ser un verbo pronominal, el "-se" final
  verbo = esPronominal and subString(verbo, 1, -3) or verbo

  -- obtiene las formas verbales
  local formas, salida = modelos[modelo](componentes, conj, modelo, verbo, terc_pers, esPronominal)

  -- determina la presencia o no de alternancias consonánticas (g-j, g-gu...)
  local alt = (componentes.suf1 ~= "") and "„"..componentes.suf1.." – "..componentes.suf2.."”" or nil

  -- pasa los argumentos a la función "tabla_..." correspondiente
  if salida then
    -- devuelve la tabla con la conjugación u otra salida especificada en la subrutina del modelo

  -- verbos impersonales/terciopersonales
  elseif terc_pers then
    salida = tabla_terc_pers(formas, esPronominal, conj, modelo, notas, (visible == "tak"), class, style, participio, alt, defect, terc_pers, pron)

  -- para el resto de los verbos
  else
    salida = tabla_normal(formas, esPronominal, conj, modelo, notas, (visible == "tak"), class, style, participio, alt, defect, (imper == 'nie'), pron)
  end
  
  -- borra todos los comentarios HTML para evitar que categorice en [[Specjalna:LintErrors/multiline-html-table-in-list]]
  return (salida:gsub("<!%-%-%s*%-%->", ""))

end

--local temp = p.analizarCadena("argüir", "construir")
--for i, v in pairs(temp) do print(i,v) end

--verbo, modelo, notas, visible, class, style, participio, namespace, terc_pers, defect, imper, pron
--print(p.main("predecir", "decir", nil, "no", "wikitable odmiana", "text-align:center; border:none; margin:0.5em 0em", nil, "tak", nil, "no", "si", nil))

return p