def do_diario(self, buffer, arquivo):
        print(arquivo)
        #diario_pattern = re.compile('Ano\s(\w{3}|\w{4}|\w{5}|\w{6})\s•\sN\w\s(\d{3})')
        diario_pattern = re.compile('Ano\s([A-Z]*)\s•\sN\w\s([0-9]*)')
        diario_edicao = diario_pattern.search(buffer)
        print(diario_edicao.group(1))
        print("Arquivo->" + arquivo + '\n')

        #Diário Suplementar
        diario_suplemento_pattern = re.compile(
            'Diário Oficial do Município do Rio de Janeiro\s\|\s\w*\s\w*\s\|\s\w*\s\w*\s\|\s(Suplemento)'
        )
        diario_suplemento = diario_suplemento_pattern.search(buffer)
        if diario_suplemento:
            tipo = 2  #Suplemento
        else:
            tipo = 1  #Normal

        util = Util()
        diario = Diario()
        RioDAO = RioJaneiroDAO()
        diario.anoromano = (diario_edicao.group(1))
        diario.ano = (util.converteRomano(diario_edicao.group(1)))
        diario.numero = (diario_edicao.group(2))
        diario.nomearquivo = None  #str(arquivo)
        diario.datadiario = None  #Colocar aqui a informação correta da data do diário
        diario.tipo = (tipo)
        diario.identidade = None  #int(1) #Codigo provisorio do Rio de Janeiro
        diario.datagravacao = None  #Colocar aqui uam finção de data atual do sistema
        RioDAO.gravaDiario(diario)
    def resolucoes(self, buffer, arquivo, arq1, criticas, contarq, data_e_hora,
                   arqres, perc):
        print(
            'ARQUIVO========================================================>',
            arquivo, '(CARGOS)', perc, '%')
        ################# PROCESSA CABEÇALHO DO DIARIO ################
        diario_pattern = re.compile('Ano\s([A-Z]*)\s•\sN\w\s([0-9]*)')
        diario_edicao = diario_pattern.search(buffer)

        diario_suplemento_pattern = re.compile(
            'Diário Oficial do Município do Rio de Janeiro\s\|\s\w*\s\w*\s\|\s\w*\s\w*\s\|\s(Suplemento)'
        )
        diario_suplemento = diario_suplemento_pattern.search(buffer)
        if diario_suplemento:
            tipo = 'SUPLEMENTAR'  #Suplemento
        else:
            tipo = 'NORMAL'  #Normal

        util = Util()
        diario = Diario()
        if (diario_edicao.group(1)):
            diario.anoromano = '{: <6}'.format(((diario_edicao.group(1))))
            diario.ano = (util.converteRomano(diario_edicao.group(1)))
            diario.numero = '{:0>6}'.format((diario_edicao.group(2)))
            diario.tipo = '{: <12}'.format((tipo))
            if (diario.ano < 26):
                print("Diário anterior a 2013:",
                      "Ano:",
                      diario.ano,
                      "Arquivo:",
                      arquivo.upper(),
                      file=criticas)
        else:
            diario.anoromano = 'XXXXXX'
            diario.ano = 'XXXXXX'
            diario.numero = 'XXXXXX'
            diario.tipo = 'XXXXXXXXXXXX'

        print('', file=arq1)
        print('(PUC-RIO/TECMF)   ::PROCESSAMENTO DO DIÁRIO::',
              'ANO:',
              diario.ano,
              'No.:',
              diario.numero,
              'TIPO:',
              diario.tipo,
              '* RIO DE JANEIRO * ARQUIVO:',
              arquivo.upper(),
              'SEQ.:',
              '{:0>4}'.format(contarq),
              '                                             ',
              data_e_hora,
              file=arq1)
        print('', file=arq1)

        #############################################################

        resolucao_pattern = re.compile(
            r'^(\*RESOLUÇÕES|RESOLUÇÕES|RESOLUÇOES|RESOLUÇÃO|RESOLUÇAO|PORTARIAS|DECRETO RIO|PORTARIA)\s*(.)*\s*“P”.*',
            re.M)
        contador = 1
        cont = -1
        inicio = []
        bloco = []
        servidor = []
        tamanho = len(buffer)
        for resolucao in resolucao_pattern.finditer(buffer):
            inicio.append(resolucao.start())
            contador = contador + 1
        inicio.append(tamanho)

        for i in range(len(inicio) - 1):
            bloco.append(inicio[i + 1] - inicio[i])
            buffer_local = buffer[inicio[i]:inicio[i] + bloco[i]]

            ###### Resolução #####
            resolucao1_pattern = re.compile(
                r'^(?P<resolucao1>\*RESOLUÇÕES|RESOLUÇÕES|RESOLUÇOES|RESOLUÇÃO|RESOLUÇAO|PORTARIAS|DECRETO RIO|PORTARIA)\s*(.)*\s*“P”(?P<detalhe_resolucao1>.*)',
                re.M)
            resolucao1 = resolucao1_pattern.search(buffer_local)
            if (resolucao1):
                Tipo = '{: <11}'.format(resolucao1.group('resolucao1'))
                Detalhe = resolucao1.group('detalhe_resolucao1')
            else:
                #print('Não casou resolucao1')
                Tipo = 'SEM TIPO'
                Detalhe = 'SEM DETALHE'
            #####################

            #### Gestor #####
            gestor_pattern = re.compile(
                r'(?P<gestor>[O|A]*\s(SECRETÁRI[O|A]+|PROCURADOR[A]*|PREFEITO[A]*|COORDENADOR[A]*)[A-ZÁÚÍÃÓÇÊÉ\s-]+)'
            )
            gestor = gestor_pattern.search(buffer_local)
            if (gestor):
                Gestor = gestor.group('gestor')
            else:
                Gestor = 'SEM GESTOR'
            #print('-----FIM DO BLOCO-----')
            ###### Fim Gestor

        ################################# RESOLUÇÕES COMPOSTAS #############################
            persistencia = Persistencia()
            if ((resolucao1.group('resolucao1') == '*RESOLUÇÕES')
                    or (resolucao1.group('resolucao1') == 'RESOLUÇÕES')
                    or (resolucao1.group('resolucao1') == 'RESOLUÇOES')
                    or (resolucao1.group('resolucao1') == 'RESOLUCOES')
                    or (resolucao1.group('resolucao1') == 'PORTARIAS')):

                servidor = LayoutAtos.atos_nomeacoes(self, buffer_local,
                                                     Detalhe)
                util = Util()
                ato = Ato()

                for i in range(len(servidor)):
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes.replace(' ', ''))
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'NOMEAR   ',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'NOMEAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

                servidor = LayoutAtos.atos_designacoes(self, buffer_local,
                                                       Detalhe)
                ato = Ato()
                for i in range(len(servidor)):
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes.replace(' ', ''))
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'DESIGNAR ',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'DESIGNAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

                servidor = LayoutAtos.atos_dispensas(self, buffer_local,
                                                     Detalhe)
                ato = Ato()
                util = Util()
                for i in range(len(servidor)):
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes.replace(' ', ''))
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'DISPENSAR',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'DISPESAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

                servidor = LayoutAtos.atos_exoneracoesTeste(
                    self, buffer_local, Detalhe)
                ato = Ato()
                util = Util()
                for i in range(len(servidor)):
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes)
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'EXONERAR ',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'EXONERAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

    ######################## RESOLUÇÃO SIMPLES ###########################

            elif ((resolucao1.group('resolucao1') == 'RESOLUÇÃO')
                  or (resolucao1.group('resolucao1') == 'RESOLUÇAO')
                  or (resolucao1.group('resolucao1') == 'RESOLUCAO')
                  or (resolucao1.group('resolucao1') == 'DECRETO RIO')
                  or (resolucao1.group('resolucao1') == 'PORTARIA')):
                servidor = LayoutAtos.atos_nomeacao(self, buffer_local,
                                                    Detalhe)
                for i in range(len(servidor)):
                    ato = Ato()
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes)
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'NOMEAR   ',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'NOMEAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

                servidor = LayoutAtos.atos_dispensar(self, buffer_local,
                                                     Detalhe)
                for i in range(len(servidor)):
                    ato = Ato()
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes)
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'DISPENSAR',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'DISPENSAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

                servidor = LayoutAtos.atos_exonerar(self, buffer_local,
                                                    Detalhe)
                for i in range(len(servidor)):
                    ato = Ato()
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes)
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'EXONERAR ',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'EXONERAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)

                servidor = LayoutAtos.atos_designar(self, buffer_local,
                                                    Detalhe, arqres)
                for i in range(len(servidor)):
                    ato = Ato()
                    ato.nome = '{: <50}'.format((servidor[i].nome).replace(
                        '\n', ' ').replace('  ', ' ').strip(" "))
                    #print(ato.nome)
                    ato.numero = '{:0>4}'.format(servidor[i].numero)
                    ato.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    ato.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    ato.anoResolucao = servidor[i].anoResolucao
                    ato.dataResolucao = ato.diaResolucao + '/' + ato.mesResolucao + '/' + ato.anoResolucao
                    ato.dia = '{:0>2}'.format(servidor[i].dia)
                    ato.mes = util.retornaMes(servidor[i].mes)
                    ato.ano = servidor[i].ano
                    ato.dataEfeito = ato.dia + '/' + ato.mes + '/' + ato.ano
                    ato.matricula = '{: <12}'.format(
                        servidor[i].matricula.replace('.', ''))
                    #ato.cargo = '{: <48}'.format(servidor[i].cargo.upper()).replace('\n', ' ')
                    ato.cargo = '{: <48}'.format(
                        (servidor[i].cargo.upper()).replace('\n', ' ').replace(
                            '  ', ' ').replace('- ', '').strip(" "))
                    ato.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    ato.tipocargo = servidor[i].tipocargo
                    ato.simbolo = '{: <6}'.format(servidor[i].simbolo.replace(
                        '\n', ''))
                    print(ato.CPF,
                          Tipo,
                          ato.numero,
                          ato.dataResolucao,
                          'DESIGNAR ',
                          ato.matricula,
                          ato.nome,
                          ato.dataEfeito,
                          ato.cargo,
                          ato.simbolo,
                          ato.tipocargo,
                          file=arq1)
                    persistencia.insert(ato.matricula, ato.nome,
                                        ato.dataResolucao, 'DESIGNAR',
                                        ato.dataEfeito, ato.cargo,
                                        ato.tipocargo, ato.simbolo)
    def comissoes(self, buffer, arquivo, arq, contarq, data_e_hora, arqres,
                  perc, arq2):
        print(
            'ARQUIVO========================================================>',
            arquivo, '(COMISSÕES)', perc, '%')
        ################# PROCESSA CABEÇALHO DO DIARIO ################
        diario_pattern = re.compile('Ano\s([A-Z]*)\s•\sN\w\s([0-9]*)')
        diario_edicao = diario_pattern.search(buffer)

        diario_suplemento_pattern = re.compile(
            'Diário Oficial do Município do Rio de Janeiro\s\|\s\w*\s\w*\s\|\s\w*\s\w*\s\|\s(Suplemento)'
        )
        diario_suplemento = diario_suplemento_pattern.search(buffer)
        if diario_suplemento:
            tipo = 'SUPLEMENTAR'  #Suplemento
        else:
            tipo = 'NORMAL'  #Normal

        util = Util()
        diario = Diario()
        if (diario_edicao.group(1)):
            diario.anoromano = '{: <6}'.format(((diario_edicao.group(1))))
            diario.ano = (util.converteRomano(diario_edicao.group(1)))
            diario.numero = '{:0>6}'.format((diario_edicao.group(2)))
            diario.tipo = '{: <12}'.format((tipo))
        else:
            diario.anoromano = 'XXXXXX'
            diario.ano = 'XXXXXX'
            diario.numero = 'XXXXXX'
            diario.tipo = 'XXXXXXXXXXXX'

        print('', file=arq2)
        print('(PUC-RIO/TECMF)   ::PROCESSAMENTO DO DIÁRIO::',
              'ANO:',
              diario.ano,
              'No.:',
              diario.numero,
              'TIPO:',
              diario.tipo,
              '* RIO DE JANEIRO * ARQUIVO:',
              arquivo.upper(),
              'SEQ.:',
              '{:0>4}'.format(contarq),
              '                                             ',
              data_e_hora,
              file=arq2)
        print('', file=arq2)

        #############################################################

        resolucao_pattern = re.compile(
            r'^(RESOLUÇÃO|RESOLUÇAO)\s[A-Z0-9]+\sN.\s[0-9]+\sDE.*[\s|\n]+.*',
            re.M)
        contador = 1
        inicio = []
        bloco = []
        servidor = []
        tamanho = len(buffer)
        for resolucao in resolucao_pattern.finditer(buffer):
            inicio.append(resolucao.start())
            contador = contador + 1
        inicio.append(tamanho)

        for i in range(len(inicio) - 1):
            bloco.append(inicio[i + 1] - inicio[i])
            buffer_local = buffer[inicio[i]:inicio[i] + bloco[i]]

            ###### Resolução #####
            resolucao1_pattern = re.compile(
                r'^(?P<resolucao1>RESOLUÇÃO|RESOLUÇAO)\s(?P<detalhe_resolucao1>[A-Z0-9]+\sN.\s[0-9]+\sDE.*)[\s|\n]+.*',
                re.M)
            resolucao1 = resolucao1_pattern.search(buffer_local)

            if (resolucao1):
                #print(resolucao1.group('resolucao1'), resolucao1.group('detalhe_resolucao1'))
                Tipo = '{: <09}'.format(resolucao1.group('resolucao1'))
                Detalhe = resolucao1.group('detalhe_resolucao1')
            else:
                #print('Não casou resolucao1')
                Tipo = 'SEM TIPO'
                Detalhe = 'SEM DETALHE'
            #####################

            #### Gestor #####
            gestor_pattern = re.compile(
                r'(?P<gestor>[O|A]*\s(SECRETÁRI[O|A]+|PROCURADOR[A]*|PREFEITO[A]*|COORDENADOR[A]*)[A-ZÁÚÍÃÓÇÊÉ\s-]+)'
            )
            gestor = gestor_pattern.search(buffer_local)
            if (gestor):
                Gestor = gestor.group('gestor')
            else:
                Gestor = 'SEM GESTOR'
            ###### Fim Gestor

            #### Detalhes da Comissão #####]
