top of page

Us vs. Them Chegou ao Hacker News. Seus Rótulos de Humanos vs. IA Dependem da Identidade no Git

11 de ago.
15 min de leitura

Us vs. Them chegou ao Hacker News com 42 pontos e um conflito que editores agentivos criam cada vez mais: quais linhas uma IA deveria hesitar em alterar?

O experimento de código aberto atribui pontuações de humano versus agente a trechos de texto ao reproduzir o histórico Git de um arquivo. Ele não precisa de rótulos dentro do documento. Isso torna sua abordagem incomumente compatível com repositórios existentes, mas a simplicidade esconde uma dependência crítica.

O sistema não detecta se a prosa parece sintética. Em vez disso, confia na identidade vinculada a cada revisão e calcula como edições posteriores alteram a autoria anterior. Portanto, o principal embate não é entre humanos e modelos. É entre um histórico explícito de revisões e uma identidade incerta.

Essa distinção importa à medida que agentes de programação ganham permissão para modificar repositórios inteiros. Um modelo agora pode reescrever documentação, configuração, testes e código de produção em uma única sessão. As equipes precisam de mais do que um diff final para decidir quais mudanças merecem uma revisão cuidadosa.

Us vs. Them propõe um pequeno, mas provocador, sinal de controle. Regiões escritas por humanos tornam-se “ilhas” protegidas, enquanto regiões escritas por máquinas permanecem mais fáceis de serem substituídas por outro agente. A ideia transforma a proveniência de um rótulo de divulgação em uma política de edição.

O Projeto do Hacker News Transforma o Histórico do Git em Pontuações de Autoria

Us vs. Them trata cada revisão salva como evidência e carrega essa evidência adiante conforme autores posteriores modificam o mesmo texto.

O desenvolvedor, identificado no GitHub como eighttrigrams, descreve o projeto como proveniência em nível de linha para textos sob edição agentiva. Seu repositório do projeto oferece tanto uma biblioteca quanto uma interface de linha de comando.

A implementação começa com uma série ordenada de versões de documentos. Cada versão precisa ter um autor identificável que possa ser classificado como humano ou agente. Em seguida, a ferramenta compara essas versões, em vez de inspecionar apenas o texto final.

Sua saída agrupa linhas em intervalos e atribui uma pontuação a cada intervalo. Uma pontuação de 1.00 representa um intervalo integralmente criado por humanos. Uma pontuação de 0.00 representa um intervalo integralmente criado por agentes.

Valores intermediários descrevem um histórico misto. O repositório apresenta 0.46 como exemplo de um intervalo originado por humanos que agentes modificaram posteriormente. Isso produz um espectro, em vez de forçar cada linha sobrevivente a uma categoria binária.

O projeto chama regiões humanas coerentes de “ilhas” dentro de um “mar” de texto gerado. Essa metáfora reflete uma decisão de design importante. A unidade protegida nem sempre é uma única linha inalterada.

Um editor pode dividir um parágrafo, unir duas frases ou ajustar parte de um bloco escrito por humanos. Uma regra estrita de último editor declararia todo o material tocado como criado por máquina. Us vs. Them tenta preservar parte da contribuição anterior após uma modificação parcial.

A interface atual pede que os usuários classifiquem autores por meio de identidades Git. O argumento --ours nomeia humanos, enquanto qualquer outra identidade conta como agente. A opção inversa --theirs nomeia agentes e trata todos os demais como humanos.

Os usuários escolhem o lado que tem menos identidades. A ferramenta rejeita o uso das duas opções juntas. Isso mantém o comando simples, embora coloque a responsabilidade pela classificação sobre o operador.

Os exemplos motivadores são concretos. Um desenvolvedor pode usar um agente para gerar a maior parte de uma aplicação e, depois, reescrever pessoalmente um componente sensível. Outra sessão não deveria substituir casualmente essa região controlada por humanos.

O mesmo problema aparece na documentação. Um agente pode redigir um README inteiro antes de um mantenedor reescrever cuidadosamente sua abertura. Agentes futuros deveriam manter liberdade em outras partes, enquanto tratam a abertura como uma decisão editorial deliberada.

Isso é mais do que uma visualização colorida. A pontuação pode se tornar contexto para um agente, uma interface de revisão ou uma verificação de repositório. Cada consumidor pode aplicar um limiar diferente sem alterar o documento subjacente.

