Definition: [
    "autonomous agent",
    {
        "init": "{
        $args = trigger.data;
        $_Portal = $args._Portal;
        $refcons = $args.refcons;
        $__dada = $refval => {
            data_feed[[ oracles = $args._Registre, feed_name = $refval, ifnone = false ]]
        };
    }",
        "messages": [
            {
                "app": "state",
                "state": "{
                $geto =
                    $args.geto otherwise $__dada( 'geto_' || $args.idgeto );
                $__dades_avis = () => {
                    $ref_avis = 'avis_' || $geto || '_' || $args.adr;
                    $ord_avis = $__dada( $ref_avis );
                    $cicle_avis = $__dada( $ord_avis || '_cicle' );
                    $data_avis = $__dada( $ord_avis || '_data' );
                    $text_avis = $__dada( $ord_avis || '_text' );
                    $origen = $__dada( 'Origen' );
                    $interval = $__dada( 'Interval' );
                    $cicle_actual = 1 + floor( ( timestamp - $origen ) / $interval );
                    $avis_es_actual = ( $cicle_avis + 1 ) > $cicle_actual;
                    if ( !! $ord_avis ) {
                        response[ 'Cicle actual' ] = $cicle_actual;
                        response[ 'Data' ] = timestamp_to_string( $data_avis, 'date' );
                        if ( $avis_es_actual ) {
                            response[ 'Hora' ] = timestamp_to_string( $data_avis, 'time' );
                            response[ 'Cicle avís' ] = $cicle_avis;
                            response[ 'Darrer cicle visible' ] = $cicle_avis + 1;
                            response[ 'Avís' ] = $text_avis;
                        } else {
                            response[ 'Darrer Avís' ] = $text_avis;
                            response[ 'Darrer cicle visible' ] = $cicle_avis + 1;
                        }
                    } else
                        response[ 'No hi ha cap avís per a' ] = $args.adr;
                };
                $__dades_bloqueig = () => {
                    $ref_bloqueig = 'bloqueig_' || $geto || '_' || $args.adr;
                    $ord_bloqueig = $__dada( $ref_bloqueig );
                    if ( !! $ord_bloqueig ) {
                        $cicle_bloqueig = $__dada( $ord_bloqueig || '_cicle' );
                        $data_bloqueig = $__dada( $ord_bloqueig || '_data' );
                        $ref_desbloqueig = 'desbloqueig_' || $ref_bloqueig;
                        $ord_desbloqueig = $__dada( $ref_desbloqueig );
                        $cicle_desbloqueig = $__dada( $ord_desbloqueig || '_cicle' );
                        $data_desbloqueig = $__dada( $ord_desbloqueig || '_data' );
                        response[ 'Text' ] = $__dada( $ord_bloqueig || '_text' );
                        response[ 'Cicle inici bloqueig' ] = $cicle_bloqueig;
                        response[ 'Hora' ] = timestamp_to_string( $data_bloqueig, 'time' );
                        response[ 'Data' ] = timestamp_to_string( $data_bloqueig, 'date' );
                        if ( !! $ord_desbloqueig ) {
                            response[ 'Desbloquejat' ] = $ref_desbloqueig;
                            response[ 'Cicle desbloqueig' ] = $cicle_desbloqueig;
                            response[ 'Hora' ] = timestamp_to_string( $data_desbloqueig, 'time' );
                            response[ 'Data' ] = timestamp_to_string( $data_desbloqueig, 'date' );
                        }
                    } else {
                        response[ 'Getó ' || $geto ] = 'Adreça ' || $args.adr || ' no bloquejada';
                    }
                };
                response[ 'consulta' ] = $refcons;
                if ( $refcons == 'Dades_Geto' ) {
                    if( ! $__dada( $geto || '_estat' ) ) bounce( 'Getó desconegut' );
                    $resp = $geto ? 'getó amb nom ' || $geto : 'getó amb id ' || $args.idgeto;
                    response[ 'Dades' ] = $resp;
                    $ord_geto = $__dada( $geto );
                    response[ 'Ordinal' ] = $ord_geto;
                    if ( ! $ord_geto )
                        response[ "No hi consta cap" ] = $resp;
                    $data_implementacio = $__dada( $geto || '_data' );
                    response[ 'Data implementació' ] =
                        timestamp_to_string( $data_implementacio, 'date' );
                    response[ 'Total emissions' ] =
                        $__dada( 'total_emesos_' || $geto ) otherwise 0;
                    response[ 'Total Estels convertits' ] =
                        $__dada( 'total_estels_convertits_' || $geto ) otherwise 0;
                    $refs = [
                        'id', 'estat', '_Capsa', 'topall', 'factor_conversio',
                        'taxa_conversio', 'derivacio', 'import_activacio',
                        'import_subscripcio', 'import_renovacio','cicles_diposit',
                        'activacions_restringides', 'subscripcions_restringides',
                        'recepcions_restringides', 'conversions_restringides',
                        'contribucions_permeses', 'bonificacions_permeses',
                        'atribucions_permeses', 'redefinible',
                        'llistats_editables', 'bloqueig_permes',
                        '_AUT_A', '_AUT_B', '_AUT_C'
                    ];
                    $__resposta = $r => {
                        response[ $r ] = $__dada( $geto || '_' || $r );
                    };
                    $resps = map( $refs, 24, $__resposta );
                }
                if ( $refcons == 'Avis' ) {
                    $__dades_avis();
                }
                if ( $refcons == 'Bloqueig' ) {
                    $__dades_bloqueig();
                }
                if ( $refcons == 'Capacitacio' ) {
                    $ref_capacitacio = $geto || '_' || $args.accio || '_' || $args.adr;
                    $capacitada = $__dada( $ref_capacitacio ) otherwise '';
                    $secc = !! $capacitada ? ' ' : ' NO ';
                    response[ 'Ref' ] = $ref_capacitacio;
                    response[ 'Capacitacio' ] = 'Adreça' || $secc || 'capacitada per a ' || $args.accio || 'ns';
                }
                if ( $refcons == 'Geto_Pendent' ) {
                    $getons_pendents = var[ $_Portal ][ 'getons_pendents' ];
                    response[ "Getó pendent d'inscripció" ] = $getons_pendents[ $geto ];
                }
                if ( $refcons == 'Emissions_Geto' ) {
                    $total_emissions = $__dada( 'total_estels_convertits_' || $geto ) otherwise 0;
                    response[ 'Emissions de ' || $geto ] = $total_emissions || ' Estels';
                }
                if ( $refcons == 'Dades_Atribucio' ) {
                    $ord_atribucio = $__dada( $args.ref );
                    $data_atribucio = $__dada( $ord_atribucio || '_data' );
                    response[ 'Ref' ] = $args.ref;
                    response[ 'Ordinal' ] = $ord_atribucio;
                    response[ 'Quantitat' ] = $__dada( $ord_atribucio || '_qt' );
                    response[ 'Geto' ] = $__dada( $ord_atribucio || '_geto' );
                    response[ 'Rebedora' ] = $__dada( $ord_atribucio || '_rebedora' );
                    response[ 'Requeriment' ] = $__dada( $ord_atribucio || '_unitat' );
                    response[ 'Data' ] = timestamp_to_string( $data_atribucio, 'date' );
                }
                if ( $refcons == 'Romanent_Geto' ) {
                    $idgeto = $__dada( $geto || '_id' );
                    $_Capsa = $__dada( $geto || '__Capsa' );
                    response[ 'Id ' || $geto ] = $idgeto;
                    response[ 'Romanent en ' || $geto ] = balance[ $_Capsa ][ $idgeto ];
                }
            }"
            }
        ]
    }
]