#            print('Arquivo->',arq)
#            if (arq == '3915.pdf'):
#                print(buffer_local)

            comissao1_pattern = re.compile(
                r'Art.\s[1-2]+.\sDesignar os membros abaixo indicados para comporem a (?P<nomeComissao>[A-ZÉÁÍÓÚÇÃÊÔÕÀÜa-záêéóíçãâôú\-\n\s\–]+)[\-|\–]*\sCONVÊNIO\sN\w\s(?P<convenio>[0-9\/]+)\n*\s*Titulares\n*\s*Órgão\s*Nome\s*Matrícula\n*'
            )
            comissao2_pattern = re.compile(
                r'Art.\s[1-2]+.\sDesignar os membros abaixo indicados para comporem a (?P<nomeComissao>[A-ZÉÁÍÓÚÇÃÊÔÕÀÜa-záêéóíçãâôú\-\n\s\–]+):\n*\s*Titulares\n*\s*Órgão\s*Nome\s*Matrícula\n*'
            )

            comissao1 = comissao1_pattern.search(buffer_local)
            comissao2 = comissao2_pattern.search(buffer_local)
            Detalhe2 = ''

            if (comissao1):
                #print('comissao 1')
                Detalhe2 = '<NomeComissao>' + comissao1.group(
                    'nomeComissao') + '<ConvenioComissao>' + comissao1.group(
                        'convenio')

            if (comissao2):
                #print('comissao 2')
                Detalhe2 = '<NomeComissao>' + comissao1.group(
                    'nomeComissao') + '<ConvenioComissao>' + '0000'

            ###### Fim Gestor

        ################################# RESOLUÇÕES COMPOSTAS #############################

            if ((resolucao1.group('resolucao1') == '*RESOLUÇÕES')
                    or (resolucao1.group('resolucao1') == 'RESOLUÇÕES')
                    or (resolucao1.group('resolucao1') == 'RESOLUÇOES')
                    or (resolucao1.group('resolucao1') == 'RESOLUCOES')
                    or (resolucao1.group('resolucao1') == 'PORTARIAS')):
                print(resolucao1.group('resolucao1'))

        ######################## RESOLUÇÃO SIMPLES ###########################

            elif ((resolucao1.group('resolucao1') == 'RESOLUÇÃO')
                  or (resolucao1.group('resolucao1') == 'RESOLUÇAO')
                  or (resolucao1.group('resolucao1') == 'RESOLUCAO')
                  or (resolucao1.group('resolucao1') == 'DECRETO RIO')
                  or (resolucao1.group('resolucao1') == 'PORTARIA')):

                ####### COMISSÃO ###############
                servidor = LayoutAtos.atos_criar_comissao(
                    self, buffer_local, Detalhe, Detalhe2)
                for i in range(len(servidor)):
                    comissoes = Comissoes()
                    comissoes.nome = '{: <43}'.format(
                        (servidor[i].nome).replace('\n', ' ').replace(
                            '  ', ' ').strip(" "))
                    comissoes.numero = '{:0>4}'.format(servidor[i].numero)
                    comissoes.diaResolucao = '{:0>2}'.format(
                        servidor[i].diaResolucao)
                    comissoes.mesResolucao = '{:0>2}'.format(
                        servidor[i].mesResolucao)
                    comissoes.anoResolucao = servidor[i].anoResolucao
                    comissoes.dia = '{:0>2}'.format(servidor[i].dia)
                    comissoes.mes = util.retornaMes(servidor[i].mes)
                    comissoes.ano = servidor[i].ano
                    comissoes.matricula = '{: <13}'.format(
                        servidor[i].matricula)
                    comissoes.nomeComissao = '{: <68}'.format(
                        servidor[i].nomeComissao.replace('\n', ' ').replace(
                            '  ', ' '))
                    comissoes.convenio = '{: <9}'.format(servidor[i].convenio)
                    comissoes.CPF = '{: <13}'.format(
                        servidor[i].CPF)  #vER ESTA REGRA!!!!!
                    comissoes.tipocargo = servidor[i].tipocargo
                    comissoes.orgao = '{: <10}'.format(servidor[i].orgao)
                    print(comissoes.CPF,
                          Tipo,
                          comissoes.numero,
                          comissoes.diaResolucao,
                          '/',
                          comissoes.mesResolucao,
                          '/',
                          comissoes.anoResolucao,
                          'DESIGNAR ',
                          comissoes.orgao,
                          comissoes.nome,
                          comissoes.matricula,
                          comissoes.nomeComissao,
                          comissoes.convenio,
                          comissoes.tipocargo,
                          file=arq2)