Um assistente de programação pode receber um aviso antes de editar um intervalo com alta pontuação. Um pull request poderia destacar mudanças que removem ilhas criadas por humanos. Um revisor poderia priorizar essas mudanças sem ler todas as linhas geradas com a mesma atenção.

Essa é a mudança imediata do projeto. O histórico Git, normalmente consultado após um problema, torna-se uma entrada para a próxima ação agentiva.

A Autoria Humana Está se Tornando uma Permissão de Edição

A questão importante não é quem merece crédito por cada token, mas onde a edição automatizada deveria encontrar resistência.

O controle de versão tradicional registra mudanças sem atribuir valor moral a elas. Uma linha está atual ou obsoleta, independentemente de quem a escreveu. A edição agentiva altera o significado operacional dessa neutralidade.

Um agente pode inspecionar uma tarefa, escolher arquivos, escrever mudanças, executar testes e revisar seu trabalho. Uma autonomia mais ampla aumenta o número de erros que podem ser corrigidos. Também amplia a área em que a intenção humana pode desaparecer antes da revisão.

Considere um arquivo de configuração produzido em grande parte por um assistente. Um engenheiro pode restringir manualmente uma permissão, adicionar um aviso e documentar por que a restrição existe. Um agente posterior vê apenas texto, a menos que o histórico entre em seu contexto.

Um diff comum mostra o que o agente posterior alterou. Ele não sinaliza automaticamente que uma linha removida representava uma exceção humana deliberada. Os revisores precisam reconstruir essa importância a partir de comentários, mensagens de commit ou memória.

Us vs. Them converte o histórico de autoria em uma dica legível por máquinas. Uma alta proveniência humana não prova que uma linha está correta. Ela indica que uma pessoa investiu esforço editorial direto naquele ponto e pode ter codificado um julgamento que vale preservar.

Esse sinal pressiona dois grupos. Desenvolvedores de agentes precisam de métodos para respeitar a intenção local, enquanto equipes de engenharia precisam de políticas que não congelem os repositórios em torno de cada toque humano no teclado.

A resposta forçada é uma melhor priorização de mudanças. À medida que as edições automatizadas crescem, torna-se difícil revisar cada modificação gerada com a mesma intensidade. As pontuações de proveniência oferecem uma forma de direcionar a escassa atenção humana.

Essa ideia também se aplica além do código-fonte. Documentos de política, notas de pesquisa, requisitos de produto e bases internas de conhecimento frequentemente combinam rascunhos gerados com passagens cuidadosamente revisadas. Sua forma final oculta o processo de colaboração.

Um gerente de produto pode aceitar o resumo de mercado de um agente, mas reescrever pessoalmente a decisão e suas restrições. Outro agente deveria distinguir a prosa de apoio da decisão aprovada. Um documento plano não oferece essa hierarquia.

As pessoas já criam mecanismos informais de proteção. Elas adicionam comentários como “não altere”, isolam arquivos, fortalecem testes ou repetem instruções em prompts. Esses métodos comunicam importância, mas exigem marcação manual ou infraestrutura de apoio.

A proveniência baseada em diff promete menos atrito porque o Git já registra versões. As equipes não precisariam de um formato de documento personalizado. Markdown existente, arquivos-fonte e outros textos simples poderiam permanecer inalterados.

Essa compatibilidade dá ao projeto do Hacker News seu ângulo prático mais forte. Muitas propostas de proveniência começam exigindo novos metadados no momento da criação. Us vs. Them tenta recuperar um sinal útil a partir do histórico que as equipes já mantêm.

O projeto também se encaixa em uma mudança mais ampla rumo ao trabalho de conhecimento consciente de proveniência. Uma base de conhecimento de engenharia pesquisável pode preservar documentos, mas a recuperação por si só não explica quem moldou cada passagem.

Sistemas agentivos precisam tanto de contexto quanto de limites. O contexto informa a um agente o que o repositório contém. Os limites indicam quais partes refletem controle humano intencional e merecem cautela adicional.

A pressão provavelmente persistirá porque o texto gerado é barato de substituir. A atenção humana não é. Sistemas que identificam julgamentos humanos concentrados podem ajudar a proteger o recurso mais escasso.

