{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /OpenAction 4 0 R
  /AcroForm 3 0 R
>>
endobj
{{object 2 0}} <<
  /Type /Pages
  /Count 3
  /Kids [6 0 R 7 0 R 8 0 R ]
>>
endobj
{{object 3 0}} <<
  /CO [11 0 R]
  /Fields [11 0 R 9 0 R]
>>
endobj
{{object 4 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 5 0 R
>>
endobj
{{object 5 0}} <<>>
stream
var i = 0;
function run()
{
  t = this.getField('txtName1');
  t2 = this.getField('txtName2');
  t2.setFocus();
  t.setFocus();
  t.value='G';
}

function remove(){
  if (i==1){
    this.removeField('txtName2');
  }
  i++;
}

app.setTimeOut('run()',2000);
endstream
endobj
{{object 6 0}} <<
  /Type /Page
  /Parent 2 0 R
  /MediaBox [0 0 612 792]
  /Resources <<>>
>>
endobj
{{object 7 0}} <<
  /Type /Page
  /Parent 2 0 R
  /MediaBox [0 0 612 792]
  /Resources <<>>
>>
endobj
{{object 8 0}} <<
  /Type /Page
  /Parent 2 0 R
  /MediaBox [0 0 612 792]
  /Resources <<>>
  /Annots [9 0 R 11 0 R]
>>
endobj
{{object 9 0}} <<
  /FT /Tx
  /Type /Annot
  /Subtype /Widget
  /T (txtName2)
  /F 4
  /AP <</N 10 0 R>>
  /Rect [20 20 400 60]
>>
endobj
{{object 10 0}} <<
  /Type /XObject
  /Subtype /Form
  /FormType 1
>>
endobj
{{object 11 0}} <<
  /FT /Tx
  /Type /Annot
  /Subtype /Widget
  /T (txtName1)
  /F 4
  /AP <</N 12 0 R>>
  /Rect [200 200 400 260]
  /AA 13 0 R
>>
endobj
{{object 12 0}} <<
  /Type /XObject
  /Subtype /Form
  /FormType 1
>>
endobj
{{object 13 0}} <<
  /C 14 0 R
>>
endobj
{{object 14 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 15 0 R
>>
endobj
{{object 15 0}} <<>>
stream
this.getField('txtName2').value='B';
this.pageNum=1;
remove();
endstream
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