O Mecanismo Evita a Detecção de IA, mas Herda as Suposições do Git

O histórico de versões oferece evidências mais fortes do que o estilo de escrita apenas quando as identidades dos autores e os caminhos de edição permanecem confiáveis.

A maioria dos detectores de texto de IA analisa uma passagem concluída e estima se seus padrões linguísticos se assemelham à saída de um modelo. Essa abordagem torna-se instável após revisão humana, paráfrase ou escrita específica de um domínio.

Us vs. Them faz uma pergunta mais restrita. Ele não infere quem escreveu o texto final a partir do estilo. Ele reconstrói qual autor declarado introduziu e modificou cada região.

Isso se aproxima mais de contabilidade do que de detecção. O sistema observa transações e carrega informações de propriedade ao longo de mudanças posteriores. Ele não inspeciona a prosa nem tenta adivinhar o que a produziu.

Pesquisas descrevem a coautoria entre humanos e IA como um problema distinto de atribuição. Uma ampla pesquisa sobre autoria separa atribuição humana, detecção de IA, atribuição de modelo e atribuição mista humano-máquina em tarefas diferentes.

O caso misto é especialmente difícil para classificadores que analisam apenas a saída. Um parágrafo pode começar como texto de modelo, receber uma reescrita humana, voltar a um agente e passar por outra correção humana. O estilo final não consegue revelar essa sequência de forma confiável.

O histórico de versões preserva a sequência, desde que cada estado relevante tenha sido submetido em um commit. Ele também oferece um caminho explicável. Um revisor pode inspecionar as revisões por trás de uma pontuação, em vez de confiar em uma probabilidade opaca de um classificador.

O modelo de intervalos do projeto adiciona outra camada. A atribuição simples por linha frequentemente identifica o último commit que tocou cada linha. Us vs. Them, em vez disso, tenta considerar regiões coerentes, divisões, uniões e autoria diluída.

A própria documentação do blame do Git ilustra por que isso se torna complicado. O Git oferece opções separadas para detectar linhas movidas dentro de um arquivo ou copiadas entre arquivos. Essas operações exigem limiares de similaridade e não conseguem estabelecer origem criativa por si só.

Um diff vê exclusão e inserção. Ele não entende se um agente preservou uma ideia humana ao reescrever sua sintaxe. Qualquer sistema numérico de proveniência precisa traduzir similaridade textual em uma regra de autoria.

Suponha que uma pessoa escreva uma verificação de segurança de quatro linhas. Um agente renomeia variáveis e reestrutura a condição sem alterar sua finalidade. Uma política pode preservar uma proveniência humana substancial porque a intenção sobrevive.

Outra política pode atribuir a maior parte da autoria ao agente porque o texto superficial mudou. Nenhuma das escolhas decorre automaticamente do Git. O algoritmo de pontuação codifica um julgamento sobre como a contribuição sobrevive à transformação.

A mesma ambiguidade aparece quando um agente move um parágrafo humano sem alterá-lo. Uma abordagem baseada em localização pode perder seu histórico. Uma abordagem atenta a movimentações pode preservá-lo, mas apenas se a correspondência reconhecer a passagem copiada.

Linhas curtas apresentam outro desafio. Um título como “Requisitos de Segurança” contém pouco texto para uma análise confiável de similaridade. Ainda assim, sua posição e estrutura ao redor podem representar uma decisão humana significativa.

O material gerado também pode absorver conteúdo humano. Um agente pode pegar três frases humanas e expandi-las para dez. O intervalo resultante contém direcionamento humano, redação de máquina e, possivelmente, novas afirmações.

Us vs. Them reconhece isso por meio da ideia de diluição. Pontuações intermediárias expressam um histórico combinado, e não certeza. Isso faz sentido, mas os usuários ainda precisam saber como cada transformação altera o número.

Uma pontuação como 0,46 parece precisa. Seu significado prático depende do algoritmo, dos limites e dos commits disponíveis. As equipes devem tratá-la como um sinal de política, não como uma medição forense de propriedade criativa.

Essa distinção protege a contribuição útil do projeto. A proveniência baseada em diffs não precisa determinar autoria legal para melhorar o comportamento dos agentes. Ela só precisa identificar regiões em que a cautela se justifica.

A Identidade do Commit É o Elo Mais Fraco na Proveniência entre Humanos e IA

A ferramenta pode rastrear a autoria declarada, mas não consegue verificar de forma independente se o humano declarado realmente escreveu uma revisão.

Os commits do Git contêm campos de autor e committer. Esses campos ajudam a reconstruir o histórico, mas um repositório comum não garante que a identidade nomeada corresponda à pessoa no teclado ou ao modelo por trás da alteração.

Um agente pode operar por meio da conta local de um desenvolvedor. Seu commit pode trazer o nome e o e-mail do desenvolvedor porque esses valores vieram da configuração do Git. Us vs. Them classificaria essa revisão de acordo com a identidade configurada.

O oposto pode acontecer quando uma pessoa edita por meio de uma conta de automação. Uma correção criada por um humano pode aparecer sob uma identidade de bot. A pontuação resultante subestimaria o envolvimento humano.

Sessões compartilhadas tornam a fronteira ainda menos clara. Uma pessoa pode pedir um patch a um agente, modificar várias linhas e fazer um único commit com o resultado combinado. A identidade do commit registra um único autor para um processo misto.

O Git oferece suporte a trailers de coautoria, mas eles são declarações no nível do commit. Eles não associam colaboradores distintos a linhas específicas. Também dependem de os participantes registrarem a colaboração com precisão.

Commits assinados aumentam a garantia de que uma chave específica aprovou um objeto Git. O GitHub documenta como commits assinados recebem verificação com base em assinaturas criptográficas e identidades associadas.

Uma assinatura válida ainda não prova composição manual. Um desenvolvedor pode assinar um patch produzido por um agente após revisá-lo. Essa assinatura estabelece aprovação e integridade, não a origem física de cada linha.

Essa limitação define claramente o principal adversário. Histórico explícito é melhor que inferência estilística quando o histórico é confiável. Uma identidade incerta enfraquece toda a cadeia antes mesmo de o algoritmo de pontuação começar.

Histórico ausente cria uma segunda fraqueza. Algumas equipes comprimem muitas revisões em um único commit. Outras colam a saída de um modelo, editam-na localmente e salvam apenas o estado final.

Em ambos os casos, a colaboração intermediária desaparece. A ferramenta só consegue analisar versões que sobreviveram. Portanto, um histórico linear limpo pode fornecer menos proveniência do que uma sequência desorganizada de pequenos commits.

O rebase pode reescrever a estrutura dos commits, enquanto o cherry-pick pode duplicar alterações sob novos metadados. Importações de repositórios podem condensar o desenvolvimento anterior em um único snapshot inicial. A geração de arquivos também pode sobrescrever conteúdo sem preservar estados intermediários úteis.

Esses não são casos extremos obscuros. As equipes rotineiramente comprimem pull requests para manter um histórico legível. Fluxos de trabalho com agentes frequentemente criam alterações temporárias que nunca recebem commits individuais.

As opções de classificação do projeto introduzem uma terceira fraqueza. Toda identidade que não esteja no lado nomeado recebe a classificação oposta. Um contratado desconhecido, uma integração ou uma conta configurada incorretamente pode receber silenciosamente o rótulo errado.

Essa configuração binária é conveniente para um protótipo. O uso em produção se beneficiaria de um estado desconhecido. Autores não classificados não devem se tornar automaticamente humanos ou agentes quando as evidências são incompletas.

Uma política madura pode precisar de pelo menos quatro categorias: humano verificado, agente declarado, sessão mista e desconhecido. A aprovação poderia permanecer separada da autoria. Isso impediria que uma alteração de agente revisada se passasse por texto escrito manualmente.

Também há o risco de proteger em excesso trabalho humano fraco. Uma pontuação de proveniência mede o histórico de contribuição, não a correção. Código escrito por humanos pode conter defeitos, suposições desatualizadas e padrões inseguros.

Um agente deve hesitar diante de uma faixa com pontuação alta, mas não deve tratá-la como sagrada. A resposta adequada pode ser solicitar revisão, fornecer evidências mais fortes ou propor uma alteração com uma explicação clara.

Por outro lado, texto com baixa pontuação não é descartável. Uma migração, um teste ou uma declaração de conformidade gerada por agente pode se tornar operacionalmente importante após a implantação. Dependência em execução e aprovação de revisores podem superar a autoria inicial.

Portanto, as equipes precisam de vários sinais. A proveniência pode ficar ao lado de regras de responsabilidade, cobertura de testes, sensibilidade de segurança, incidentes recentes e aprovações explícitas. Nenhuma pontuação isolada deve determinar se uma edição avança.

O enquadramento mais forte do projeto é o de orientação. Ele pode evidenciar concentração humana e acionar um comportamento de revisão diferente. Apresentar sua saída como prova de origem excederia o que o histórico do repositório estabelece.

A Concorrência Real É Controle Baseado em Histórico versus Metadados Incorporados

Us vs. Them vence em atrito de adoção, enquanto sistemas de proveniência mais ricos vencem em identidade, contexto e portabilidade.

A proveniência baseada em histórico não exige marcação especial no arquivo rastreado. Isso preserva o texto simples e mantém os documentos compatíveis com editores, renderizadores e repositórios existentes.

A abordagem também funciona retrospectivamente. Uma equipe pode analisar um projeto estabelecido se seu histórico e suas identidades continuarem disponíveis. Não é necessário que todos os colaboradores instalem primeiro uma aplicação especializada de autoria.

Metadados incorporados seguem o caminho oposto. Um editor ou agente pode registrar quem gerou, aceitou, revisou ou aprovou cada bloco no momento da ação. Isso captura detalhes que um diff posterior não consegue reconstruir.

O custo é a integração. Os metadados precisam de um esquema, local de armazenamento, modelo de identidade e regras para copiar conteúdo entre sistemas. As ferramentas devem preservá-los quando os usuários exportam, mesclam ou colam texto.

A marcação inline também pode poluir arquivos-fonte. Um documento Markdown perde parte de sua simplicidade se cada bloco carregar tags de autoria. Arquivos auxiliares evitam ruído visual, mas podem se desalinhar do conteúdo que descrevem.

Us vs. Them escolhe compatibilidade em vez de completude. Sua restrição de “sem marcação” torna possíveis experimentos imediatos. Ela também significa que o sistema precisa inferir continuidade sempre que o texto muda.

A proveniência baseada em eventos pode registrar mais do que a identidade do autor. Ela pode capturar o modelo, o contexto do prompt, a ação de aprovação, o material-fonte, a chamada de ferramenta e o revisor. Esses detalhes ajudam a explicar por que um agente produziu uma alteração.

Ainda assim, mais metadados não garantem mais confiança. Um agente pode rotular incorretamente sua própria atividade, uma integração pode omitir eventos e usuários podem contornar o editor instrumentado. A proveniência continua sendo tão confiável quanto seu caminho de captura.

Um modelo combinado oferece a direção mais crível. O histórico do Git pode fornecer um registro estrutural independente, enquanto eventos de agentes assinados fornecem dados de criação mais ricos. Diferenças entre os dois registros podem acionar revisão.

Por exemplo, uma plataforma de agentes poderia criar commits sob uma identidade dedicada e assinada. Ela poderia anexar uma declaração legível por máquina que descreva arquivos gerados e intervalos aprovados por humanos. O repositório manteria tanto o texto final quanto seu processo declarado.

Edições humanas feitas fora dessa plataforma ainda apareceriam no histórico normal. A camada baseada em diffs poderia levar sua proveniência adiante. Eventos desconhecidos ou conflitantes receberiam menor confiança em vez de um rótulo forçado.

Essa arquitetura transforma a pontuação de um único número de autoria em várias dimensões. Um intervalo poderia ter alta contribuição humana, modificação confirmada por agente e aprovação humana explícita.

Essas dimensões respondem a perguntas diferentes. Contribuição pergunta quem moldou o texto. Aprovação pergunta quem aceitou a responsabilidade. Integridade pergunta se o registro mudou após a assinatura.

Para equipes de engenharia, a aprovação frequentemente importa mais do que a composição. Um modelo pode gerar código correto que um mantenedor qualificado revisa cuidadosamente. Um humano também pode escrever código inseguro sem revisão significativa.

Para escritores e pesquisadores, a contribuição pode importar mais. Eles podem precisar divulgar quais passagens se originaram com um modelo, mesmo após edição humana. Um sistema consciente de versões pode revelar essa colaboração com mais precisão do que um único rótulo final.

Para organizações, retenção e portabilidade tornam-se centrais. A proveniência armazenada apenas dentro de uma plataforma de agentes desaparece quando a organização troca de ferramentas. Registros derivados do Git continuam utilizáveis para onde quer que o repositório viaje.

Isso torna Us vs. Them menos uma plataforma completa de proveniência e mais uma base útil. Ele demonstra quanta política pode emergir do histórico comum de versões. Também expõe as informações que o histórico de versões nunca capturou.

O Que os Leitores do Hacker News Devem Observar a Seguir

O valor do projeto dependerá de três sinais: testes de pontuação, integração de agentes e tratamento mais robusto de identidade.

O primeiro sinal é se o repositório amplia seus testes comportamentais em torno de padrões reais de edição. O projeto já direciona os leitores aos testes como a explicação mais clara de seu algoritmo.

Os próximos casos úteis incluem reescritas de parágrafos, blocos reordenados, seções copiadas, squash merges, arquivos gerados e edições alternadas entre humano e agente. Pontuações esperadas publicadas tornariam o sistema mais fácil de avaliar.

Esse sinal fortaleceria o projeto se usuários independentes conseguirem prever e reproduzir sua saída. Grandes mudanças de pontuação causadas por formatação mínima enfraqueceriam a alegação de que uma autoria coerente sobrevive à edição comum.

O segundo sinal é a integração com um agente de programação real ou fluxo de revisão. Um relatório de linha de comando prova que as pontuações podem ser calculadas. Ele não mostra se a informação altera o comportamento do agente.

Um experimento prático poderia exigir que um agente solicitasse confirmação antes de modificar intervalos acima de um limite. Outro poderia priorizar a revisão de pull requests quando uma alteração remove uma ilha de alta proveniência.

O sucesso deve ser medido por resultados, não por capturas de tela. Medidas úteis incluem edições revertidas, correções de revisores, defeitos não detectados e solicitações de aprovação desnecessárias.

Avisos demais criariam fadiga de proveniência. Poucos demais tornariam o sistema decorativo. O melhor limite provavelmente dependerá do repositório e da sensibilidade de cada arquivo.

O terceiro sinal é um modelo de identidade que vá além de uma lista de permissões. Identidades dedicadas de agentes, commits assinados, rótulos de sessão mista e um estado desconhecido explícito resolveriam a limitação mais importante do projeto.

Essa mudança fortaleceria a proveniência baseada em histórico porque melhora as evidências que entram no algoritmo. Sem isso, agentes cada vez mais capazes podem continuar fazendo commits por meio de contas humanas e apagando a distinção.

Um formato público para exportar intervalos também seria importante. Outros agentes e ferramentas de revisão precisam de uma forma estável de consumir o resultado. Um arquivo auxiliar portátil poderia preservar o texto simples, evitando ao mesmo tempo a dependência de um único comando.

A lição mais ampla já está visível. A proveniência de IA se torna mais útil quando orienta uma decisão, em vez de apenas decorar um documento com um rótulo.

Para desenvolvedores, essa decisão é se um agente pode modificar uma linha automaticamente. Para revisores, é onde dedicar atenção. Para organizações, é quais alterações exigem aprovação humana responsável.

Us vs. Them não resolve essas questões de governança. Ele fornece a elas uma entrada concreta derivada de infraestrutura que muitas equipes já utilizam.

A abordagem continua vulnerável a commits incompletos, identidades compartilhadas e reescritas ambíguas. Essas limitações devem orientar a adoção desde o início. Uma pontuação deve iniciar o escrutínio, não encerrá-lo.

Se você gerencia um repositório editado por agentes, inspecione o histórico de um arquivo e identifique onde o julgamento humano realmente está presente. Em seguida, pergunte se o seu próximo agente consegue enxergar essa fronteira.

Esse exercício é mais revelador do que discutir se o texto final “parece ter sido escrito por IA”. A discussão no Hacker News aponta para uma pergunta melhor: seu sistema de edição preserva evidências suficientes para respeitar a intenção humana?

 
 

Comece grátis

Um assistente de IA local-first com gestão de conhecimento pessoal

Para oferecer uma experiência de IA melhor,

atualmente, o remio é compatível apenas com Windows 10+ (x64) e M-Chip Macs.

Seu parceiro de IA no trabalho
Faça mais com o remio

Planeje. Crie. Entregue.
Tudo em um só lugar.

bottom of page